aboutsummaryrefslogtreecommitdiffhomepage
path: root/gm/dstreadshuffle.cpp
diff options
context:
space:
mode:
authorGravatar joshualitt <joshualitt@chromium.org>2015-04-15 08:08:28 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2015-04-15 08:08:28 -0700
commitddb714b09a5f84e870dfc650b6da4197fd36d9c2 (patch)
treea5c1ae01014acbdd19d98ce379046c169767f93f /gm/dstreadshuffle.cpp
parent793a6ddd447f9f7c2a388f74252538e36731f199 (diff)
remove randomness in dstreadshuffle
Diffstat (limited to 'gm/dstreadshuffle.cpp')
-rw-r--r--gm/dstreadshuffle.cpp30
1 files changed, 20 insertions, 10 deletions
diff --git a/gm/dstreadshuffle.cpp b/gm/dstreadshuffle.cpp
index 5a7768590c..756e922ea9 100644
--- a/gm/dstreadshuffle.cpp
+++ b/gm/dstreadshuffle.cpp
@@ -94,24 +94,32 @@ protected:
}
}
- static SkColor GetColor(SkRandom* random, int i) {
+ static SkColor GetColor(SkRandom* random, int i, int nextColor) {
+ static SkColor colors[] = { SK_ColorRED,
+ 0xFFFF7F00, // Orange
+ SK_ColorYELLOW,
+ SK_ColorGREEN,
+ SK_ColorBLUE,
+ 0xFF4B0082, // indigo
+ 0xFF7F00FF }; // violet
SkColor color;
+ int index = nextColor % SK_ARRAY_COUNT(colors);
switch (i) {
case 0:
color = SK_ColorTRANSPARENT;
break;
case 1:
color = SkColorSetARGB(0xff,
- random->nextULessThan(256),
- random->nextULessThan(256),
- random->nextULessThan(256));
+ SkColorGetR(colors[index]),
+ SkColorGetG(colors[index]),
+ SkColorGetB(colors[index]));
break;
default:
- uint8_t alpha = random->nextULessThan(256);
+ uint8_t alpha = 0x80;
color = SkColorSetARGB(alpha,
- random->nextRangeU(0, alpha),
- random->nextRangeU(0, alpha),
- random->nextRangeU(0, alpha));
+ SkColorGetR(colors[index]),
+ SkColorGetG(colors[index]),
+ SkColorGetB(colors[index]));
break;
}
return color;
@@ -143,12 +151,14 @@ protected:
for (int width = 0; width <= 1; width++) {
for (int alpha = 0; alpha <= 2; alpha++) {
for (int r = 0; r <= 5; r++) {
- SkColor color = GetColor(&random, alpha);
+ SkColor color = GetColor(&random, alpha, style + width + alpha + r);
SkPaint p;
p.setAntiAlias(true);
p.setColor(color);
- p.setXfermodeMode(r % 3 == 0 ? SkXfermode::kHardLight_Mode :
+ // In order to get some batching on the GPU backend we do 2 src over for
+ // each xfer mode which requires a dst read
+ p.setXfermodeMode(r % 3 == 0 ? SkXfermode::kLighten_Mode :
SkXfermode::kSrcOver_Mode);
SetStyle(&p, style, width);
canvas->save();