diff options
| -rw-r--r-- | src/static-ui.cpp | 36 | ||||
| -rw-r--r-- | src/static-ui.hpp | 4 | ||||
| -rw-r--r-- | tests/pke-test-static-ui.cpp | 7 |
3 files changed, 23 insertions, 24 deletions
diff --git a/src/static-ui.cpp b/src/static-ui.cpp index 2f2ce11..1eca4e4 100644 --- a/src/static-ui.cpp +++ b/src/static-ui.cpp @@ -1,7 +1,6 @@ #include "static-ui.hpp" -#include "dynamic-array.hpp" #include "ecs.hpp" #include "font.hpp" #include "game-settings.hpp" @@ -93,7 +92,7 @@ struct pke_ui_flex_params { float unit_total; }; -void pke_ui_calc_px(DynArray<pke_ui_box_instance_buffer_item> &buffer, pke_ui_flex_params *flex_params, pke_ui_box *box) { +void pke_ui_calc_px(pk_arr_t<pke_ui_box_instance_buffer_item> &buffer, pke_ui_flex_params *flex_params, pke_ui_box *box) { assert(box != nullptr); glm::vec2 px_size; glm::vec2 px_min_size; @@ -234,15 +233,16 @@ void pke_ui_calc_px(DynArray<pke_ui_box_instance_buffer_item> &buffer, pke_ui_fl translate.y /= ((float)Extent.height / 2.0); translate.z = 0; - pke_ui_box_instance_buffer_item *buffer_item = &buffer.Push(); - buffer_item->pos_scale = glm::translate(glm::mat4(1), translate); - buffer_item->pos_scale = glm::scale(buffer_item->pos_scale, scale); - buffer_item->px_scale.x = (2.0 / (float)Extent.width); - buffer_item->px_scale.y = (2.0 / (float)Extent.height); - buffer_item->depth = (float)box->layer; + pke_ui_box_instance_buffer_item tmp{}; + tmp.pos_scale = glm::translate(glm::mat4(1), translate); + tmp.pos_scale = glm::scale(tmp.pos_scale, scale); + tmp.px_scale.x = (2.0 / (float)Extent.width); + tmp.px_scale.y = (2.0 / (float)Extent.height); + tmp.depth = (float)box->layer; + pk_arr_append_t(&buffer, tmp); } -void pke_ui_recalc_sizes_recursive(DynArray<pke_ui_box_instance_buffer_item> &arr, pke_ui_box *box, uint8_t depth = 0) { +void pke_ui_recalc_sizes_recursive(pk_arr_t<pke_ui_box_instance_buffer_item> &arr, pke_ui_box *box, uint8_t depth = 0) { PKE_UI_BOX_FLAG_T flags_masked; uint8_t flex_count = 0; pke_ui_flex_params flex_params{}; @@ -277,9 +277,9 @@ void pke_ui_recalc_sizes_recursive(DynArray<pke_ui_box_instance_buffer_item> &ar } } -void pke_ui_update_instance_buffer(DynArray<pke_ui_box_instance_buffer_item> &arr) { +void pke_ui_update_instance_buffer(pk_arr_t<pke_ui_box_instance_buffer_item> &arr) { VkResult vkResult; - if (arr.Count() > pke_ui_master.bindings.instance_buffer_max_count) { + if (arr.next > pke_ui_master.bindings.instance_buffer_max_count) { VkBuffer newBuffer; VkBufferCreateInfo bufferCI; bufferCI.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO; @@ -289,7 +289,7 @@ void pke_ui_update_instance_buffer(DynArray<pke_ui_box_instance_buffer_item> &ar bufferCI.queueFamilyIndexCount = 1; bufferCI.pQueueFamilyIndices = &graphicsFamilyIndex; bufferCI.usage = VK_BUFFER_USAGE_TRANSFER_DST_BIT | VK_BUFFER_USAGE_VERTEX_BUFFER_BIT; - bufferCI.size = sizeof(pke_ui_box_instance_buffer_item) * arr.Count(); + bufferCI.size = sizeof(pke_ui_box_instance_buffer_item) * arr.next; vkResult = vkCreateBuffer(vkDevice, &bufferCI, vkAllocator, &newBuffer); assert(vkResult == VK_SUCCESS); VkMemoryRequirements vkMemReqs; @@ -323,10 +323,10 @@ void pke_ui_update_instance_buffer(DynArray<pke_ui_box_instance_buffer_item> &ar } pke_ui_master.bindings.bd_instance.buffer = newBuffer; pke_ui_master.bindings.deviceMemoryInst = new_memory; - pke_ui_master.bindings.instance_buffer_max_count = arr.Count(); + pke_ui_master.bindings.instance_buffer_max_count = arr.next; } PKVK_TmpBufferDetails tmpBufferDetails{}; - PKVK_BeginBuffer(graphicsFamilyIndex, sizeof(pke_ui_box_instance_buffer_item) * arr.Count(), tmpBufferDetails); + PKVK_BeginBuffer(graphicsFamilyIndex, sizeof(pke_ui_box_instance_buffer_item) * arr.next, tmpBufferDetails); { VkCommandBufferBeginInfo vkCommandBufferBeginInfo; vkCommandBufferBeginInfo.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO; @@ -337,12 +337,12 @@ void pke_ui_update_instance_buffer(DynArray<pke_ui_box_instance_buffer_item> &ar vkResult = vkBeginCommandBuffer(tmpBufferDetails.cmdBuffer, &vkCommandBufferBeginInfo); assert(vkResult == VK_SUCCESS); - memcpy(tmpBufferDetails.deviceData, arr.GetPtr(), sizeof(pke_ui_box_instance_buffer_item) * arr.Count()); + memcpy(tmpBufferDetails.deviceData, arr.data, sizeof(pke_ui_box_instance_buffer_item) * arr.next); VkBufferCopy vk_buffer_copy{}; vk_buffer_copy.srcOffset = 0; vk_buffer_copy.dstOffset = 0; - vk_buffer_copy.size = sizeof(pke_ui_box_instance_buffer_item) * arr.Count(); + vk_buffer_copy.size = sizeof(pke_ui_box_instance_buffer_item) * arr.next; vkCmdCopyBuffer(tmpBufferDetails.cmdBuffer, tmpBufferDetails.buffer, pke_ui_master.bindings.bd_instance.buffer, 1, &vk_buffer_copy); vkResult = vkEndCommandBuffer(tmpBufferDetails.cmdBuffer); @@ -364,14 +364,14 @@ void pke_ui_update_instance_buffer(DynArray<pke_ui_box_instance_buffer_item> &ar assert(vkResult == VK_SUCCESS); } PKVK_EndBuffer(tmpBufferDetails); - pke_ui_master.bindings.instance_counter = arr.Count(); + pke_ui_master.bindings.instance_counter = arr.next; } void pke_ui_tick(double delta) { (void)delta; if (pke_ui_master.h_root_boxes == 0) return; if (pke_ui_master.should_recalc_ui == true || pkeSettings.rt.was_framebuffer_resized == true) { - DynArray<pke_ui_box_instance_buffer_item> arr; + pk_arr_t<pke_ui_box_instance_buffer_item> arr; pke_ui_master.should_recalc_ui = false; pke_ui_master.px_scale = glm::vec2( 2.0 / (float)Extent.width, diff --git a/src/static-ui.hpp b/src/static-ui.hpp index 1b53935..f0e5c3c 100644 --- a/src/static-ui.hpp +++ b/src/static-ui.hpp @@ -120,8 +120,8 @@ pke_ui_box *pke_ui_box_new_root(const PKE_UI_BOX_TYPE type = PKE_UI_BOX_TYPE_STA pke_ui_box *pke_ui_box_new_child(pke_ui_box *parent, const PKE_UI_BOX_TYPE type = PKE_UI_BOX_TYPE_STANDARD, pk_uuid uuid = pk_uuid_zed); #ifdef PKE_TEST_EXPOSE -void pke_ui_calc_px(DynArray<pke_ui_box_instance_buffer_item> &buffer, pke_ui_flex_params *flex_params, pke_ui_box *box); -void pke_ui_recalc_sizes_recursive(DynArray<pke_ui_box_instance_buffer_item> &arr, pke_ui_box *box, uint8_t depth = 0); +void pke_ui_calc_px(pk_arr_t<pke_ui_box_instance_buffer_item> &buffer, pke_ui_flex_params *flex_params, pke_ui_box *box); +void pke_ui_recalc_sizes_recursive(pk_arr_t<pke_ui_box_instance_buffer_item> &arr, pke_ui_box *box, uint8_t depth = 0); #endif pke_ui_graphics_bindings *pke_ui_get_graphics_bindings(); diff --git a/tests/pke-test-static-ui.cpp b/tests/pke-test-static-ui.cpp index 9a5fb71..ad9673d 100644 --- a/tests/pke-test-static-ui.cpp +++ b/tests/pke-test-static-ui.cpp @@ -5,7 +5,6 @@ #include "ecs.hpp" #include "window.hpp" -#include "dynamic-array.hpp" #include "vendor-glm-include.hpp" #include <limits> struct pke_ui_box_instance_buffer_item { @@ -35,7 +34,7 @@ void pke_test_static_ui_teardown() { // test static int pke_test_static_ui_000() { - DynArray<pke_ui_box_instance_buffer_item> arr{}; + pk_arr_t<pke_ui_box_instance_buffer_item> arr{}; float calculated_offset; uint8_t err_index = 0; @@ -79,7 +78,7 @@ int pke_test_static_ui_000() { // test dynamic int pke_test_static_ui_100() { - DynArray<pke_ui_box_instance_buffer_item> arr{}; + pk_arr_t<pke_ui_box_instance_buffer_item> arr{}; bool b; float unit; float calculated_offset_x, calculated_offset_y; @@ -140,7 +139,7 @@ int pke_test_static_ui_100() { // test dynamic + static int pke_test_static_ui_200() { - DynArray<pke_ui_box_instance_buffer_item> arr{}; + pk_arr_t<pke_ui_box_instance_buffer_item> arr{}; float unit; float calculated_offset_x, calculated_offset_y; uint8_t err_index = 0; |
