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

Unified Diff: src/utils/SkDeferredCanvas.cpp

Issue 16040002: Changing SkDeferredCanvas to use factories for creation (Closed) Base URL: http://skia.googlecode.com/svn/trunk/
Patch Set: Created 7 years, 7 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
Index: src/utils/SkDeferredCanvas.cpp
===================================================================
--- src/utils/SkDeferredCanvas.cpp (revision 9282)
+++ src/utils/SkDeferredCanvas.cpp (working copy)
@@ -527,6 +527,8 @@
SkDeferredCanvas* fCanvas;
};
+#if !SK_DEFERRED_CANVAS_USES_FACTORIES
+
SkDeferredCanvas::SkDeferredCanvas() {
this->init();
}
@@ -541,6 +543,23 @@
this->INHERITED::setDevice(SkNEW_ARGS(DeferredDevice, (surface)))->unref();
}
+#else // SK_DEFERRED_CANVAS_USES_FACTORIES
+
+SkDeferredCanvas* SkDeferredCanvas::create(SkDevice* device) {
+ SkAutoTUnref<DeferredDevice> deferredDevice(SkNEW_ARGS(DeferredDevice, (device)));
+ return SkNEW_ARGS(SkDeferredCanvas, (deferredDevice));
+}
+
+SkDeferredCanvas* SkDeferredCanvas::create(SkSurface* surface) {
+ SkAutoTUnref<DeferredDevice> deferredDevice(SkNEW_ARGS(DeferredDevice, (surface)));
+ return SkNEW_ARGS(SkDeferredCanvas, (deferredDevice));
+}
+
+SkDeferredCanvas::SkDeferredCanvas(DeferredDevice* device) : SkCanvas (device) {
+ this->init();
+}
+#endif
+
void SkDeferredCanvas::init() {
fDeferredDrawing = true; // On by default
}
@@ -622,20 +641,21 @@
}
SkDevice* SkDeferredCanvas::setDevice(SkDevice* device) {
+#if SK_DEFERRED_CANVAS_USES_FACTORIES
+ SkASSERT(0); // setDevice is deprecated
+#else
this->INHERITED::setDevice(SkNEW_ARGS(DeferredDevice, (device)))->unref();
+#endif
return device;
}
SkSurface* SkDeferredCanvas::setSurface(SkSurface* surface) {
DeferredDevice* deferredDevice = this->getDeferredDevice();
- if (NULL != deferredDevice) {
- // By swapping the surface into the existing device, we preserve
- // all pending commands, which can help to seamlessly recover from
- // a lost accelerated graphics context.
- deferredDevice->setSurface(surface);
- } else {
- this->INHERITED::setDevice(SkNEW_ARGS(DeferredDevice, (surface)))->unref();
- }
+ SkASSERT(NULL != deferredDevice);
+ // By swapping the surface into the existing device, we preserve
+ // all pending commands, which can help to seamlessly recover from
+ // a lost accelerated graphics context.
+ deferredDevice->setSurface(surface);
return surface;
}

Powered by Google App Engine
This is Rietveld 408576698