Revert "try to stop using exotic clipps"
This reverts commit 834653bcf80a3879c4d80004469053f205d45b69.
Change-Id: Ie8cb787490832a0be154ec1263313982157faa81
diff --git a/libs/hwui/pipeline/skia/SkiaPipeline.cpp b/libs/hwui/pipeline/skia/SkiaPipeline.cpp
index 4bd87d7..376346f 100644
--- a/libs/hwui/pipeline/skia/SkiaPipeline.cpp
+++ b/libs/hwui/pipeline/skia/SkiaPipeline.cpp
@@ -100,7 +100,7 @@
int saveCount = layerCanvas->save();
SkASSERT(saveCount == 1);
- layerCanvas->clipRect(layerDamage.toSkRect(), SkClipOp::kReplace_private_internal_do_not_use);
+ layerCanvas->clipRect(layerDamage.toSkRect(), SkClipOp::kReplace);
auto savedLightCenter = mLightCenter;
// map current light center into RenderNode's coordinate space
@@ -234,7 +234,7 @@
const std::vector<sp<RenderNode>>& nodes, bool opaque, const Rect &contentDrawBounds,
SkCanvas* canvas) {
- canvas->clipRect(clip, SkClipOp::kReplace_private_internal_do_not_use);
+ canvas->clipRect(clip, SkClipOp::kReplace);
if (!opaque) {
canvas->clear(SK_ColorTRANSPARENT);
diff --git a/libs/hwui/tests/unit/CanvasStateTests.cpp b/libs/hwui/tests/unit/CanvasStateTests.cpp
index 1469230..43974f6 100644
--- a/libs/hwui/tests/unit/CanvasStateTests.cpp
+++ b/libs/hwui/tests/unit/CanvasStateTests.cpp
@@ -74,7 +74,7 @@
state.clipRect(10, 10, 200, 200, SkClipOp::kIntersect);
ASSERT_EQ(state.getRenderTargetClipBounds(), Rect(10, 10, 100, 100));
- state.clipRect(50, 50, 150, 150, SkClipOp::kReplace_private_internal_do_not_use);
+ state.clipRect(50, 50, 150, 150, SkClipOp::kReplace);
ASSERT_EQ(state.getRenderTargetClipBounds(), Rect(50, 50, 150, 150));
}
diff --git a/libs/hwui/tests/unit/FrameBuilderTests.cpp b/libs/hwui/tests/unit/FrameBuilderTests.cpp
index fc6a4b5..21394ae 100644
--- a/libs/hwui/tests/unit/FrameBuilderTests.cpp
+++ b/libs/hwui/tests/unit/FrameBuilderTests.cpp
@@ -453,28 +453,20 @@
sk_sp<Bitmap> bitmap(TestUtils::createBitmap(20, 20));
// left side clipped (to inset left half)
- canvas.save(SaveFlags::MatrixClip);
- canvas.clipRect(10, 0, 50, 100, SkClipOp::kIntersect);
+ canvas.clipRect(10, 0, 50, 100, SkClipOp::kReplace);
canvas.drawBitmap(*bitmap, 0, 40, nullptr);
- canvas.restore();
// top side clipped (to inset top half)
- canvas.save(SaveFlags::MatrixClip);
- canvas.clipRect(0, 10, 100, 50, SkClipOp::kIntersect);
+ canvas.clipRect(0, 10, 100, 50, SkClipOp::kReplace);
canvas.drawBitmap(*bitmap, 40, 0, nullptr);
- canvas.restore();
// right side clipped (to inset right half)
- canvas.save(SaveFlags::MatrixClip);
- canvas.clipRect(50, 0, 90, 100, SkClipOp::kIntersect);
+ canvas.clipRect(50, 0, 90, 100, SkClipOp::kReplace);
canvas.drawBitmap(*bitmap, 80, 40, nullptr);
- canvas.restore();
// bottom not clipped, just abutting (inset bottom half)
- canvas.save(SaveFlags::MatrixClip);
- canvas.clipRect(0, 50, 100, 90, SkClipOp::kIntersect);
+ canvas.clipRect(0, 50, 100, 90, SkClipOp::kReplace);
canvas.drawBitmap(*bitmap, 40, 70, nullptr);
- canvas.restore();
});
FrameBuilder frameBuilder(SkRect::MakeWH(100, 100), 100, 100,
@@ -2260,7 +2252,7 @@
};
auto node = TestUtils::createNode<RecordingCanvas>(20, 20, 30, 30,
[](RenderProperties& props, RecordingCanvas& canvas) {
- canvas.clipRect(0, -20, 10, 30, SkClipOp::kReplace_private_internal_do_not_use);
+ canvas.clipRect(0, -20, 10, 30, SkClipOp::kReplace);
canvas.drawColor(SK_ColorWHITE, SkBlendMode::kSrcOver);
});
diff --git a/libs/hwui/tests/unit/RecordingCanvasTests.cpp b/libs/hwui/tests/unit/RecordingCanvasTests.cpp
index bc5a8075..4a73383 100644
--- a/libs/hwui/tests/unit/RecordingCanvasTests.cpp
+++ b/libs/hwui/tests/unit/RecordingCanvasTests.cpp
@@ -459,6 +459,9 @@
TEST(RecordingCanvas, saveLayer_viewportCrop) {
auto dl = TestUtils::createDisplayList<RecordingCanvas>(200, 200, [](RecordingCanvas& canvas) {
+ // shouldn't matter, since saveLayer will clip to its bounds
+ canvas.clipRect(-1000, -1000, 1000, 1000, SkClipOp::kReplace);
+
canvas.saveLayerAlpha(100, 100, 300, 300, 128, SaveFlags::ClipToLayer);
canvas.drawRect(0, 0, 400, 400, SkPaint());
canvas.restore();
@@ -635,7 +638,7 @@
TEST(RecordingCanvas, replaceClipIntersectWithRoot) {
auto dl = TestUtils::createDisplayList<RecordingCanvas>(100, 100, [](RecordingCanvas& canvas) {
canvas.save(SaveFlags::MatrixClip);
- canvas.clipRect(-10, -10, 110, 110, SkClipOp::kReplace_private_internal_do_not_use);
+ canvas.clipRect(-10, -10, 110, 110, SkClipOp::kReplace);
canvas.drawColor(SK_ColorWHITE, SkBlendMode::kSrcOver);
canvas.restore();
});
diff --git a/libs/hwui/tests/unit/SkiaPipelineTests.cpp b/libs/hwui/tests/unit/SkiaPipelineTests.cpp
index 22c0866..9e20498 100644
--- a/libs/hwui/tests/unit/SkiaPipelineTests.cpp
+++ b/libs/hwui/tests/unit/SkiaPipelineTests.cpp
@@ -339,7 +339,7 @@
std::vector<sp<RenderNode>> nodes;
nodes.push_back(TestUtils::createSkiaNode(20, 20, 30, 30,
[](RenderProperties& props, SkiaRecordingCanvas& canvas) {
- canvas.clipRect(0, -20, 10, 30, SkClipOp::kReplace_private_internal_do_not_use);
+ canvas.clipRect(0, -20, 10, 30, SkClipOp::kReplace);
canvas.drawColor(SK_ColorWHITE, SkBlendMode::kSrcOver);
}));
diff --git a/libs/hwui/utils/TestWindowContext.cpp b/libs/hwui/utils/TestWindowContext.cpp
index 91efa30..8b80d69 100644
--- a/libs/hwui/utils/TestWindowContext.cpp
+++ b/libs/hwui/utils/TestWindowContext.cpp
@@ -89,15 +89,11 @@
mProxy->setup(800.0f, 255 * 0.075f, 255 * 0.15f);
mProxy->setLightCenter(lightVector);
mCanvas.reset(new android::uirenderer::RecordingCanvas(mSize.width(), mSize.height()));
-
- mCanvas->save(SaveFlags::MatrixClip); // balanced in prepareToDraw()
}
SkCanvas* prepareToDraw() {
//mCanvas->reset(mSize.width(), mSize.height());
- mCanvas->restore(); // balancing inital save in constructor
- mCanvas->save(SaveFlags::MatrixClip);
- mCanvas->clipRect(0, 0, mSize.width(), mSize.height(), SkClipOp::kIntersect);
+ mCanvas->clipRect(0, 0, mSize.width(), mSize.height(), SkClipOp::kReplace);
return mCanvas->asSkCanvas();
}