diff --git a/client/src/main.c b/client/src/main.c index da73942..842879f 100644 --- a/client/src/main.c +++ b/client/src/main.c @@ -13,6 +13,9 @@ typedef struct ClientContextStruct { GLFWwindow* window; RenderContext render; UIContext ui; + + uint32_t clicked_container; + uint32_t clicked_element; } ClientContext; void* network_thread(void* data) { @@ -97,22 +100,18 @@ VkResult main_thread(ClientContext* context) { // uint32_t* mapped_codes = context->ui.containers[0].layers[0].codes_buffer; GPUString* mapped_string = context->ui.containers[0].layers[0].strings_buffer; - char str[21] = "1234567890"; - uint32_t last_id = 0; - uint32_t last_last_id = -1; - - int test = 0; + char str[21]; // while(glfwWindowShouldClose(context->window) == 0) { + context->clicked_element = 0x00000000; + context->clicked_container = 0x00000000; + glfwPollEvents(); double frame_time = glfwGetTime(); - if(last_id != last_last_id) { - last_last_id = last_id; - test = (test + 1) % 7; - - snprintf(str, 21, "Last ID: %d", last_id); + if(context->clicked_container != 0) { + snprintf(str, 21, "Clicked: %d.%d", context->clicked_container, context->clicked_element); map_string(str, mapped_codes, 0, 0, &context->ui); VK_RESULT(add_transfers( context->ui.containers[0].layers[0].codes_buffer, @@ -179,15 +178,19 @@ void mouse_button_callback(GLFWwindow* window, int button, int action, int mods) break; case GLFW_MOUSE_BUTTON_LEFT: if(action == GLFW_PRESS) { - for(uint32_t c = context->ui.max_containers - 1; c >= 0; c--) { + for(int32_t c = context->ui.max_containers - 1; c >= 0; c--) { if(context->ui.containers[c].id == 0x00000000) { continue; } for(uint32_t l = 0; l < context->ui.containers[c].layer_count; l++) { for(uint32_t d = 0; d < context->ui.containers[c].layers[l].data.num_drawables; d++) { + if(context->ui.containers[c].layers[l].drawables_buffer[d].id == 0x00000000) { + continue; + } if(contains(cursor, &context->ui.containers[c].data, &context->ui.containers[c].layers[l].drawables_buffer[d])) { - fprintf(stderr, "hit\n"); + context->clicked_container = context->ui.containers[c].id; + context->clicked_element = context->ui.containers[c].layers[l].drawables_buffer[d].id; } } }