comparison tests/test_materials.nim @ 982:a40bb0a48e07

do: try to increase compatability with older hardware...
author sam <sam@basx.dev>
date Sat, 06 Apr 2024 17:29:48 +0700
parents 6406766a222d
children 73b572f82a1f
comparison
equal deleted inserted replaced
981:c81541f55d9c 982:a40bb0a48e07
33 33
34 proc main() = 34 proc main() =
35 var flag = rect() 35 var flag = rect()
36 flag.material = material 36 flag.material = material
37 var scene = Scene(name: "main", meshes: @[flag]) 37 var scene = Scene(name: "main", meshes: @[flag])
38 scene.addShaderGlobalArray("test2", @[0'f32, 0'f32]) 38 scene.addShaderGlobalArray("test2", @[newVec4f(), newVec4f()])
39 39
40 var engine = initEngine("Test materials") 40 var engine = initEngine("Test materials")
41 41
42 const 42 const
43 shaderConfiguration1 = createShaderConfiguration( 43 shaderConfiguration1 = createShaderConfiguration(
46 attr[Vec2f]("uv", memoryPerformanceHint = PreferFastRead), 46 attr[Vec2f]("uv", memoryPerformanceHint = PreferFastRead),
47 ], 47 ],
48 intermediates = [ 48 intermediates = [
49 attr[Vec2f]("uvout"), 49 attr[Vec2f]("uvout"),
50 ], 50 ],
51 uniforms = [attr[float32]("test2", arrayCount = 2)], 51 uniforms = [attr[Vec4f]("test2", arrayCount = 2)],
52 samplers = @[ 52 samplers = @[
53 attr[Texture]("tex1"), 53 attr[Texture]("tex1"),
54 attr[Texture]("tex2"), 54 attr[Texture]("tex2"),
55 ], 55 ],
56 outputs = [attr[Vec4f]("color")], 56 outputs = [attr[Vec4f]("color")],
57 vertexCode = """ 57 vertexCode = """
58 gl_Position = vec4(position.x, position.y + sin(Uniforms.test2[1]) / Uniforms.test2[1] * 0.5, position.z, 1.0); 58 gl_Position = vec4(position.x, position.y + sin(Uniforms.test2[1].x) / Uniforms.test2[1].x * 0.5, position.z, 1.0);
59 uvout = uv;""", 59 uvout = uv;""",
60 fragmentCode = """ 60 fragmentCode = """
61 float d = sin(Uniforms.test2[0]) * 0.5 + 0.5; 61 float d = sin(Uniforms.test2[0].x) * 0.5 + 0.5;
62 color = texture(tex1, uvout) * (1 - d) + texture(tex2, uvout) * d; 62 color = texture(tex1, uvout) * (1 - d) + texture(tex2, uvout) * d;
63 """, 63 """,
64 ) 64 )
65 engine.initRenderer({ 65 engine.initRenderer({
66 doubleTextureMaterial: shaderConfiguration1, 66 doubleTextureMaterial: shaderConfiguration1,
67 }) 67 })
68 engine.loadScene(scene) 68 engine.loadScene(scene)
69 var t = cpuTime() 69 var t = cpuTime()
70 while engine.updateInputs() == Running and not engine.keyIsDown(Escape): 70 while engine.updateInputs() == Running and not engine.keyIsDown(Escape):
71 var d = float32(cpuTime() - t) 71 var d = float32(cpuTime() - t)
72 setShaderGlobalArray(scene, "test2", @[d, d * 2]) 72 setShaderGlobalArray(scene, "test2", @[newVec4f(d), newVec4f(d * 2)])
73 engine.renderScene(scene) 73 engine.renderScene(scene)
74 engine.destroy() 74 engine.destroy()
75 75
76 76
77 when isMainModule: 77 when isMainModule: