aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/pipe
diff options
context:
space:
mode:
authorGravatar reed <reed@chromium.org>2014-12-02 19:40:18 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2014-12-02 19:40:18 -0800
commitaf641a1c10f176cb9617026d3cc93c117a85d13d (patch)
treed655e0b8250823136d12be8ac638f5b5c9208fdb /src/pipe
parent1962f521a239a86417509c0628a99ac0b5ba0bc2 (diff)
Revert "Change clear() to respect the clip"
Diffstat (limited to 'src/pipe')
-rw-r--r--src/pipe/SkGPipeWrite.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/pipe/SkGPipeWrite.cpp b/src/pipe/SkGPipeWrite.cpp
index a5af6c7111..41b0234480 100644
--- a/src/pipe/SkGPipeWrite.cpp
+++ b/src/pipe/SkGPipeWrite.cpp
@@ -233,6 +233,7 @@ public:
// overrides from SkCanvas
virtual bool isDrawingToLayer() const SK_OVERRIDE;
+ virtual void clear(SkColor) SK_OVERRIDE;
virtual void drawPaint(const SkPaint& paint) SK_OVERRIDE;
virtual void drawPoints(PointMode, size_t count, const SkPoint pts[],
const SkPaint&) SK_OVERRIDE;
@@ -689,6 +690,20 @@ void SkGPipeCanvas::onClipRegion(const SkRegion& region, SkRegion::Op rgnOp) {
///////////////////////////////////////////////////////////////////////////////
+void SkGPipeCanvas::clear(SkColor color) {
+ NOTIFY_SETUP(this);
+ unsigned flags = 0;
+ if (color) {
+ flags |= kClear_HasColor_DrawOpFlag;
+ }
+ if (this->needOpBytes(sizeof(SkColor))) {
+ this->writeOp(kDrawClear_DrawOp, flags, 0);
+ if (color) {
+ fWriter.write32(color);
+ }
+ }
+}
+
void SkGPipeCanvas::drawPaint(const SkPaint& paint) {
NOTIFY_SETUP(this);
this->writePaint(paint);