From b9f90793c8c0468d5f35d7af976a6e3bcd206aad Mon Sep 17 00:00:00 2001 From: Jonathan Bradley Date: Fri, 1 Sep 2023 10:10:51 -0400 Subject: add first graphics binding component --- src/window.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/window.cpp') diff --git a/src/window.cpp b/src/window.cpp index eb2ecff..8293c81 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -1,3 +1,4 @@ +#include #define GLFW_INCLUDE_NONE #define GLFW_INCLUDE_VULKAN @@ -997,6 +998,19 @@ void RecordCommandBuffer(VkCommandBuffer commandBuffer, uint32_t imageIndex) { vkCmdSetViewport(commandBuffer, 0, 1, &viewport); vkCmdSetScissor(commandBuffer, 0, 1, &scissor); + const uint64_t bindBucketCount = ECS_GetGrBinds_BucketCount(); + for (long b = 0; b < bindBucketCount; ++b) { + uint64_t itemCount; + CompGrBinds *items = ECS_GetGrBinds(b, itemCount); + for (long i = 0; i < itemCount; ++i) { + CompGrBinds *binder = &items[i]; + vkCmdBindDescriptorSets(commandBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, binder->vkPipelineLayout, 0U, 1U, &binder->vkDescriptorSet, 0, {}); + vkCmdBindVertexBuffers(commandBuffer, binder->indexFirstBinding, binder->vertexCount, &binder->vertexBuffer, &binder->vertexOffsets); + vkCmdBindIndexBuffer(commandBuffer, binder->indexBuffer, binder->vertexOffsets, VK_INDEX_TYPE_UINT16); + vkCmdBindVertexBuffers(commandBuffer, binder->indexFirstBinding, binder->instanceCount, &binder->instanceBuffer, &binder->instanceOffsets); + } + } + // reminder that present.vert is a triangle vkCmdDraw(commandBuffer, 3, 1, 0, 0); -- cgit v1.2.3