Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(166)

Unified Diff: src/core/SkCanvas.cpp

Issue 583453002: SkCanvas::drawImage is the new way for drawing an SkImage to a Canvas (Closed) Base URL: https://skia.googlesource.com/skia.git@refactor_skImage
Patch Set: Make SkImage::draw public temporary for compatibility reasons Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « samplecode/SampleTextureDomain.cpp ('k') | src/gpu/GrRecordReplaceDraw.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/core/SkCanvas.cpp
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp
index dcc7047dbcee58ecf56d9d914a09b109afa3baeb..afd7fbef88bd82c97f7b9b6ced77e259209417cc 100644
--- a/src/core/SkCanvas.cpp
+++ b/src/core/SkCanvas.cpp
@@ -12,6 +12,7 @@
#include "SkDraw.h"
#include "SkDrawFilter.h"
#include "SkDrawLooper.h"
+#include "SkImage.h"
#include "SkMetaData.h"
#include "SkPathOps.h"
#include "SkPatchUtils.h"
@@ -183,7 +184,7 @@ public:
fFilter = NULL;
fLayer = NULL;
fTopLayer = NULL;
-
+
// don't bother initializing fNext
inc_rec();
}
@@ -192,7 +193,7 @@ public:
fFilter = SkSafeRef(prev.fFilter);
fLayer = NULL;
fTopLayer = prev.fTopLayer;
-
+
// don't bother initializing fNext
inc_rec();
}
@@ -292,7 +293,7 @@ public:
// can we be marked as simple?
fIsSimple = !fFilter && !fDoClearImageFilter;
}
-
+
uint32_t oldFlags = paint.getFlags();
fNewPaintFlags = filter_paint_flags(props, oldFlags);
if (fIsSimple && (fNewPaintFlags != oldFlags)) {
@@ -457,7 +458,7 @@ public:
SkNoPixelsBitmapDevice(int width, int height) : INHERITED(make_nopixels(width, height)) {}
private:
-
+
typedef SkBitmapDevice INHERITED;
};
@@ -466,7 +467,7 @@ SkCanvas::SkCanvas(int width, int height)
, fProps(SkSurfaceProps::kLegacyFontHost_InitType)
{
inc_canvas();
-
+
this->init(SkNEW_ARGS(SkNoPixelsBitmapDevice, (width, height)), kDefault_InitFlags)->unref();
}
@@ -475,7 +476,7 @@ SkCanvas::SkCanvas(int width, int height, InitFlags flags)
, fProps(SkSurfaceProps::kLegacyFontHost_InitType)
{
inc_canvas();
-
+
this->init(SkNEW_ARGS(SkNoPixelsBitmapDevice, (width, height)), flags)->unref();
}
@@ -484,7 +485,7 @@ SkCanvas::SkCanvas(SkBaseDevice* device, const SkSurfaceProps* props, InitFlags
, fProps(SkSurfacePropsCopyOrDefault(props))
{
inc_canvas();
-
+
this->init(device, flags);
}
@@ -493,7 +494,7 @@ SkCanvas::SkCanvas(SkBaseDevice* device)
, fProps(SkSurfaceProps::kLegacyFontHost_InitType)
{
inc_canvas();
-
+
this->init(device, kDefault_InitFlags);
}
@@ -502,7 +503,7 @@ SkCanvas::SkCanvas(const SkBitmap& bitmap, const SkSurfaceProps& props)
, fProps(props)
{
inc_canvas();
-
+
SkAutoTUnref<SkBaseDevice> device(SkNEW_ARGS(SkBitmapDevice, (bitmap)));
this->init(device, kDefault_InitFlags);
}
@@ -512,7 +513,7 @@ SkCanvas::SkCanvas(const SkBitmap& bitmap)
, fProps(SkSurfaceProps::kLegacyFontHost_InitType)
{
inc_canvas();
-
+
SkAutoTUnref<SkBaseDevice> device(SkNEW_ARGS(SkBitmapDevice, (bitmap)));
this->init(device, kDefault_InitFlags);
}
@@ -1885,6 +1886,17 @@ void SkCanvas::drawPath(const SkPath& path, const SkPaint& paint) {
LOOPER_END
}
+void SkCanvas::drawImage(const SkImage* image, SkScalar left, SkScalar top,
+ const SkPaint* paint) {
+ image->draw(this, left, top, paint);
+}
+
+void SkCanvas::drawImageRect(const SkImage* image, const SkRect* src,
+ const SkRect& dst,
+ const SkPaint* paint) {
+ image->draw(this, src, dst, paint);
+}
+
void SkCanvas::drawBitmap(const SkBitmap& bitmap, SkScalar x, SkScalar y,
const SkPaint* paint) {
SkDEBUGCODE(bitmap.validate();)
« no previous file with comments | « samplecode/SampleTextureDomain.cpp ('k') | src/gpu/GrRecordReplaceDraw.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698