Mercurial > games > semicongine
diff static_utils.nim @ 1160:836dc1eda5e3 compiletime-tests
did: some stuff
author | sam <sam@basx.dev> |
---|---|
date | Wed, 19 Jun 2024 09:17:24 +0700 |
parents | e7cbb13999e4 |
children | dbca0528c714 |
line wrap: on
line diff
--- a/static_utils.nim Mon Jun 17 22:21:59 2024 +0700 +++ b/static_utils.nim Wed Jun 19 09:17:24 2024 +0700 @@ -106,18 +106,18 @@ else: return 1 - type - Renderable[IndexType: static VkIndexType] = object + Renderable = object buffers: seq[VkBuffer] offsets: seq[VkDeviceSize] instanceCount: uint32 - when IndexType == VK_INDEX_TYPE_NONE_KHR: - vertexCount: uint32 - else: - indexBuffer: VkBuffer - indexCount: uint32 - indexBufferOffset: VkDeviceSize + case indexType: VkIndexType + of VK_INDEX_TYPE_NONE_KHR: + vertexCount: uint32 + of VK_INDEX_TYPE_UINT8_EXT, VK_INDEX_TYPE_UINT16, VK_INDEX_TYPE_UINT32: + indexBuffer: VkBuffer + indexCount: uint32 + indexBufferOffset: VkDeviceSize Pipeline = object pipeline: VkPipeline layout: VkPipelineLayout @@ -271,7 +271,7 @@ ) -proc Render*[IndexType: static VkIndexType](renderable: Renderable[IndexType], commandBuffer: VkCommandBuffer, pipeline: Pipeline, frameInFlight: int) = +proc Render*(renderable: Renderable, commandBuffer: VkCommandBuffer, pipeline: Pipeline, frameInFlight: int) = assert 0 <= frameInFlight and frameInFlight < 2 commandBuffer.vkCmdBindPipeline(VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline.pipeline) commandBuffer.vkCmdBindDescriptorSets( @@ -289,7 +289,7 @@ pBuffers = renderable.buffers.ToCPointer(), pOffsets = renderable.offsets.ToCPointer() ) - when IndexType != VK_INDEX_TYPE_NONE_KHR: + if renderable.indexType != VK_INDEX_TYPE_NONE_KHR: commandBuffer.vkCmdBindIndexBuffer( renderable.indexBuffer, renderable.indexBufferOffset,