Mercurial > games > semicongine
diff tests/test_text.nim @ 1409:5a56f8ac328b
did: improve descriptor-set handling + last fixes for new font/text rendering api
author | sam <sam@basx.dev> |
---|---|
date | Mon, 23 Dec 2024 00:32:07 +0700 |
parents | 17d960ff6a24 |
children | 99d5b42cf32d |
line wrap: on
line diff
--- a/tests/test_text.nim Sun Dec 22 22:32:12 2024 +0700 +++ b/tests/test_text.nim Mon Dec 23 00:32:07 2024 +0700 @@ -22,11 +22,10 @@ renderPass = vulkan.swapchain.renderPass ) var textbuffer = font.initTextBuffer(1000, baseScale = 0.1) + assignBuffers(renderdata, textbuffer) - assignBuffers(renderdata, textbuffer) - assignBuffers(renderdata, font.descriptorSet) - uploadImages(renderdata, font.descriptorSet) - initDescriptorSet(renderdata, pipeline.layout(0), font.descriptorSet) + font.upload(renderdata) + font.addToPipeline(renderdata, pipeline) discard textbuffer.add("Hello semicongine!", vec3()) @@ -37,7 +36,7 @@ textbuffer.refresh() withNextFrame(framebuffer, commandbuffer): - bindDescriptorSet(commandbuffer, font.descriptorSet, 0, pipeline) + font.bindTo(pipeline, commandbuffer) withRenderPass( vulkan.swapchain.renderPass, framebuffer, @@ -64,15 +63,12 @@ renderPass = vulkan.swapchain.renderPass ) - assignBuffers(renderdata, font1.descriptorSet) - assignBuffers(renderdata, font2.descriptorSet) - assignBuffers(renderdata, font3.descriptorSet) - uploadImages(renderdata, font1.descriptorSet) - uploadImages(renderdata, font2.descriptorSet) - uploadImages(renderdata, font3.descriptorSet) - initDescriptorSet(renderdata, pipeline.layout(0), font1.descriptorSet) - initDescriptorSet(renderdata, pipeline.layout(0), font2.descriptorSet) - initDescriptorSet(renderdata, pipeline.layout(0), font3.descriptorSet) + font1.upload(renderdata) + font2.upload(renderdata) + font3.upload(renderdata) + font1.addToPipeline(renderdata, pipeline) + font2.addToPipeline(renderdata, pipeline) + font3.addToPipeline(renderdata, pipeline) var textbuffer1 = font1.initTextBuffer(10, baseScale = 0.1) var textbuffer2 = font2.initTextBuffer(10, baseScale = 0.1) @@ -111,11 +107,11 @@ vec4(0, 0, 0, 0), ): withPipeline(commandbuffer, pipeline): - bindDescriptorSet(commandbuffer, font1.descriptorSet, 0, pipeline) + bindDescriptorSet(commandbuffer, font1.descriptorSet, 3, pipeline) renderTextBuffer(commandbuffer, pipeline, textbuffer1) - bindDescriptorSet(commandbuffer, font2.descriptorSet, 0, pipeline) + bindDescriptorSet(commandbuffer, font2.descriptorSet, 3, pipeline) renderTextBuffer(commandbuffer, pipeline, textbuffer2) - bindDescriptorSet(commandbuffer, font3.descriptorSet, 0, pipeline) + bindDescriptorSet(commandbuffer, font3.descriptorSet, 3, pipeline) renderTextBuffer(commandbuffer, pipeline, textbuffer3) # cleanup @@ -131,9 +127,8 @@ renderPass = vulkan.swapchain.renderPass ) - assignBuffers(renderdata, font.descriptorSet) - uploadImages(renderdata, font.descriptorSet) - initDescriptorSet(renderdata, pipeline.layout(0), font.descriptorSet) + font.upload(renderdata) + font.addToPipeline(renderdata, pipeline) var textbuffer = font.initTextBuffer(1000, baseScale = 0.1) assignBuffers(renderdata, textbuffer) @@ -161,7 +156,7 @@ textbuffer.refresh() withNextFrame(framebuffer, commandbuffer): - bindDescriptorSet(commandbuffer, font.descriptorSet, 0, pipeline) + bindDescriptorSet(commandbuffer, font.descriptorSet, 3, pipeline) withRenderPass( vulkan.swapchain.renderPass, framebuffer, @@ -186,9 +181,8 @@ renderPass = vulkan.swapchain.renderPass ) - assignBuffers(renderdata, font.descriptorSet) - uploadImages(renderdata, font.descriptorSet) - initDescriptorSet(renderdata, pipeline.layout(0), font.descriptorSet) + font.upload(renderdata) + font.addToPipeline(renderdata, pipeline) var textbuffer = font.initTextBuffer(3000, baseScale = 0.1) assignBuffers(renderdata, textbuffer) @@ -211,7 +205,7 @@ withNextFrame(framebuffer, commandbuffer): if windowWasResized(): textbuffer.refresh() - bindDescriptorSet(commandbuffer, font.descriptorSet, 0, pipeline) + bindDescriptorSet(commandbuffer, font.descriptorSet, 3, pipeline) withRenderPass( vulkan.swapchain.renderPass, framebuffer,