diff tests/test_text.nim @ 1381:c8d1b87cf6c8

did: make progress on new glyph-rendering system
author sam <sam@basx.dev>
date Thu, 12 Dec 2024 23:54:49 +0700
parents 4aa9e703af48
children ec9f19151d44
line wrap: on
line diff
--- a/tests/test_text.nim	Thu Dec 12 21:35:34 2024 +0700
+++ b/tests/test_text.nim	Thu Dec 12 23:54:49 2024 +0700
@@ -4,8 +4,10 @@
 import std/sequtils
 import std/monotimes
 import std/times
+import std/tables
 import std/options
 import std/random
+import std/unicode
 
 import ../semicongine
 
@@ -14,20 +16,21 @@
 
 type EMPTY = object
 
+const N_GLYPHS = 200
 proc test_01_static_label_new(time: float32) =
   var font = loadFont("Overhaul.ttf", lineHeightPixels = 160)
   var renderdata = initRenderData()
   var pipeline =
-    createPipeline[GlyphShader[200]](renderPass = vulkan.swapchain.renderPass)
+    createPipeline[GlyphShader[N_GLYPHS]](renderPass = vulkan.swapchain.renderPass)
+  var (ds, glyphtable) = glyphDescriptorSet(font, N_GLYPHS)
   var glyphs = Glyphs(
-    position: asGPUArray([vec3()], VertexBufferMapped),
-    scale: asGPUArray([1'f32], VertexBufferMapped),
-    color: asGPUArray([vec4(1, 1, 1, 1)], VertexBufferMapped),
-    glyphIndex: asGPUArray([0'u16], VertexBufferMapped),
+    position: asGPUArray([vec3(), vec3()], VertexBufferMapped),
+    scale: asGPUArray([1'f32, 1'f32], VertexBufferMapped),
+    color: asGPUArray([vec4(1, 1, 1, 1), vec4(1, 1, 1, 1)], VertexBufferMapped),
+    glyphIndex:
+      asGPUArray([glyphtable[Rune('Q')], glyphtable[Rune('H')]], VertexBufferMapped),
   )
 
-  var ds =
-    asDescriptorSetData(GlyphDescriptorSet[200](fontAtlas: font.fontAtlas.copy()))
   assignBuffers(renderdata, glyphs)
   assignBuffers(renderdata, ds)
   uploadImages(renderdata, ds)
@@ -282,7 +285,7 @@
   destroyRenderData(renderdata)
 
 when isMainModule:
-  var time = 1'f32
+  var time = 1000'f32
   initVulkan()
 
   for depthBuffer in [true, false]: