1*c8dee2aaSAndroid Build Coastguard Worker /* 2*c8dee2aaSAndroid Build Coastguard Worker * Copyright 2023 Google LLC 3*c8dee2aaSAndroid Build Coastguard Worker * 4*c8dee2aaSAndroid Build Coastguard Worker * Use of this source code is governed by a BSD-style license that can be 5*c8dee2aaSAndroid Build Coastguard Worker * found in the LICENSE file. 6*c8dee2aaSAndroid Build Coastguard Worker */ 7*c8dee2aaSAndroid Build Coastguard Worker #ifndef ANGLEWindowContext_DEFINED 8*c8dee2aaSAndroid Build Coastguard Worker #define ANGLEWindowContext_DEFINED 9*c8dee2aaSAndroid Build Coastguard Worker 10*c8dee2aaSAndroid Build Coastguard Worker #define EGL_EGL_PROTOTYPES 1 11*c8dee2aaSAndroid Build Coastguard Worker 12*c8dee2aaSAndroid Build Coastguard Worker #include <EGL/egl.h> 13*c8dee2aaSAndroid Build Coastguard Worker #include <EGL/eglext.h> 14*c8dee2aaSAndroid Build Coastguard Worker #include "tools/window/GLWindowContext.h" 15*c8dee2aaSAndroid Build Coastguard Worker 16*c8dee2aaSAndroid Build Coastguard Worker namespace skwindow::internal { 17*c8dee2aaSAndroid Build Coastguard Worker 18*c8dee2aaSAndroid Build Coastguard Worker class ANGLEWindowContext : public GLWindowContext { 19*c8dee2aaSAndroid Build Coastguard Worker public: 20*c8dee2aaSAndroid Build Coastguard Worker using GLWindowContext::GLWindowContext; 21*c8dee2aaSAndroid Build Coastguard Worker ~ANGLEWindowContext() override; 22*c8dee2aaSAndroid Build Coastguard Worker 23*c8dee2aaSAndroid Build Coastguard Worker protected: 24*c8dee2aaSAndroid Build Coastguard Worker void onSwapBuffers() override; 25*c8dee2aaSAndroid Build Coastguard Worker 26*c8dee2aaSAndroid Build Coastguard Worker sk_sp<const GrGLInterface> onInitializeContext() override; 27*c8dee2aaSAndroid Build Coastguard Worker void onDestroyContext() override; 28*c8dee2aaSAndroid Build Coastguard Worker 29*c8dee2aaSAndroid Build Coastguard Worker virtual EGLDisplay onGetEGLDisplay( 30*c8dee2aaSAndroid Build Coastguard Worker PFNEGLGETPLATFORMDISPLAYEXTPROC eglGetPlatformDisplayEXT) const = 0; 31*c8dee2aaSAndroid Build Coastguard Worker virtual NativeWindowType onGetNativeWindow() const = 0; 32*c8dee2aaSAndroid Build Coastguard Worker virtual SkISize onGetSize() const = 0; 33*c8dee2aaSAndroid Build Coastguard Worker virtual int onGetStencilBits() const = 0; 34*c8dee2aaSAndroid Build Coastguard Worker 35*c8dee2aaSAndroid Build Coastguard Worker private: 36*c8dee2aaSAndroid Build Coastguard Worker EGLDisplay fDisplay = EGL_NO_DISPLAY; 37*c8dee2aaSAndroid Build Coastguard Worker EGLContext fEGLContext = EGL_NO_CONTEXT; 38*c8dee2aaSAndroid Build Coastguard Worker EGLSurface fEGLSurface = EGL_NO_SURFACE; 39*c8dee2aaSAndroid Build Coastguard Worker }; 40*c8dee2aaSAndroid Build Coastguard Worker 41*c8dee2aaSAndroid Build Coastguard Worker } // namespace skwindow::internal 42*c8dee2aaSAndroid Build Coastguard Worker 43*c8dee2aaSAndroid Build Coastguard Worker #endif 44