Lines Matching defs:canvas
106 void draw_pass(SkCanvas* canvas, DrawingPass drawingPass) {
110 canvas->save();
112 canvas->translate(kMargin, kMargin);
114 canvas->translate(0, kTitleSpacing);
118 canvas->save();
121 SkTextUtils::DrawString(canvas, "Src Unknown",
125 SkTextUtils::DrawString(canvas, "Src Opaque",
131 canvas->translate(0, kSubtitleSpacing + kShapeSpacing/2);
138 canvas->save();
141 this->drawModeName(canvas, mode);
143 canvas->translate(kLabelSpacing + kShapeSpacing/2, 0);
147 this->setupShapePaint(canvas, kShapeColors[colorIdx], mode, &paint);
149 canvas->save();
153 canvas->save();
154 canvas->clipRect(clipRect);
156 ToolUtils::draw_checkerboard(canvas, 0xffffffff, 0xffc6c3c6, 10);
159 canvas->drawColor(kBGColor, SkBlendMode::kSrc);
161 canvas->restore();
163 this->drawShape(canvas, static_cast<Shape>(shapeIdx), paint, mode);
165 canvas->translate(kShapeTypeSpacing, 0);
168 canvas->restore();
169 canvas->translate(kPaintSpacing, 0);
172 canvas->restore();
173 canvas->translate(0, kShapeSpacing);
176 canvas->restore();
177 canvas->translate(kXfermodeTypeSpacing, 0);
180 canvas->restore();
183 void onDraw(SkCanvas* canvas) override {
184 draw_pass(canvas, kCheckerboard_Pass);
185 canvas->saveLayer(nullptr, nullptr);
187 canvas->translate(kMargin, kMargin);
188 draw_pass(canvas, kBackground_Pass);
193 SkTextUtils::DrawString(canvas, "Porter Duff",
197 SkTextUtils::DrawString(canvas, "Advanced",
202 draw_pass(canvas, kShape_Pass);
203 canvas->restore();
206 void drawModeName(SkCanvas* canvas, SkBlendMode mode) {
208 SkTextUtils::DrawString(canvas, modeName, kLabelSpacing - kShapeSize / 4,
213 void setupShapePaint(SkCanvas* canvas, SkColor color, SkBlendMode mode, SkPaint* paint) {
235 canvas->drawRect({ -kShapeSpacing/2, -kShapeSpacing/2,
242 void drawShape(SkCanvas* canvas, Shape shape, const SkPaint& paint, SkBlendMode mode) {
250 canvas->drawRect({ -kShapeSize/2, -kShapeSize/2, kShapeSize/2, kShapeSize/2 },
255 canvas->save();
256 canvas->rotate(45);
257 canvas->drawRect({ -kShapeSize/2, -kShapeSize/2, kShapeSize/2, kShapeSize/2 },
259 canvas->restore();
263 canvas->save();
264 canvas->rotate(static_cast<SkScalar>((511 * (int)mode + 257) % 360));
265 canvas->drawPath(fOval, shapePaint);
266 canvas->restore();
270 canvas->drawPath(fConcave, shapePaint);