aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar kkinnunen <kkinnunen@nvidia.com>2014-10-09 05:24:15 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2014-10-09 05:24:15 -0700
commit9e61bb7815b133bc40ea7b00fccc853f4b728e3c (patch)
treefb63fc7dbc1ede28f821af30fc0c6634e6e1168d
parent78c71272fb26852bf3d2ca31785e61d4a598af82 (diff)
Make the Sk GL context class an abstract base class
Make the Sk GL context class, SkGLNativeContext, an abstract base class. Before, it depended on ifdefs to implement the platform dependent polymorphism. Move the logic to subclasses of the various platform implementations. This a step to enable Skia embedders to compile dm and bench_pictures. The concrete goal is to support running these test apps with Chromium command buffer. With this change, Chromium can implement its own version of SkGLNativeContext that uses command buffer, and host the implementation in its own repository. Implements the above by renaming the SkGLContextHelper to SkGLContext and removing the unneeded SkGLNativeContext. Also removes SkGLNativeContext::AutoRestoreContext functionality, it appeared to be unused: no use in Skia code, and no tests. BUG=skia:2992 Committed: https://skia.googlesource.com/skia/+/a90ed4e83897b45d6331ee4c54e1edd4054de9a8 Review URL: https://codereview.chromium.org/630843002
-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();