RESTRICT AUTOMERGE Add 1/16th pixel offset when drawing non-AA points/lines
This nudge ensures that pixel-aligned non-AA'd draws fill the desired
fragment.
Coupled with http://review.skia.org/665816, we're moving this logic from
Skia to Android so that the prerotation matrix can be properly accounted
for. Offseting only in Skia without accounting for prerotation meant
the device-space Y offset could be applied in the wrong direction when
using Vulkan.
Equivalent change in T: Idfb5027fe3230f2c2b0cad224f2c7640e147ce4a
Bug: 254771190
Test: android.uirendering.cts.testclasses.ExactCanvasTests#testDrawLine
Change-Id: I975b62510a36312a395d1e254474bca726a9445d
(cherry picked from commit 7f785ebd57cf129bb39e89237fba541912ce3649)
diff --git a/libs/hwui/renderthread/CanvasContext.cpp b/libs/hwui/renderthread/CanvasContext.cpp
index 6b2c995..1b9d41a7 100644
--- a/libs/hwui/renderthread/CanvasContext.cpp
+++ b/libs/hwui/renderthread/CanvasContext.cpp
@@ -871,6 +871,10 @@
return size;
}
+const SkM44& CanvasContext::getPixelSnapMatrix() const {
+ return mRenderPipeline->getPixelSnapMatrix();
+}
+
void CanvasContext::prepareAndDraw(RenderNode* node) {
ATRACE_CALL();