comparison examples/E04_input.nim @ 532:5d457f7bb624

did: cleanup + auto-generate mvp-transformartion in shader code
author Sam <sam@basx.dev>
date Sun, 05 Feb 2023 11:39:11 +0700
parents cfa230e1f3b9
children 21c276c0a968
comparison
equal deleted inserted replaced
531:140222601389 532:5d457f7bb624
1 import std/tables
2 import std/enumerate 1 import std/enumerate
3 import std/strutils 2 import std/strutils
4 import std/typetraits 3 import std/typetraits
5 import std/times 4 import std/times
6 import std/math 5 import std/math
12 VertexDataA = object 11 VertexDataA = object
13 position: PositionAttribute[Vec3] 12 position: PositionAttribute[Vec3]
14 color: ColorAttribute[Vec4] 13 color: ColorAttribute[Vec4]
15 transform: ModelTransformAttribute 14 transform: ModelTransformAttribute
16 Uniforms = object 15 Uniforms = object
17 projection: Descriptor[Mat44] 16 projection: ViewProjectionTransform
18 17
19 const 18 const
20 arrow = @[ 19 arrow = @[
21 Vec3([-1'f32, -1'f32, 0'f32]), 20 Vec3([-1'f32, -1'f32, 0'f32]),
22 Vec3([1'f32, -1'f32, 0'f32]), 21 Vec3([1'f32, -1'f32, 0'f32]),
211 tupleLen(keyRows) * (keyDimension + keyGap) - keyGap) / 2'f32, 0'f32) 210 tupleLen(keyRows) * (keyDimension + keyGap) - keyGap) / 2'f32, 0'f32)
212 scene.add newThing("keyboard-center", keyboard) 211 scene.add newThing("keyboard-center", keyboard)
213 scene.add newThing("cursor", cursormesh) 212 scene.add newThing("cursor", cursormesh)
214 213
215 # upload data, prepare shaders, etc 214 # upload data, prepare shaders, etc
216 const vertexShader = generateVertexShaderCode[VertexDataA, Uniforms](""" 215 const vertexShader = generateVertexShaderCode[VertexDataA, Uniforms]()
217 out_position = uniforms.projection * transform * vec4(position, 1);
218 """)
219 const fragmentShader = generateFragmentShaderCode[VertexDataA]() 216 const fragmentShader = generateFragmentShaderCode[VertexDataA]()
220 pipeline = setupPipeline[VertexDataA, Uniforms, uint16]( 217 pipeline = setupPipeline[VertexDataA, Uniforms, uint16](
221 myengine, 218 myengine,
222 scene, 219 scene,
223 vertexShader, 220 vertexShader,