#include "test.h" VkvgPattern create_grad (VkvgContext ctx, float x) { VkvgPattern pat = vkvg_pattern_create_linear(x,0,300,0); vkvg_pattern_add_color_stop(pat, 0, 1, 0, 0, 1); vkvg_pattern_add_color_stop(pat, 0.5f, 0, 1, 0, 1); vkvg_pattern_add_color_stop(pat, 1, 0, 0, 1, 1); return pat; } void paint(){ VkvgContext ctx = _initCtx (surf); //vkvg_translate(ctx,100,100); VkvgPattern pat = create_grad(ctx,0); //vkvg_pattern_set_extend(pat,VKVG_EXTEND_NONE); vkvg_rectangle(ctx, 0,0,400,460); vkvg_set_source (ctx, pat); vkvg_pattern_destroy (pat); vkvg_fill(ctx); float x = 100; pat = create_grad(ctx,x); //vkvg_pattern_set_extend(pat,VKVG_EXTEND_NONE); vkvg_rectangle(ctx, x,200,50,50); vkvg_set_source (ctx, pat); vkvg_pattern_destroy (pat); vkvg_fill(ctx); x+=100; pat = vkvg_pattern_create_linear(10,0,300,0); vkvg_pattern_add_color_stop(pat, 0, 0, 0, 1, 0); vkvg_pattern_add_color_stop(pat, 1, 1, 0, 0, 1); //vkvg_pattern_set_extend(pat,VKVG_EXTEND_NONE); vkvg_rectangle(ctx, 10,10,300,50); vkvg_set_source (ctx, pat); vkvg_pattern_destroy (pat); vkvg_fill(ctx); x+=200; pat = create_grad(ctx,x); //vkvg_pattern_set_extend(pat,VKVG_EXTEND_NONE); vkvg_rectangle(ctx, x,200,50,50); vkvg_set_source (ctx, pat); vkvg_pattern_destroy (pat); vkvg_fill(ctx); x+=100; pat = create_grad(ctx,x); //vkvg_pattern_set_extend(pat,VKVG_EXTEND_NONE); vkvg_rectangle(ctx, x,200,50,50); vkvg_set_source (ctx, pat); vkvg_pattern_destroy (pat); vkvg_fill(ctx); /*vkvg_set_source_rgb(ctx, 0,1,0); vkvg_rectangle(ctx, 100,100,200,160); vkvg_fill_preserve(ctx); vkvg_set_source_rgb(ctx, 0,0,0); vkvg_set_line_width(ctx,1.0f); vkvg_stroke(ctx);*/ vkvg_destroy(ctx); } void paint_repeat(){ VkvgContext ctx = _initCtx (surf); VkvgPattern pat = create_grad(ctx,0); vkvg_pattern_set_extend(pat,VKVG_EXTEND_REPEAT); vkvg_set_source (ctx, pat); vkvg_pattern_destroy (pat); vkvg_paint(ctx); vkvg_destroy(ctx); } void test(){ VkvgContext ctx = _initCtx (surf); VkvgPattern pat = create_grad(ctx,0); vkvg_set_source (ctx, pat); vkvg_rectangle(ctx,100,100,200,200); vkvg_set_line_width(ctx, 20); //vkvg_fill (ctx); //vkvg_paint(ctx); vkvg_stroke (ctx); vkvg_pattern_destroy (pat); vkvg_destroy(ctx); } void test2(){ VkvgContext ctx = _initCtx (surf); vkvg_set_source_rgb(ctx,1,0,0); vkvg_paint(ctx); VkvgPattern pat = vkvg_pattern_create_linear(100,0,300,0); vkvg_set_line_width(ctx, 20); vkvg_pattern_add_color_stop(pat, 0, 1, 1, 1, 1); vkvg_pattern_add_color_stop(pat, 1, 1, 1, 0, 0); vkvg_set_source (ctx, pat); vkvg_rectangle(ctx,100,100,200,200); vkvg_fill (ctx); //vkvg_stroke (ctx); vkvg_pattern_destroy (pat); vkvg_destroy(ctx); } void gradient_transform() { VkvgContext ctx = _initCtx (surf); //vkvg_translate(ctx,-100,-100); vkvg_translate(ctx, 200, 100); vkvg_rotate(ctx, 0.5f); //vkvg_scale(ctx,2,2); VkvgPattern pat = vkvg_pattern_create_linear(0, 0, 400, 0); vkvg_pattern_set_extend(pat, VKVG_EXTEND_NONE); vkvg_set_line_width(ctx, 20); vkvg_pattern_add_color_stop(pat, 0, 1, 0, 0, 1); vkvg_pattern_add_color_stop(pat, 0.5f, 0, 1, 0, 1); vkvg_pattern_add_color_stop(pat, 1, 0, 0, 1, 1); vkvg_set_source(ctx, pat); vkvg_rectangle(ctx, 0, 0, 400, 200); //vkvg_fill (ctx); vkvg_stroke(ctx); //vkvg_paint(ctx); vkvg_pattern_destroy(pat); vkvg_destroy(ctx); } void gradient_alpha() { VkvgContext ctx = _initCtx (surf); vkvg_set_source_rgb(ctx,0,1,0); vkvg_paint (ctx); VkvgPattern pat = vkvg_pattern_create_linear(10,0,300,0); vkvg_pattern_add_color_stop(pat, 1, 1, 0, 0, 0.5); vkvg_pattern_add_color_stop(pat, 1, 1, 0, 0, 0.5); vkvg_set_source (ctx, pat); vkvg_pattern_destroy (pat); vkvg_rectangle (ctx, 10, 10, 300, 200); vkvg_fill (ctx); vkvg_destroy(ctx); } int main(int argc, char *argv[]) { no_test_size = true; PERFORM_TEST(gradient_alpha, argc, argv); PERFORM_TEST(paint, argc, argv); PERFORM_TEST(paint_repeat, argc, argv); PERFORM_TEST(gradient_transform, argc, argv); return 0; }