diff options
| author | 2015-03-05 10:30:18 -0500 | |
|---|---|---|
| committer | 2015-03-05 10:31:52 -0500 | |
| commit | b1476ae7d515d6c406b4367cfb4ada8ce2d116e1 (patch) | |
| tree | 59b045cf8bd439eeea6148a585722d7333f9719b /libs/hwui/SkiaCanvasProxy.cpp | |
| parent | 445e1c5ddda15c7118e4b52f9c7a7c77267efb34 (diff) | |
Fix bug, change crashes to warnings
Improve behavior when we get a call to draw 0 points.
Replace one ALWAYS_FATAL statements with noop.
Change-Id: I864b7a9633dfa3dc6eefa403beca4cc7ae14074f
Diffstat (limited to 'libs/hwui/SkiaCanvasProxy.cpp')
| -rw-r--r-- | libs/hwui/SkiaCanvasProxy.cpp | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/libs/hwui/SkiaCanvasProxy.cpp b/libs/hwui/SkiaCanvasProxy.cpp index 3c6570508546..ec1bb909e6f9 100644 --- a/libs/hwui/SkiaCanvasProxy.cpp +++ b/libs/hwui/SkiaCanvasProxy.cpp @@ -22,9 +22,10 @@ namespace android { namespace uirenderer { -SkiaCanvasProxy::SkiaCanvasProxy(Canvas* canvas) +SkiaCanvasProxy::SkiaCanvasProxy(Canvas* canvas, bool filterHwuiCalls) : INHERITED(canvas->width(), canvas->height()) - , mCanvas(canvas) {} + , mCanvas(canvas) + , mFilterHwuiCalls(filterHwuiCalls) {} void SkiaCanvasProxy::onDrawPaint(const SkPaint& paint) { mCanvas->drawPaint(paint); @@ -32,6 +33,10 @@ void SkiaCanvasProxy::onDrawPaint(const SkPaint& paint) { void SkiaCanvasProxy::onDrawPoints(PointMode pointMode, size_t count, const SkPoint pts[], const SkPaint& paint) { + if (!pts || count == 0) { + return; + } + // convert the SkPoints into floats SK_COMPILE_ASSERT(sizeof(SkPoint) == sizeof(float)*2, SkPoint_is_no_longer_2_floats); const size_t floatCount = count << 1; @@ -118,6 +123,9 @@ void SkiaCanvasProxy::onDrawSprite(const SkBitmap& bitmap, int left, int top, void SkiaCanvasProxy::onDrawVertices(VertexMode mode, int vertexCount, const SkPoint vertices[], const SkPoint texs[], const SkColor colors[], SkXfermode*, const uint16_t indices[], int indexCount, const SkPaint& paint) { + if (mFilterHwuiCalls) { + return; + } // convert the SkPoints into floats SK_COMPILE_ASSERT(sizeof(SkPoint) == sizeof(float)*2, SkPoint_is_no_longer_2_floats); const int floatCount = vertexCount << 1; @@ -312,6 +320,9 @@ void SkiaCanvasProxy::onDrawTextBlob(const SkTextBlob* blob, SkScalar x, SkScala void SkiaCanvasProxy::onDrawPatch(const SkPoint cubics[12], const SkColor colors[4], const SkPoint texCoords[4], SkXfermode* xmode, const SkPaint& paint) { + if (mFilterHwuiCalls) { + return; + } SkPatchUtils::VertexData data; SkMatrix matrix; |