#ifndef UTIL_WINDOWS_WGLWINDOW_H_
#define UTIL_WINDOWS_WGLWINDOW_H_
#include "common/angleutils.h"
#include "export.h"
#include "util/EGLWindow.h"
class OSWindow;
namespace angle
{
class Library;
}
class ANGLE_UTIL_EXPORT WGLWindow : public GLWindowBase
{
public:
static WGLWindow *New(int glesMajorVersion, int glesMinorVersion);
static void Delete(WGLWindow **window);
bool initializeGL(OSWindow *osWindow,
angle::Library *glWindowingLibrary,
angle::GLESDriverType driverType,
const EGLPlatformParameters &platformParams,
const ConfigParameters &configParams) override;
void destroyGL() override;
bool isGLInitialized() const override;
bool makeCurrent() override;
void swap() override;
bool hasError() const override;
bool setSwapInterval(EGLint swapInterval) override;
angle::GenericProc getProcAddress(const char *name) override;
GLWindowContext getCurrentContextGeneric() override;
GLWindowContext createContextGeneric(GLWindowContext share) override;
bool makeCurrentGeneric(GLWindowContext context) override;
HGLRC createContext(const ConfigParameters &configParams, HGLRC shareContext);
bool makeCurrent(HGLRC context);
private:
WGLWindow(int glesMajorVersion, int glesMinorVersion);
~WGLWindow() override;
HDC mDeviceContext;
HGLRC mWGLContext;
HWND mWindow;
};
#endif