| // | |
| // Copyright 2018 The ANGLE Project Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| // | |
| // WGLWindow: | |
| // Implements initializing a WGL rendering context. | |
| // | |
| #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; | |
| } // namespace angle | |
| class ANGLE_UTIL_EXPORT WGLWindow : public GLWindowBase | |
| { | |
| public: | |
| static WGLWindow *New(int glesMajorVersion, int glesMinorVersion); | |
| static void Delete(WGLWindow **window); | |
| // Internally initializes GL resources. | |
| bool initializeGL(OSWindow *osWindow, | |
| angle::Library *glWindowingLibrary, | |
| 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; | |
| private: | |
| WGLWindow(int glesMajorVersion, int glesMinorVersion); | |
| ~WGLWindow() override; | |
| // OS resources. | |
| HDC mDeviceContext; | |
| HGLRC mWGLContext; | |
| HWND mWindow; | |
| }; | |
| #endif // UTIL_WINDOWS_WGLWINDOW_H_ |