comparison tests/test_vulkan_wrapper.nim @ 652:43240986f76d

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 164bf40c664f
children 659992f14dd6
comparison
equal deleted inserted replaced
651:164bf40c664f 652:43240986f76d
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: