diff options
Diffstat (limited to 'ui/gl/gl_surface_wgl.h')
-rw-r--r-- | ui/gl/gl_surface_wgl.h | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/ui/gl/gl_surface_wgl.h b/ui/gl/gl_surface_wgl.h new file mode 100644 index 0000000..6e4f0cd --- /dev/null +++ b/ui/gl/gl_surface_wgl.h @@ -0,0 +1,77 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef UI_GL_GL_SURFACE_WGL_H_ +#define UI_GL_GL_SURFACE_WGL_H_ +#pragma once + +#include "ui/gfx/native_widget_types.h" +#include "ui/gl/gl_surface.h" + +namespace gfx { + +// Base interface for WGL surfaces. +class GLSurfaceWGL : public GLSurface { + public: + GLSurfaceWGL(); + virtual ~GLSurfaceWGL(); + + // Implement GLSurface. + virtual void* GetDisplay(); + + static bool InitializeOneOff(); + static HDC GetDisplayDC(); + + private: + DISALLOW_COPY_AND_ASSIGN(GLSurfaceWGL); +}; + +// A surface used to render to a view. +class NativeViewGLSurfaceWGL : public GLSurfaceWGL { + public: + explicit NativeViewGLSurfaceWGL(gfx::AcceleratedWidget window); + virtual ~NativeViewGLSurfaceWGL(); + + // Implement GLSurface. + virtual bool Initialize(); + virtual void Destroy(); + virtual bool IsOffscreen(); + virtual bool SwapBuffers(); + virtual gfx::Size GetSize(); + virtual void* GetHandle(); + + private: + gfx::AcceleratedWidget window_; + gfx::AcceleratedWidget child_window_; + HDC device_context_; + + DISALLOW_COPY_AND_ASSIGN(NativeViewGLSurfaceWGL); +}; + + +// A surface used to render to an offscreen pbuffer. +class PbufferGLSurfaceWGL : public GLSurfaceWGL { + public: + explicit PbufferGLSurfaceWGL(const gfx::Size& size); + virtual ~PbufferGLSurfaceWGL(); + + // Implement GLSurface. + virtual bool Initialize(); + virtual void Destroy(); + virtual bool IsOffscreen(); + virtual bool SwapBuffers(); + virtual gfx::Size GetSize(); + virtual void* GetHandle(); + + private: + gfx::Size size_; + HDC device_context_; + void* pbuffer_; + + DISALLOW_COPY_AND_ASSIGN(PbufferGLSurfaceWGL); +}; + +} // namespace gfx + +#endif // UI_GL_GL_SURFACE_WGL_H_ |