summaryrefslogtreecommitdiff
path: root/src/window.cpp
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2025-08-28 14:04:12 -0400
committerJonathan Bradley <jcb@pikum.xyz>2025-08-28 14:04:12 -0400
commitf7bd0793424ed8e024520a941cc4cfcf4eb84de2 (patch)
tree37519eced8f4f66973d88b822513c7841d29a9fe /src/window.cpp
parent3583af4e1c7979e8d309693d53fbe9184e067a50 (diff)
pke: use new pk_iter_t from pk.h
Diffstat (limited to 'src/window.cpp')
-rw-r--r--src/window.cpp30
1 files changed, 19 insertions, 11 deletions
diff --git a/src/window.cpp b/src/window.cpp
index e0184d6..6655488 100644
--- a/src/window.cpp
+++ b/src/window.cpp
@@ -3419,6 +3419,7 @@ void pkvk_transition_image_layout(VkCommandBuffer command_buffer,
void RecordCommandBuffer(VkCommandBuffer commandBuffer, uint32_t imageIndex) {
uint32_t i, counter;
+ bool b;
vkResetCommandBuffer(commandBuffer, 0);
VkCommandBufferBeginInfo beginInfo;
@@ -3550,16 +3551,23 @@ void RecordCommandBuffer(VkCommandBuffer commandBuffer, uint32_t imageIndex) {
vkCmdSetViewport(commandBuffer, 0, 1, &viewport);
vkCmdSetScissor(commandBuffer, 0, 1, &scissor);
- using GrBindsIterFn = pk_tmpln_1<void, CompGrBinds*, void*>;
- GrBindsIterFn gr_binds_iter_cb{};
- gr_binds_iter_cb.func = [commandBuffer, imageIndex](CompGrBinds *binder) {
- VkDeviceSize offsets[1] = {0U};
- if (binder->grBindsHandle == GrBindsHandle_MAX)
- return;
- if (!binder->vkPipelineLayout)
- return;
+ pk_iter_t<CompGrBinds> gr_binds_iter{};
+ pk_bkt_arr *ecs_gr_binds_bkt_arr = ECS_GetGrBinds();
+ b = pk_bkt_arr_iter_begin(ecs_gr_binds_bkt_arr, &gr_binds_iter);
+ CompGrBinds *binder = nullptr;
+ while (b == true) {
+ binder = &*gr_binds_iter;
+ if (binder->grBindsHandle == GrBindsHandle_MAX) {
+ b = pk_bkt_arr_iter_increment(ecs_gr_binds_bkt_arr, &gr_binds_iter);
+ continue;
+ }
+ if (!binder->vkPipelineLayout) {
+ b = pk_bkt_arr_iter_increment(ecs_gr_binds_bkt_arr, &gr_binds_iter);
+ continue;
+ }
if (binder->instanceBD.bindingCount < 1) {
- return;
+ b = pk_bkt_arr_iter_increment(ecs_gr_binds_bkt_arr, &gr_binds_iter);
+ continue;
}
vkCmdBindPipeline(commandBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, binder->graphicsPipeline);
vkCmdBindDescriptorSets(commandBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, binder->vkPipelineLayout, 0, 1, &binder->vkDescriptorSets[imageIndex], 0, {});
@@ -3584,8 +3592,8 @@ void RecordCommandBuffer(VkCommandBuffer commandBuffer, uint32_t imageIndex) {
vkCmdDrawIndexed(commandBuffer, binder->physIndxBD.bindingCount, binder->instanceCounter, 0, 0, 0);
}
- };
- pk_bkt_arr_iterate(ECS_GetGrBinds(), &GrBindsIterFn::invoke, &gr_binds_iter_cb);
+ b = pk_bkt_arr_iter_increment(ecs_gr_binds_bkt_arr, &gr_binds_iter);
+ }
if (pkeDebugHitbox.instanceBuffer != VK_NULL_HANDLE) {
vkCmdBindPipeline(commandBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, pkePipelines.pipelines.named.entity_wireframe);