diff examples/hello_triangle.nim @ 494:0c18638c7217

did: refactoring, move more from make to nimscript
author Sam <sam@basx.dev>
date Sun, 15 Jan 2023 23:23:54 +0700
parents 680c4b8ca28a
children b41733878bc6
line wrap: on
line diff
--- a/examples/hello_triangle.nim	Sat Jan 14 23:34:50 2023 +0700
+++ b/examples/hello_triangle.nim	Sun Jan 15 23:23:54 2023 +0700
@@ -17,25 +17,11 @@
   VertexDataA = object
     position: PositionAttribute[Vec2[float32]]
     color: ColorAttribute[Vec3[float32]]
-  Uniforms = object
-    mat: Descriptor[Mat44[float32]]
-    dt: Descriptor[float32]
 
-var pipeline: RenderPipeline[VertexDataA, Uniforms]
+var pipeline: RenderPipeline[VertexDataA, void]
 
-var pos = 0'f32;
-var uniforms = Uniforms(
-  mat: Descriptor[Mat44[float32]](value: Unit44f32),
-  dt: Descriptor[float32](value: 0'f32),
-)
-var scaledir = 1'f32
 proc globalUpdate(engine: var Engine, dt: float32) =
-  uniforms.mat.value = uniforms.mat.value * scale3d(1 + scaledir * dt, 1 + scaledir * dt, 0'f32)
-  if uniforms.mat.value[0, 0] > 2'f32 or uniforms.mat.value[0, 0] < 0.5'f32:
-    scaledir = - scaledir
-  for buffer in pipeline.uniformBuffers:
-    buffer.updateData(uniforms)
-  echo uniforms.mat.value
+  discard
 
 # vertex data (types must match the above VertexAttributes)
 const
@@ -65,22 +51,11 @@
   triangle.parts.add trianglemesh
 
   # upload data, prepare shaders, etc
-  const vertexShader = generateVertexShaderCode[VertexDataA, Uniforms](
-    # have 1 at:
-    # [2][0] [0][3]
-    # "out_position = vec4(in_position[0] + uniforms.mat[0][0], in_position[1] + uniforms.mat[0][0], 0, 1);"
-    "out_position = uniforms.mat * vec4(in_position, 0, 1);"
-    # "out_position = vec4(in_position, 0, 1);"
+  const vertexShader = generateVertexShaderCode[VertexDataA, void](
+    # "out_position = uniforms.mat * vec4(in_position, 0, 1);"
   )
   const fragmentShader = generateFragmentShaderCode[VertexDataA]()
-  static:
-    echo "--------------"
-    for (i, line) in enumerate(vertexShader.splitLines()):
-      echo $(i + 1) & " " & line
-    echo "--------------"
-    echo fragmentShader
-    echo "--------------"
-  pipeline = setupPipeline[VertexDataA, Uniforms, uint16](
+  pipeline = setupPipeline[VertexDataA, void, uint16](
     myengine,
     triangle,
     vertexShader,