blob: 65158f4e5b682503880fde91c1ce47a01d956c71 [file] [log] [blame]
/*
* Copyright 2023 Google LLC
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#ifndef ANGLEWindowContext_DEFINED
#define ANGLEWindowContext_DEFINED
#define EGL_EGL_PROTOTYPES 1
#include <EGL/egl.h>
#include <EGL/eglext.h>
#include "tools/window/GLWindowContext.h"
namespace skwindow::internal {
class ANGLEWindowContext : public GLWindowContext {
public:
using GLWindowContext::GLWindowContext;
~ANGLEWindowContext() override;
protected:
void onSwapBuffers() override;
sk_sp<const GrGLInterface> onInitializeContext() override;
void onDestroyContext() override;
virtual EGLDisplay onGetEGLDisplay(
PFNEGLGETPLATFORMDISPLAYEXTPROC eglGetPlatformDisplayEXT) const = 0;
virtual NativeWindowType onGetNativeWindow() const = 0;
virtual SkISize onGetSize() const = 0;
virtual int onGetStencilBits() const = 0;
private:
EGLDisplay fDisplay = EGL_NO_DISPLAY;
EGLContext fEGLContext = EGL_NO_CONTEXT;
EGLSurface fEGLSurface = EGL_NO_SURFACE;
};
} // namespace skwindow::internal
#endif