summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/static-ui.cpp36
-rw-r--r--src/static-ui.hpp4
-rw-r--r--tests/pke-test-static-ui.cpp7
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;