diff options
| author | Jean-Philippe Bruyère <jp_bruyere@hotmail.com> | 2026-10-15 14:46:34 +0200 |
|---|---|---|
| committer | Jean-Philippe Bruyère <jp_bruyere@hotmail.com> | 2026-10-15 14:46:34 +0200 |
| commit | 909ef3c352e947517b3cab6ecdb8c64ea9677705 (patch) | |
| tree | 87ecc10f874345882e3137268cfe6408dbab895f /samples/tests/gradient.cpp | |
| parent | 6ddc3fb585a106d37b35356e12e02761a39f9aa2 (diff) | |
svg process_elt new_sub_path cmd, rename text_run cmd to text
Diffstat (limited to 'samples/tests/gradient.cpp')
| -rw-r--r-- | samples/tests/gradient.cpp | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/samples/tests/gradient.cpp b/samples/tests/gradient.cpp index 37379b3..90a55c1 100644 --- a/samples/tests/gradient.cpp +++ b/samples/tests/gradient.cpp @@ -8,6 +8,67 @@ VkvgPattern create_grad(VkvgContext ctx, float x) { return pat; } + +void draw_gradient1(VkvgContext cr) +{ + VkvgPattern pat1; + pat1 = vkvg_pattern_create_linear(0.0, 0.0, 350.0, 350.0); + + double j; + int count = 1; + for ( j = 0.1; j < 1; j += 0.1 ) { + if (( count % 2 )) { + vkvg_pattern_add_color_stop(pat1, j, 0, 0, 0, 1); + } else { + vkvg_pattern_add_color_stop(pat1, j, 1, 0, 0, 1); + } + count++; + } + + vkvg_rectangle(cr, 20, 20, 300, 100); + vkvg_set_source(cr, pat1); + vkvg_fill(cr); + + vkvg_pattern_destroy(pat1); +} +void draw_gradient2(VkvgContext cr) +{ + VkvgPattern pat2; + pat2 = vkvg_pattern_create_linear(0.0, 0.0, 350.0, 0.0); + + double i; + int count = 1; + for ( i = 0.05; i < 0.95; i += 0.075 ) { + if (( count % 2 )) { + vkvg_pattern_add_color_stop(pat2, i, 0, 0, 0, 1); + } else { + vkvg_pattern_add_color_stop(pat2, i, 0, 0, 1, 1); + } + count++; + } + + vkvg_rectangle(cr, 20, 140, 300, 100); + vkvg_set_source(cr, pat2); + vkvg_fill(cr); + + vkvg_pattern_destroy(pat2); +} +void draw_gradient3(VkvgContext cr) +{ + VkvgPattern pat3; + pat3 = vkvg_pattern_create_linear(20.0, 260.0, 20.0, 360.0); + + vkvg_pattern_add_color_stop(pat3, 0.1, 0, 0, 0, 1); + vkvg_pattern_add_color_stop(pat3, 0.5, 1, 1, 0, 1); + vkvg_pattern_add_color_stop(pat3, 0.9, 0, 0, 0, 1); + + vkvg_rectangle(cr, 20, 260, 300, 100); + vkvg_set_source(cr, pat3); + vkvg_fill(cr); + + vkvg_pattern_destroy(pat3); +} + TEST(gradient_paint) { VkvgContext ctx = vkvg_create(test->surf); vkvg_clear(ctx); @@ -172,3 +233,14 @@ TEST(gradient_radial) { vkvg_destroy(ctx); } + +TEST(gradient_cairo) { + VkvgContext ctx = vkvg_create(test->surf); + vkvg_set_source_rgb(ctx, 0.7f, 0.7f, 0.7f); + vkvg_paint(ctx); + + draw_gradient1(ctx); + draw_gradient2(ctx); + draw_gradient3(ctx); + vkvg_destroy(ctx); +}
\ No newline at end of file |