summaryrefslogtreecommitdiff
path: root/libs/hwui/OpenGLRenderer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libs/hwui/OpenGLRenderer.cpp')
-rw-r--r--libs/hwui/OpenGLRenderer.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp
index 1afeaf0a0444..34d1c983f87d 100644
--- a/libs/hwui/OpenGLRenderer.cpp
+++ b/libs/hwui/OpenGLRenderer.cpp
@@ -1368,6 +1368,12 @@ void OpenGLRenderer::setStencilFromClip() {
drawRegionRects(*mSnapshot->clipRegion, 0xff000000, SkXfermode::kSrc_Mode, false);
mCaches.stencil.enableTest();
+
+ // Draw the region used to generate the stencil if the appropriate debug
+ // mode is enabled
+ if (mCaches.debugStencilClip == Caches::kStencilShowRegion) {
+ drawRegionRects(*mSnapshot->clipRegion, 0x7f0000ff, SkXfermode::kSrcOver_Mode);
+ }
} else {
mCaches.stencil.disable();
}
@@ -1515,12 +1521,20 @@ void OpenGLRenderer::setupDraw(bool clear) {
}
setStencilFromClip();
}
+
mDescription.reset();
+
mSetShaderColor = false;
mColorSet = false;
mColorA = mColorR = mColorG = mColorB = 0.0f;
mTextureUnit = 0;
mTrackDirtyRegions = true;
+
+ // Enable debug highlight when what we're about to draw is tested against
+ // the stencil buffer and if stencil highlight debugging is on
+ mDescription.hasDebugHighlight = !mCaches.debugOverdraw &&
+ mCaches.debugStencilClip == Caches::kStencilShowHighlight &&
+ mCaches.stencil.isTestEnabled();
}
void OpenGLRenderer::setupDrawWithTexture(bool isAlpha8) {