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: