Procs
proc asDescriptorSetData[T](data: sink T): auto
proc bindDescriptorSet[TDescriptorSet, TShader](commandBuffer: VkCommandBuffer; descriptorSet: DescriptorSetData[TDescriptorSet]; index: static DescriptorSetIndex; pipeline: Pipeline[TShader])
proc bindDescriptorSet[TDescriptorSet](commandBuffer: VkCommandBuffer; descriptorSet: DescriptorSetData[TDescriptorSet]; index: static DescriptorSetIndex; layout: VkPipelineLayout)
proc render[TShader, TMesh, TInstance](commandBuffer: VkCommandBuffer; pipeline: Pipeline[TShader]; mesh: TMesh; instances: TInstance; fixedVertexCount = -1; fixedInstanceCount = -1)
proc render[TShader, TMesh](commandBuffer: VkCommandBuffer; pipeline: Pipeline[TShader]; mesh: TMesh; fixedVertexCount = -1; fixedInstanceCount = -1)
proc renderWithPushConstant[TShader, TMesh, TInstance, TPushConstant]( commandBuffer: VkCommandBuffer; pipeline: Pipeline[TShader]; mesh: TMesh; instances: TInstance; pushConstant: TPushConstant; fixedVertexCount = -1; fixedInstanceCount = -1)
proc renderWithPushConstant[TShader, TMesh, TPushConstant]( commandBuffer: VkCommandBuffer; pipeline: Pipeline[TShader]; mesh: TMesh; pushConstant: TPushConstant; fixedVertexCount = -1; fixedInstanceCount = -1)
proc uploadImages(renderdata: var RenderData; descriptorSet: var DescriptorSetData)