128 lines
4.7 KiB
Plaintext
128 lines
4.7 KiB
Plaintext
|
/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2009 Robert Osfield
|
||
|
*
|
||
|
* This library is open source and may be redistributed and/or modified under
|
||
|
* the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
|
||
|
* (at your option) any later version. The full license is in LICENSE file
|
||
|
* included with this distribution, and on the openscenegraph.org website.
|
||
|
*
|
||
|
* This library is distributed in the hope that it will be useful,
|
||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
|
* OpenSceneGraph Public License for more details.
|
||
|
*/
|
||
|
|
||
|
#ifndef OSGVIEWER_GRAPHICSHANDLEWIN32
|
||
|
#define OSGVIEWER_GRAPHICSHANDLEWIN32 1
|
||
|
|
||
|
#include <osgViewer/Export>
|
||
|
|
||
|
#ifndef _WIN32_WINNT
|
||
|
#define _WIN32_WINNT 0x0500
|
||
|
#endif
|
||
|
#include <windows.h>
|
||
|
|
||
|
namespace osgViewer
|
||
|
{
|
||
|
|
||
|
/** Class to encapsulate platform-specific OpenGL context handle variables.
|
||
|
* Derived osg::GraphicsContext classes can inherit from this class to
|
||
|
* share OpenGL resources.*/
|
||
|
|
||
|
class OSGVIEWER_EXPORT GraphicsHandleWin32
|
||
|
{
|
||
|
public:
|
||
|
|
||
|
GraphicsHandleWin32():
|
||
|
_hwnd(0),
|
||
|
_hdc(0),
|
||
|
_hglrc(0) {}
|
||
|
|
||
|
/** Set native window.*/
|
||
|
inline void setHWND(HWND hwnd) { _hwnd = hwnd; }
|
||
|
|
||
|
/** Get native window.*/
|
||
|
inline HWND getHWND() const { return _hwnd; }
|
||
|
|
||
|
/** Set device context.*/
|
||
|
inline void setHDC(HDC hdc) { _hdc = hdc; }
|
||
|
|
||
|
/** Get device context.*/
|
||
|
inline HDC getHDC() const { return _hdc; }
|
||
|
|
||
|
/** Set native OpenGL graphics context.*/
|
||
|
inline void setWGLContext(HGLRC hglrc) { _hglrc = hglrc; }
|
||
|
|
||
|
/** Get native OpenGL graphics context.*/
|
||
|
inline HGLRC getWGLContext() const { return _hglrc; }
|
||
|
|
||
|
protected:
|
||
|
|
||
|
HWND _hwnd;
|
||
|
HDC _hdc;
|
||
|
HGLRC _hglrc;
|
||
|
|
||
|
};
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
// Definitions required to create an OpenGL pixel format, from the WGL_ARB_pixel_format specification document.
|
||
|
// See http://www.opengl.org/registry/specs/ARB/wgl_pixel_format.txt
|
||
|
|
||
|
#ifndef WGL_ARB_pixel_format
|
||
|
#define WGL_ARB_pixel_format 1
|
||
|
#define WGL_NUMBER_PIXEL_FORMATS_ARB 0x2000
|
||
|
#define WGL_DRAW_TO_WINDOW_ARB 0x2001
|
||
|
#define WGL_DRAW_TO_BITMAP_ARB 0x2002
|
||
|
#define WGL_ACCELERATION_ARB 0x2003
|
||
|
#define WGL_NEED_PALETTE_ARB 0x2004
|
||
|
#define WGL_NEED_SYSTEM_PALETTE_ARB 0x2005
|
||
|
#define WGL_SWAP_LAYER_BUFFERS_ARB 0x2006
|
||
|
#define WGL_SWAP_METHOD_ARB 0x2007
|
||
|
#define WGL_NUMBER_OVERLAYS_ARB 0x2008
|
||
|
#define WGL_NUMBER_UNDERLAYS_ARB 0x2009
|
||
|
#define WGL_TRANSPARENT_ARB 0x200A
|
||
|
#define WGL_TRANSPARENT_RED_VALUE_ARB 0x2037
|
||
|
#define WGL_TRANSPARENT_GREEN_VALUE_ARB 0x2038
|
||
|
#define WGL_TRANSPARENT_BLUE_VALUE_ARB 0x2039
|
||
|
#define WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A
|
||
|
#define WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B
|
||
|
#define WGL_SHARE_DEPTH_ARB 0x200C
|
||
|
#define WGL_SHARE_STENCIL_ARB 0x200D
|
||
|
#define WGL_SHARE_ACCUM_ARB 0x200E
|
||
|
#define WGL_SUPPORT_GDI_ARB 0x200F
|
||
|
#define WGL_SUPPORT_OPENGL_ARB 0x2010
|
||
|
#define WGL_DOUBLE_BUFFER_ARB 0x2011
|
||
|
#define WGL_STEREO_ARB 0x2012
|
||
|
#define WGL_PIXEL_TYPE_ARB 0x2013
|
||
|
#define WGL_COLOR_BITS_ARB 0x2014
|
||
|
#define WGL_RED_BITS_ARB 0x2015
|
||
|
#define WGL_RED_SHIFT_ARB 0x2016
|
||
|
#define WGL_GREEN_BITS_ARB 0x2017
|
||
|
#define WGL_GREEN_SHIFT_ARB 0x2018
|
||
|
#define WGL_BLUE_BITS_ARB 0x2019
|
||
|
#define WGL_BLUE_SHIFT_ARB 0x201A
|
||
|
#define WGL_ALPHA_BITS_ARB 0x201B
|
||
|
#define WGL_ALPHA_SHIFT_ARB 0x201C
|
||
|
#define WGL_ACCUM_BITS_ARB 0x201D
|
||
|
#define WGL_ACCUM_RED_BITS_ARB 0x201E
|
||
|
#define WGL_ACCUM_GREEN_BITS_ARB 0x201F
|
||
|
#define WGL_ACCUM_BLUE_BITS_ARB 0x2020
|
||
|
#define WGL_ACCUM_ALPHA_BITS_ARB 0x2021
|
||
|
#define WGL_DEPTH_BITS_ARB 0x2022
|
||
|
#define WGL_STENCIL_BITS_ARB 0x2023
|
||
|
#define WGL_AUX_BUFFERS_ARB 0x2024
|
||
|
#define WGL_NO_ACCELERATION_ARB 0x2025
|
||
|
#define WGL_GENERIC_ACCELERATION_ARB 0x2026
|
||
|
#define WGL_FULL_ACCELERATION_ARB 0x2027
|
||
|
#define WGL_SWAP_EXCHANGE_ARB 0x2028
|
||
|
#define WGL_SWAP_COPY_ARB 0x2029
|
||
|
#define WGL_SWAP_UNDEFINED_ARB 0x202A
|
||
|
#define WGL_TYPE_RGBA_ARB 0x202B
|
||
|
#define WGL_TYPE_COLORINDEX_ARB 0x202C
|
||
|
#define WGL_SAMPLE_BUFFERS_ARB 0x2041
|
||
|
#define WGL_SAMPLES_ARB 0x2042
|
||
|
#endif
|
||
|
|
||
|
#endif
|