changeset 1492:801496756651 default tip main

fix: swapchain settings, add debug assert
author sam <sam@basx.dev>
date Sat, 24 May 2025 17:59:23 +0700
parents 6f1aee81365b
children
files semicongine/core/utils.nim semicongine/rendering/swapchain.nim
diffstat 2 files changed, 8 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/semicongine/core/utils.nim	Sat May 24 13:41:35 2025 +0700
+++ b/semicongine/core/utils.nim	Sat May 24 17:59:23 2025 +0700
@@ -78,3 +78,8 @@
     return value
   else:
     return value + alignment - remainder
+
+template debugAssert*(expr: untyped, msg = ""): untyped =
+  when not defined(release):
+    assert expr, msg
+
--- a/semicongine/rendering/swapchain.nim	Sat May 24 13:41:35 2025 +0700
+++ b/semicongine/rendering/swapchain.nim	Sat May 24 17:59:23 2025 +0700
@@ -5,8 +5,8 @@
 
 proc initSwapchain(
     renderPass: RenderPass,
-    vSync: bool = false,
-    tripleBuffering: bool = true,
+    vSync: bool,
+    tripleBuffering: bool,
     oldSwapchain: Swapchain = nil,
 ): Swapchain =
   var capabilities: VkSurfaceCapabilitiesKHR
@@ -42,7 +42,6 @@
     imageSharingMode: VK_SHARING_MODE_EXCLUSIVE,
     preTransform: capabilities.currentTransform,
     compositeAlpha: VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR,
-      # only used for blending with other windows, can be opaque
     presentMode:
       if (vSync or not hasTripleBuffering):
         VK_PRESENT_MODE_FIFO_KHR
@@ -331,9 +330,7 @@
   destroySwapchain(engine().vulkan.swapchain)
   engine().vulkan.swapchain = nil
 
-proc setupSwapchain*(
-    renderPass: RenderPass, vSync: bool = false, tripleBuffering: bool = true
-) =
+proc setupSwapchain*(renderPass: RenderPass, vSync: bool, tripleBuffering: bool) =
   assert engine().vulkan.swapchain == nil, "Swapchain has already been initialized yet"
   engine().vulkan.swapchain =
     initSwapchain(renderPass, vSync = vSync, tripleBuffering = tripleBuffering)