comparison tests/test_text.nim @ 1410:99d5b42cf32d

did: simplify text rendering API
author sam <sam@basx.dev>
date Thu, 26 Dec 2024 11:20:47 +0700
parents 5a56f8ac328b
children bc6782c0edd6
comparison
equal deleted inserted replaced
1409:5a56f8ac328b 1410:99d5b42cf32d
19 var font = loadFont[MAX_CODEPOINTS](FONTNAME, lineHeightPixels = 200) 19 var font = loadFont[MAX_CODEPOINTS](FONTNAME, lineHeightPixels = 200)
20 var renderdata = initRenderData() 20 var renderdata = initRenderData()
21 var pipeline = createPipeline[GlyphShader[MAX_CODEPOINTS]]( 21 var pipeline = createPipeline[GlyphShader[MAX_CODEPOINTS]](
22 renderPass = vulkan.swapchain.renderPass 22 renderPass = vulkan.swapchain.renderPass
23 ) 23 )
24 var textbuffer = font.initTextBuffer(1000, baseScale = 0.1) 24 var textbuffer = font.initTextBuffer(1000, renderdata, baseScale = 0.1)
25 assignBuffers(renderdata, textbuffer)
26 25
27 font.upload(renderdata) 26 font.upload(renderdata)
28 font.addToPipeline(renderdata, pipeline) 27 font.addToPipeline(renderdata, pipeline)
29 28
30 discard textbuffer.add("Hello semicongine!", vec3()) 29 discard textbuffer.add("Hello semicongine!", vec3())
68 font3.upload(renderdata) 67 font3.upload(renderdata)
69 font1.addToPipeline(renderdata, pipeline) 68 font1.addToPipeline(renderdata, pipeline)
70 font2.addToPipeline(renderdata, pipeline) 69 font2.addToPipeline(renderdata, pipeline)
71 font3.addToPipeline(renderdata, pipeline) 70 font3.addToPipeline(renderdata, pipeline)
72 71
73 var textbuffer1 = font1.initTextBuffer(10, baseScale = 0.1) 72 var textbuffer1 = font1.initTextBuffer(10, renderdata, baseScale = 0.1)
74 var textbuffer2 = font2.initTextBuffer(10, baseScale = 0.1) 73 var textbuffer2 = font2.initTextBuffer(10, renderdata, baseScale = 0.1)
75 var textbuffer3 = font3.initTextBuffer(10, baseScale = 0.1) 74 var textbuffer3 = font3.initTextBuffer(10, renderdata, baseScale = 0.1)
76
77 assignBuffers(renderdata, textbuffer1)
78 assignBuffers(renderdata, textbuffer2)
79 assignBuffers(renderdata, textbuffer3)
80 75
81 var p = 0 76 var p = 0
82 let l1 = textbuffer1.add($(p + 0), vec3(0.3, 0.5), capacity = 5) 77 let l1 = textbuffer1.add($(p + 0), vec3(0.3, 0.5), capacity = 5)
83 let l2 = textbuffer2.add($(p + 1), vec3(0.5, 0.5), capacity = 5) 78 let l2 = textbuffer2.add($(p + 1), vec3(0.5, 0.5), capacity = 5)
84 let l3 = textbuffer3.add($(p + 2), vec3(0.7, 0.5), capacity = 5) 79 let l3 = textbuffer3.add($(p + 2), vec3(0.7, 0.5), capacity = 5)
128 ) 123 )
129 124
130 font.upload(renderdata) 125 font.upload(renderdata)
131 font.addToPipeline(renderdata, pipeline) 126 font.addToPipeline(renderdata, pipeline)
132 127
133 var textbuffer = font.initTextBuffer(1000, baseScale = 0.1) 128 var textbuffer = font.initTextBuffer(1000, renderdata, baseScale = 0.1)
134 assignBuffers(renderdata, textbuffer)
135 129
136 discard textbuffer.add("Anchor at center", vec3(0, 0), anchor = vec2(0, 0)) 130 discard textbuffer.add("Anchor at center", vec3(0, 0), anchor = vec2(0, 0))
137 discard textbuffer.add("Anchor at top left`", vec3(-1, 1), anchor = vec2(-1, 1)) 131 discard textbuffer.add("Anchor at top left`", vec3(-1, 1), anchor = vec2(-1, 1))
138 discard textbuffer.add("Anchor at top right", vec3(1, 1), anchor = vec2(1, 1)) 132 discard textbuffer.add("Anchor at top right", vec3(1, 1), anchor = vec2(1, 1))
139 discard textbuffer.add("Anchor at bottom left", vec3(-1, -1), anchor = vec2(-1, -1)) 133 discard textbuffer.add("Anchor at bottom left", vec3(-1, -1), anchor = vec2(-1, -1))
182 ) 176 )
183 177
184 font.upload(renderdata) 178 font.upload(renderdata)
185 font.addToPipeline(renderdata, pipeline) 179 font.addToPipeline(renderdata, pipeline)
186 180
187 var textbuffer = font.initTextBuffer(3000, baseScale = 0.1) 181 var textbuffer = font.initTextBuffer(3000, renderdata, baseScale = 0.1)
188 assignBuffers(renderdata, textbuffer)
189 182
190 for i in 0 ..< 1000: 183 for i in 0 ..< 1000:
191 discard textbuffer.add( 184 discard textbuffer.add(
192 $i, 185 $i,
193 vec3(rand(-0.8 .. 0.8), rand(-0.8 .. 0.8), rand(-0.1 .. 0.1)), 186 vec3(rand(-0.8 .. 0.8), rand(-0.8 .. 0.8), rand(-0.1 .. 0.1)),