OLD | NEW |
1 | 1 |
2 /* | 2 /* |
3 * Copyright 2013 Google Inc. | 3 * Copyright 2013 Google Inc. |
4 * | 4 * |
5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
7 */ | 7 */ |
8 | 8 |
9 #include "SkDeferredCanvas.h" | 9 #include "SkDeferredCanvas.h" |
10 | 10 |
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
222 SkCanvas::DrawBitmapRectFlags) override | 222 SkCanvas::DrawBitmapRectFlags) override |
223 {SkASSERT(0);} | 223 {SkASSERT(0);} |
224 void drawSprite(const SkDraw&, const SkBitmap& bitmap, | 224 void drawSprite(const SkDraw&, const SkBitmap& bitmap, |
225 int x, int y, const SkPaint& paint) override | 225 int x, int y, const SkPaint& paint) override |
226 {SkASSERT(0);} | 226 {SkASSERT(0);} |
227 void drawImage(const SkDraw&, const SkImage*, SkScalar, SkScalar, const SkPa
int&) override | 227 void drawImage(const SkDraw&, const SkImage*, SkScalar, SkScalar, const SkPa
int&) override |
228 {SkASSERT(0);} | 228 {SkASSERT(0);} |
229 void drawImageRect(const SkDraw&, const SkImage*, const SkRect*, const SkRec
t&, | 229 void drawImageRect(const SkDraw&, const SkImage*, const SkRect*, const SkRec
t&, |
230 const SkPaint&) override | 230 const SkPaint&) override |
231 {SkASSERT(0);} | 231 {SkASSERT(0);} |
| 232 void drawImageNine(const SkDraw&, const SkImage*, const SkIRect&, const SkRe
ct&, |
| 233 const SkPaint&) override |
| 234 {SkASSERT(0);} |
232 void drawText(const SkDraw&, const void* text, size_t len, | 235 void drawText(const SkDraw&, const void* text, size_t len, |
233 SkScalar x, SkScalar y, const SkPaint& paint) override | 236 SkScalar x, SkScalar y, const SkPaint& paint) override |
234 {SkASSERT(0);} | 237 {SkASSERT(0);} |
235 void drawPosText(const SkDraw&, const void* text, size_t len, | 238 void drawPosText(const SkDraw&, const void* text, size_t len, |
236 const SkScalar pos[], int scalarsPerPos, | 239 const SkScalar pos[], int scalarsPerPos, |
237 const SkPoint& offset, const SkPaint& paint) override | 240 const SkPoint& offset, const SkPaint& paint) override |
238 {SkASSERT(0);} | 241 {SkASSERT(0);} |
239 void drawTextOnPath(const SkDraw&, const void* text, | 242 void drawTextOnPath(const SkDraw&, const void* text, |
240 size_t len, const SkPath& path, | 243 size_t len, const SkPath& path, |
241 const SkMatrix* matrix, | 244 const SkMatrix* matrix, |
(...skipping 654 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
896 this->isFullFrame(&dst, paint) && | 899 this->isFullFrame(&dst, paint) && |
897 isPaintOpaque(paint, image)) { | 900 isPaintOpaque(paint, image)) { |
898 this->getDeferredDevice()->skipPendingCommands(); | 901 this->getDeferredDevice()->skipPendingCommands(); |
899 } | 902 } |
900 | 903 |
901 AutoImmediateDrawIfNeeded autoDraw(*this, image, paint); | 904 AutoImmediateDrawIfNeeded autoDraw(*this, image, paint); |
902 this->drawingCanvas()->drawImageRect(image, src, dst, paint); | 905 this->drawingCanvas()->drawImageRect(image, src, dst, paint); |
903 this->recordedDrawCommand(); | 906 this->recordedDrawCommand(); |
904 } | 907 } |
905 | 908 |
| 909 void SkDeferredCanvas::onDrawImageNine(const SkImage* image, const SkIRect& cent
er, |
| 910 const SkRect& dst, const SkPaint* paint)
{ |
| 911 if (fDeferredDrawing && |
| 912 this->isFullFrame(&dst, paint) && |
| 913 isPaintOpaque(paint, image)) { |
| 914 this->getDeferredDevice()->skipPendingCommands(); |
| 915 } |
| 916 |
| 917 AutoImmediateDrawIfNeeded autoDraw(*this, image, paint); |
| 918 this->drawingCanvas()->drawImageNine(image, center, dst, paint); |
| 919 this->recordedDrawCommand(); |
| 920 } |
| 921 |
906 void SkDeferredCanvas::onDrawBitmapNine(const SkBitmap& bitmap, | 922 void SkDeferredCanvas::onDrawBitmapNine(const SkBitmap& bitmap, |
907 const SkIRect& center, const SkRect& dst
, | 923 const SkIRect& center, const SkRect& dst
, |
908 const SkPaint* paint) { | 924 const SkPaint* paint) { |
909 // TODO: reset recording canvas if paint+bitmap is opaque and clip rect | 925 // TODO: reset recording canvas if paint+bitmap is opaque and clip rect |
910 // covers canvas entirely and dst covers canvas entirely | 926 // covers canvas entirely and dst covers canvas entirely |
911 AutoImmediateDrawIfNeeded autoDraw(*this, &bitmap, paint); | 927 AutoImmediateDrawIfNeeded autoDraw(*this, &bitmap, paint); |
912 this->drawingCanvas()->drawBitmapNine(bitmap, center, dst, paint); | 928 this->drawingCanvas()->drawBitmapNine(bitmap, center, dst, paint); |
913 this->recordedDrawCommand(); | 929 this->recordedDrawCommand(); |
914 } | 930 } |
915 | 931 |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1004 SkDrawFilter* SkDeferredCanvas::setDrawFilter(SkDrawFilter* filter) { | 1020 SkDrawFilter* SkDeferredCanvas::setDrawFilter(SkDrawFilter* filter) { |
1005 this->drawingCanvas()->setDrawFilter(filter); | 1021 this->drawingCanvas()->setDrawFilter(filter); |
1006 this->INHERITED::setDrawFilter(filter); | 1022 this->INHERITED::setDrawFilter(filter); |
1007 this->recordedDrawCommand(); | 1023 this->recordedDrawCommand(); |
1008 return filter; | 1024 return filter; |
1009 } | 1025 } |
1010 | 1026 |
1011 SkCanvas* SkDeferredCanvas::canvasForDrawIter() { | 1027 SkCanvas* SkDeferredCanvas::canvasForDrawIter() { |
1012 return this->drawingCanvas(); | 1028 return this->drawingCanvas(); |
1013 } | 1029 } |
OLD | NEW |