blob: a83e469aed596bd2c9212dddaaa77730bc1aa084 [file] [log] [blame]
// Copyright 2020 Google LLC.
// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
#include "tools/fiddle/examples.h"
REG_FIDDLE(overdrawcolorfilter_grid, 256, 256, false, 0) {
// This colorfilter turns alpha values into a color from the list
// (e.g. alpha 3 would produce a yellow color).
sk_sp<SkColorFilter> color_filter() {
static const SkColor colors[SkOverdrawColorFilter::kNumColors] = {
0x80FF0000, // red
0x8000FF00, // green
0x800000FF, // blue
0x80FFFF00, // yellow
0x8000FFFF, // cyan
0x80FF00FF, // magenta
};
return SkOverdrawColorFilter::MakeWithSkColors(colors);
}
constexpr int WIDTH = 80;
// Make an alpha only bitmap where every pixel is set to the same alpha value
SkBitmap make_bitmap(uint8_t alpha) {
SkImageInfo info = SkImageInfo::MakeA8(WIDTH, WIDTH);
SkBitmap bitmap;
bitmap.allocPixels(info);
bitmap.eraseARGB(alpha, 0, 0, 0);
return bitmap;
}
void draw(SkCanvas* canvas) {
SkSamplingOptions sampling;
SkPaint paint;
paint.setColorFilter(color_filter());
for (int row = 0; row < 3; row++) {
for (int col = 0; col < 3; col++) {
SkBitmap bitmap = make_bitmap(row * 3 + col);
canvas->drawImage(bitmap.asImage(), col * WIDTH, row * WIDTH, sampling, &paint);
}
}
}
} // END FIDDLE