text: //
  // Copyright (c) 2015 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.
  //
  
  // WindowSurfaceWGL.h: WGL implementation of egl::Surface for windows
  
  #ifndef LIBANGLE_RENDERER_GL_WGL_WINDOWSURFACEWGL_H_
  #define LIBANGLE_RENDERER_GL_WGL_WINDOWSURFACEWGL_H_
  
  #include "libANGLE/renderer/gl/wgl/SurfaceWGL.h"
  
  #include <GL/wglext.h>
  
  namespace rx
  {
  
  class FunctionsWGL;
  
  class WindowSurfaceWGL : public SurfaceWGL
  {
    public:
      WindowSurfaceWGL(const egl::SurfaceState &state,
                       RendererGL *renderer,
                       EGLNativeWindowType window,
                       int pixelFormat,
                       const FunctionsWGL *functions,
                       EGLint orientation);
      ~WindowSurfaceWGL() override;
  
      egl::Error initialize(const egl::Display *display) override;
      egl::Error makeCurrent() override;
  
      egl::Error swap(const gl::Context *context) override;
      egl::Error postSubBuffer(const gl::Context *context,
                               EGLint x,
                               EGLint y,
                               EGLint width,
                               EGLint height) override;
      egl::Error querySurfacePointerANGLE(EGLint attribute, void **value) override;
      egl::Error bindTexImage(gl::Texture *texture, EGLint buffer) override;
      egl::Error releaseTexImage(EGLint buffer) override;
      void setSwapInterval(EGLint interval) override;
  
      EGLint getWidth() const override;
      EGLint getHeight() const override;
  
      EGLint isPostSubBufferSupported() const override;
      EGLint getSwapBehavior() const override;
  
      HDC getDC() const override;
  
    private:
      int mPixelFormat;
  
      HWND mWindow;
      HDC mDeviceContext;
  
      const FunctionsWGL *mFunctionsWGL;
  
      EGLint mSwapBehavior;
  };
  
  }
  
  #endif // LIBANGLE_RENDERER_GL_WGL_WINDOWSURFACEWGL_H_
  