Mercurial > games > semicongine
changeset 1414:5e5a3311ca44
did: small improvment to allow easy adjustment of shader-code
author | sam <sam@basx.dev> |
---|---|
date | Fri, 27 Dec 2024 17:20:31 +0700 |
parents | bc6782c0edd6 |
children | 62ebf735ecfa |
files | semicongine/rendering/shaders.nim tests/test_gltf.nim tests/test_rendering.nim tests/test_text.nim |
diffstat | 4 files changed, 29 insertions(+), 26 deletions(-) [+] |
line wrap: on
line diff
--- a/semicongine/rendering/shaders.nim Fri Dec 27 16:43:58 2024 +0700 +++ b/semicongine/rendering/shaders.nim Fri Dec 27 17:20:31 2024 +0700 @@ -485,6 +485,7 @@ ) proc createPipeline*[TShader]( + shader: static TShader, renderPass: RenderPass, topology: VkPrimitiveTopology = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, polygonMode: VkPolygonMode = VK_POLYGON_MODE_FILL, @@ -493,9 +494,6 @@ lineWidth = 1'f32, depthClampEnable = false, ): Pipeline[TShader] = - # create pipeline - - const shader = default(TShader) (result.vertexShaderModule, result.fragmentShaderModule) = compileShader(shader) result.descriptorSetLayouts = createDescriptorSetLayouts[TShader]()
--- a/tests/test_gltf.nim Fri Dec 27 16:43:58 2024 +0700 +++ b/tests/test_gltf.nim Fri Dec 27 17:20:31 2024 +0700 @@ -135,7 +135,7 @@ renderdata.assignBuffers(descriptors) var pipeline = - createPipeline[Shader](renderPass = vulkan.swapchain.renderPass, cullMode = []) + createPipeline(Shader(), renderPass = vulkan.swapchain.renderPass, cullMode = []) initDescriptorSet(renderdata, pipeline.descriptorSetLayouts[0], descriptors) renderdata.flushAllMemory()
--- a/tests/test_rendering.nim Fri Dec 27 16:43:58 2024 +0700 +++ b/tests/test_rendering.nim Fri Dec 27 17:20:31 2024 +0700 @@ -43,7 +43,7 @@ assignBuffers(renderdata, mesh) renderdata.flushAllMemory() - var pipeline = createPipeline[Shader](renderPass = vulkan.swapchain.renderPass) + var pipeline = createPipeline(Shader(), renderPass = vulkan.swapchain.renderPass) var start = getMonoTime() while ((getMonoTime() - start).inMilliseconds().int / 1000) < time: @@ -136,7 +136,7 @@ assignBuffers(renderdata, instancesB) renderdata.flushAllMemory() - var pipeline = createPipeline[SomeShader](renderPass = vulkan.swapchain.renderPass) + var pipeline = createPipeline(SomeShader(), renderPass = vulkan.swapchain.renderPass) var start = getMonoTime() while ((getMonoTime() - start).inMilliseconds().int / 1000) < time: @@ -251,7 +251,7 @@ uploadImages(renderdata, uniforms2) renderdata.flushAllMemory() - var pipeline = createPipeline[QuadShader](renderPass = vulkan.swapchain.renderPass) + var pipeline = createPipeline(QuadShader(), renderPass = vulkan.swapchain.renderPass) initDescriptorSet(renderdata, pipeline.descriptorSetLayouts[0], uniforms1) initDescriptorSet(renderdata, pipeline.descriptorSetLayouts[0], uniforms2) @@ -390,7 +390,7 @@ uploadImages(renderdata, mainset) renderdata.flushAllMemory() - var pipeline = createPipeline[QuadShader](renderPass = vulkan.swapchain.renderPass) + var pipeline = createPipeline(QuadShader(), renderPass = vulkan.swapchain.renderPass) initDescriptorSet(renderdata, pipeline.descriptorSetLayouts[0], constset) initDescriptorSet(renderdata, pipeline.descriptorSetLayouts[1], mainset) @@ -535,7 +535,7 @@ renderdata.flushAllMemory() - var pipeline = createPipeline[CubeShader](renderPass = vulkan.swapchain.renderPass) + var pipeline = createPipeline(CubeShader(), renderPass = vulkan.swapchain.renderPass) initDescriptorSet(renderdata, pipeline.descriptorSetLayouts[0], uniforms1) var tStart = getMonoTime() @@ -620,20 +620,25 @@ assignBuffers(renderdata, lines) renderdata.flushAllMemory() - var pipeline1 = createPipeline[Shader]( + var pipeline1 = createPipeline( + Shader(), renderPass = vulkan.swapchain.renderPass, polygonMode = VK_POLYGON_MODE_LINE, lineWidth = 20'f32, ) - var pipeline2 = createPipeline[Shader]( - renderPass = vulkan.swapchain.renderPass, polygonMode = VK_POLYGON_MODE_POINT + var pipeline2 = createPipeline( + Shader(), + renderPass = vulkan.swapchain.renderPass, + polygonMode = VK_POLYGON_MODE_POINT, ) - var pipeline3 = createPipeline[Shader]( + var pipeline3 = createPipeline( + Shader(), renderPass = vulkan.swapchain.renderPass, topology = VK_PRIMITIVE_TOPOLOGY_LINE_LIST, lineWidth = 5, ) - var pipeline4 = createPipeline[Shader]( + var pipeline4 = createPipeline( + Shader(), renderPass = vulkan.swapchain.renderPass, topology = VK_PRIMITIVE_TOPOLOGY_POINT_LIST, ) @@ -719,7 +724,7 @@ assignBuffers(renderdata, mesh) renderdata.flushAllMemory() - var pipeline = createPipeline[Shader](renderPass = vulkan.swapchain.renderPass) + var pipeline = createPipeline(Shader(), renderPass = vulkan.swapchain.renderPass) var uniforms1 = asDescriptorSetData( Uniforms(textures: loadImageArray[BGRA](["art.png", "art1.png"])) ) @@ -796,7 +801,7 @@ assignBuffers(renderdata, mesh) renderdata.flushAllMemory() - var pipeline = createPipeline[Shader](renderPass = vulkan.swapchain.renderPass) + var pipeline = createPipeline(Shader(), renderPass = vulkan.swapchain.renderPass) var uniforms1 = asDescriptorSetData(Uniforms(texture1: loadImage[BGRA]("art.png"))) uploadImages(renderdata, uniforms1) initDescriptorSet(renderdata, pipeline.descriptorSetLayouts[0], uniforms1) @@ -906,8 +911,8 @@ renderdata.flushAllMemory() var - drawPipeline = createPipeline[TriangleShader](renderPass = offscreenRP) - presentPipeline = createPipeline[PresentShader](renderPass = presentRP) + drawPipeline = createPipeline(TriangleShader(), renderPass = offscreenRP) + presentPipeline = createPipeline(PresentShader(), renderPass = presentRP) initDescriptorSet(renderdata, presentPipeline.descriptorSetLayouts[0], uniforms1)
--- a/tests/test_text.nim Fri Dec 27 16:43:58 2024 +0700 +++ b/tests/test_text.nim Fri Dec 27 17:20:31 2024 +0700 @@ -18,8 +18,8 @@ proc test_01_static_label(time: float32) = var font = loadFont[MAX_CODEPOINTS](FONTNAME, lineHeightPixels = 200) var renderdata = initRenderData() - var pipeline = createPipeline[GlyphShader[MAX_CODEPOINTS]]( - renderPass = vulkan.swapchain.renderPass + var pipeline = createPipeline( + GlyphShader[MAX_CODEPOINTS](), renderPass = vulkan.swapchain.renderPass ) var textbuffer = font.initTextBuffer(1000, renderdata, baseScale = 0.1) @@ -65,8 +65,8 @@ var font3 = loadFont[MAX_CODEPOINTS]("DejaVuSans.ttf", lineHeightPixels = 160) var renderdata = initRenderData() - var pipeline = createPipeline[GlyphShader[MAX_CODEPOINTS]]( - renderPass = vulkan.swapchain.renderPass + var pipeline = createPipeline( + GlyphShader[MAX_CODEPOINTS](), renderPass = vulkan.swapchain.renderPass ) font1.upload(renderdata) @@ -125,8 +125,8 @@ var font = loadFont[MAX_CODEPOINTS]("DejaVuSans.ttf", lineHeightPixels = 160) var renderdata = initRenderData() - var pipeline = createPipeline[GlyphShader[MAX_CODEPOINTS]]( - renderPass = vulkan.swapchain.renderPass + var pipeline = createPipeline( + GlyphShader[MAX_CODEPOINTS](), renderPass = vulkan.swapchain.renderPass ) font.upload(renderdata) @@ -178,8 +178,8 @@ var font = loadFont[MAX_CODEPOINTS]("DejaVuSans.ttf", lineHeightPixels = 160) var renderdata = initRenderData() - var pipeline = createPipeline[GlyphShader[MAX_CODEPOINTS]]( - renderPass = vulkan.swapchain.renderPass + var pipeline = createPipeline( + GlyphShader[MAX_CODEPOINTS](), renderPass = vulkan.swapchain.renderPass ) font.upload(renderdata)