# HG changeset patch # User sam # Date 1748084363 -25200 # Node ID 801496756651670457ebb092512b15431c0bfb10 # Parent 6f1aee81365b361773ecfc336226ede33c467a03 fix: swapchain settings, add debug assert diff -r 6f1aee81365b -r 801496756651 semicongine/core/utils.nim --- 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 + diff -r 6f1aee81365b -r 801496756651 semicongine/rendering/swapchain.nim --- 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)