comparison tests/test_text.nim @ 1401:4ecb004ee7f8

did: add horizontal advancment for glyph rendering
author sam <sam@basx.dev>
date Mon, 16 Dec 2024 23:58:35 +0700
parents 20602878744e
children caf441eebc23
comparison
equal deleted inserted replaced
1400:20602878744e 1401:4ecb004ee7f8
17 type EMPTY = object 17 type EMPTY = object
18 18
19 const MAX_GLYPHS = 200 19 const MAX_GLYPHS = 200
20 proc test_01_static_label_new(time: float32) = 20 proc test_01_static_label_new(time: float32) =
21 var font = loadFont[MAX_GLYPHS]("Overhaul.ttf", lineHeightPixels = 200) 21 var font = loadFont[MAX_GLYPHS]("Overhaul.ttf", lineHeightPixels = 200)
22 var renderdata = initRenderData() 22 # var font = loadFont[MAX_GLYPHS]("DejaVuSans.ttf", lineHeightPixels = 200)
23 var pipeline = 23 var renderdata = initRenderData()
24 createPipeline[GlyphShader[MAX_GLYPHS]](renderPass = vulkan.swapchain.renderPass) 24 var pipeline =
25 var glyphs = font.initGlyphs(1000, baseScale = 0.3) 25 createPipeline[GlyphShader[MAX_GLYPHS]](renderPass = vulkan.swapchain.renderPass)
26 var glyphs = font.initGlyphs(1000, baseScale = 0.1)
26 27
27 assignBuffers(renderdata, glyphs) 28 assignBuffers(renderdata, glyphs)
28 assignBuffers(renderdata, font.descriptorSet) 29 assignBuffers(renderdata, font.descriptorSet)
29 uploadImages(renderdata, font.descriptorSet) 30 uploadImages(renderdata, font.descriptorSet)
30 initDescriptorSet(renderdata, pipeline.layout(0), font.descriptorSet) 31 initDescriptorSet(renderdata, pipeline.layout(0), font.descriptorSet)
31 32
32 var start = getMonoTime() 33 var start = getMonoTime()
33 while ((getMonoTime() - start).inMilliseconds().int / 1000) < time: 34 while ((getMonoTime() - start).inMilliseconds().int / 1000) < time:
34 let t = getMonoTime() 35 let t = getMonoTime()
35 glyphs.reset() 36 glyphs.reset()
36 glyphs.add("semicongine".toRunes()) 37 glyphs.add("semi-\ncon-\nginea".toRunes(), vec3(0.0, 0.0))
38 glyphs.add("semi-\ncon-\ngine".toRunes(), vec3(0.5, -0.5))
39 glyphs.add("semi-\ncon-\ngine".toRunes(), vec3(-0.5, 0.5))
40 glyphs.add("semi-\ncon-\ngineb".toRunes(), vec3(0.5, 0.5))
41 glyphs.add("semi-\ncon-\ngineb".toRunes(), vec3(0.9, 0.1))
42 glyphs.add("semi-\ncon-\ngineb".toRunes(), vec3(0.1, 0.9))
37 glyphs.updateAllGPUBuffers(flush = true) 43 glyphs.updateAllGPUBuffers(flush = true)
38 44
39 withNextFrame(framebuffer, commandbuffer): 45 withNextFrame(framebuffer, commandbuffer):
40 bindDescriptorSet(commandbuffer, font.descriptorSet, 0, pipeline) 46 bindDescriptorSet(commandbuffer, font.descriptorSet, 0, pipeline)
41 withRenderPass( 47 withRenderPass(