139 {
142
144 TestVariantSequence funcs[] = {
148 };
149
150
151
152
153
154
155
156
158 for (size_t k = 0; k < std::size(funcs); ++k) {
159 canvas->save();
160
161 TestVariantSequence drawTestSequence = funcs[k];
163 if (direct) {
164 direct->flushAndSubmit();
165 }
167 {
173 if (direct) {
174 direct->flushAndSubmit();
175 }
176 }
177 canvas->restore();
179 }
180
181
182
183
184
185
186
187
188
189
193 };
194
198 };
199
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];
206 canvas->save();
207 drawTestSequence(canvas, shapeColor, detectorInstallFunc);
208 if (direct) {
209 direct->flushAndSubmit();
210 }
212 {
216 shapeColor, detectorInstallFunc);
218 if (direct) {
219 direct->flushAndSubmit();
220 }
221 }
222
223 canvas->restore();
225 }
226
227 }
228 }
229}
static GrDirectContext * GrAsDirectContext(GrContext_Base *base)
constexpr SkColor SK_ColorTRANSPARENT
static constexpr SkColor SkColorSetARGB(U8CPU a, U8CPU r, U8CPU g, U8CPU b)
SkCanvas * beginRecording(const SkRect &bounds, sk_sp< SkBBoxHierarchy > bbh)
sk_sp< SkPicture > finishRecordingAsPicture()
virtual void playback(SkCanvas *canvas, AbortCallback *callback=nullptr) const =0
static void install_detector_image_filter(SkPaint *drawPaint)
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)