diff options
Diffstat (limited to 'src/utils/SkDeferredCanvas.cpp')
-rw-r--r-- | src/utils/SkDeferredCanvas.cpp | 59 |
1 files changed, 7 insertions, 52 deletions
diff --git a/src/utils/SkDeferredCanvas.cpp b/src/utils/SkDeferredCanvas.cpp index 7e4539a5a7..d5cf97bd04 100644 --- a/src/utils/SkDeferredCanvas.cpp +++ b/src/utils/SkDeferredCanvas.cpp @@ -32,17 +32,10 @@ enum PlaybackMode { kSilent_PlaybackMode, }; -static uint64_t image_area(const SkImage* image) { - return sk_64_mul(image->width(), image->height()); -} - -static bool should_draw_immediately(const SkBitmap* bitmap, const SkImage* image, - const SkPaint* paint, size_t bitmapSizeThreshold) { +static bool should_draw_immediately(const SkBitmap* bitmap, const SkPaint* paint, + size_t bitmapSizeThreshold) { if (bitmap && ((bitmap->getTexture() && !bitmap->isImmutable()) || - (bitmap->getSize() > bitmapSizeThreshold))) { - return true; - } - if (image && (image_area(image) > bitmapSizeThreshold)) { + (bitmap->getSize() > bitmapSizeThreshold))) { return true; } if (paint) { @@ -209,11 +202,6 @@ protected: void drawSprite(const SkDraw&, const SkBitmap& bitmap, int x, int y, const SkPaint& paint) override {SkASSERT(0);} - void drawImage(const SkDraw&, const SkImage*, SkScalar, SkScalar, const SkPaint&) override - {SkASSERT(0);} - void drawImageRect(const SkDraw&, const SkImage*, const SkRect*, const SkRect&, - const SkPaint&) override - {SkASSERT(0);} void drawText(const SkDraw&, const void* text, size_t len, SkScalar x, SkScalar y, const SkPaint& paint) override {SkASSERT(0);} @@ -493,15 +481,11 @@ class AutoImmediateDrawIfNeeded { public: AutoImmediateDrawIfNeeded(SkDeferredCanvas& canvas, const SkBitmap* bitmap, const SkPaint* paint) { - this->init(canvas, bitmap, NULL, paint); - } - AutoImmediateDrawIfNeeded(SkDeferredCanvas& canvas, const SkImage* image, - const SkPaint* paint) { - this->init(canvas, NULL, image, paint); + this->init(canvas, bitmap, paint); } AutoImmediateDrawIfNeeded(SkDeferredCanvas& canvas, const SkPaint* paint) { - this->init(canvas, NULL, NULL, paint); + this->init(canvas, NULL, paint); } ~AutoImmediateDrawIfNeeded() { @@ -510,10 +494,9 @@ public: } } private: - void init(SkDeferredCanvas& canvas, const SkBitmap* bitmap, const SkImage* image, - const SkPaint* paint) { + void init(SkDeferredCanvas& canvas, const SkBitmap* bitmap, const SkPaint* paint) { if (canvas.isDeferredDrawing() && - should_draw_immediately(bitmap, image, paint, canvas.getBitmapSizeThreshold())) { + should_draw_immediately(bitmap, paint, canvas.getBitmapSizeThreshold())) { canvas.setDeferredDrawing(false); fCanvas = &canvas; } else { @@ -853,34 +836,6 @@ void SkDeferredCanvas::onDrawBitmapRect(const SkBitmap& bitmap, const SkRect* sr this->recordedDrawCommand(); } - -void SkDeferredCanvas::onDrawImage(const SkImage* image, SkScalar x, SkScalar y, - const SkPaint* paint) { - SkRect bounds = SkRect::MakeXYWH(x, y, - SkIntToScalar(image->width()), SkIntToScalar(image->height())); - if (fDeferredDrawing && - this->isFullFrame(&bounds, paint) && - isPaintOpaque(paint, image)) { - this->getDeferredDevice()->skipPendingCommands(); - } - - AutoImmediateDrawIfNeeded autoDraw(*this, image, paint); - this->drawingCanvas()->drawImage(image, x, y, paint); - this->recordedDrawCommand(); -} -void SkDeferredCanvas::onDrawImageRect(const SkImage* image, const SkRect* src, const SkRect& dst, - const SkPaint* paint) { - if (fDeferredDrawing && - this->isFullFrame(&dst, paint) && - isPaintOpaque(paint, image)) { - this->getDeferredDevice()->skipPendingCommands(); - } - - AutoImmediateDrawIfNeeded autoDraw(*this, image, paint); - this->drawingCanvas()->drawImageRect(image, src, dst, paint); - this->recordedDrawCommand(); -} - void SkDeferredCanvas::onDrawBitmapNine(const SkBitmap& bitmap, const SkIRect& center, const SkRect& dst, const SkPaint* paint) { |