diff tests/test_text.nim @ 1403:02d302c868d5

fix: font-rendering alignment, still something off with positioning
author sam <sam@basx.dev>
date Wed, 18 Dec 2024 23:39:54 +0700
parents caf441eebc23
children 80cfa19d1e2c
line wrap: on
line diff
--- a/tests/test_text.nim	Wed Dec 18 00:11:40 2024 +0700
+++ b/tests/test_text.nim	Wed Dec 18 23:39:54 2024 +0700
@@ -18,8 +18,8 @@
 
 const MAX_GLYPHS = 200
 proc test_01_static_label_new(time: float32) =
-  var font = loadFont[MAX_GLYPHS]("Overhaul.ttf", lineHeightPixels = 200)
-  # var font = loadFont[MAX_GLYPHS]("DejaVuSans.ttf", lineHeightPixels = 200)
+  # var font = loadFont[MAX_GLYPHS]("Overhaul.ttf", lineHeightPixels = 200)
+  var font = loadFont[MAX_GLYPHS]("DejaVuSans.ttf", lineHeightPixels = 200)
   var renderdata = initRenderData()
   var pipeline =
     createPipeline[GlyphShader[MAX_GLYPHS]](renderPass = vulkan.swapchain.renderPass)
@@ -34,13 +34,27 @@
   while ((getMonoTime() - start).inMilliseconds().int / 1000) < time:
     let t = getMonoTime()
     glyphs.reset()
-    glyphs.add("semi-\ncon-\nginea", vec3(0.0, 0.0), vec2(0, 0))
-    # glyphs.add("semi-\ncon-\ngine".toRunes(), vec3(0.5, -0.5))
-    # glyphs.add("semi-\ncon-\ngine".toRunes(), vec3(-0.5, 0.5))
-    # glyphs.add("semi-\ncon-\ngineb".toRunes(), vec3(0.5, 0.5))
-    glyphs.add("semi-\ncon-\ngineb", vec3(0.5, 0.5), vec2(0.5, 0.5))
-    glyphs.add("semi-\ncon-\ngineb", vec3(0.9, 0.9), vec2(0, 0))
-    # glyphs.add("semi-\ncon-\ngineb".toRunes(), vec3(0.1, 0.9))
+    glyphs.add("+", vec3(0.0, 0.0), anchor = vec2(0.5, 0.5), color = vec4(0, 0, 0, 1))
+    glyphs.add(
+      "Hello world\nHow are you today?\nWell, I am fine".toRunes(),
+      vec3(0.5, 0.5),
+      alignment = Right,
+      anchor = vec2(1, 0.5),
+      color = vec4(0, 0, 0, 1),
+    )
+    glyphs.add(
+      "Hello world\nHow are you today?\nWell, I am fine".toRunes(),
+      vec3(0.5, 0.5),
+      alignment = Left,
+      anchor = vec2(0, 0.5),
+      color = vec4(0, 0, 0, 1),
+    )
+    glyphs.add("semi-\ncon-\ngine".toRunes(), vec3(0.5, -0.5), color = vec4(0, 0, 0, 1))
+    glyphs.add("semi-\ncon-\ngine".toRunes(), vec3(-0.5, 0.5), color = vec4(0, 0, 0, 1))
+    # glyphs.add("11111111111111111", vec3(0.5, 0.5), vec2(1, 0))
+    # glyphs.add("22222222222222222", vec3(0.5, 0.5))
+    # glyphs.add("33333333333333333", vec3(0.5, 0.5), vec2(0, 1))
+    glyphs.add("semi-\ncon-\ngineb".toRunes(), vec3(0.1, 0.9), color = vec4(0, 0, 0, 1))
     glyphs.updateAllGPUBuffers(flush = true)
 
     withNextFrame(framebuffer, commandbuffer):
@@ -51,7 +65,7 @@
         commandbuffer,
         vulkan.swapchain.width,
         vulkan.swapchain.height,
-        vec4(0, 0, 0, 0),
+        vec4(1, 1, 1, 1),
       ):
         withPipeline(commandbuffer, pipeline):
           renderGlyphs(commandbuffer, pipeline, glyphs)