Mercurial > games > semicongine
comparison examples/E01_hello_triangle.nim @ 777:754835bf175e
add: changing rendering system, not finished yet, also upgrading to Nim 2
| author | Sam <sam@basx.dev> |
|---|---|
| date | Mon, 07 Aug 2023 00:23:00 +0700 |
| parents | a4c757f5d17f |
| children | 8084252b807a |
comparison
equal
deleted
inserted
replaced
| 776:002d9c576756 | 777:754835bf175e |
|---|---|
| 1 import ../src/semicongine | 1 import ../src/semicongine |
| 2 | 2 |
| 3 | 3 |
| 4 const | 4 const |
| 5 vertexInput = @[ | 5 inputs = @[ |
| 6 attr[Vec3f]("position"), | 6 attr[Vec3f]("position"), |
| 7 attr[Vec4f]("color"), | 7 attr[Vec4f]("color"), |
| 8 ] | 8 ] |
| 9 vertexOutput = @[attr[Vec4f]("outcolor")] | 9 intermediate = @[attr[Vec4f]("outcolor")] |
| 10 fragOutput = @[attr[Vec4f]("color")] | 10 outputs = @[attr[Vec4f]("color")] |
| 11 vertexCode = compileGlslShader( | 11 (vertexCode, fragmentCode) = compileVertexFragmentShaderSet( |
| 12 stage=VK_SHADER_STAGE_VERTEX_BIT, | 12 inputs=inputs, |
| 13 inputs=vertexInput, | 13 intermediate=intermediate, |
| 14 outputs=vertexOutput, | 14 outputs=outputs, |
| 15 main=""" | 15 vertexCode=""" |
| 16 gl_Position = vec4(position, 1.0); | 16 gl_Position = vec4(position, 1.0); |
| 17 outcolor = color; | 17 outcolor = color; |
| 18 """ | 18 """, |
| 19 ) | 19 fragmentCode="color = outcolor;", |
| 20 fragmentCode = compileGlslShader( | |
| 21 stage=VK_SHADER_STAGE_FRAGMENT_BIT, | |
| 22 inputs=vertexOutput, | |
| 23 outputs=fragOutput, | |
| 24 main="color = outcolor;" | |
| 25 ) | 20 ) |
| 26 | 21 |
| 27 var | 22 var |
| 28 triangle = newScene("scene", newEntity( | 23 triangle = newScene("scene", newEntity( |
| 29 "triangle", | 24 "triangle", |
| 34 )) | 29 )) |
| 35 myengine = initEngine("Hello triangle") | 30 myengine = initEngine("Hello triangle") |
| 36 renderPass = myengine.gpuDevice.simpleForwardRenderPass(vertexCode, fragmentCode) | 31 renderPass = myengine.gpuDevice.simpleForwardRenderPass(vertexCode, fragmentCode) |
| 37 | 32 |
| 38 myengine.setRenderer(renderPass) | 33 myengine.setRenderer(renderPass) |
| 39 myengine.addScene(triangle, vertexInput, @[], transformAttribute="") | 34 myengine.addScene(triangle, inputs, @[], transformAttribute="") |
| 40 | 35 |
| 41 while myengine.updateInputs() == Running and not myengine.keyWasPressed(Escape): | 36 while myengine.updateInputs() == Running and not myengine.keyWasPressed(Escape): |
| 42 myengine.renderScene(triangle) | 37 myengine.renderScene(triangle) |
| 43 | 38 |
| 44 myengine.destroy() | 39 myengine.destroy() |
