Mercurial > games > semicongine
comparison tests/test_text.nim @ 1378:31f57a969ffd
fix: make text-tests buildable again
author | sam <sam@basx.dev> |
---|---|
date | Sun, 08 Dec 2024 22:00:31 +0700 |
parents | 92c089136a05 |
children | 4aa9e703af48 |
comparison
equal
deleted
inserted
replaced
1377:aaf8fa2c7bb2 | 1378:31f57a969ffd |
---|---|
10 import ../semicongine | 10 import ../semicongine |
11 | 11 |
12 type FontDS = object | 12 type FontDS = object |
13 fontAtlas: Image[Gray] | 13 fontAtlas: Image[Gray] |
14 | 14 |
15 proc test_01_static_label_new(time: float32) = | 15 proc test_01_static_label(time: float32) = |
16 var font = loadFont("Overhaul.ttf", lineHeightPixels = 160) | 16 var font = loadFont("Overhaul.ttf", lineHeightPixels = 160) |
17 var renderdata = initRenderData() | 17 var renderdata = initRenderData() |
18 var pipeline = | 18 var pipeline = |
19 createPipeline[GlyphShader[200]](renderPass = vulkan.swapchain.renderPass) | 19 createPipeline[DefaultFontShader[FontDS]](renderPass = vulkan.swapchain.renderPass) |
20 | 20 |
21 var ds = asDescriptorSetData(GlyphDescriptors[200](fontAtlas: font.fontAtlas.copy())) | 21 var ds = asDescriptorSetData(FontDS(fontAtlas: font.fontAtlas.copy())) |
22 uploadImages(renderdata, ds) | 22 uploadImages(renderdata, ds) |
23 initDescriptorSet(renderdata, pipeline.layout(0), ds) | 23 initDescriptorSet(renderdata, pipeline.layout(0), ds) |
24 | 24 |
25 var start = getMonoTime() | 25 var label1 = |
26 while ((getMonoTime() - start).inMilliseconds().int / 1000) < time: | 26 initTextbox(renderdata, pipeline.layout(0), font, 0.0005, "Hello semicongine!") |
27 | |
28 var start = getMonoTime() | |
29 while ((getMonoTime() - start).inMilliseconds().int / 1000) < time: | |
30 label1.refresh() | |
27 withNextFrame(framebuffer, commandbuffer): | 31 withNextFrame(framebuffer, commandbuffer): |
28 bindDescriptorSet(commandbuffer, ds, 0, pipeline) | 32 bindDescriptorSet(commandbuffer, ds, 0, pipeline) |
29 withRenderPass( | 33 withRenderPass( |
30 vulkan.swapchain.renderPass, | 34 vulkan.swapchain.renderPass, |
31 framebuffer, | 35 framebuffer, |
40 # cleanup | 44 # cleanup |
41 checkVkResult vkDeviceWaitIdle(vulkan.device) | 45 checkVkResult vkDeviceWaitIdle(vulkan.device) |
42 destroyPipeline(pipeline) | 46 destroyPipeline(pipeline) |
43 destroyRenderData(renderdata) | 47 destroyRenderData(renderdata) |
44 | 48 |
45 proc test_01_static_label(time: float32) = | 49 #[ |
50 proc test_01_static_label_new(time: float32) = | |
46 var font = loadFont("Overhaul.ttf", lineHeightPixels = 160) | 51 var font = loadFont("Overhaul.ttf", lineHeightPixels = 160) |
47 var renderdata = initRenderData() | 52 var renderdata = initRenderData() |
48 var pipeline = | 53 var pipeline = |
49 createPipeline[DefaultFontShader[FontDS]](renderPass = vulkan.swapchain.renderPass) | 54 createPipeline[DefaultFontShader[FontDS]](renderPass = vulkan.swapchain.renderPass) |
50 | 55 |
80 | 85 |
81 # cleanup | 86 # cleanup |
82 checkVkResult vkDeviceWaitIdle(vulkan.device) | 87 checkVkResult vkDeviceWaitIdle(vulkan.device) |
83 destroyPipeline(pipeline) | 88 destroyPipeline(pipeline) |
84 destroyRenderData(renderdata) | 89 destroyRenderData(renderdata) |
90 ]# | |
85 | 91 |
86 proc test_02_multiple_animated(time: float32) = | 92 proc test_02_multiple_animated(time: float32) = |
87 var font1 = loadFont("Overhaul.ttf", lineHeightPixels = 40) | 93 var font1 = loadFont("Overhaul.ttf", lineHeightPixels = 40) |
88 var font2 = loadFont("Overhaul.ttf", lineHeightPixels = 160) | 94 var font2 = loadFont("Overhaul.ttf", lineHeightPixels = 160) |
89 var font3 = loadFont("DejaVuSans.ttf", lineHeightPixels = 160) | 95 var font3 = loadFont("DejaVuSans.ttf", lineHeightPixels = 160) |
285 for depthBuffer in [true, false]: | 291 for depthBuffer in [true, false]: |
286 var renderpass = createDirectPresentationRenderPass(depthBuffer = depthBuffer) | 292 var renderpass = createDirectPresentationRenderPass(depthBuffer = depthBuffer) |
287 setupSwapchain(renderpass = renderpass) | 293 setupSwapchain(renderpass = renderpass) |
288 | 294 |
289 # tests a simple triangle with minimalistic shader and vertex format | 295 # tests a simple triangle with minimalistic shader and vertex format |
290 test_01_static_label_new(time) | 296 # test_01_static_label_new(time) |
291 test_01_static_label(time) | 297 test_01_static_label(time) |
292 test_02_multiple_animated(time) | 298 test_02_multiple_animated(time) |
293 test_03_layouting(time) | 299 test_03_layouting(time) |
294 test_04_lots_of_texts(time) | 300 test_04_lots_of_texts(time) |
295 | 301 |