From: Jean-Philippe Bruyère Date: Tue, 25 Jan 2022 11:25:19 +0000 (+0100) Subject: move getarcstep.c to tmp dir, it reference vkvg internals which cause linking failures X-Git-Url: https://git.osiis.dedyn.io/?a=commitdiff_plain;h=23c3afee921de25b97ed1f5cd77cff79a37986da;p=jp%2Fvkvg.git move getarcstep.c to tmp dir, it reference vkvg internals which cause linking failures --- diff --git a/tests/getarcstep.c b/tests/getarcstep.c deleted file mode 100644 index dd47a24..0000000 --- a/tests/getarcstep.c +++ /dev/null @@ -1,158 +0,0 @@ -#include "test.h" -#include "vectors.h" -#include "vkvg_context_internal.h" - -vkvg_fill_rule_t fillrule = VKVG_FILL_RULE_NON_ZERO; -static VkSampleCountFlags samples = VK_SAMPLE_COUNT_8_BIT; -float lineWidth = 3.0f; -vkvg_line_join_t lineJoin = VKVG_LINE_JOIN_MITER; -vkvg_line_cap_t lineCap = VKVG_LINE_CAP_BUTT; -bool isClosed = false; -bool startWithArc = false, endWithArc = false; -float angle = 0; -float r; -vec2 mouse; - -void draw (){ - angle += 0.001f; - - VkvgContext ctx = vkvg_create(surf); - vkvg_clear(ctx); - - float r = fabsf(test_width/2 - mouse.x)/zoom; - - vkvg_new_path(ctx); - vkvg_set_source_rgba(ctx,1,0,0,1); - vkvg_set_line_width (ctx,lineWidth/zoom); - - vkvg_translate(ctx, test_width/2, test_height/2); - vkvg_scale(ctx, zoom, zoom); - //vkvg_rotate (ctx, angle); - - vkvg_matrix_t mat; - vkvg_get_matrix(ctx, &mat); - float sx, sy; - vkvg_matrix_get_scale(&mat, &sx, &sy); - - vkvg_arc (ctx,0,0,r, 0, M_PIF*2); - vkvg_fill(ctx); - - float steps = _get_arc_step(ctx, r); - vkvg_identity_matrix(ctx); - - vkvg_set_source_rgba(ctx,1,1,1,1); - char txt[100]; - sprintf(txt, "scale: %f, %f", sx, sy); - vkvg_move_to(ctx,10,10); - vkvg_show_text(ctx,txt); - sprintf(txt, "angle: %f", angle); - vkvg_move_to(ctx,10,25); - vkvg_show_text(ctx,txt); - sprintf(txt, "radius: %f", r); - vkvg_move_to(ctx,10,40); - vkvg_show_text(ctx,txt); - sprintf(txt, "zoom: %f", zoom); - vkvg_move_to(ctx,10,55); - vkvg_show_text(ctx,txt); - sprintf(txt, "arc step: %f", steps); - vkvg_move_to(ctx,10,70); - vkvg_show_text(ctx,txt); - sprintf(txt, "steps: %d", (int)roundf(2.0f*M_PI / steps)); - vkvg_move_to(ctx,10,85); - vkvg_show_text(ctx,txt); - - vkvg_destroy(ctx); -} -static void key_callback(GLFWwindow* window, int key, int scancode, int action, int mods) { - if (action != GLFW_PRESS) - return; - switch (key) { - case GLFW_KEY_ESCAPE : - glfwSetWindowShouldClose(window, GLFW_TRUE); - break; - case GLFW_KEY_KP_ADD : - zoom *= 2.0f; - break; - case GLFW_KEY_KP_SUBTRACT : - zoom *= 0.5f; - break; -#ifdef VKVG_WIRED_DEBUG - case GLFW_KEY_F1: - vkvg_wired_debug ^= (1U << 0); - break; - case GLFW_KEY_F2: - vkvg_wired_debug ^= (1U << 1); - break; - case GLFW_KEY_F3: - vkvg_wired_debug ^= (1U << 2); - break; -#endif - } -} -static void mouse_move_callback(GLFWwindow* window, double x, double y){ - if (mouseDown) { - mouse = (vec2) {x, y}; - } -} -static void scroll_callback(GLFWwindow* window, double x, double y){ - if (y<0.f) - zoom *= 0.5f; - else - zoom *= 2.0f; -} -static void mouse_button_callback(GLFWwindow* window, int but, int state, int modif){ - if (but != GLFW_MOUSE_BUTTON_1) - return; - if (state == GLFW_TRUE) - mouseDown = true; - else - mouseDown = false; -} - - - -int main(int argc, char* argv[]) { - - _parse_args (argc, argv); - VkEngine e; - e = vkengine_create (VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU, VK_PRESENT_MODE_FIFO_KHR, test_width, test_height); - - VkhPresenter r = e->renderer; - vkengine_set_key_callback (e, key_callback); - vkengine_set_mouse_but_callback(e, mouse_button_callback); - vkengine_set_cursor_pos_callback(e, mouse_move_callback); - vkengine_set_scroll_callback(e, scroll_callback); - - bool deferredResolve = false; - - device = vkvg_device_create_from_vk_multisample(vkh_app_get_inst(e->app), r->dev->phy, r->dev->dev, r->qFam, 0, samples, deferredResolve); - surf = vkvg_surface_create(device, test_width, test_height); - - vkh_presenter_build_blit_cmd (r, vkvg_surface_get_vk_image(surf), test_width, test_height); - - mouse = (vec2){test_width*0.75,test_height*0.5f}; - - while (!vkengine_should_close (e)) { - glfwPollEvents(); - - draw (); - - if (!vkh_presenter_draw (r)){ - vkh_presenter_get_size (r, &test_width, &test_height); - vkvg_surface_destroy (surf); - surf = vkvg_surface_create(device, test_width, test_height); - vkh_presenter_build_blit_cmd (r, vkvg_surface_get_vk_image(surf), test_width, test_height); - vkDeviceWaitIdle(r->dev->dev); - continue; - } - } - vkDeviceWaitIdle(e->dev->dev); - - vkvg_surface_destroy (surf); - - vkvg_device_destroy (device); - - vkengine_destroy (e); - - return 0; -} diff --git a/tests/tmp/getarcstep.c b/tests/tmp/getarcstep.c new file mode 100644 index 0000000..dd47a24 --- /dev/null +++ b/tests/tmp/getarcstep.c @@ -0,0 +1,158 @@ +#include "test.h" +#include "vectors.h" +#include "vkvg_context_internal.h" + +vkvg_fill_rule_t fillrule = VKVG_FILL_RULE_NON_ZERO; +static VkSampleCountFlags samples = VK_SAMPLE_COUNT_8_BIT; +float lineWidth = 3.0f; +vkvg_line_join_t lineJoin = VKVG_LINE_JOIN_MITER; +vkvg_line_cap_t lineCap = VKVG_LINE_CAP_BUTT; +bool isClosed = false; +bool startWithArc = false, endWithArc = false; +float angle = 0; +float r; +vec2 mouse; + +void draw (){ + angle += 0.001f; + + VkvgContext ctx = vkvg_create(surf); + vkvg_clear(ctx); + + float r = fabsf(test_width/2 - mouse.x)/zoom; + + vkvg_new_path(ctx); + vkvg_set_source_rgba(ctx,1,0,0,1); + vkvg_set_line_width (ctx,lineWidth/zoom); + + vkvg_translate(ctx, test_width/2, test_height/2); + vkvg_scale(ctx, zoom, zoom); + //vkvg_rotate (ctx, angle); + + vkvg_matrix_t mat; + vkvg_get_matrix(ctx, &mat); + float sx, sy; + vkvg_matrix_get_scale(&mat, &sx, &sy); + + vkvg_arc (ctx,0,0,r, 0, M_PIF*2); + vkvg_fill(ctx); + + float steps = _get_arc_step(ctx, r); + vkvg_identity_matrix(ctx); + + vkvg_set_source_rgba(ctx,1,1,1,1); + char txt[100]; + sprintf(txt, "scale: %f, %f", sx, sy); + vkvg_move_to(ctx,10,10); + vkvg_show_text(ctx,txt); + sprintf(txt, "angle: %f", angle); + vkvg_move_to(ctx,10,25); + vkvg_show_text(ctx,txt); + sprintf(txt, "radius: %f", r); + vkvg_move_to(ctx,10,40); + vkvg_show_text(ctx,txt); + sprintf(txt, "zoom: %f", zoom); + vkvg_move_to(ctx,10,55); + vkvg_show_text(ctx,txt); + sprintf(txt, "arc step: %f", steps); + vkvg_move_to(ctx,10,70); + vkvg_show_text(ctx,txt); + sprintf(txt, "steps: %d", (int)roundf(2.0f*M_PI / steps)); + vkvg_move_to(ctx,10,85); + vkvg_show_text(ctx,txt); + + vkvg_destroy(ctx); +} +static void key_callback(GLFWwindow* window, int key, int scancode, int action, int mods) { + if (action != GLFW_PRESS) + return; + switch (key) { + case GLFW_KEY_ESCAPE : + glfwSetWindowShouldClose(window, GLFW_TRUE); + break; + case GLFW_KEY_KP_ADD : + zoom *= 2.0f; + break; + case GLFW_KEY_KP_SUBTRACT : + zoom *= 0.5f; + break; +#ifdef VKVG_WIRED_DEBUG + case GLFW_KEY_F1: + vkvg_wired_debug ^= (1U << 0); + break; + case GLFW_KEY_F2: + vkvg_wired_debug ^= (1U << 1); + break; + case GLFW_KEY_F3: + vkvg_wired_debug ^= (1U << 2); + break; +#endif + } +} +static void mouse_move_callback(GLFWwindow* window, double x, double y){ + if (mouseDown) { + mouse = (vec2) {x, y}; + } +} +static void scroll_callback(GLFWwindow* window, double x, double y){ + if (y<0.f) + zoom *= 0.5f; + else + zoom *= 2.0f; +} +static void mouse_button_callback(GLFWwindow* window, int but, int state, int modif){ + if (but != GLFW_MOUSE_BUTTON_1) + return; + if (state == GLFW_TRUE) + mouseDown = true; + else + mouseDown = false; +} + + + +int main(int argc, char* argv[]) { + + _parse_args (argc, argv); + VkEngine e; + e = vkengine_create (VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU, VK_PRESENT_MODE_FIFO_KHR, test_width, test_height); + + VkhPresenter r = e->renderer; + vkengine_set_key_callback (e, key_callback); + vkengine_set_mouse_but_callback(e, mouse_button_callback); + vkengine_set_cursor_pos_callback(e, mouse_move_callback); + vkengine_set_scroll_callback(e, scroll_callback); + + bool deferredResolve = false; + + device = vkvg_device_create_from_vk_multisample(vkh_app_get_inst(e->app), r->dev->phy, r->dev->dev, r->qFam, 0, samples, deferredResolve); + surf = vkvg_surface_create(device, test_width, test_height); + + vkh_presenter_build_blit_cmd (r, vkvg_surface_get_vk_image(surf), test_width, test_height); + + mouse = (vec2){test_width*0.75,test_height*0.5f}; + + while (!vkengine_should_close (e)) { + glfwPollEvents(); + + draw (); + + if (!vkh_presenter_draw (r)){ + vkh_presenter_get_size (r, &test_width, &test_height); + vkvg_surface_destroy (surf); + surf = vkvg_surface_create(device, test_width, test_height); + vkh_presenter_build_blit_cmd (r, vkvg_surface_get_vk_image(surf), test_width, test_height); + vkDeviceWaitIdle(r->dev->dev); + continue; + } + } + vkDeviceWaitIdle(e->dev->dev); + + vkvg_surface_destroy (surf); + + vkvg_device_destroy (device); + + vkengine_destroy (e); + + return 0; +}