aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Yuqian Li <liyuqian@google.com>2016-11-21 09:44:59 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2016-11-21 15:18:37 +0000
commit99bba9ea829323a7941d4f3a9c98da7a76432d1b (patch)
tree6d263012989c28e154fc8e95726974099228cf00 /src
parent7992da32f02f90e0ac9ab6914eb31676b502eb71 (diff)
Add missing virtual functions for SkRectClipCheckBlitter
This CL is related to the issue that we tried to fix in https://skia-review.googlesource.com/c/5078/ Specifically, SkARGB32_Blitter overrides blitAntiH2 and blitAntiV2 and they're different from blitAntiRuns. Therefore, if SkRectClipCheckBlitter does not override those two functions, we're going to get different results in debug and release build. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=5082 Change-Id: I7f9565d494f0a6c45ab5a06fbedb73ef233b9a1f Reviewed-on: https://skia-review.googlesource.com/5082 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Yuqian Li <liyuqian@google.com>
Diffstat (limited to 'src')
-rw-r--r--src/core/SkBlitter.cpp10
-rw-r--r--src/core/SkBlitter.h2
-rw-r--r--src/core/SkScanPriv.h2
-rw-r--r--src/core/SkScan_Path.cpp8
4 files changed, 17 insertions, 5 deletions
diff --git a/src/core/SkBlitter.cpp b/src/core/SkBlitter.cpp
index af3cc04932..731d0d3cb7 100644
--- a/src/core/SkBlitter.cpp
+++ b/src/core/SkBlitter.cpp
@@ -1070,4 +1070,14 @@ const SkPixmap* SkRectClipCheckBlitter::justAnOpaqueColor(uint32_t* value) {
return fBlitter->justAnOpaqueColor(value);
}
+void SkRectClipCheckBlitter::blitAntiH2(int x, int y, U8CPU a0, U8CPU a1) {
+ SkASSERT(fClipRect.contains(SkIRect::MakeXYWH(x, y, 2, 1)));
+ fBlitter->blitAntiH2(x, y, a0, a1);
+}
+
+void SkRectClipCheckBlitter::blitAntiV2(int x, int y, U8CPU a0, U8CPU a1) {
+ SkASSERT(fClipRect.contains(SkIRect::MakeXYWH(x, y, 1, 2)));
+ fBlitter->blitAntiV2(x, y, a0, a1);
+}
+
#endif
diff --git a/src/core/SkBlitter.h b/src/core/SkBlitter.h
index c9fed1ce22..f03a308243 100644
--- a/src/core/SkBlitter.h
+++ b/src/core/SkBlitter.h
@@ -258,6 +258,8 @@ public:
SkAlpha leftAlpha, SkAlpha rightAlpha) override;
void blitMask(const SkMask&, const SkIRect& clip) override;
const SkPixmap* justAnOpaqueColor(uint32_t* value) override;
+ void blitAntiH2(int x, int y, U8CPU a0, U8CPU a1) override;
+ void blitAntiV2(int x, int y, U8CPU a0, U8CPU a1) override;
int requestRowsPreserved() const override {
return fBlitter->requestRowsPreserved();
diff --git a/src/core/SkScanPriv.h b/src/core/SkScanPriv.h
index af0a4cbd3f..4c237e004b 100644
--- a/src/core/SkScanPriv.h
+++ b/src/core/SkScanPriv.h
@@ -24,7 +24,7 @@ private:
SkRectClipBlitter fRectBlitter;
SkRgnClipBlitter fRgnBlitter;
#ifdef SK_DEBUG
- // SkRectClipCheckBlitter fRectClipCheckBlitter;
+ SkRectClipCheckBlitter fRectClipCheckBlitter;
#endif
SkBlitter* fBlitter;
const SkIRect* fClipRect;
diff --git a/src/core/SkScan_Path.cpp b/src/core/SkScan_Path.cpp
index bf8f32080d..ec0fe06b66 100644
--- a/src/core/SkScan_Path.cpp
+++ b/src/core/SkScan_Path.cpp
@@ -559,8 +559,8 @@ SkScanClipper::SkScanClipper(SkBlitter* blitter, const SkRegion* clip,
if (clip->isRect()) {
if (fClipRect->contains(ir)) {
#ifdef SK_DEBUG
- // fRectClipCheckBlitter.init(blitter, *fClipRect);
- // blitter = &fRectClipCheckBlitter;
+ fRectClipCheckBlitter.init(blitter, *fClipRect);
+ blitter = &fRectClipCheckBlitter;
#endif
fClipRect = nullptr;
} else {
@@ -570,8 +570,8 @@ SkScanClipper::SkScanClipper(SkBlitter* blitter, const SkRegion* clip,
blitter = &fRectBlitter;
} else {
#ifdef SK_DEBUG
- // fRectClipCheckBlitter.init(blitter, *fClipRect);
- // blitter = &fRectClipCheckBlitter;
+ fRectClipCheckBlitter.init(blitter, *fClipRect);
+ blitter = &fRectClipCheckBlitter;
#endif
}
}