aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu
diff options
context:
space:
mode:
authorGravatar Florin Malita <fmalita@chromium.org>2017-04-28 13:48:37 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-05-01 14:07:10 +0000
commit53f77bd4fdd76525b66b7f26d1c5c550858120df (patch)
treed7516fa1c29a35a3e6b62aae82f3bb6e72928cf4 /src/gpu
parent57061eea444a8d85189827f014a451de63b49d1a (diff)
Initial clip-mask-layer support
SkBitmapDevice-only implementation. Will add A8 fast path specializations in a follow-up. Change-Id: I2ccb1ffba3689e92ac90a23e94737471dfb121a1 BUG=skia:6005 Change-Id: I2ccb1ffba3689e92ac90a23e94737471dfb121a1 Reviewed-on: https://skia-review.googlesource.com/14183 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
Diffstat (limited to 'src/gpu')
-rw-r--r--src/gpu/SkGpuDevice.cpp11
-rw-r--r--src/gpu/SkGpuDevice.h4
2 files changed, 8 insertions, 7 deletions
diff --git a/src/gpu/SkGpuDevice.cpp b/src/gpu/SkGpuDevice.cpp
index 2d3178c4af..19d9185119 100644
--- a/src/gpu/SkGpuDevice.cpp
+++ b/src/gpu/SkGpuDevice.cpp
@@ -1125,17 +1125,18 @@ void SkGpuDevice::drawSprite(const SkBitmap& bitmap,
return;
}
- this->drawSpecial(srcImg.get(), left, top, paint);
+ this->drawSpecial(srcImg.get(), left, top, paint, nullptr, SkMatrix::I());
}
-void SkGpuDevice::drawSpecial(SkSpecialImage* special1,
- int left, int top,
- const SkPaint& paint) {
+void SkGpuDevice::drawSpecial(SkSpecialImage* special1, int left, int top, const SkPaint& paint,
+ SkImage* clipImage,const SkMatrix& clipMatrix) {
ASSERT_SINGLE_OWNER
CHECK_SHOULD_DRAW();
GR_CREATE_TRACE_MARKER_CONTEXT("SkGpuDevice", "drawSpecial", fContext.get());
+ // TODO: clipImage support.
+
SkIPoint offset = { 0, 0 };
sk_sp<SkSpecialImage> result;
@@ -1354,7 +1355,7 @@ void SkGpuDevice::drawDevice(SkBaseDevice* device,
return;
}
- this->drawSpecial(srcImg.get(), left, top, paint);
+ this->drawSpecial(srcImg.get(), left, top, paint, nullptr, SkMatrix::I());
}
void SkGpuDevice::drawImage(const SkImage* image, SkScalar x, SkScalar y,
diff --git a/src/gpu/SkGpuDevice.h b/src/gpu/SkGpuDevice.h
index 4558c1b17a..340f39a072 100644
--- a/src/gpu/SkGpuDevice.h
+++ b/src/gpu/SkGpuDevice.h
@@ -110,8 +110,8 @@ public:
void drawBitmapLattice(const SkBitmap&, const SkCanvas::Lattice&,
const SkRect& dst, const SkPaint&) override;
- void drawSpecial(SkSpecialImage*,
- int left, int top, const SkPaint& paint) override;
+ void drawSpecial(SkSpecialImage*, int left, int top, const SkPaint& paint,
+ SkImage*, const SkMatrix&) override;
sk_sp<SkSpecialImage> makeSpecial(const SkBitmap&) override;
sk_sp<SkSpecialImage> makeSpecial(const SkImage*) override;
sk_sp<SkSpecialImage> snapSpecial() override;