Remove include of SkGLDevice.h from SkGLCanvas.h
authorvandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>
Thu, 11 Nov 2010 00:49:41 +0000 (00:49 +0000)
committervandebo@chromium.org <vandebo@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>
Thu, 11 Nov 2010 00:49:41 +0000 (00:49 +0000)
The '#include "SkGLDevice.h"' from include/core/SkDevice.h requires internal
Skia code to be added to the include search paths when using the deprecated API.
This change adds back SkGLCanvas.cpp to avoid exposing SkGLDevice.h to the
public API.

The change also includes an explicit virtual destructor on SkDeviceFactory to
silence a -Wnon-virtual-dtor warning and allow for -Werror.

Original Issue: http://codereview.appspot.com/3009041/

Review URL: http://codereview.appspot.com/2994042

git-svn-id: http://skia.googlecode.com/svn/trunk@623 2bbb7eff-a529-9590-31e7-b0007b416f81

include/core/SkDevice.h
include/utils/SkGLCanvas.h
src/core/SkDevice.cpp
src/gl/SkGLCanvas.cpp [new file with mode: 0644]

index 0ff32417764ebb8b791179fe174b3c8eeee444ab..089d6e6f96e682e7adec73e4ae2879109eaf070a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008 The Android Open Source Project
+ * Copyright (C) 2010 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -36,6 +36,7 @@ class SkRegion;
 */
 class SkDeviceFactory {
 public:
+    virtual ~SkDeviceFactory();
     virtual SkDevice* newDevice(SkBitmap::Config config, int width, int height,
                                 bool isOpaque, bool isForLayer) = 0;
 };
index 87c81ff5a2f6a9291d19e1caf6636ccc775569b3..eb995271f6c696a28bff215583d395f0792189a8 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006 The Android Open Source Project
+ * Copyright (C) 2010 The Android Open Source Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
 #define SkGLCanvas_DEFINED
 
 #include "SkCanvas.h"
-#include "SkGLDevice.h"
 
 // Deprecated.  You should now use SkGLDevice and SkGLDeviceFactory with
 // SkCanvas.
 class SkGLCanvas : public SkCanvas {
 public:
-    SkGLCanvas() : SkCanvas(SkNEW(SkGLDeviceFactory)) {}
-
-    static size_t GetTextureCacheMaxCount() {
-        return SkGLDevice::GetTextureCacheMaxCount();
-    }
-    static void SetTextureCacheMaxCount(size_t count) {
-        SkGLDevice::SetTextureCacheMaxCount(count);
-    }
-
-    static size_t GetTextureCacheMaxSize() {
-        return SkGLDevice::GetTextureCacheMaxSize();
-    }
-    static void SetTextureCacheMaxSize(size_t size) {
-        SkGLDevice::SetTextureCacheMaxSize(size);
-    }
-
-    static void DeleteAllTextures() {
-        SkGLDevice::DeleteAllTextures();
-    }
-
-    static void AbandonAllTextures() {
-        SkGLDevice::AbandonAllTextures();
-    }
+    SkGLCanvas();
+
+    static size_t GetTextureCacheMaxCount();
+    static void SetTextureCacheMaxCount(size_t count);
+
+    static size_t GetTextureCacheMaxSize();
+    static void SetTextureCacheMaxSize(size_t size);
+
+    static void DeleteAllTextures();
+
+    static void AbandonAllTextures();
 };
 
 #endif
-
index fa43aa254d4e03f83e75bc5fd87cf19483eb64aa..12efaacbaf2cc3b156eb3c8238890079915986e4 100644 (file)
@@ -2,6 +2,8 @@
 #include "SkDraw.h"
 #include "SkRect.h"
 
+SkDeviceFactory::~SkDeviceFactory() {}
+
 SkDevice::SkDevice() {}
 
 SkDevice::SkDevice(const SkBitmap& bitmap) : fBitmap(bitmap) {}
diff --git a/src/gl/SkGLCanvas.cpp b/src/gl/SkGLCanvas.cpp
new file mode 100644 (file)
index 0000000..17e6016
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "SkGLCanvas.h"
+#include "SkGLDevice.h"
+
+SkGLCanvas::SkGLCanvas() : SkCanvas(SkNEW(SkGLDeviceFactory)) {}
+
+// static
+size_t SkGLCanvas::GetTextureCacheMaxCount() {
+    return SkGLDevice::GetTextureCacheMaxCount();
+}
+
+// static
+void SkGLCanvas::SetTextureCacheMaxCount(size_t count) {
+    SkGLDevice::SetTextureCacheMaxCount(count);
+}
+
+// static
+size_t SkGLCanvas::GetTextureCacheMaxSize() {
+    return SkGLDevice::GetTextureCacheMaxSize();
+}
+
+// static
+void SkGLCanvas::SetTextureCacheMaxSize(size_t size) {
+    SkGLDevice::SetTextureCacheMaxSize(size);
+}
+
+// static
+void SkGLCanvas::DeleteAllTextures() {
+    SkGLDevice::DeleteAllTextures();
+}
+
+// static
+void SkGLCanvas::AbandonAllTextures() {
+    SkGLDevice::AbandonAllTextures();
+}