111 {
112 using std::make_tuple;
113
114 static constexpr struct {
115 std::tuple<float, float>
h,
s, l;
117 { make_tuple(-0.5f, 0.5f), make_tuple( 0.0f, 0.0f), make_tuple( 0.0f, 0.0f) },
118 { make_tuple( 0.0f, 0.0f), make_tuple(-1.0f, 1.0f), make_tuple( 0.0f, 0.0f) },
119 { make_tuple( 0.0f, 0.0f), make_tuple( 0.0f, 0.0f), make_tuple(-1.0f, 1.0f) },
120 };
121
123
126
127 for (const auto& shader : fShaders) {
128 paint.setShader(shader);
129
130 for (
const auto& tst:
gTests) {
132
133 const auto dh = (std::get<1>(tst.h) - std::get<0>(tst.h)) / (kSteps - 1),
134 ds = (std::get<1>(tst.s) - std::get<0>(tst.s)) / (kSteps - 1),
135 dl = (std::get<1>(tst.l) - std::get<0>(tst.l)) / (kSteps - 1);
136 auto h = std::get<0>(tst.h),
137 s = std::get<0>(tst.s),
138 l = std::get<0>(tst.l);
139 {
141 for (size_t i = 0; i < kSteps; ++i) {
148 l += dl;
149 }
150 }
152 }
154 }
155 }
static const TestCase gTests[]
void drawRect(const SkRect &rect, const SkPaint &paint)
void translate(SkScalar dx, SkScalar dy)
void drawColor(SkColor color, SkBlendMode mode=SkBlendMode::kSrcOver)
sk_sp< SkBlender > blender SkRect rect
static sk_sp< SkImageFilter > make_filter()
static constexpr SkRect MakeWH(float w, float h)