Mercurial > games > semicongine
comparison tests/test_vulkan_wrapper.nim @ 191:81dc05b46b85
add: texture testing, not working yet, something update un-updated descritors (even though we write the descriptors man!)
author | Sam <sam@basx.dev> |
---|---|
date | Sat, 06 May 2023 01:37:33 +0700 |
parents | 8f2eaf0d2808 |
children | 659992f14dd6 |
comparison
equal
deleted
inserted
replaced
190:8f2eaf0d2808 | 191:81dc05b46b85 |
---|---|
115 attr[Vec3f]("color", memoryPerformanceHint=PreferFastWrite), | 115 attr[Vec3f]("color", memoryPerformanceHint=PreferFastWrite), |
116 attr[Vec3f]("translate", perInstance=true) | 116 attr[Vec3f]("translate", perInstance=true) |
117 ] | 117 ] |
118 vertexOutput = @[attr[Vec3f]("outcolor")] | 118 vertexOutput = @[attr[Vec3f]("outcolor")] |
119 uniforms = @[attr[float32]("time")] | 119 uniforms = @[attr[float32]("time")] |
120 # samplers = @[attr[Sampler2DType]("my_little_texture")] | 120 samplers = @[attr[Sampler2DType]("my_little_texture")] |
121 fragOutput = @[attr[Vec4f]("color")] | 121 fragOutput = @[attr[Vec4f]("color")] |
122 vertexCode = compileGlslShader( | 122 vertexCode = compileGlslShader( |
123 stage=VK_SHADER_STAGE_VERTEX_BIT, | 123 stage=VK_SHADER_STAGE_VERTEX_BIT, |
124 inputs=vertexInput, | 124 inputs=vertexInput, |
125 uniforms=uniforms, | 125 uniforms=uniforms, |
126 # samplers=samplers, | 126 samplers=samplers, |
127 outputs=vertexOutput, | 127 outputs=vertexOutput, |
128 main="""gl_Position = vec4(position + translate, 1.0); outcolor = color;""" | 128 main="""gl_Position = vec4(position + translate, 1.0); outcolor = color;""" |
129 ) | 129 ) |
130 fragmentCode = compileGlslShader( | 130 fragmentCode = compileGlslShader( |
131 stage=VK_SHADER_STAGE_FRAGMENT_BIT, | 131 stage=VK_SHADER_STAGE_FRAGMENT_BIT, |
132 inputs=vertexOutput, | 132 inputs=vertexOutput, |
133 uniforms=uniforms, | 133 uniforms=uniforms, |
134 # samplers=samplers, | 134 samplers=samplers, |
135 outputs=fragOutput, | 135 outputs=fragOutput, |
136 # main="color = texture(my_little_texture, outcolor.xy) * 0.5 + vec4(outcolor, 1) * 0.5;" | 136 main="color = texture(my_little_texture, outcolor.xy) * 0.5 + vec4(outcolor, 1) * 0.5;" |
137 main="color = vec4(outcolor, 1) * 0.5;" | |
138 ) | 137 ) |
139 var renderPass = engine.gpuDevice.simpleForwardRenderPass(vertexCode, fragmentCode) | 138 var renderPass = engine.gpuDevice.simpleForwardRenderPass(vertexCode, fragmentCode) |
140 engine.setRenderer(renderPass) | 139 engine.setRenderer(renderPass) |
141 | 140 |
142 # INIT SCENES | 141 # INIT SCENES |
145 newScene("different mesh types", scene_different_mesh_types()), | 144 newScene("different mesh types", scene_different_mesh_types()), |
146 newScene("primitives", scene_primitives()) | 145 newScene("primitives", scene_primitives()) |
147 ] | 146 ] |
148 for scene in scenes.mitems: | 147 for scene in scenes.mitems: |
149 scene.addShaderGlobal("time", 0.0'f32) | 148 scene.addShaderGlobal("time", 0.0'f32) |
149 let (R, W) = ([0'u8, 0'u8, 0'u8, 0'u8], [0'u8, 0'u8, 0'u8, 0'u8]) | |
150 scene.addTexture("my_little_texture", TextureImage(width: 5, height: 5, imagedata: @[ | |
151 R, R, R, R, R, | |
152 R, R, R, R, R, | |
153 R, R, R, R, R, | |
154 R, R, R, R, R, | |
155 R, R, R, R, R, | |
156 ])) | |
150 engine.addScene(scene, vertexInput) | 157 engine.addScene(scene, vertexInput) |
151 | 158 |
152 # MAINLOOP | 159 # MAINLOOP |
153 echo "Setup successfull, start rendering" | 160 echo "Setup successfull, start rendering" |
154 for i in 0 ..< 3: | 161 for i in 0 ..< 3: |