| Index: gm/color4f.cpp
|
| diff --git a/gm/color4f.cpp b/gm/color4f.cpp
|
| index 2585ad87c111ed02389982db698aae0c920d2bae..829434c2484671cdae765448a7b7c35e0dc83982 100644
|
| --- a/gm/color4f.cpp
|
| +++ b/gm/color4f.cpp
|
| @@ -84,3 +84,42 @@ DEF_SIMPLE_GM(color4f, canvas, 1024, 260) {
|
| canvas->translate(0, 120);
|
| }
|
| }
|
| +
|
| +///////////////////////////////////////////////////////////////////////////////////////////////////
|
| +#include "SkColorSpace.h"
|
| +
|
| +DEF_SIMPLE_GM(color4shader, canvas, 1024, 260) {
|
| + canvas->translate(10, 10);
|
| +
|
| + SkMatrix44 mat(SkMatrix44::kUninitialized_Constructor);
|
| + // red -> blue, green -> red, blue -> green
|
| + mat.set3x3(0, 1, 0, 0, 0, 1, 1, 0, 0);
|
| +
|
| + const SkColor4f colors[] {
|
| + { 1, 1, 0, 0 },
|
| + { 1, 0, 1, 0 },
|
| + { 1, 0, 0, 1 },
|
| + { 1, 0.5, 0.5, 0.5 },
|
| + };
|
| +
|
| + SkPaint paint;
|
| + SkRect r = SkRect::MakeWH(100, 100);
|
| +
|
| + for (const auto& c4 : colors) {
|
| + sk_sp<SkShader> shaders[] {
|
| + SkShader::MakeColorShader(c4, nullptr),
|
| + SkShader::MakeColorShader(c4, SkColorSpace::NewNamed(SkColorSpace::kSRGB_Named)),
|
| + SkShader::MakeColorShader(c4, SkColorSpace::NewRGB(SkColorSpace::SkGammas(1, 1, 1),
|
| + mat)),
|
| + };
|
| +
|
| + canvas->save();
|
| + for (const auto& s : shaders) {
|
| + paint.setShader(s);
|
| + canvas->drawRect(r, paint);
|
| + canvas->translate(r.width() * 6 / 5, 0);
|
| + }
|
| + canvas->restore();
|
| + canvas->translate(0, r.height() * 6 / 5);
|
| + }
|
| +}
|
|
|