Mercurial > games > semicongine
changeset 1238:03634915bbdb
add: tests for updating texts, does not pass validation atm
author | sam <sam@basx.dev> |
---|---|
date | Sun, 21 Jul 2024 11:31:11 +0700 |
parents | 97813ac43cfb |
children | 69489a678141 |
files | semiconginev2/text/textbox.nim tests/test_text.nim |
diffstat | 2 files changed, 10 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/semiconginev2/text/textbox.nim Sun Jul 21 00:03:48 2024 +0700 +++ b/semiconginev2/text/textbox.nim Sun Jul 21 11:31:11 2024 +0700 @@ -97,6 +97,8 @@ textbox.position.data[vertexOffset + 1] = NewVec3f() textbox.position.data[vertexOffset + 2] = NewVec3f() textbox.position.data[vertexOffset + 3] = NewVec3f() + UpdateGPUBuffer(textbox.position, flush = true) + UpdateGPUBuffer(textbox.uv, flush = true) textbox.lastRenderedText = textbox.processedText func text*(textbox: Textbox): seq[Rune] =
--- a/tests/test_text.nim Sun Jul 21 00:03:48 2024 +0700 +++ b/tests/test_text.nim Sun Jul 21 11:31:11 2024 +0700 @@ -1,4 +1,5 @@ import std/os +import std/strutils import std/sequtils import std/monotimes import std/times @@ -48,7 +49,7 @@ renderdata, pipeline.descriptorSetLayouts[0], font1, - "0", + " 0", color = NewVec4f(0, 1, 1, 1), scale = 0.004, position = NewVec3f(-0.3, 0.5) @@ -57,7 +58,7 @@ renderdata, pipeline.descriptorSetLayouts[0], font2, - "1", + " 1", color = NewVec4f(1, 0, 1, 1), scale = 0.001, position = NewVec3f(0, 0) @@ -66,7 +67,7 @@ renderdata, pipeline.descriptorSetLayouts[0], font3, - "2", + " 2", color = NewVec4f(1, 1, 0, 1), scale = 0.001, position = NewVec3f(0.3, -0.5) @@ -74,15 +75,18 @@ ] var start = getMonoTime() + var p = 0 while ((getMonoTime() - start).inMilliseconds().int / 1000) < time: let progress = ((getMonoTime() - start).inMilliseconds().int / 1000) / time for i in 0 ..< labels.len: var c = labels[i].Color c[i] = progress labels[i].Color = c - labels[i].Scale = labels[i].Scale * 1.002 + labels[i].Scale = labels[i].Scale * (1.0 + (i + 1).float * 0.001) labels[i].Position = labels[i].Position + NewVec3f(0.001 * (i.float - 1'f)) + labels[i].text = $(p + i) labels[i].Refresh(swapchain.GetAspectRatio()) + inc p WithNextFrame(swapchain, framebuffer, commandbuffer): WithRenderPass(swapchain.renderPass, framebuffer, commandbuffer, swapchain.width, swapchain.height, NewVec4f(0, 0, 0, 0)): WithPipeline(commandbuffer, pipeline):