34 uint8_t tableA[256] = { 0, };
35 uint8_t tableR[256] = { 0, };
36 uint8_t tableG[256] = { 0, };
37 uint8_t tableB[256] = { 0, };
68 canvas->
saveLayer(&targetRect, &layerPaint);
71 installDetector(&drawPaint);
72 canvas->
drawRect(targetRect, drawPaint);
82 bitmap.eraseColor(shapeColor);
95 canvas->
saveLayer(&targetRect, &layerPaint);
97 installDetector(&drawPaint);
115 recordCanvas->
drawRect(targetRect, shapePaint);
121 canvas->
saveLayer(&targetRect, &layerPaint);
126 installDetector(&drawPaint);
127 canvas->
saveLayer(&targetRect, &drawPaint);
144 TestVariantSequence funcs[] = {
158 for (
size_t k = 0; k < std::size(funcs); ++k) {
161 TestVariantSequence drawTestSequence = funcs[k];
164 direct->flushAndSubmit();
174 direct->flushAndSubmit();
200 for (
size_t i = 0; i < std::size(shapeColors); ++i) {
201 shapeColor = shapeColors[i];
202 for (
size_t j = 0; j < std::size(detectorInstallFuncs); ++j) {
204 for (
size_t k = 0; k < std::size(funcs); ++k) {
205 TestVariantSequence drawTestSequence = funcs[k];
207 drawTestSequence(canvas, shapeColor, detectorInstallFunc);
209 direct->flushAndSubmit();
216 shapeColor, detectorInstallFunc);
219 direct->flushAndSubmit();
static GrDirectContext * GrAsDirectContext(GrContext_Base *base)
constexpr SkColor SK_ColorTRANSPARENT
static constexpr SkColor SkColorSetARGB(U8CPU a, U8CPU r, U8CPU g, U8CPU b)
constexpr SkColor SK_ColorWHITE
int saveLayer(const SkRect *bounds, const SkPaint *paint)
void drawRect(const SkRect &rect, const SkPaint &paint)
void clipRect(const SkRect &rect, SkClipOp op, bool doAntiAlias)
void drawImage(const SkImage *image, SkScalar left, SkScalar top)
static sk_sp< SkColorFilter > TableARGB(const uint8_t tableA[256], const uint8_t tableR[256], const uint8_t tableG[256], const uint8_t tableB[256])
static sk_sp< SkImageFilter > ColorFilter(sk_sp< SkColorFilter > cf, sk_sp< SkImageFilter > input, const CropRect &cropRect={})
static sk_sp< SkImageFilter > Picture(sk_sp< SkPicture > pic, const SkRect &targetRect)
void setColor(SkColor color)
sk_sp< SkImageFilter > refImageFilter() const
void setImageFilter(sk_sp< SkImageFilter > imageFilter)
void setColorFilter(sk_sp< SkColorFilter > colorFilter)
SkCanvas * beginRecording(const SkRect &bounds, sk_sp< SkBBoxHierarchy > bbh)
sk_sp< SkPicture > finishRecordingAsPicture()
virtual void playback(SkCanvas *canvas, AbortCallback *callback=nullptr) const =0
#define DEF_SIMPLE_GM(NAME, CANVAS, W, H)
static void install_detector_image_filter(SkPaint *drawPaint)
static sk_sp< SkColorFilter > make_detector_color_filter()
static void no_detector_install(SkPaint *)
constexpr int kDetectorGreenValue
constexpr int kTestRectSize
static void draw_save_layer_draw_rect_restore_sequence(SkCanvas *canvas, SkColor shapeColor, InstallDetectorFunc installDetector)
static void install_detector_color_filter(SkPaint *drawPaint)
void(* InstallDetectorFunc)(SkPaint *)
static void draw_svg_opacity_and_filter_layer_sequence(SkCanvas *canvas, SkColor shapeColor, InstallDetectorFunc installDetector)
static void draw_save_layer_draw_bitmap_restore_sequence(SkCanvas *canvas, SkColor shapeColor, InstallDetectorFunc installDetector)
static constexpr SkRect MakeWH(float w, float h)