Mercurial > games > semicongine
diff examples/E01_hello_triangle.nim @ 335:f05b4bef44d1
fix: first example
author | Sam <sam@basx.dev> |
---|---|
date | Mon, 04 Sep 2023 00:55:35 +0700 |
parents | b145a05c2459 |
children | 887ddc8d45fd |
line wrap: on
line diff
--- a/examples/E01_hello_triangle.nim Mon Sep 04 00:48:00 2023 +0700 +++ b/examples/E01_hello_triangle.nim Mon Sep 04 00:55:35 2023 +0700 @@ -1,37 +1,33 @@ +import std/tables + import ../src/semicongine - +# shader setup const - inputs = @[ - attr[Vec3f]("position"), - attr[Vec4f]("color"), - ] - intermediate = @[attr[Vec4f]("outcolor")] - outputs = @[attr[Vec4f]("color")] - (vertexCode, fragmentCode) = compileVertexFragmentShaderSet( - inputs=inputs, - intermediate=intermediate, - outputs=outputs, - vertexCode=""" - gl_Position = vec4(position, 1.0); - outcolor = color; - """, + shaderConfiguration = createShaderConfiguration( + inputs=[ + attr[Vec3f]("position"), + attr[Vec4f]("color"), + ], + intermediates=[attr[Vec4f]("outcolor")], + outputs=[attr[Vec4f]("color")], + vertexCode="gl_Position = vec4(position, 1.0); outcolor = color;", fragmentCode="color = outcolor;", ) +# scene setup var - triangle = newScene("scene", newEntity( - "triangle", - {"mesh": Component(newMesh( + triangle = Scene(name: "scene", + meshes: @[newMesh( [newVec3f(-0.5, 0.5), newVec3f(0, -0.5), newVec3f(0.5, 0.5)], [newVec4f(1, 0, 0, 1), newVec4f(0, 1, 0, 1), newVec4f(0, 0, 1, 1)], - ))} - )) + material=Material(name: "") + )] + ) myengine = initEngine("Hello triangle") - renderPass = myengine.gpuDevice.simpleForwardRenderPass(vertexCode, fragmentCode) -myengine.setRenderer(renderPass) -myengine.addScene(triangle, inputs, @[], transformAttribute="") +myengine.initRenderer({"": shaderConfiguration}.toTable) +myengine.addScene(triangle) while myengine.updateInputs() == Running and not myengine.keyWasPressed(Escape): myengine.renderScene(triangle)