Index: src/core/SkLiteDL.cpp |
diff --git a/src/core/SkLiteDL.cpp b/src/core/SkLiteDL.cpp |
index f7fe578c4efa38fdd0dc7d6019faed1e48e52bfc..181b99abaa2cbb5286d8ec1d12c1709297e67119 100644 |
--- a/src/core/SkLiteDL.cpp |
+++ b/src/core/SkLiteDL.cpp |
@@ -54,8 +54,8 @@ namespace { |
M(Save) M(Restore) M(SaveLayer) \ |
M(Concat) M(SetMatrix) M(Translate) M(TranslateZ) \ |
M(ClipPath) M(ClipRect) M(ClipRRect) M(ClipRegion) \ |
- M(DrawPaint) M(DrawPath) M(DrawRect) M(DrawOval) M(DrawArc) M(DrawRRect) \ |
- M(DrawDRRect) M(DrawAnnotation) M(DrawDrawable) M(DrawPicture) \ |
+ M(DrawPaint) M(DrawPath) M(DrawRect) M(DrawRegion) M(DrawOval) M(DrawArc) \ |
+ M(DrawRRect) M(DrawDRRect) M(DrawAnnotation) M(DrawDrawable) M(DrawPicture) \ |
M(DrawShadowedPicture) \ |
M(DrawImage) M(DrawImageNine) M(DrawImageRect) M(DrawImageLattice) \ |
M(DrawText) M(DrawPosText) M(DrawPosTextH) \ |
@@ -189,6 +189,13 @@ namespace { |
SkPaint paint; |
void draw(SkCanvas* c, const SkMatrix&) { c->drawRect(rect, paint); } |
}; |
+ struct DrawRegion final : Op { |
+ static const auto kType = Type::DrawRegion; |
+ DrawRegion(const SkRegion& region, const SkPaint& paint) : region(region), paint(paint) {} |
+ SkRegion region; |
+ SkPaint paint; |
+ void draw(SkCanvas* c, const SkMatrix&) { c->drawRegion(region, paint); } |
+ }; |
struct DrawOval final : Op { |
static const auto kType = Type::DrawOval; |
DrawOval(const SkRect& oval, const SkPaint& paint) : oval(oval), paint(paint) {} |
@@ -589,6 +596,9 @@ void SkLiteDL::drawPath(const SkPath& path, const SkPaint& paint) { |
void SkLiteDL::drawRect(const SkRect& rect, const SkPaint& paint) { |
this->push<DrawRect>(0, rect, paint); |
} |
+void SkLiteDL::drawRegion(const SkRegion& region, const SkPaint& paint) { |
+ this->push<DrawRegion>(0, region, paint); |
+} |
void SkLiteDL::drawOval(const SkRect& oval, const SkPaint& paint) { |
this->push<DrawOval>(0, oval, paint); |
} |