From: Jean-Philippe Bruyère Date: Tue, 8 Nov 2022 12:09:00 +0000 (+0100) Subject: wip X-Git-Url: https://git.osiis.dedyn.io/?a=commitdiff_plain;h=07fe59b52f3353651afe7c999849ab3cea4be450;p=jp%2Fvkvg.git wip --- diff --git a/src/vkvg_context_internal.c b/src/vkvg_context_internal.c index d6b529b..1ee3028 100644 --- a/src/vkvg_context_internal.c +++ b/src/vkvg_context_internal.c @@ -929,12 +929,9 @@ void _release_context_ressources (VkvgContext ctx) { //populate vertice buff for stroke bool _build_vb_step(VkvgContext ctx, stroke_context_t* str, bool isCurve){ Vertex v = {{0},ctx->curColor, {0,0,-1}}; - vec2 pL = ctx->points[str->iL]; vec2 p0 = ctx->points[str->cp]; - vec2 pR = ctx->points[str->iR]; - - vec2 v0 = vec2_sub(p0, pL); - vec2 v1 = vec2_sub(pR, p0); + vec2 v0 = vec2_sub(p0, ctx->points[str->iL]); + vec2 v1 = vec2_sub(ctx->points[str->iR], p0); float length_v0 = vec2_length(v0); float length_v1 = vec2_length(v1); if (length_v0 < FLT_EPSILON || length_v1 < FLT_EPSILON) { @@ -966,13 +963,9 @@ bool _build_vb_step(VkvgContext ctx, stroke_context_t* str, bool isCurve){ return true; } - vec2 bisec_n = vec2_norm(vec2_add(v0n,v1n));//bisec/bisec_perp are inverted names - - float alpha = acosf(dot); - if (det<0) alpha = -alpha; diff --git a/src/vkvg_fonts.c b/src/vkvg_fonts.c index 9c5f2c6..35858f3 100644 --- a/src/vkvg_fonts.c +++ b/src/vkvg_fonts.c @@ -75,7 +75,7 @@ void _fonts_cache_create (VkvgDevice dev){ cache->uploadFence = vkh_fence_create((VkhDevice)dev); - uint32_t buffLength = FONT_PAGE_SIZE*FONT_PAGE_SIZE*cache->texPixelSize; + const uint32_t buffLength = FONT_PAGE_SIZE*FONT_PAGE_SIZE*cache->texPixelSize; vkh_buffer_init ((VkhDevice)dev, VK_BUFFER_USAGE_TRANSFER_SRC_BIT, @@ -85,7 +85,7 @@ void _fonts_cache_create (VkvgDevice dev){ cache->cmd = vkh_cmd_buff_create((VkhDevice)dev,dev->cmdPool,VK_COMMAND_BUFFER_LEVEL_PRIMARY); //Set texture cache initial layout to shaderReadOnly to prevent error msg if cache is not fill - VkImageSubresourceRange subres = {VK_IMAGE_ASPECT_COLOR_BIT,0,1,0,cache->texLength}; + const VkImageSubresourceRange subres = {VK_IMAGE_ASPECT_COLOR_BIT,0,1,0,cache->texLength}; vkh_cmd_begin (cache->cmd,VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT); vkh_image_set_layout_subres(cache->cmd, cache->texture, subres, VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, @@ -433,7 +433,7 @@ _vkvg_font_t* _find_or_create_font_size (VkvgContext ctx) { newSize.charLookup = (_char_ref**)calloc (newSize.face->num_glyphs, sizeof(_char_ref*)); if (FT_IS_SCALABLE(newSize.face)) - newSize.curLine.height = FT_MulFix(newSize.face->height, newSize.face->size->metrics.y_scale) >> 6; + newSize.curLine.height = newSize.face->size->metrics.height >> 6; else newSize.curLine.height = newSize.face->height >> 6; #else diff --git a/tests/bezier.c b/tests/bezier.c index dafbbea..756a3c7 100644 --- a/tests/bezier.c +++ b/tests/bezier.c @@ -54,7 +54,7 @@ void draw (){ vkvg_fill_preserve (ctx); } - vkvg_set_source_rgba(ctx,1,0,0,1); + vkvg_set_source_rgba(ctx,1,0,0,0.3f); vkvg_stroke (ctx); vkvg_flush (ctx); diff --git a/tests/common/test.c b/tests/common/test.c index 15c8d61..595f71a 100644 --- a/tests/common/test.c +++ b/tests/common/test.c @@ -321,17 +321,19 @@ void _parse_args (int argc, char* argv[]) { _print_usage_and_exit(); } if (printTestDetailsAndExit) { - #ifdef DEBUG +#ifdef DEBUG printf("Debug build\n"); - #else +#else printf("Release build\n"); - #endif - #ifdef VKVG_USE_RENDERDOC +#endif +#ifdef VKVG_USE_RENDERDOC printf("Render doc enabled\n"); - #endif - #ifdef VKVG_USE_VALIDATION - printf("Validation enabled\n"); - #endif +#endif +#ifdef VKVG_USE_VALIDATION + printf("Validation:\tenabled\n"); +#else + printf("Validation:\no\n"); +#endif printf("surf dims:\t%d x %d\n", test_width, test_height); printf("Samples:\t%d\n", samples); printf("Gpu type:\t"); @@ -426,6 +428,9 @@ void perform_test (void(*testfunc)(void), const char *testName, int argc, char* gettimeofday(¤tTime, NULL); srand((unsigned)currentTime.tv_usec); + if (iterations == 0) + iterations = 9999; + if (single_test >= 0 && test_index != single_test) { test_index++; return; @@ -463,8 +468,8 @@ void perform_test_offscreen (void(*testfunc)(void), const char *testName, int ar | VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT , VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT | VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT - | VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT - | VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT + //| VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT + //| VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT , NULL); #endif bool deferredResolve = false; diff --git a/tests/common/test.h b/tests/common/test.h index e693071..d61858e 100644 --- a/tests/common/test.h +++ b/tests/common/test.h @@ -14,6 +14,12 @@ #define M_PIF 3.14159265359f /* float pi */ #define M_PIF_MULT_2 6.28318530718f +#ifndef M_PI +# define M_PI 3.14159265358979323846 /* pi */ +#endif +#ifndef M_PI_2 +# define M_PI_2 1.57079632679489661923 /* pi/2 */ +#endif #ifndef MIN # define MIN(a,b) (((a) < (b)) ? (a) : (b)) diff --git a/tests/curve.c b/tests/curve.c index 619019b..ff78bc8 100644 --- a/tests/curve.c +++ b/tests/curve.c @@ -190,7 +190,7 @@ void long_curv_fill_stroke_eo () { int main(int argc, char *argv[]) { no_test_size = true; PERFORM_TEST(test3, argc, argv); - return 0; + //return 0; PERFORM_TEST(test, argc, argv); PERFORM_TEST(test2, argc, argv); PERFORM_TEST(curved_rect, argc, argv); diff --git a/tests/inverse_colinear.c b/tests/inverse_colinear.c index 88de075..da4069f 100644 --- a/tests/inverse_colinear.c +++ b/tests/inverse_colinear.c @@ -10,12 +10,13 @@ bool isClosed = false; bool startWithArc = false, endWithArc = false; int ptsCount = 4; -int initPtsCount = 4; +int initPtsCount = 5; vec2 pts[] = { {150,150}, {200,300}, {250,150}, {280,350}, + {300,100}, }; /*vec2 pts[] = { {150,150}, @@ -39,7 +40,7 @@ void draw (){ vkvg_clear(ctx); if (dashCount > 0) vkvg_set_dash(ctx, dash, dashCount,0); - vkvg_set_source_rgba (ctx,1,0,0,1); + vkvg_set_source_rgba (ctx,1,0,0,0.3f); vkvg_set_line_width (ctx,lineWidth); vkvg_set_line_join (ctx, lineJoin); vkvg_set_line_cap (ctx, lineCap);