Quick reject empty paths
bug:7260035
Adding a circle of radius 0 to a path is a no-op in skia, so detect
this case both in the PathRenderer, and in quickReject().
Change-Id: I7a172db49a5d5351b4734b39d4e4ca6379658096
diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp
index c015077..c2e6ee3 100644
--- a/libs/hwui/OpenGLRenderer.cpp
+++ b/libs/hwui/OpenGLRenderer.cpp
@@ -1265,7 +1265,7 @@
}
bool OpenGLRenderer::quickReject(float left, float top, float right, float bottom) {
- if (mSnapshot->isIgnored()) {
+ if (mSnapshot->isIgnored() || bottom <= top || right <= left) {
return true;
}
@@ -1951,6 +1951,11 @@
// TODO: try clipping large paths to viewport
PathRenderer::convexPathVertices(path, paint, mSnapshot->transform, vertexBuffer);
+ if (!vertexBuffer.getSize()) {
+ // no vertices to draw
+ return;
+ }
+
setupDraw();
setupDrawNoTexture();
if (isAA) setupDrawAA();