Move the device capability method to SkDevice.
These are not the capabilities of the factory, but of the device. Additionally, it is more often needed when you have a device then when you have a factory, which caused creating of a new factory.
Review URL: http://codereview.appspot.com/2720041
git-svn-id: http://skia.googlecode.com/svn/trunk@618 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp
index bb8c2be..5a855bb 100644
--- a/src/core/SkCanvas.cpp
+++ b/src/core/SkCanvas.cpp
@@ -536,8 +536,7 @@
//////////////////////////////////////////////////////////////////////////////
bool SkCanvas::getViewport(SkIPoint* size) const {
- if ((fDeviceFactory->getDeviceCapabilities()
- & SkDeviceFactory::kGL_Capability) == 0)
+ if ((getDevice()->getDeviceCapabilities() & SkDevice::kGL_Capability) == 0)
return false;
if (size)
size->set(getDevice()->width(), getDevice()->height());
@@ -545,8 +544,7 @@
}
bool SkCanvas::setViewport(int width, int height) {
- if ((fDeviceFactory->getDeviceCapabilities()
- & SkDeviceFactory::kGL_Capability) == 0)
+ if ((getDevice()->getDeviceCapabilities() & SkDevice::kGL_Capability) == 0)
return false;
this->setDevice(createDevice(SkBitmap::kARGB_8888_Config, width, height,
false, false))->unref();
diff --git a/src/gl/SkGLDevice.h b/src/gl/SkGLDevice.h
index 61916c1..a939b07 100644
--- a/src/gl/SkGLDevice.h
+++ b/src/gl/SkGLDevice.h
@@ -15,7 +15,6 @@
public:
virtual SkDevice* newDevice(SkBitmap::Config config, int width, int height,
bool isOpaque, bool isForLayer);
- virtual uint32_t getDeviceCapabilities() { return kGL_Capability; }
};
struct SkGLDrawProcs;
@@ -29,6 +28,8 @@
return SkNEW(SkGLDeviceFactory);
}
+ virtual uint32_t getDeviceCapabilities() { return kGL_Capability; }
+
// used to identify GLTextCache data in the glyphcache
static void GlyphCacheAuxProc(void* data);