summaryrefslogtreecommitdiffstatsci
path: root/src/skia-tests/linear-gradient.cpp
diff options
context:
space:
mode:
authorBryce Harrington <b.harrington@samsung.com>2014-07-24 14:22:14 -0700
committerBryce Harrington <b.harrington@samsung.com>2014-07-24 14:22:14 -0700
commit7acc2130fcb4dd4e0375560ce7978002f2d2d2bb (patch)
tree01253f79751f63b519ceb6e1cb8d69e68316eeaf /src/skia-tests/linear-gradient.cpp
parentba0832b38918bcd1c79b636c1dc9068bf3ff6f68 (diff)
tests: Implement linear and radial gradients
Diffstat (limited to 'src/skia-tests/linear-gradient.cpp')
-rw-r--r--src/skia-tests/linear-gradient.cpp22
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;