comparison tests/test_text.nim @ 1382:ec9f19151d44

sync to notebook in bedroom
author sam <sam@basx.dev>
date Sat, 14 Dec 2024 13:51:28 +0700
parents c8d1b87cf6c8
children 34f5e00f540e
comparison
equal deleted inserted replaced
1381:c8d1b87cf6c8 1382:ec9f19151d44
22 var renderdata = initRenderData() 22 var renderdata = initRenderData()
23 var pipeline = 23 var pipeline =
24 createPipeline[GlyphShader[N_GLYPHS]](renderPass = vulkan.swapchain.renderPass) 24 createPipeline[GlyphShader[N_GLYPHS]](renderPass = vulkan.swapchain.renderPass)
25 var (ds, glyphtable) = glyphDescriptorSet(font, N_GLYPHS) 25 var (ds, glyphtable) = glyphDescriptorSet(font, N_GLYPHS)
26 var glyphs = Glyphs( 26 var glyphs = Glyphs(
27 position: asGPUArray([vec3(), vec3()], VertexBufferMapped), 27 position: asGPUArray([vec3(0, 0, 0), vec3(0, 0, 0)], VertexBufferMapped),
28 scale: asGPUArray([1'f32, 1'f32], VertexBufferMapped), 28 scale: asGPUArray([1'f32, 1'f32], VertexBufferMapped),
29 color: asGPUArray([vec4(1, 1, 1, 1), vec4(1, 1, 1, 1)], VertexBufferMapped), 29 color: asGPUArray([vec4(1, 1, 1, 1), vec4(1, 1, 1, 1)], VertexBufferMapped),
30 glyphIndex: 30 glyphIndex:
31 asGPUArray([glyphtable[Rune('Q')], glyphtable[Rune('H')]], VertexBufferMapped), 31 asGPUArray([glyphtable[Rune('A')], glyphtable[Rune('B')]], VertexBufferMapped),
32 ) 32 )
33 33
34 assignBuffers(renderdata, glyphs) 34 assignBuffers(renderdata, glyphs)
35 assignBuffers(renderdata, ds) 35 assignBuffers(renderdata, ds)
36 uploadImages(renderdata, ds) 36 uploadImages(renderdata, ds)
47 vulkan.swapchain.width, 47 vulkan.swapchain.width,
48 vulkan.swapchain.height, 48 vulkan.swapchain.height,
49 vec4(0, 0, 0, 0), 49 vec4(0, 0, 0, 0),
50 ): 50 ):
51 withPipeline(commandbuffer, pipeline): 51 withPipeline(commandbuffer, pipeline):
52 render(commandbuffer, pipeline, EMPTY(), glyphs, fixedVertexCount = 6) 52 render(
53 commandbuffer,
54 pipeline,
55 EMPTY(),
56 glyphs,
57 fixedVertexCount = 6,
58 fixedInstanceCount = 2,
59 )
53 60
54 # cleanup 61 # cleanup
55 checkVkResult vkDeviceWaitIdle(vulkan.device) 62 checkVkResult vkDeviceWaitIdle(vulkan.device)
56 destroyPipeline(pipeline) 63 destroyPipeline(pipeline)
57 destroyRenderData(renderdata) 64 destroyRenderData(renderdata)