comparison tests/test_vulkan_wrapper.nim @ 330:04531bec3583

did: remove some stuff from the heap, maybe nicer?
author Sam <sam@basx.dev>
date Sat, 02 Sep 2023 23:51:02 +0700
parents 69e18f69713b
children 05fb85ba97dd
comparison
equal deleted inserted replaced
329:69e18f69713b 330:04531bec3583
11 wrapModeT: VK_SAMPLER_ADDRESS_MODE_REPEAT, 11 wrapModeT: VK_SAMPLER_ADDRESS_MODE_REPEAT,
12 ) 12 )
13 (R, W) = ([255'u8, 0'u8, 0'u8, 255'u8], [255'u8, 255'u8, 255'u8, 255'u8]) 13 (R, W) = ([255'u8, 0'u8, 0'u8, 255'u8], [255'u8, 255'u8, 255'u8, 255'u8])
14 mat = Material( 14 mat = Material(
15 name: "mat", 15 name: "mat",
16 materialType: "textures_material",
17 textures: { 16 textures: {
18 "my_little_texture": Texture(image: Image(width: 5, height: 5, imagedata: @[ 17 "my_little_texture": Texture(image: Image(width: 5, height: 5, imagedata: @[
19 R, R, R, R, R, 18 R, R, R, R, R,
20 R, R, W, R, R, 19 R, R, W, R, R,
21 R, W, W, W, R, 20 R, W, W, W, R,
24 ]), sampler: sampler) 23 ]), sampler: sampler)
25 }.toTable 24 }.toTable
26 ) 25 )
27 mat2 = Material( 26 mat2 = Material(
28 name: "mat2", 27 name: "mat2",
29 materialType: "textures_material",
30 textures: { 28 textures: {
31 "my_little_texture": Texture(image: Image(width: 5, height: 5, imagedata: @[ 29 "my_little_texture": Texture(image: Image(width: 5, height: 5, imagedata: @[
32 R, W, R, W, R, 30 R, W, R, W, R,
33 W, R, W, R, W, 31 W, R, W, R, W,
34 R, W, R, W, R, 32 R, W, R, W, R,
37 ]), sampler: sampler) 35 ]), sampler: sampler)
38 }.toTable 36 }.toTable
39 ) 37 )
40 mat3 = Material( 38 mat3 = Material(
41 name: "mat3", 39 name: "mat3",
42 materialType: "plain",
43 constants: { 40 constants: {
44 "color": toGPUValue(newVec4f(0, 1, 0, 1)) 41 "color": toGPUValue(@[newVec4f(0, 1, 0, 1)])
45 }.toTable 42 }.toTable
46 ) 43 )
47 44
48 proc scene_different_mesh_types(): seq[Mesh] = 45 proc scene_different_mesh_types(): seq[Mesh] =
49 @[ 46 @[
164 shaderConfiguration1 = createShaderConfiguration( 161 shaderConfiguration1 = createShaderConfiguration(
165 inputs=[ 162 inputs=[
166 attr[Vec3f]("position", memoryPerformanceHint=PreferFastRead), 163 attr[Vec3f]("position", memoryPerformanceHint=PreferFastRead),
167 attr[Vec4f]("color", memoryPerformanceHint=PreferFastWrite), 164 attr[Vec4f]("color", memoryPerformanceHint=PreferFastWrite),
168 attr[Mat4]("transform", perInstance=true), 165 attr[Mat4]("transform", perInstance=true),
169 attr[uint16]("materialIndex", perInstance=true),
170 ], 166 ],
171 intermediates=[ 167 intermediates=[
172 attr[Vec4f]("outcolor"), 168 attr[Vec4f]("outcolor"),
173 attr[uint16]("materialIndexOut", noInterpolation=true),
174 ], 169 ],
175 outputs=[attr[Vec4f]("color")], 170 outputs=[attr[Vec4f]("color")],
176 uniforms=[attr[float32]("time")], 171 uniforms=[attr[float32]("time")],
177 samplers=[ 172 samplers=[
178 attr[Sampler2DType]("my_little_texture", arrayCount=2) 173 attr[Sampler2DType]("my_little_texture")
179 ], 174 ],
180 vertexCode="""gl_Position = vec4(position, 1.0) * transform; outcolor = color; materialIndexOut = materialIndex;""", 175 vertexCode="""gl_Position = vec4(position, 1.0) * transform; outcolor = color;""",
181 fragmentCode="color = texture(my_little_texture[materialIndexOut], outcolor.xy) * 0.5 + outcolor * 0.5;", 176 fragmentCode="color = texture(my_little_texture, outcolor.xy) * 0.5 + outcolor * 0.5;",
182 ) 177 )
183 shaderConfiguration2 = createShaderConfiguration( 178 shaderConfiguration2 = createShaderConfiguration(
184 inputs=[ 179 inputs=[
185 attr[Vec3f]("position", memoryPerformanceHint=PreferFastRead), 180 attr[Vec3f]("position", memoryPerformanceHint=PreferFastRead),
186 attr[Mat4]("transform", perInstance=true), 181 attr[Mat4]("transform", perInstance=true),
187 ], 182 ],
188 intermediates=[attr[Vec4f]("outcolor")], 183 intermediates=[attr[Vec4f]("outcolor")],
189 outputs=[attr[Vec4f]("color")], 184 outputs=[attr[Vec4f]("color")],
190 uniforms=[attr[Vec4f]("color")], 185 uniforms=[attr[Vec4f]("color", arrayCount=1)],
191 vertexCode="""gl_Position = vec4(position, 1.0) * transform; outcolor = Uniforms.color;""", 186 vertexCode="""gl_Position = vec4(position, 1.0) * transform; outcolor = Uniforms.color[0];""",
192 fragmentCode="color = outcolor;", 187 fragmentCode="color = outcolor;",
193 ) 188 )
194 engine.initRenderer({ 189 engine.initRenderer({
195 "textures_material": shaderConfiguration1, 190 "mat": shaderConfiguration1,
196 "plain": shaderConfiguration2, 191 "mat2": shaderConfiguration1,
192 "mat3": shaderConfiguration2,
197 }.toTable) 193 }.toTable)
198 194
199 # INIT SCENES 195 # INIT SCENES
200 var scenes = [ 196 var scenes = [
201 Scene(name: "simple", meshes: scene_simple()), 197 Scene(name: "simple", meshes: scene_simple()),