#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();
-
- virtual ~SkANGLEGLContext();
-
+ virtual ~SkANGLEGLContext() SK_OVERRIDE;
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() SK_OVERRIDE;
- virtual void destroyGLContext() SK_OVERRIDE;
+ static SkANGLEGLContext* Create(GrGLStandard forcedGpuAPI) {
+ if (kGL_GrGLStandard == forcedGpuAPI) {
+ return NULL;
+ }
+ SkANGLEGLContext* ctx = SkNEW(SkANGLEGLContext);
+ if (!ctx->isValid()) {
+ SkDELETE(ctx);
+ return NULL;
+ }
+ return ctx;
+ }
private:
+ SkANGLEGLContext();
+ void destroyGLContext();
+
EGLContext fContext;
EGLDisplay fDisplay;
EGLSurface fSurface;