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);