summaryrefslogtreecommitdiffstatsci
path: root/src/skia-tests/linear-gradient.cpp
diff options
context:
space:
mode:
authorsuyambulingamrm <suyambu.rm@samsung.com>2014-08-02 17:02:46 +0530
committersuyambulingamrm <suyambu.rm@samsung.com>2014-08-02 17:02:46 +0530
commit8f9cde1ab8bc38f7341da62e4654d04c1fb15534 (patch)
treee5bf9c5f7f33a352bc594b47021f2e391a564915 /src/skia-tests/linear-gradient.cpp
parentbcf8a0eb38388939257f429f2d617aa794196651 (diff)
Issue #130. Corrections to skia linear and radial gradient tests to make output similar to flashcanvas.
Diffstat (limited to 'src/skia-tests/linear-gradient.cpp')
-rw-r--r--src/skia-tests/linear-gradient.cpp32
1 files changed, 19 insertions, 13 deletions
diff --git a/src/skia-tests/linear-gradient.cpp b/src/skia-tests/linear-gradient.cpp
index 6cfa58e..f2c776b 100644
--- a/src/skia-tests/linear-gradient.cpp
+++ b/src/skia-tests/linear-gradient.cpp
@@ -39,20 +39,22 @@ sk_test_linear_gradient(caskbench_context_t *ctx)
{
int w = ctx->canvas_width;
int h = ctx->canvas_height;
- SkShader *shader = NULL;
+ int stops = 2;
+
+ SkPoint pts[2];
+ pts[0].iset(0, 0);
+ pts[1].iset(100, 100);
SkColor colors[10];
- SkPoint points[2];
+ SkScalar pos[10];
- for (int i=0; i<NUM_ELEM(colors); i++)
+ for (int i = 0; i < stops; i++) {
+ pos[i] = i / SkIntToScalar(stops - 1);
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);
+ SkShader *shader = SkGradientShader::CreateLinear(pts, colors, pos, stops,
+ SkShader::kClamp_TileMode);
+ ctx->skia_paint->setShader(shader);
shapes_t shape;
shape_copy(&ctx->shape_defaults, &shape);
@@ -67,6 +69,10 @@ sk_test_linear_gradient(caskbench_context_t *ctx)
double ww = abs(x2 - x1);
double hh = abs(y2 - y1);
+ ctx->skia_canvas->save();
+ ctx->skia_canvas->translate(SkDoubleToScalar(xx), SkDoubleToScalar(yy));
+ ctx->skia_canvas->scale(SkDoubleToScalar(ww/100), SkDoubleToScalar(hh/100));
+
// transform(shape.width/100, 0, 0, shape.height/100, 0, 0)
shape.x = 0;
shape.y = 0;
@@ -77,12 +83,12 @@ sk_test_linear_gradient(caskbench_context_t *ctx)
ctx->skia_paint->setStyle(SkPaint::kFill_Style);
ctx->skia_paint->setShader(shader);
- skiaRandomizePaintColor(ctx);
skiaDrawRectangle(ctx, &shape);
- if (shader)
- shader->unref();
+ ctx->skia_canvas->restore();
}
+ if (shader)
+ shader->unref();
return 1;
}