Mercurial > games > semicongine
comparison examples/E03_hello_cube.nim @ 664:c33c8e156e3e
did: update examples to use new API for scene + scene globals
author | Sam <sam@basx.dev> |
---|---|
date | Mon, 08 May 2023 21:21:49 +0700 |
parents | 3f13de7d8ec4 |
children | e85f54b88afb |
comparison
equal
deleted
inserted
replaced
663:af9ab61aa87e | 664:c33c8e156e3e |
---|---|
74 uniforms=uniforms, | 74 uniforms=uniforms, |
75 outputs=fragOutput, | 75 outputs=fragOutput, |
76 main="color = vec4(outcolor, 1);" | 76 main="color = vec4(outcolor, 1);" |
77 ) | 77 ) |
78 myengine.setRenderer(myengine.gpuDevice.simpleForwardRenderPass(vertexCode, fragmentCode)) | 78 myengine.setRenderer(myengine.gpuDevice.simpleForwardRenderPass(vertexCode, fragmentCode)) |
79 var | 79 var cube = newScene("scene", newEntity("cube", newMesh(positions=cube_pos, indices=tris, colors=cube_color))) |
80 projection = initShaderGlobal("projection", Unit4f32) | 80 cube.addShaderGlobal("projection", Unit4f32) |
81 view = initShaderGlobal("view", Unit4f32) | 81 cube.addShaderGlobal("view", Unit4f32) |
82 model = initShaderGlobal("model", Unit4f32) | 82 cube.addShaderGlobal("model", Unit4f32) |
83 cube = newEntity("cube", newMesh(positions=cube_pos, indices=tris, colors=cube_color)) | |
84 cube.components.add projection | |
85 cube.components.add view | |
86 cube.components.add model | |
87 myengine.addScene(cube, vertexInput) | 83 myengine.addScene(cube, vertexInput) |
88 | 84 |
89 var t: float32 = cpuTime() | 85 var t: float32 = cpuTime() |
90 while myengine.updateInputs() == Running and not myengine.keyWasPressed(Escape): | 86 while myengine.updateInputs() == Running and not myengine.keyWasPressed(Escape): |
91 setValue[Mat4](model.value, translate3d(0'f32, 0'f32, 10'f32) * rotate3d(t, Yf32)) | 87 setShaderGlobal(cube, "model", translate3d(0'f32, 0'f32, 10'f32) * rotate3d(t, Yf32)) |
92 setValue[Mat4]( | 88 setShaderGlobal(cube, "projection", |
93 projection.value, | |
94 perspective( | 89 perspective( |
95 float32(PI / 4), | 90 float32(PI / 4), |
96 float32(myengine.getWindow().size[0]) / float32(myengine.getWindow().size[0]), | 91 float32(myengine.getWindow().size[0]) / float32(myengine.getWindow().size[0]), |
97 0.1'f32, | 92 0.1'f32, |
98 100'f32 | 93 100'f32 |