Remove include of SkGLDevice.h from SkGLCanvas.h

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
This commit is contained in:
vandebo@chromium.org 2010-11-11 00:49:41 +00:00
parent 7e2ff7cf7d
commit 8c1d88dcfb
4 changed files with 62 additions and 23 deletions

View 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;
};

View 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.
@ -18,36 +18,22 @@
#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)) {}
SkGLCanvas();
static size_t GetTextureCacheMaxCount() {
return SkGLDevice::GetTextureCacheMaxCount();
}
static void SetTextureCacheMaxCount(size_t count) {
SkGLDevice::SetTextureCacheMaxCount(count);
}
static size_t GetTextureCacheMaxCount();
static void SetTextureCacheMaxCount(size_t count);
static size_t GetTextureCacheMaxSize() {
return SkGLDevice::GetTextureCacheMaxSize();
}
static void SetTextureCacheMaxSize(size_t size) {
SkGLDevice::SetTextureCacheMaxSize(size);
}
static size_t GetTextureCacheMaxSize();
static void SetTextureCacheMaxSize(size_t size);
static void DeleteAllTextures() {
SkGLDevice::DeleteAllTextures();
}
static void DeleteAllTextures();
static void AbandonAllTextures() {
SkGLDevice::AbandonAllTextures();
}
static void AbandonAllTextures();
};
#endif

View File

@ -2,6 +2,8 @@
#include "SkDraw.h"
#include "SkRect.h"
SkDeviceFactory::~SkDeviceFactory() {}
SkDevice::SkDevice() {}
SkDevice::SkDevice(const SkBitmap& bitmap) : fBitmap(bitmap) {}

50
src/gl/SkGLCanvas.cpp Normal file
View File

@ -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();
}