From 0d71cf182abed34a7fac0bcff06de1ca980910a9 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jean-Philippe=20Bruy=C3=A8re?= Date: Tue, 14 Jul 2020 15:37:51 +0200 Subject: [PATCH] wip --- shaders/vkvg_main.frag | 2 +- shaders/vkvg_main.vert | 2 +- src/vkvg_context_internal.c | 1 + tests/img_surf.c | 30 ++++++++++++++++++++++++++++-- 4 files changed, 31 insertions(+), 4 deletions(-) diff --git a/shaders/vkvg_main.frag b/shaders/vkvg_main.frag index 8a32090..6649582 100644 --- a/shaders/vkvg_main.frag +++ b/shaders/vkvg_main.frag @@ -25,7 +25,7 @@ #extension GL_ARB_shading_language_420pack : enable layout (set=0, binding = 0) uniform sampler2DArray fontMap; -layout (set=1, binding = 0) uniform sampler2D source; +layout (set=1, binding = 0) uniform sampler2D source; layout (set=2, binding = 0) uniform _uboGrad { vec4 cp[3]; vec4 colors[16]; diff --git a/shaders/vkvg_main.vert b/shaders/vkvg_main.vert index c6fee38..2826713 100644 --- a/shaders/vkvg_main.vert +++ b/shaders/vkvg_main.vert @@ -60,7 +60,7 @@ void main() outMat = pc.matInv; if (pc.fullScreenQuad != 0) { - gl_Position = vec4(vec2((gl_VertexIndex << 1) & 2, gl_VertexIndex & 2) * 2.0f + -1.0f, 0.0f, 1.0f); + gl_Position = vec4(vec2((gl_VertexIndex << 1) & 2, gl_VertexIndex & 2) * 2.0f - 1.0f, 0.0f, 1.0f); outUV = vec3(0,0,-1); return; } diff --git a/src/vkvg_context_internal.c b/src/vkvg_context_internal.c index 1910635..29434a7 100644 --- a/src/vkvg_context_internal.c +++ b/src/vkvg_context_internal.c @@ -1112,6 +1112,7 @@ void _poly_fill (VkvgContext ctx){ } ctx->curVertOffset = ctx->vertCount; } +//create fill from current path with ear clipping technic void _fill_ec (VkvgContext ctx){ Vertex v = {0}; v.uv.z = -1; diff --git a/tests/img_surf.c b/tests/img_surf.c index 458b232..ad0abc4 100644 --- a/tests/img_surf.c +++ b/tests/img_surf.c @@ -3,7 +3,7 @@ void paint () { VkvgContext ctx = vkvg_create(surf); VkvgSurface imgSurf = vkvg_surface_create_from_image(device, "data/miroir.jpg"); - vkvg_set_source_surface(ctx, imgSurf, 00, 00); + vkvg_set_source_surface(ctx, imgSurf, 0, 0); vkvg_paint(ctx); vkvg_surface_destroy(imgSurf); @@ -19,6 +19,18 @@ void paint_offset () { vkvg_surface_destroy(imgSurf); vkvg_destroy(ctx); } +void paint_with_scale(){ + VkvgContext ctx = vkvg_create(surf); + vkvg_scale (ctx, 0.2f,0.2f); + VkvgSurface imgSurf = vkvg_surface_create_from_image(device, "data/miroir.jpg"); + vkvg_set_source_surface(ctx, imgSurf, 0, 0); + + vkvg_paint(ctx); + + vkvg_surface_destroy(imgSurf); + vkvg_destroy(ctx); +} + void paint_pattern () { VkvgContext ctx = vkvg_create(surf); VkvgSurface imgSurf = vkvg_surface_create_from_image(device, "data/miroir.jpg"); @@ -40,6 +52,18 @@ void paint_pattern_repeat () { vkvg_surface_destroy(imgSurf); vkvg_destroy(ctx); } +void paint_pattern_repeat_scalled () { + VkvgContext ctx = vkvg_create(surf); + vkvg_scale (ctx, 0.2f,0.2f); + VkvgSurface imgSurf = vkvg_surface_create_from_image(device, "data/miroir.jpg"); + VkvgPattern pat = vkvg_pattern_create_for_surface(imgSurf); + vkvg_pattern_set_extend(pat,VKVG_EXTEND_REPEAT); + vkvg_set_source(ctx, pat); + vkvg_paint(ctx); + vkvg_pattern_destroy(pat); + vkvg_surface_destroy(imgSurf); + vkvg_destroy(ctx); +} void paint_pattern_pad () { VkvgContext ctx = vkvg_create(surf); VkvgSurface imgSurf = vkvg_surface_create_from_image(device, "data/miroir.jpg"); @@ -66,7 +90,7 @@ void test(){ vkvg_new_sub_path(ctx); vkvg_arc(ctx,200,200,100,0,2.f*M_PIF); - vkvg_set_source_surface(ctx, imgSurf, 00, 00); + vkvg_set_source_surface(ctx, imgSurf, 0, 0); vkvg_fill_preserve(ctx); vkvg_set_source_rgba(ctx,0.2f,0.3f,0.8f,1); @@ -80,8 +104,10 @@ void test(){ int main(int argc, char *argv[]) { PERFORM_TEST (paint, argc, argv); PERFORM_TEST (paint_offset, argc, argv); + PERFORM_TEST (paint_with_scale, argc, argv); PERFORM_TEST (paint_pattern, argc, argv); PERFORM_TEST (paint_pattern_repeat, argc, argv); + PERFORM_TEST (paint_pattern_repeat_scalled, argc, argv); PERFORM_TEST (paint_pattern_pad, argc, argv); PERFORM_TEST (test, argc, argv); -- 2.47.3