aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--bench/nanobench.cpp8
-rw-r--r--gyp/gpu.gypi17
-rw-r--r--gyp/public_headers.gypi3
-rw-r--r--include/gpu/GrContextFactory.h10
-rw-r--r--include/gpu/gl/SkANGLEGLContext.h15
-rw-r--r--include/gpu/gl/SkDebugGLContext.h4
-rw-r--r--include/gpu/gl/SkGLContext.h (renamed from include/gpu/gl/SkGLContextHelper.h)20
-rw-r--r--include/gpu/gl/SkMesaGLContext.h17
-rw-r--r--include/gpu/gl/SkNativeGLContext.h111
-rw-r--r--include/gpu/gl/SkNullGLContext.h4
-rw-r--r--src/gpu/gl/SkGLContext.cpp (renamed from src/gpu/gl/SkGLContextHelper.cpp)10
-rw-r--r--src/gpu/gl/angle/SkANGLEGLContext.cpp15
-rw-r--r--src/gpu/gl/debug/GrGLCreateDebugInterface.cpp2
-rw-r--r--src/gpu/gl/egl/SkCreatePlatformGLContext_egl.cpp (renamed from src/gpu/gl/egl/SkNativeGLContext_egl.cpp)51
-rw-r--r--src/gpu/gl/glx/SkCreatePlatformGLContext_glx.cpp (renamed from src/gpu/gl/glx/SkNativeGLContext_glx.cpp)78
-rw-r--r--src/gpu/gl/iOS/SkCreatePlatformGLContext_iOS.mm (renamed from src/gpu/gl/iOS/SkNativeGLContext_iOS.mm)50
-rw-r--r--src/gpu/gl/mac/SkCreatePlatformGLContext_mac.cpp (renamed from src/gpu/gl/mac/SkNativeGLContext_mac.cpp)43
-rw-r--r--src/gpu/gl/mesa/SkMesaGLContext.cpp18
-rw-r--r--src/gpu/gl/nacl/SkCreatePlatformGLContext_nacl.cpp60
-rw-r--r--src/gpu/gl/nacl/SkNativeGLContext_nacl.cpp37
-rw-r--r--src/gpu/gl/win/SkCreatePlatformGLContext_win.cpp (renamed from src/gpu/gl/win/SkNativeGLContext_win.cpp)54
-rwxr-xr-xtests/GLInterfaceValidationTest.cpp10
-rw-r--r--tests/Test.cpp2
-rw-r--r--tools/PictureRenderer.cpp4
-rw-r--r--tools/PictureRenderer.h4
-rw-r--r--tools/timer/GpuTimer.cpp4
-rw-r--r--tools/timer/GpuTimer.h6
-rw-r--r--tools/timer/Timer.cpp2
-rw-r--r--tools/timer/Timer.h4
29 files changed, 312 insertions, 351 deletions
diff --git a/bench/nanobench.cpp b/bench/nanobench.cpp
index 21aeef4b3c..65cef8989e 100644
--- a/bench/nanobench.cpp
+++ b/bench/nanobench.cpp
@@ -84,7 +84,7 @@ static SkString humanize(double ms) {
}
#define HUMANIZE(ms) humanize(ms).c_str()
-static double time(int loops, Benchmark* bench, SkCanvas* canvas, SkGLContextHelper* gl) {
+static double time(int loops, Benchmark* bench, SkCanvas* canvas, SkGLContext* gl) {
if (canvas) {
canvas->clear(SK_ColorWHITE);
}
@@ -203,7 +203,7 @@ static int cpu_bench(const double overhead, Benchmark* bench, SkCanvas* canvas,
}
#if SK_SUPPORT_GPU
-static int gpu_bench(SkGLContextHelper* gl,
+static int gpu_bench(SkGLContext* gl,
Benchmark* bench,
SkCanvas* canvas,
double* samples) {
@@ -274,7 +274,7 @@ struct Target {
const Config config;
SkAutoTDelete<SkSurface> surface;
#if SK_SUPPORT_GPU
- SkGLContextHelper* gl;
+ SkGLContext* gl;
#endif
};
@@ -389,7 +389,7 @@ static void create_targets(SkTDArray<Target*>* targets, Benchmark* b,
}
#if SK_SUPPORT_GPU
-static void fill_gpu_options(ResultsWriter* log, SkGLContextHelper* ctx) {
+static void fill_gpu_options(ResultsWriter* log, SkGLContext* ctx) {
const GrGLubyte* version;
SK_GL_RET(*ctx, version, GetString(GR_GL_VERSION));
log->configOption("GL_VERSION", (const char*)(version));
diff --git a/gyp/gpu.gypi b/gyp/gpu.gypi
index eb520b5240..a853cf5675 100644
--- a/gyp/gpu.gypi
+++ b/gyp/gpu.gypi
@@ -279,7 +279,7 @@
'<(skia_include_path)/gpu/SkGrPixelRef.h',
'<(skia_include_path)/gpu/SkGrTexturePixelRef.h',
- '<(skia_include_path)/gpu/gl/SkGLContextHelper.h',
+ '<(skia_include_path)/gpu/gl/SkGLContext.h',
'<(skia_src_path)/gpu/SkGpuDevice.cpp',
'<(skia_src_path)/gpu/SkGpuDevice.h',
@@ -290,7 +290,7 @@
'<(skia_src_path)/image/SkImage_Gpu.cpp',
'<(skia_src_path)/image/SkSurface_Gpu.cpp',
- '<(skia_src_path)/gpu/gl/SkGLContextHelper.cpp'
+ '<(skia_src_path)/gpu/gl/SkGLContext.cpp'
],
'skgpu_native_gl_sources': [
'<(skia_src_path)/gpu/gl/GrGLDefaultInterface_native.cpp',
@@ -302,13 +302,12 @@
'<(skia_src_path)/gpu/gl/android/GrGLCreateNativeInterface_android.cpp',
# Sk files
- '<(skia_include_path)/gpu/gl/SkNativeGLContext.h',
- '<(skia_src_path)/gpu/gl/mac/SkNativeGLContext_mac.cpp',
- '<(skia_src_path)/gpu/gl/nacl/SkNativeGLContext_nacl.cpp',
- '<(skia_src_path)/gpu/gl/win/SkNativeGLContext_win.cpp',
- '<(skia_src_path)/gpu/gl/glx/SkNativeGLContext_glx.cpp',
- '<(skia_src_path)/gpu/gl/egl/SkNativeGLContext_egl.cpp',
- '<(skia_src_path)/gpu/gl/iOS/SkNativeGLContext_iOS.mm',
+ '<(skia_src_path)/gpu/gl/mac/SkCreatePlatformGLContext_mac.cpp',
+ '<(skia_src_path)/gpu/gl/nacl/SkCreatePlatformGLContext_nacl.cpp',
+ '<(skia_src_path)/gpu/gl/win/SkCreatePlatformGLContext_win.cpp',
+ '<(skia_src_path)/gpu/gl/glx/SkCreatePlatformGLContext_glx.cpp',
+ '<(skia_src_path)/gpu/gl/egl/SkCreatePlatformGLContext_egl.cpp',
+ '<(skia_src_path)/gpu/gl/iOS/SkCreatePlatformGLContext_iOS.mm',
],
'skgpu_mesa_gl_sources': [
'<(skia_src_path)/gpu/gl/mesa/GrGLCreateMesaInterface.cpp',
diff --git a/gyp/public_headers.gypi b/gyp/public_headers.gypi
index 6e61b4ec76..4ee02d5512 100644
--- a/gyp/public_headers.gypi
+++ b/gyp/public_headers.gypi
@@ -183,9 +183,8 @@
'gpu/gl/GrGLInterface.h',
'gpu/gl/SkANGLEGLContext.h',
'gpu/gl/SkDebugGLContext.h',
- 'gpu/gl/SkGLContextHelper.h',
'gpu/gl/SkMesaGLContext.h',
- 'gpu/gl/SkNativeGLContext.h',
+ 'gpu/gl/SkGLContext.h',
'gpu/gl/SkNullGLContext.h',
'images/SkForceLinking.h',
'images/SkMovie.h',
diff --git a/include/gpu/GrContextFactory.h b/include/gpu/GrContextFactory.h
index d78120ccb0..eff1f5834c 100644
--- a/include/gpu/GrContextFactory.h
+++ b/include/gpu/GrContextFactory.h
@@ -15,7 +15,7 @@
#if SK_MESA
#include "gl/SkMesaGLContext.h"
#endif
-#include "gl/SkNativeGLContext.h"
+#include "gl/SkGLContext.h"
#include "gl/SkNullGLContext.h"
#include "GrContext.h"
@@ -130,12 +130,12 @@ public:
return fContexts[i].fGrContext;
}
}
- SkAutoTUnref<SkGLContextHelper> glCtx;
+ SkAutoTUnref<SkGLContext> glCtx;
SkAutoTUnref<GrContext> grCtx;
switch (type) {
case kNVPR_GLContextType: // fallthru
case kNative_GLContextType:
- glCtx.reset(SkNEW(SkNativeGLContext));
+ glCtx.reset(SkCreatePlatformGLContext());
break;
#ifdef SK_ANGLE
case kANGLE_GLContextType:
@@ -192,7 +192,7 @@ public:
// Returns the GLContext of the given type. If it has not been created yet,
// NULL is returned instead.
- SkGLContextHelper* getGLContext(GLContextType type) {
+ SkGLContext* getGLContext(GLContextType type) {
for (int i = 0; i < fContexts.count(); ++i) {
if (fContexts[i].fType == type) {
return fContexts[i].fGLContext;
@@ -207,7 +207,7 @@ public:
private:
struct GPUContext {
GLContextType fType;
- SkGLContextHelper* fGLContext;
+ SkGLContext* fGLContext;
GrContext* fGrContext;
};
SkTArray<GPUContext, true> fContexts;
diff --git a/include/gpu/gl/SkANGLEGLContext.h b/include/gpu/gl/SkANGLEGLContext.h
index c5f62ff3ce..18cdbdb213 100644
--- a/include/gpu/gl/SkANGLEGLContext.h
+++ b/include/gpu/gl/SkANGLEGLContext.h
@@ -10,12 +10,12 @@
#if SK_ANGLE
-#include "SkGLContextHelper.h"
+#include "SkGLContext.h"
#include <GLES2/gl2.h>
#include <EGL/egl.h>
-class SkANGLEGLContext : public SkGLContextHelper {
+class SkANGLEGLContext : public SkGLContext {
public:
SkANGLEGLContext();
@@ -24,17 +24,6 @@ public:
virtual void makeCurrent() const SK_OVERRIDE;
virtual void swapBuffers() const SK_OVERRIDE;
- class AutoContextRestore {
- public:
- AutoContextRestore();
- ~AutoContextRestore();
-
- private:
- EGLContext fOldEGLContext;
- EGLDisplay fOldDisplay;
- EGLSurface fOldSurface;
- };
-
protected:
virtual const GrGLInterface* createGLContext(
GrGLStandard forcedGpuAPI) SK_OVERRIDE;
diff --git a/include/gpu/gl/SkDebugGLContext.h b/include/gpu/gl/SkDebugGLContext.h
index 7db9579617..792666332e 100644
--- a/include/gpu/gl/SkDebugGLContext.h
+++ b/include/gpu/gl/SkDebugGLContext.h
@@ -8,9 +8,9 @@
#ifndef SkDebugGLContext_DEFINED
#define SkDebugGLContext_DEFINED
-#include "SkGLContextHelper.h"
+#include "SkGLContext.h"
-class SkDebugGLContext : public SkGLContextHelper {
+class SkDebugGLContext : public SkGLContext {
public:
SkDebugGLContext() {}
diff --git a/include/gpu/gl/SkGLContextHelper.h b/include/gpu/gl/SkGLContext.h
index c4d9bdf997..83c9146c9b 100644
--- a/include/gpu/gl/SkGLContextHelper.h
+++ b/include/gpu/gl/SkGLContext.h
@@ -5,8 +5,8 @@
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
-#ifndef SkGLContextHelper_DEFINED
-#define SkGLContextHelper_DEFINED
+#ifndef SkGLContext_DEFINED
+#define SkGLContext_DEFINED
#include "GrGLInterface.h"
@@ -15,12 +15,12 @@
* Provides a GrGLInterface struct of function pointers for the context.
*/
-class SK_API SkGLContextHelper : public SkRefCnt {
+class SK_API SkGLContext : public SkRefCnt {
public:
- SK_DECLARE_INST_COUNT(SkGLContextHelper)
+ SK_DECLARE_INST_COUNT(SkGLContext)
- SkGLContextHelper();
- virtual ~SkGLContextHelper();
+ SkGLContext();
+ virtual ~SkGLContext();
/**
* Initializes the context and makes it current.
@@ -81,6 +81,14 @@ private:
typedef SkRefCnt INHERITED;
};
+/** Creates platform-dependent GL context object
+ * Note: If Skia embedder needs a custom GL context that sets up the GL
+ * interface, this function should be implemented by the embedder.
+ * Otherwise, the default implementation for the platform should be compiled in
+ * the library.
+ */
+SK_API SkGLContext* SkCreatePlatformGLContext();
+
/**
* Helper macros for using the GL context through the GrGLInterface. Example:
* SK_GL(glCtx, GenTextures(1, &texID));
diff --git a/include/gpu/gl/SkMesaGLContext.h b/include/gpu/gl/SkMesaGLContext.h
index 28349ddd88..ef0017180c 100644
--- a/include/gpu/gl/SkMesaGLContext.h
+++ b/include/gpu/gl/SkMesaGLContext.h
@@ -8,11 +8,11 @@
#ifndef SkMesaGLContext_DEFINED
#define SkMesaGLContext_DEFINED
-#include "SkGLContextHelper.h"
+#include "SkGLContext.h"
#if SK_MESA
-class SkMesaGLContext : public SkGLContextHelper {
+class SkMesaGLContext : public SkGLContext {
private:
typedef intptr_t Context;
@@ -24,19 +24,6 @@ public:
virtual void makeCurrent() const SK_OVERRIDE;
virtual void swapBuffers() const SK_OVERRIDE;
- class AutoContextRestore {
- public:
- AutoContextRestore();
- ~AutoContextRestore();
-
- private:
- Context fOldContext;
- GrGLint fOldWidth;
- GrGLint fOldHeight;
- GrGLint fOldFormat;
- void* fOldImage;
- };
-
protected:
virtual const GrGLInterface* createGLContext(GrGLStandard forcedGpuAPI) SK_OVERRIDE;
virtual void destroyGLContext() SK_OVERRIDE;
diff --git a/include/gpu/gl/SkNativeGLContext.h b/include/gpu/gl/SkNativeGLContext.h
deleted file mode 100644
index 93b5b4183a..0000000000
--- a/include/gpu/gl/SkNativeGLContext.h
+++ /dev/null
@@ -1,111 +0,0 @@
-
-/*
- * Copyright 2011 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-#ifndef SkNativeGLContext_DEFINED
-#define SkNativeGLContext_DEFINED
-
-#include "SkGLContextHelper.h"
-
-/* This struct is taken from a mesa demo. Please update as required */
-static const struct { int major, minor; } gl_versions[] = {
- {1, 0},
- {1, 1},
- {1, 2},
- {1, 3},
- {1, 4},
- {1, 5},
- {2, 0},
- {2, 1},
- {3, 0},
- {3, 1},
- {3, 2},
- {3, 3},
- {4, 0},
- {4, 1},
- {4, 2},
- {4, 3},
- {4, 4},
- {0, 0} /* end of list */
-};
-#define NUM_GL_VERSIONS SK_ARRAY_COUNT(gl_versions)
-
-#if defined(SK_BUILD_FOR_MAC)
- #include <OpenGL/OpenGL.h>
-#elif SK_EGL
- #include <GLES2/gl2.h>
- #include <EGL/egl.h>
-#elif defined(SK_BUILD_FOR_UNIX)
- #include <X11/Xlib.h>
- #include <GL/glx.h>
-#elif defined(SK_BUILD_FOR_WIN32)
- #include <windows.h>
- #include <GL/GL.h>
- #include "SkWGL.h"
-#endif
-
-class SkNativeGLContext : public SkGLContextHelper {
-public:
- SkNativeGLContext();
-
- virtual ~SkNativeGLContext();
-
- virtual void makeCurrent() const SK_OVERRIDE;
- virtual void swapBuffers() const SK_OVERRIDE;
-
- class AutoContextRestore {
- public:
- AutoContextRestore();
- ~AutoContextRestore();
-
- private:
- #if defined(SK_BUILD_FOR_MAC)
- CGLContextObj fOldCGLContext;
- #elif SK_EGL
- EGLContext fOldEGLContext;
- EGLDisplay fOldDisplay;
- EGLSurface fOldSurface;
- #elif defined(SK_BUILD_FOR_UNIX)
- GLXContext fOldGLXContext;
- Display* fOldDisplay;
- GLXDrawable fOldDrawable;
- #elif defined(SK_BUILD_FOR_WIN32)
- HDC fOldHDC;
- HGLRC fOldHGLRC;
-
- #elif defined(SK_BUILD_FOR_IOS)
- void* fEAGLContext;
- #endif
- };
-
-protected:
- virtual const GrGLInterface* createGLContext(GrGLStandard forcedGpuAPI) SK_OVERRIDE;
- virtual void destroyGLContext() SK_OVERRIDE;
-
-private:
-#if defined(SK_BUILD_FOR_MAC)
- CGLContextObj fContext;
-#elif SK_EGL
- EGLContext fContext;
- EGLDisplay fDisplay;
- EGLSurface fSurface;
-#elif defined(SK_BUILD_FOR_UNIX)
- GLXContext fContext;
- Display* fDisplay;
- Pixmap fPixmap;
- GLXPixmap fGlxPixmap;
-#elif defined(SK_BUILD_FOR_WIN32)
- HWND fWindow;
- HDC fDeviceContext;
- HGLRC fGlRenderContext;
- static ATOM gWC;
- SkWGLPbufferContext* fPbufferContext;
-#elif defined(SK_BUILD_FOR_IOS)
- void* fEAGLContext;
-#endif
-};
-
-#endif
diff --git a/include/gpu/gl/SkNullGLContext.h b/include/gpu/gl/SkNullGLContext.h
index 6c2a1d7e59..16621fc696 100644
--- a/include/gpu/gl/SkNullGLContext.h
+++ b/include/gpu/gl/SkNullGLContext.h
@@ -8,9 +8,9 @@
#ifndef SkNullGLContext_DEFINED
#define SkNullGLContext_DEFINED
-#include "SkGLContextHelper.h"
+#include "SkGLContext.h"
-class SK_API SkNullGLContext : public SkGLContextHelper {
+class SK_API SkNullGLContext : public SkGLContext {
public:
SkNullGLContext() {};
diff --git a/src/gpu/gl/SkGLContextHelper.cpp b/src/gpu/gl/SkGLContext.cpp
index 03b70c38f7..92f65cd924 100644
--- a/src/gpu/gl/SkGLContextHelper.cpp
+++ b/src/gpu/gl/SkGLContext.cpp
@@ -5,17 +5,17 @@
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
-#include "gl/SkGLContextHelper.h"
+#include "gl/SkGLContext.h"
#include "GrGLUtil.h"
-SkGLContextHelper::SkGLContextHelper()
+SkGLContext::SkGLContext()
: fFBO(0)
, fColorBufferID(0)
, fDepthStencilBufferID(0)
, fGL(NULL) {
}
-SkGLContextHelper::~SkGLContextHelper() {
+SkGLContext::~SkGLContext() {
if (fGL) {
// TODO: determine why DeleteFramebuffers is generating a GL error in tests
@@ -27,7 +27,7 @@ SkGLContextHelper::~SkGLContextHelper() {
SkSafeUnref(fGL);
}
-bool SkGLContextHelper::init(GrGLStandard forcedGpuAPI, int width,
+bool SkGLContext::init(GrGLStandard forcedGpuAPI, int width,
int height) {
if (fGL) {
fGL->unref();
@@ -135,7 +135,7 @@ bool SkGLContextHelper::init(GrGLStandard forcedGpuAPI, int width,
return false;
}
-void SkGLContextHelper::testAbandon() {
+void SkGLContext::testAbandon() {
if (fGL) {
fGL->abandon();
}
diff --git a/src/gpu/gl/angle/SkANGLEGLContext.cpp b/src/gpu/gl/angle/SkANGLEGLContext.cpp
index 81fccebba0..4914ba5533 100644
--- a/src/gpu/gl/angle/SkANGLEGLContext.cpp
+++ b/src/gpu/gl/angle/SkANGLEGLContext.cpp
@@ -8,21 +8,6 @@
#include "gl/SkANGLEGLContext.h"
-SkANGLEGLContext::AutoContextRestore::AutoContextRestore() {
- fOldEGLContext = eglGetCurrentContext();
- fOldDisplay = eglGetCurrentDisplay();
- fOldSurface = eglGetCurrentSurface(EGL_DRAW);
-
-}
-
-SkANGLEGLContext::AutoContextRestore::~AutoContextRestore() {
- if (fOldDisplay) {
- eglMakeCurrent(fOldDisplay, fOldSurface, fOldSurface, fOldEGLContext);
- }
-}
-
-///////////////////////////////////////////////////////////////////////////////
-
SkANGLEGLContext::SkANGLEGLContext()
: fContext(EGL_NO_CONTEXT)
, fDisplay(EGL_NO_DISPLAY)
diff --git a/src/gpu/gl/debug/GrGLCreateDebugInterface.cpp b/src/gpu/gl/debug/GrGLCreateDebugInterface.cpp
index 4bd8f99e22..287a43fad0 100644
--- a/src/gpu/gl/debug/GrGLCreateDebugInterface.cpp
+++ b/src/gpu/gl/debug/GrGLCreateDebugInterface.cpp
@@ -819,7 +819,7 @@ public:
// The solution to this is probably to alter SkDebugGlContext's
// "makeCurrent" method to make a call like "makeCurrent(this)" to
// the debug GL interface (assuming that the application will create
- // multiple SkGLContextHelper's) to let it switch between the active
+ // multiple SkGLContext's) to let it switch between the active
// context. Everything in the GrDebugGL object would then need to be
// moved to a GrContextObj and the GrDebugGL object would just switch
// between them. Note that this approach would also require that
diff --git a/src/gpu/gl/egl/SkNativeGLContext_egl.cpp b/src/gpu/gl/egl/SkCreatePlatformGLContext_egl.cpp
index d4d7219b5b..f33e84abc4 100644
--- a/src/gpu/gl/egl/SkNativeGLContext_egl.cpp
+++ b/src/gpu/gl/egl/SkCreatePlatformGLContext_egl.cpp
@@ -5,34 +5,42 @@
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
-#include "gl/SkNativeGLContext.h"
+#include "gl/SkGLContext.h"
-SkNativeGLContext::AutoContextRestore::AutoContextRestore() {
- fOldEGLContext = eglGetCurrentContext();
- fOldDisplay = eglGetCurrentDisplay();
- fOldSurface = eglGetCurrentSurface(EGL_DRAW);
+#include <GLES2/gl2.h>
+#include <EGL/egl.h>
-}
+namespace {
-SkNativeGLContext::AutoContextRestore::~AutoContextRestore() {
- if (fOldDisplay) {
- eglMakeCurrent(fOldDisplay, fOldSurface, fOldSurface, fOldEGLContext);
- }
-}
+class EGLGLContext : public SkGLContext {
+public:
+ EGLGLContext();
+
+ virtual ~EGLGLContext();
+
+ virtual void makeCurrent() const SK_OVERRIDE;
+ virtual void swapBuffers() const SK_OVERRIDE;
+protected:
+ virtual const GrGLInterface* createGLContext(GrGLStandard forcedGpuAPI) SK_OVERRIDE;
+ virtual void destroyGLContext() SK_OVERRIDE;
-///////////////////////////////////////////////////////////////////////////////
+private:
+ EGLContext fContext;
+ EGLDisplay fDisplay;
+ EGLSurface fSurface;
+};
-SkNativeGLContext::SkNativeGLContext()
+EGLGLContext::EGLGLContext()
: fContext(EGL_NO_CONTEXT)
, fDisplay(EGL_NO_DISPLAY)
, fSurface(EGL_NO_SURFACE) {
}
-SkNativeGLContext::~SkNativeGLContext() {
+EGLGLContext::~EGLGLContext() {
this->destroyGLContext();
}
-void SkNativeGLContext::destroyGLContext() {
+void EGLGLContext::destroyGLContext() {
if (fDisplay) {
eglMakeCurrent(fDisplay, 0, 0, 0);
@@ -51,7 +59,7 @@ void SkNativeGLContext::destroyGLContext() {
}
}
-const GrGLInterface* SkNativeGLContext::createGLContext(GrGLStandard forcedGpuAPI) {
+const GrGLInterface* EGLGLContext::createGLContext(GrGLStandard forcedGpuAPI) {
static const EGLint kEGLContextAttribsForOpenGL[] = {
EGL_NONE
};
@@ -169,14 +177,21 @@ const GrGLInterface* SkNativeGLContext::createGLContext(GrGLStandard forcedGpuAP
return interface;
}
-void SkNativeGLContext::makeCurrent() const {
+void EGLGLContext::makeCurrent() const {
if (!eglMakeCurrent(fDisplay, fSurface, fSurface, fContext)) {
SkDebugf("Could not set the context.\n");
}
}
-void SkNativeGLContext::swapBuffers() const {
+void EGLGLContext::swapBuffers() const {
if (!eglSwapBuffers(fDisplay, fSurface)) {
SkDebugf("Could not complete eglSwapBuffers.\n");
}
}
+
+} // anonymous namespace
+
+SkGLContext* SkCreatePlatformGLContext() {
+ return SkNEW(EGLGLContext);
+}
+
diff --git a/src/gpu/gl/glx/SkNativeGLContext_glx.cpp b/src/gpu/gl/glx/SkCreatePlatformGLContext_glx.cpp
index bd130b545c..794cdb6f03 100644
--- a/src/gpu/gl/glx/SkNativeGLContext_glx.cpp
+++ b/src/gpu/gl/glx/SkCreatePlatformGLContext_glx.cpp
@@ -5,25 +5,38 @@
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
-#include "gl/SkNativeGLContext.h"
+#include "gl/SkGLContext.h"
+#include <X11/Xlib.h>
+#include <GL/glx.h>
#include <GL/glu.h>
-/* Note: Skia requires glx 1.3 or newer */
-
-SkNativeGLContext::AutoContextRestore::AutoContextRestore() {
- fOldGLXContext = glXGetCurrentContext();
- fOldDisplay = glXGetCurrentDisplay();
- fOldDrawable = glXGetCurrentDrawable();
-}
+namespace {
-SkNativeGLContext::AutoContextRestore::~AutoContextRestore() {
- if (fOldDisplay) {
- glXMakeCurrent(fOldDisplay, fOldDrawable, fOldGLXContext);
- }
-}
+/* Note: Skia requires glx 1.3 or newer */
-///////////////////////////////////////////////////////////////////////////////
+/* This struct is taken from a mesa demo. Please update as required */
+static const struct { int major, minor; } gl_versions[] = {
+ {1, 0},
+ {1, 1},
+ {1, 2},
+ {1, 3},
+ {1, 4},
+ {1, 5},
+ {2, 0},
+ {2, 1},
+ {3, 0},
+ {3, 1},
+ {3, 2},
+ {3, 3},
+ {4, 0},
+ {4, 1},
+ {4, 2},
+ {4, 3},
+ {4, 4},
+ {0, 0} /* end of list */
+};
+#define NUM_GL_VERSIONS SK_ARRAY_COUNT(gl_versions)
static bool ctxErrorOccurred = false;
static int ctxErrorHandler(Display *dpy, XErrorEvent *ev) {
@@ -31,18 +44,37 @@ static int ctxErrorHandler(Display *dpy, XErrorEvent *ev) {
return 0;
}
-SkNativeGLContext::SkNativeGLContext()
+class GLXGLContext : public SkGLContext {
+public:
+ GLXGLContext();
+
+ virtual ~GLXGLContext();
+
+ virtual void makeCurrent() const SK_OVERRIDE;
+ virtual void swapBuffers() const SK_OVERRIDE;
+protected:
+ virtual const GrGLInterface* createGLContext(GrGLStandard forcedGpuAPI) SK_OVERRIDE;
+ virtual void destroyGLContext() SK_OVERRIDE;
+
+private:
+ GLXContext fContext;
+ Display* fDisplay;
+ Pixmap fPixmap;
+ GLXPixmap fGlxPixmap;
+};
+
+GLXGLContext::GLXGLContext()
: fContext(NULL)
, fDisplay(NULL)
, fPixmap(0)
, fGlxPixmap(0) {
}
-SkNativeGLContext::~SkNativeGLContext() {
+GLXGLContext::~GLXGLContext() {
this->destroyGLContext();
}
-void SkNativeGLContext::destroyGLContext() {
+void GLXGLContext::destroyGLContext() {
if (fDisplay) {
glXMakeCurrent(fDisplay, 0, 0);
@@ -66,7 +98,7 @@ void SkNativeGLContext::destroyGLContext() {
}
}
-const GrGLInterface* SkNativeGLContext::createGLContext(GrGLStandard forcedGpuAPI) {
+const GrGLInterface* GLXGLContext::createGLContext(GrGLStandard forcedGpuAPI) {
fDisplay = XOpenDisplay(0);
if (!fDisplay) {
@@ -277,12 +309,18 @@ const GrGLInterface* SkNativeGLContext::createGLContext(GrGLStandard forcedGpuAP
return interface;
}
-void SkNativeGLContext::makeCurrent() const {
+void GLXGLContext::makeCurrent() const {
if (!glXMakeCurrent(fDisplay, fGlxPixmap, fContext)) {
SkDebugf("Could not set the context.\n");
}
}
-void SkNativeGLContext::swapBuffers() const {
+void GLXGLContext::swapBuffers() const {
glXSwapBuffers(fDisplay, fGlxPixmap);
}
+
+} // anonymous namespace
+
+SkGLContext* SkCreatePlatformGLContext() {
+ return SkNEW(GLXGLContext);
+}
diff --git a/src/gpu/gl/iOS/SkNativeGLContext_iOS.mm b/src/gpu/gl/iOS/SkCreatePlatformGLContext_iOS.mm
index 1bdaf70f1c..9989957ac9 100644
--- a/src/gpu/gl/iOS/SkNativeGLContext_iOS.mm
+++ b/src/gpu/gl/iOS/SkCreatePlatformGLContext_iOS.mm
@@ -6,36 +6,38 @@
* found in the LICENSE file.
*/
-#include "gl/SkNativeGLContext.h"
+#include "gl/SkGLContext.h"
#import <OpenGLES/EAGL.h>
#define EAGLCTX ((EAGLContext*)(fEAGLContext))
-SkNativeGLContext::AutoContextRestore::AutoContextRestore() {
- fEAGLContext = [EAGLContext currentContext];
- if (EAGLCTX) {
- [EAGLCTX retain];
- }
-}
+namespace {
-SkNativeGLContext::AutoContextRestore::~AutoContextRestore() {
- if (EAGLCTX) {
- [EAGLContext setCurrentContext:EAGLCTX];
- [EAGLCTX release];
- }
-}
+class IOSGLContext : public SkGLContext {
+public:
+ IOSGLContext();
+
+ virtual ~IOSGLContext();
-///////////////////////////////////////////////////////////////////////////////
+ virtual void makeCurrent() const SK_OVERRIDE;
+ virtual void swapBuffers() const SK_OVERRIDE;
+protected:
+ virtual const GrGLInterface* createGLContext(GrGLStandard forcedGpuAPI) SK_OVERRIDE;
+ virtual void destroyGLContext() SK_OVERRIDE;
-SkNativeGLContext::SkNativeGLContext()
+private:
+ void* fEAGLContext;
+};
+
+IOSGLContext::IOSGLContext()
: fEAGLContext(NULL) {
}
-SkNativeGLContext::~SkNativeGLContext() {
+IOSGLContext::~IOSGLContext() {
this->destroyGLContext();
}
-void SkNativeGLContext::destroyGLContext() {
+void IOSGLContext::destroyGLContext() {
if (fEAGLContext) {
if ([EAGLContext currentContext] == EAGLCTX) {
[EAGLContext setCurrentContext:nil];
@@ -45,7 +47,7 @@ void SkNativeGLContext::destroyGLContext() {
}
}
-const GrGLInterface* SkNativeGLContext::createGLContext(GrGLStandard forcedGpuAPI) {
+const GrGLInterface* IOSGLContext::createGLContext(GrGLStandard forcedGpuAPI) {
if (kGL_GrGLStandard == forcedGpuAPI) {
return NULL;
}
@@ -62,10 +64,18 @@ const GrGLInterface* SkNativeGLContext::createGLContext(GrGLStandard forcedGpuAP
return interface;
}
-void SkNativeGLContext::makeCurrent() const {
+void IOSGLContext::makeCurrent() const {
if (![EAGLContext setCurrentContext:EAGLCTX]) {
SkDebugf("Could not set the context.\n");
}
}
-void SkNativeGLContext::swapBuffers() const { }
+void IOSGLContext::swapBuffers() const { }
+
+} // anonymous namespace
+
+
+SkGLContext* SkCreatePlatformGLContext() {
+ return SkNEW(IOSGLContext);
+}
+
diff --git a/src/gpu/gl/mac/SkNativeGLContext_mac.cpp b/src/gpu/gl/mac/SkCreatePlatformGLContext_mac.cpp
index f63471c16a..35ec276296 100644
--- a/src/gpu/gl/mac/SkNativeGLContext_mac.cpp
+++ b/src/gpu/gl/mac/SkCreatePlatformGLContext_mac.cpp
@@ -5,34 +5,43 @@
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
-#include "gl/SkNativeGLContext.h"
+#include "gl/SkGLContext.h"
#include "AvailabilityMacros.h"
-SkNativeGLContext::AutoContextRestore::AutoContextRestore() {
- fOldCGLContext = CGLGetCurrentContext();
-}
+#include <OpenGL/OpenGL.h>
-SkNativeGLContext::AutoContextRestore::~AutoContextRestore() {
- CGLSetCurrentContext(fOldCGLContext);
-}
+namespace {
+class MacGLContext : public SkGLContext {
+public:
+ MacGLContext();
+
+ virtual ~MacGLContext();
+
+ virtual void makeCurrent() const SK_OVERRIDE;
+ virtual void swapBuffers() const SK_OVERRIDE;
+protected:
+ virtual const GrGLInterface* createGLContext(GrGLStandard forcedGpuAPI) SK_OVERRIDE;
+ virtual void destroyGLContext() SK_OVERRIDE;
-///////////////////////////////////////////////////////////////////////////////
+private:
+ CGLContextObj fContext;
+};
-SkNativeGLContext::SkNativeGLContext()
+MacGLContext::MacGLContext()
: fContext(NULL) {
}
-SkNativeGLContext::~SkNativeGLContext() {
+MacGLContext::~MacGLContext() {
this->destroyGLContext();
}
-void SkNativeGLContext::destroyGLContext() {
+void MacGLContext::destroyGLContext() {
if (fContext) {
CGLReleaseContext(fContext);
}
}
-const GrGLInterface* SkNativeGLContext::createGLContext(GrGLStandard forcedGpuAPI) {
+const GrGLInterface* MacGLContext::createGLContext(GrGLStandard forcedGpuAPI) {
SkASSERT(NULL == fContext);
if (kGLES_GrGLStandard == forcedGpuAPI) {
return NULL;
@@ -75,10 +84,16 @@ const GrGLInterface* SkNativeGLContext::createGLContext(GrGLStandard forcedGpuAP
return interface;
}
-void SkNativeGLContext::makeCurrent() const {
+void MacGLContext::makeCurrent() const {
CGLSetCurrentContext(fContext);
}
-void SkNativeGLContext::swapBuffers() const {
+void MacGLContext::swapBuffers() const {
CGLFlushDrawable(fContext);
}
+
+} // anonymous namespace
+
+SkGLContext* SkCreatePlatformGLContext() {
+ return SkNEW(MacGLContext);
+}
diff --git a/src/gpu/gl/mesa/SkMesaGLContext.cpp b/src/gpu/gl/mesa/SkMesaGLContext.cpp
index 31402c5a3c..8c339c7fac 100644
--- a/src/gpu/gl/mesa/SkMesaGLContext.cpp
+++ b/src/gpu/gl/mesa/SkMesaGLContext.cpp
@@ -11,24 +11,6 @@
#include "gl/SkMesaGLContext.h"
#include "gl/GrGLDefines.h"
-SkMesaGLContext::AutoContextRestore::AutoContextRestore() {
- fOldContext = (Context)OSMesaGetCurrentContext();
- if (fOldContext) {
- OSMesaGetColorBuffer((OSMesaContext)fOldContext,
- &fOldWidth, &fOldHeight,
- &fOldFormat, &fOldImage);
- }
-}
-
-SkMesaGLContext::AutoContextRestore::~AutoContextRestore() {
- if (fOldContext) {
- OSMesaMakeCurrent((OSMesaContext)fOldContext, fOldImage,
- fOldFormat, fOldWidth, fOldHeight);
- }
-}
-
-///////////////////////////////////////////////////////////////////////////////
-
SkMesaGLContext::SkMesaGLContext()
: fContext(static_cast<Context>(NULL))
, fImage(NULL) {
diff --git a/src/gpu/gl/nacl/SkCreatePlatformGLContext_nacl.cpp b/src/gpu/gl/nacl/SkCreatePlatformGLContext_nacl.cpp
new file mode 100644
index 0000000000..5e4b2e4917
--- /dev/null
+++ b/src/gpu/gl/nacl/SkCreatePlatformGLContext_nacl.cpp
@@ -0,0 +1,60 @@
+
+/*
+ * Copyright 2012 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+#include "gl/SkGLContext.h"
+
+#include <GLES2/gl2.h>
+#include <EGL/egl.h>
+
+namespace {
+class NACLGLContext : public SkGLContext {
+public:
+ SkGLContextEGL();
+
+ virtual ~NACLGLContext();
+
+ virtual void makeCurrent() const SK_OVERRIDE;
+ virtual void swapBuffers() const SK_OVERRIDE;
+protected:
+ virtual const GrGLInterface* createGLContext(GrGLStandard forcedGpuAPI) SK_OVERRIDE;
+ virtual void destroyGLContext() SK_OVERRIDE;
+
+private:
+ EGLContext fContext;
+ EGLDisplay fDisplay;
+ EGLSurface fSurface;
+};
+
+NACLGLContext::NACLGLContext()
+ : fContext(NULL)
+ , fDisplay(NULL)
+{
+}
+
+NACLGLContext::~NACLGLContext() {
+ this->destroyGLContext();
+}
+
+void NACLGLContext::destroyGLContext() {
+}
+
+const GrGLInterface* NACLGLContext::createGLContext(GrGLStandard forcedGpuAPI) {
+ return NULL;
+}
+
+void NACLGLContext::makeCurrent() const {
+}
+
+void NACLGLContext::swapBuffers() const {
+}
+
+} // anonymous namespace
+
+NACLGLContext* SkCreatePlatformGLContext() {
+ return SkNEW(NACLGLContext);
+}
+
diff --git a/src/gpu/gl/nacl/SkNativeGLContext_nacl.cpp b/src/gpu/gl/nacl/SkNativeGLContext_nacl.cpp
deleted file mode 100644
index 334be1d954..0000000000
--- a/src/gpu/gl/nacl/SkNativeGLContext_nacl.cpp
+++ /dev/null
@@ -1,37 +0,0 @@
-
-/*
- * Copyright 2012 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-#include "gl/SkNativeGLContext.h"
-
-SkNativeGLContext::AutoContextRestore::AutoContextRestore() {
-}
-
-SkNativeGLContext::AutoContextRestore::~AutoContextRestore() {
-}
-
-SkNativeGLContext::SkNativeGLContext()
- : fContext(NULL)
- , fDisplay(NULL)
-{
-}
-
-SkNativeGLContext::~SkNativeGLContext() {
- this->destroyGLContext();
-}
-
-void SkNativeGLContext::destroyGLContext() {
-}
-
-const GrGLInterface* SkNativeGLContext::createGLContext(GrGLStandard forcedGpuAPI) {
- return NULL;
-}
-
-void SkNativeGLContext::makeCurrent() const {
-}
-
-void SkNativeGLContext::swapBuffers() const {
-}
diff --git a/src/gpu/gl/win/SkNativeGLContext_win.cpp b/src/gpu/gl/win/SkCreatePlatformGLContext_win.cpp
index ab66ba4d55..d362556a4e 100644
--- a/src/gpu/gl/win/SkNativeGLContext_win.cpp
+++ b/src/gpu/gl/win/SkCreatePlatformGLContext_win.cpp
@@ -6,36 +6,51 @@
* found in the LICENSE file.
*/
-#include "gl/SkNativeGLContext.h"
+#include "gl/SkGLContext.h"
+
+#include <windows.h>
+#include <GL/GL.h>
+#include "SkWGL.h"
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
-SkNativeGLContext::AutoContextRestore::AutoContextRestore() {
- fOldHGLRC = wglGetCurrentContext();
- fOldHDC = wglGetCurrentDC();
-}
+namespace {
-SkNativeGLContext::AutoContextRestore::~AutoContextRestore() {
- wglMakeCurrent(fOldHDC, fOldHGLRC);
-}
+class WinGLContext : public SkGLContext {
+public:
+ WinGLContext();
+
+ virtual ~WinGLContext();
-///////////////////////////////////////////////////////////////////////////////
+ virtual void makeCurrent() const SK_OVERRIDE;
+ virtual void swapBuffers() const SK_OVERRIDE;
+protected:
+ virtual const GrGLInterface* createGLContext(GrGLStandard forcedGpuAPI) SK_OVERRIDE;
+ virtual void destroyGLContext() SK_OVERRIDE;
-ATOM SkNativeGLContext::gWC = 0;
+private:
+ HWND fWindow;
+ HDC fDeviceContext;
+ HGLRC fGlRenderContext;
+ static ATOM gWC;
+ SkWGLPbufferContext* fPbufferContext;
+};
-SkNativeGLContext::SkNativeGLContext()
+ATOM WinGLContext::gWC = 0;
+
+WinGLContext::WinGLContext()
: fWindow(NULL)
, fDeviceContext(NULL)
, fGlRenderContext(0)
, fPbufferContext(NULL) {
}
-SkNativeGLContext::~SkNativeGLContext() {
+WinGLContext::~WinGLContext() {
this->destroyGLContext();
}
-void SkNativeGLContext::destroyGLContext() {
+void WinGLContext::destroyGLContext() {
SkSafeSetNull(fPbufferContext);
if (fGlRenderContext) {
wglDeleteContext(fGlRenderContext);
@@ -51,7 +66,7 @@ void SkNativeGLContext::destroyGLContext() {
}
}
-const GrGLInterface* SkNativeGLContext::createGLContext(GrGLStandard forcedGpuAPI) {
+const GrGLInterface* WinGLContext::createGLContext(GrGLStandard forcedGpuAPI) {
HINSTANCE hInstance = (HINSTANCE)GetModuleHandle(NULL);
if (!gWC) {
@@ -134,7 +149,7 @@ const GrGLInterface* SkNativeGLContext::createGLContext(GrGLStandard forcedGpuAP
return interface;
}
-void SkNativeGLContext::makeCurrent() const {
+void WinGLContext::makeCurrent() const {
HDC dc;
HGLRC glrc;
@@ -151,7 +166,7 @@ void SkNativeGLContext::makeCurrent() const {
}
}
-void SkNativeGLContext::swapBuffers() const {
+void WinGLContext::swapBuffers() const {
HDC dc;
if (NULL == fPbufferContext) {
@@ -163,3 +178,10 @@ void SkNativeGLContext::swapBuffers() const {
SkDebugf("Could not complete SwapBuffers.\n");
}
}
+
+} // anonymous namespace
+
+SkGLContext* SkCreatePlatformGLContext() {
+ return SkNEW(WinGLContext);
+}
+
diff --git a/tests/GLInterfaceValidationTest.cpp b/tests/GLInterfaceValidationTest.cpp
index 797ba72cc0..83f9e2eae2 100755
--- a/tests/GLInterfaceValidationTest.cpp
+++ b/tests/GLInterfaceValidationTest.cpp
@@ -17,20 +17,20 @@ DEF_GPUTEST(GLInterfaceValidation, reporter, factory) {
GrContextFactory::GLContextType glCtxType = (GrContextFactory::GLContextType)i;
// this forces the factory to make the context if it hasn't yet
factory->get(glCtxType);
- SkGLContextHelper* glCtxHelper = factory->getGLContext(glCtxType);
+ SkGLContext* glCtx = factory->getGLContext(glCtxType);
// We're supposed to fail the NVPR context type when we the native context that does not
// support the NVPR extension.
if (GrContextFactory::kNVPR_GLContextType == glCtxType &&
factory->getGLContext(GrContextFactory::kNative_GLContextType) &&
!factory->getGLContext(GrContextFactory::kNative_GLContextType)->hasExtension("GL_NV_path_rendering")) {
- REPORTER_ASSERT(reporter, NULL == glCtxHelper);
+ REPORTER_ASSERT(reporter, NULL == glCtx);
continue;
}
- REPORTER_ASSERT(reporter, glCtxHelper);
- if (glCtxHelper) {
- const GrGLInterface* interface = glCtxHelper->gl();
+ REPORTER_ASSERT(reporter, glCtx);
+ if (glCtx) {
+ const GrGLInterface* interface = glCtx->gl();
REPORTER_ASSERT(reporter, interface->validate());
}
}
diff --git a/tests/Test.cpp b/tests/Test.cpp
index d0147e1e4a..c458f897fb 100644
--- a/tests/Test.cpp
+++ b/tests/Test.cpp
@@ -15,7 +15,7 @@
#if SK_SUPPORT_GPU
#include "GrContext.h"
-#include "gl/SkNativeGLContext.h"
+#include "gl/SkGLContext.h"
#else
class GrContext;
#endif
diff --git a/tools/PictureRenderer.cpp b/tools/PictureRenderer.cpp
index 89f2cda3dd..b9b01e4cf9 100644
--- a/tools/PictureRenderer.cpp
+++ b/tools/PictureRenderer.cpp
@@ -232,7 +232,7 @@ void PictureRenderer::buildBBoxHierarchy() {
void PictureRenderer::resetState(bool callFinish) {
#if SK_SUPPORT_GPU
- SkGLContextHelper* glContext = this->getGLContext();
+ SkGLContext* glContext = this->getGLContext();
if (NULL == glContext) {
SkASSERT(kBitmap_DeviceType == fDeviceType);
return;
@@ -252,7 +252,7 @@ void PictureRenderer::purgeTextures() {
pool->dumpPool();
#if SK_SUPPORT_GPU
- SkGLContextHelper* glContext = this->getGLContext();
+ SkGLContext* glContext = this->getGLContext();
if (NULL == glContext) {
SkASSERT(kBitmap_DeviceType == fDeviceType);
return;
diff --git a/tools/PictureRenderer.h b/tools/PictureRenderer.h
index 3f58b18121..e82eb7fb8a 100644
--- a/tools/PictureRenderer.h
+++ b/tools/PictureRenderer.h
@@ -30,7 +30,7 @@
class SkBitmap;
class SkCanvas;
-class SkGLContextHelper;
+class SkGLContext;
class SkThread;
namespace sk_tools {
@@ -371,7 +371,7 @@ public:
}
}
- SkGLContextHelper* getGLContext() {
+ SkGLContext* getGLContext() {
GrContextFactory::GLContextType glContextType
= GrContextFactory::kNull_GLContextType;
switch(fDeviceType) {
diff --git a/tools/timer/GpuTimer.cpp b/tools/timer/GpuTimer.cpp
index aac10a3b07..0fdd999922 100644
--- a/tools/timer/GpuTimer.cpp
+++ b/tools/timer/GpuTimer.cpp
@@ -6,10 +6,10 @@
* found in the LICENSE file.
*/
#include "GpuTimer.h"
-#include "gl/SkGLContextHelper.h"
+#include "gl/SkGLContext.h"
#include "gl/GrGLUtil.h"
-GpuTimer::GpuTimer(const SkGLContextHelper* glctx) : fContext(glctx) {
+GpuTimer::GpuTimer(const SkGLContext* glctx) : fContext(glctx) {
if (fContext) {
fContext->ref();
fContext->makeCurrent();
diff --git a/tools/timer/GpuTimer.h b/tools/timer/GpuTimer.h
index 2100312a21..da1fdab5c0 100644
--- a/tools/timer/GpuTimer.h
+++ b/tools/timer/GpuTimer.h
@@ -7,18 +7,18 @@
#ifndef GpuTimer_DEFINED
#define GpuTimer_DEFINED
-class SkGLContextHelper;
+class SkGLContext;
class GpuTimer {
public:
- GpuTimer(const SkGLContextHelper*);
+ GpuTimer(const SkGLContext*);
~GpuTimer();
void start();
double end();
private:
unsigned fQuery;
int fStarted;
- const SkGLContextHelper* fContext;
+ const SkGLContext* fContext;
bool fSupported;
};
diff --git a/tools/timer/Timer.cpp b/tools/timer/Timer.cpp
index 4f3fc85cff..a9f04afe75 100644
--- a/tools/timer/Timer.cpp
+++ b/tools/timer/Timer.cpp
@@ -6,7 +6,7 @@
*/
#include "Timer.h"
-Timer::Timer(SkGLContextHelper* gl)
+Timer::Timer(SkGLContext* gl)
: fCpu(-1.0)
, fWall(-1.0)
, fTruncatedCpu(-1.0)
diff --git a/tools/timer/Timer.h b/tools/timer/Timer.h
index 15c93f5603..81d1ca50ef 100644
--- a/tools/timer/Timer.h
+++ b/tools/timer/Timer.h
@@ -21,7 +21,7 @@
#include "GpuTimer.h"
#endif
-class SkGLContextHelper;
+class SkGLContext;
/**
* SysTimers and GpuTimers are implemented orthogonally.
@@ -34,7 +34,7 @@ class SkGLContextHelper;
*/
class Timer {
public:
- explicit Timer(SkGLContextHelper* gl = NULL);
+ explicit Timer(SkGLContext* gl = NULL);
void start();
void truncatedEnd();