diff options
| author | Bryce Harrington <b.harrington@samsung.com> | 2014-07-24 14:22:14 -0700 |
|---|---|---|
| committer | Bryce Harrington <b.harrington@samsung.com> | 2014-07-24 14:22:14 -0700 |
| commit | 7acc2130fcb4dd4e0375560ce7978002f2d2d2bb (patch) | |
| tree | 01253f79751f63b519ceb6e1cb8d69e68316eeaf /src/skia-tests/linear-gradient.cpp | |
| parent | ba0832b38918bcd1c79b636c1dc9068bf3ff6f68 (diff) | |
tests: Implement linear and radial gradients
Diffstat (limited to 'src/skia-tests/linear-gradient.cpp')
| -rw-r--r-- | src/skia-tests/linear-gradient.cpp | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/src/skia-tests/linear-gradient.cpp b/src/skia-tests/linear-gradient.cpp index 0f06868..6cfa58e 100644 --- a/src/skia-tests/linear-gradient.cpp +++ b/src/skia-tests/linear-gradient.cpp @@ -11,6 +11,7 @@ #include <SkCanvas.h> #include <SkPaint.h> #include <SkRect.h> +#include <SkGradientShader.h> #include "caskbench.h" #include "caskbench_context.h" @@ -38,7 +39,20 @@ sk_test_linear_gradient(caskbench_context_t *ctx) { int w = ctx->canvas_width; int h = ctx->canvas_height; - int stops = 10; + SkShader *shader = NULL; + SkColor colors[10]; + SkPoint points[2]; + + for (int i=0; i<NUM_ELEM(colors); i++) + colors[i] = skiaRandomColor(); + points[0].fX = SkIntToScalar(0); + points[0].fY = SkIntToScalar(0); + points[1].fX = SkIntToScalar(100); + points[1].fY = SkIntToScalar(100); + + shader = SkGradientShader::CreateLinear( + points, colors, NULL, NUM_ELEM(colors), + SkShader::kClamp_TileMode); shapes_t shape; shape_copy(&ctx->shape_defaults, &shape); @@ -60,10 +74,14 @@ sk_test_linear_gradient(caskbench_context_t *ctx) shape.height = 100; shape.fill_type = CB_FILL_LINEAR_GRADIENT; - sk_set_fill_style(ctx, &shape); + ctx->skia_paint->setStyle(SkPaint::kFill_Style); + ctx->skia_paint->setShader(shader); skiaRandomizePaintColor(ctx); skiaDrawRectangle(ctx, &shape); + + if (shader) + shader->unref(); } return 1; |