Index: include/gpu/gl/angle/SkANGLEGLContext.h |
diff --git a/include/gpu/gl/angle/SkANGLEGLContext.h b/include/gpu/gl/angle/SkANGLEGLContext.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..ea5e877ca27e8b3bae4565bcd38e111e3f2cc9f3 |
--- /dev/null |
+++ b/include/gpu/gl/angle/SkANGLEGLContext.h |
@@ -0,0 +1,61 @@ |
+ |
+/* |
+ * Copyright 2012 Google Inc. |
+ * |
+ * Use of this source code is governed by a BSD-style license that can be |
+ * found in the LICENSE file. |
+ */ |
+#ifndef SkANGLEGLContext_DEFINED |
+#define SkANGLEGLContext_DEFINED |
+ |
+#if SK_ANGLE |
+ |
+#include "gl/SkGLContext.h" |
+ |
+class SkANGLEGLContext : public SkGLContext { |
+public: |
+ ~SkANGLEGLContext() override; |
+#ifdef SK_BUILD_FOR_WIN |
+ static SkANGLEGLContext* CreateDirectX() { |
+ SkANGLEGLContext* ctx = new SkANGLEGLContext(false); |
+ if (!ctx->isValid()) { |
+ delete ctx; |
+ return NULL; |
+ } |
+ return ctx; |
+ } |
+#endif |
+ static SkANGLEGLContext* CreateOpenGL() { |
+ SkANGLEGLContext* ctx = new SkANGLEGLContext(true); |
+ if (!ctx->isValid()) { |
+ delete ctx; |
+ return NULL; |
+ } |
+ return ctx; |
+ } |
+ |
+ GrEGLImage texture2DToEGLImage(GrGLuint texID) const override; |
+ void destroyEGLImage(GrEGLImage) const override; |
+ GrGLuint eglImageToExternalTexture(GrEGLImage) const override; |
+ SkGLContext* createNew() const override; |
+ |
+ // The param is an EGLNativeDisplayType and the return is an EGLDispay. |
+ static void* GetD3DEGLDisplay(void* nativeDisplay, bool useGLBackend); |
+ |
+private: |
+ SkANGLEGLContext(bool preferGLBackend); |
+ void destroyGLContext(); |
+ |
+ void onPlatformMakeCurrent() const override; |
+ void onPlatformSwapBuffers() const override; |
+ GrGLFuncPtr onPlatformGetProcAddress(const char* name) const override; |
+ |
+ void* fContext; |
+ void* fDisplay; |
+ void* fSurface; |
+ bool fIsGLBackend; |
+}; |
+ |
+#endif |
+ |
+#endif |