Revert of remove drawSprite from canvas (patchset #4 id:60001 of https://codereview.chromium.org/1534443003/ )
Reason for revert:
need to remove an override in chrome
Original issue's description:
> remove drawSprite from canvas
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/4657ce2324ea197507c4ba728d81138f56da13b1
TBR=fmalita@chromium.org,robertphillips@google.com,senorblanco@chromium.org,mtklein@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review URL: https://codereview.chromium.org/1529803004
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp
index 414e94e..8143756 100644
--- a/src/core/SkCanvas.cpp
+++ b/src/core/SkCanvas.cpp
@@ -1441,8 +1441,36 @@
LOOPER_END
}
-/////////////////////////////////////////////////////////////////////////////
+void SkCanvas::onDrawSprite(const SkBitmap& bitmap, int x, int y, const SkPaint* paint) {
+ if (gTreatSpriteAsBitmap) {
+ this->save();
+ this->resetMatrix();
+ this->drawBitmap(bitmap, SkIntToScalar(x), SkIntToScalar(y), paint);
+ this->restore();
+ return;
+ }
+ TRACE_EVENT0("disabled-by-default-skia", "SkCanvas::drawSprite()");
+ if (bitmap.drawsNothing()) {
+ return;
+ }
+ SkDEBUGCODE(bitmap.validate();)
+
+ SkPaint tmp;
+ if (nullptr == paint) {
+ paint = &tmp;
+ }
+
+ LOOPER_BEGIN_DRAWDEVICE(*paint, SkDrawFilter::kBitmap_Type)
+
+ while (iter.next()) {
+ const SkIPoint pos = { x - iter.getX(), y - iter.getY() };
+ iter.fDevice->drawBitmapAsSprite(iter, bitmap, pos.x(), pos.y(), looper.paint());
+ }
+ LOOPER_END
+}
+
+/////////////////////////////////////////////////////////////////////////////
void SkCanvas::translate(SkScalar dx, SkScalar dy) {
SkMatrix m;
m.setTranslate(dx, dy);
@@ -1985,6 +2013,13 @@
this->onDrawBitmapNine(bitmap, center, dst, paint);
}
+void SkCanvas::drawSprite(const SkBitmap& bitmap, int left, int top, const SkPaint* paint) {
+ if (bitmap.drawsNothing()) {
+ return;
+ }
+ this->onDrawSprite(bitmap, left, top, paint);
+}
+
void SkCanvas::drawAtlas(const SkImage* atlas, const SkRSXform xform[], const SkRect tex[],
const SkColor colors[], int count, SkXfermode::Mode mode,
const SkRect* cull, const SkPaint* paint) {