remove SkDeviceFactory from the collective consciousness, now that devices know
how to create compatible siblings.
git-svn-id: http://skia.googlecode.com/svn/trunk@1808 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp
index d5a2d15..3c17351 100644
--- a/src/core/SkCanvas.cpp
+++ b/src/core/SkCanvas.cpp
@@ -419,17 +419,10 @@
return this->setDevice(device);
}
-SkCanvas::SkCanvas(SkDeviceFactory* factory)
- : fMCStack(sizeof(MCRec), fMCRecStorage, sizeof(fMCRecStorage)) {
+SkCanvas::SkCanvas()
+: fMCStack(sizeof(MCRec), fMCRecStorage, sizeof(fMCRecStorage)) {
inc_canvas();
-
- if (factory) {
- factory->ref();
- } else {
- factory = SkNEW(SkRasterDeviceFactory);
- }
- fDeviceFactory = factory;
-
+
this->init(NULL);
}
@@ -437,9 +430,6 @@
: fMCStack(sizeof(MCRec), fMCRecStorage, sizeof(fMCRecStorage)) {
inc_canvas();
- fDeviceFactory = device->getDeviceFactory();
- SkSafeRef(fDeviceFactory);
-
this->init(device);
}
@@ -447,11 +437,7 @@
: fMCStack(sizeof(MCRec), fMCRecStorage, sizeof(fMCRecStorage)) {
inc_canvas();
- SkDevice* device = SkNEW_ARGS(SkDevice, (bitmap));
- fDeviceFactory = device->getDeviceFactory();
- SkSafeRef(fDeviceFactory);
-
- this->init(device)->unref();
+ this->init(SkNEW_ARGS(SkDevice, (bitmap)))->unref();
}
SkCanvas::~SkCanvas() {
@@ -460,7 +446,6 @@
this->internalRestore(); // restore the last, since we're going away
SkSafeUnref(fBounder);
- SkSafeUnref(fDeviceFactory);
dec_canvas();
}
@@ -508,10 +493,6 @@
things like lock/unlock their pixels, etc.
*/
if (device) {
- // To mirror our (SkDevice*) constructor, we grab the factory from the
- // new device
- this->setDeviceFactory(device->getDeviceFactory());
-
device->lockPixels();
}
if (rootDevice) {
@@ -573,11 +554,6 @@
return device->readPixels(srcRect, bitmap);
}
-SkDeviceFactory* SkCanvas::setDeviceFactory(SkDeviceFactory* factory) {
- SkRefCnt_SafeAssign(fDeviceFactory, factory);
- return factory;
-}
-
//////////////////////////////////////////////////////////////////////////////
bool SkCanvas::readPixels(SkBitmap* bitmap) {
@@ -1185,13 +1161,12 @@
SkDevice* SkCanvas::createLayerDevice(SkBitmap::Config config,
int width, int height,
bool isOpaque) {
- if (fDeviceFactory) {
- return fDeviceFactory->newDevice(this, config, width, height,
- isOpaque, true);
+ SkDevice* device = this->getDevice();
+ if (device) {
+ return device->createCompatibleDeviceForSaveLayer(config, width, height,
+ isOpaque);
} else {
- return this->getDevice()->createCompatibleDeviceForSaveLayer(
- config, width, height,
- isOpaque);
+ return NULL;
}
}
@@ -1200,8 +1175,7 @@
bool isOpaque) {
SkDevice* device = this->getDevice();
if (device) {
- return device->createCompatibleDevice(config, width, height,
- isOpaque);
+ return device->createCompatibleDevice(config, width, height, isOpaque);
} else {
return NULL;
}