changeset 1057:70d4d53ee9d2

did: some renaming
author sam <sam@basx.dev>
date Sat, 30 Mar 2024 23:10:50 +0700
parents 0c0be07b97cc
children 7a0d5fc00f4f
files semicongine/renderer.nim semicongine/vulkan/swapchain.nim
diffstat 2 files changed, 11 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/semicongine/renderer.nim	Sat Mar 30 22:21:47 2024 +0700
+++ b/semicongine/renderer.nim	Sat Mar 30 23:10:50 2024 +0700
@@ -45,7 +45,7 @@
     queue: Queue
     commandBufferPool: CommandBufferPool
 
-proc currentCommandBuffer(renderer: Renderer): VkCommandBuffer =
+proc currentFrameCommandBuffer(renderer: Renderer): VkCommandBuffer =
   renderer.commandBufferPool.buffers[renderer.swapchain.currentInFlight]
 
 proc initRenderer*(device: Device, shaders: openArray[(MaterialType, ShaderConfiguration)], clearColor = Vec4f([0.8'f32, 0.8'f32, 0.8'f32, 1'f32]), backFaceCulling = true): Renderer =
@@ -405,9 +405,7 @@
 proc render*(renderer: var Renderer, scene: Scene) =
   assert scene in renderer.scenedata
 
-  var currentInFlightFrameIndex = renderer.swapchain.nextFrame()
-
-  if not currentInFlightFrameIndex.isSome:
+  if not renderer.swapchain.nextFrame():
     let res = renderer.swapchain.recreate()
     if res.isSome:
       var oldSwapchain = renderer.swapchain
@@ -416,7 +414,7 @@
       oldSwapchain.destroy()
     return
 
-  renderer.currentCommandBuffer.beginRenderCommands(renderer.renderPass, renderer.swapchain.currentFramebuffer(), oneTimeSubmit = true)
+  renderer.currentFrameCommandBuffer.beginRenderCommands(renderer.renderPass, renderer.swapchain.currentFramebuffer(), oneTimeSubmit = true)
 
   debug "Scene buffers:"
   for (location, buffer) in renderer.scenedata[scene].vertexBuffers.pairs:
@@ -426,14 +424,14 @@
   for (materialType, shaderPipeline) in renderer.renderPass.shaderPipelines:
     if scene.usesMaterial(materialType):
       debug &"Start shaderPipeline for '{materialType}'"
-      renderer.currentCommandBuffer.vkCmdBindPipeline(VK_PIPELINE_BIND_POINT_GRAPHICS, shaderPipeline.vk)
-      renderer.currentCommandBuffer.vkCmdBindDescriptorSets(VK_PIPELINE_BIND_POINT_GRAPHICS, shaderPipeline.layout, 0, 1, addr(renderer.scenedata[scene].descriptorSets[shaderPipeline.vk][renderer.swapchain.currentInFlight].vk), 0, nil)
+      renderer.currentFrameCommandBuffer.vkCmdBindPipeline(VK_PIPELINE_BIND_POINT_GRAPHICS, shaderPipeline.vk)
+      renderer.currentFrameCommandBuffer.vkCmdBindDescriptorSets(VK_PIPELINE_BIND_POINT_GRAPHICS, shaderPipeline.layout, 0, 1, addr(renderer.scenedata[scene].descriptorSets[shaderPipeline.vk][renderer.swapchain.currentInFlight].vk), 0, nil)
       for (drawable, mesh) in renderer.scenedata[scene].drawables.filterIt(it[1].visible and it[1].material.theType == materialType):
-        drawable.draw(renderer.currentCommandBuffer, vertexBuffers = renderer.scenedata[scene].vertexBuffers, indexBuffer = renderer.scenedata[scene].indexBuffer, shaderPipeline.vk)
+        drawable.draw(renderer.currentFrameCommandBuffer, vertexBuffers = renderer.scenedata[scene].vertexBuffers, indexBuffer = renderer.scenedata[scene].indexBuffer, shaderPipeline.vk)
 
-  renderer.currentCommandBuffer.endRenderCommands()
+  renderer.currentFrameCommandBuffer.endRenderCommands()
 
-  if not renderer.swapchain.swap(renderer.queue, renderer.currentCommandBuffer):
+  if not renderer.swapchain.swap(renderer.queue, renderer.currentFrameCommandBuffer):
     let res = renderer.swapchain.recreate()
     if res.isSome:
       var oldSwapchain = renderer.swapchain
--- a/semicongine/vulkan/swapchain.nim	Sat Mar 30 22:21:47 2024 +0700
+++ b/semicongine/vulkan/swapchain.nim	Sat Mar 30 23:10:50 2024 +0700
@@ -108,7 +108,7 @@
   assert swapchain.vk.valid
   swapchain.framebuffers[swapchain.currentFramebufferIndex]
 
-proc nextFrame*(swapchain: var Swapchain): Option[int] =
+proc nextFrame*(swapchain: var Swapchain): bool =
   assert swapchain.device.vk.valid
   assert swapchain.vk.valid
 
@@ -125,9 +125,9 @@
 
   if nextImageResult == VK_SUCCESS:
     swapchain.queueFinishedFence[swapchain.currentInFlight].reset()
-    result = some(swapchain.currentInFlight)
+    return true
   else:
-    result = none(int)
+    return false
 
 proc swap*(swapchain: var Swapchain, queue: Queue, commandBuffer: VkCommandBuffer): bool =
   assert swapchain.device.vk.valid