1*4882a593Smuzhiyun /* 2*4882a593Smuzhiyun * File: wgl_ext_api.h 3*4882a593Smuzhiyun * Purpose: Wrapper functions for Win32 OpenGL wgl extension functions 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * Authors: Jon TURNEY 6*4882a593Smuzhiyun * 7*4882a593Smuzhiyun * Copyright (c) Jon TURNEY 2009 8*4882a593Smuzhiyun * 9*4882a593Smuzhiyun * 10*4882a593Smuzhiyun * Permission is hereby granted, free of charge, to any person obtaining a 11*4882a593Smuzhiyun * copy of this software and associated documentation files (the "Software"), 12*4882a593Smuzhiyun * to deal in the Software without restriction, including without limitation 13*4882a593Smuzhiyun * the rights to use, copy, modify, merge, publish, distribute, sublicense, 14*4882a593Smuzhiyun * and/or sell copies of the Software, and to permit persons to whom the 15*4882a593Smuzhiyun * Software is furnished to do so, subject to the following conditions: 16*4882a593Smuzhiyun * 17*4882a593Smuzhiyun * The above copyright notice and this permission notice shall be included in 18*4882a593Smuzhiyun * all copies or substantial portions of the Software. 19*4882a593Smuzhiyun * 20*4882a593Smuzhiyun * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21*4882a593Smuzhiyun * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22*4882a593Smuzhiyun * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 23*4882a593Smuzhiyun * THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR 24*4882a593Smuzhiyun * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 25*4882a593Smuzhiyun * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 26*4882a593Smuzhiyun * DEALINGS IN THE SOFTWARE. 27*4882a593Smuzhiyun */ 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun #ifndef wgl_ext_api_h 30*4882a593Smuzhiyun #define wgl_ext_api_h 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun #include <GL/wglext.h> 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun void wglResolveExtensionProcs(void); 35*4882a593Smuzhiyun 36*4882a593Smuzhiyun /* 37*4882a593Smuzhiyun Prototypes for wrapper functions we actually use 38*4882a593Smuzhiyun XXX: should be automatically generated as well 39*4882a593Smuzhiyun */ 40*4882a593Smuzhiyun 41*4882a593Smuzhiyun const char *wglGetExtensionsStringARBWrapper(HDC hdc); 42*4882a593Smuzhiyun BOOL wglMakeContextCurrentARBWrapper(HDC hDrawDC, HDC hReadDC, HGLRC hglrc); 43*4882a593Smuzhiyun HDC wglGetCurrentReadDCARBWrapper(VOID); 44*4882a593Smuzhiyun 45*4882a593Smuzhiyun BOOL wglGetPixelFormatAttribivARBWrapper(HDC hdc, 46*4882a593Smuzhiyun int iPixelFormat, 47*4882a593Smuzhiyun int iLayerPlane, 48*4882a593Smuzhiyun UINT nAttributes, 49*4882a593Smuzhiyun const int *piAttributes, 50*4882a593Smuzhiyun int *piValues); 51*4882a593Smuzhiyun 52*4882a593Smuzhiyun BOOL wglGetPixelFormatAttribfvARBWrapper(HDC hdc, 53*4882a593Smuzhiyun int iPixelFormat, 54*4882a593Smuzhiyun int iLayerPlane, 55*4882a593Smuzhiyun UINT nAttributes, 56*4882a593Smuzhiyun const int *piAttributes, 57*4882a593Smuzhiyun FLOAT * pfValues); 58*4882a593Smuzhiyun 59*4882a593Smuzhiyun BOOL wglChoosePixelFormatARBWrapper(HDC hdc, 60*4882a593Smuzhiyun const int *piAttribIList, 61*4882a593Smuzhiyun const FLOAT * pfAttribFList, 62*4882a593Smuzhiyun UINT nMaxFormats, 63*4882a593Smuzhiyun int *piFormats, UINT * nNumFormats); 64*4882a593Smuzhiyun 65*4882a593Smuzhiyun HPBUFFERARB wglCreatePbufferARBWrapper(HDC hDC, 66*4882a593Smuzhiyun int iPixelFormat, 67*4882a593Smuzhiyun int iWidth, 68*4882a593Smuzhiyun int iHeight, const int *piAttribList); 69*4882a593Smuzhiyun 70*4882a593Smuzhiyun HDC wglGetPbufferDCARBWrapper(HPBUFFERARB hPbuffer); 71*4882a593Smuzhiyun 72*4882a593Smuzhiyun int wglReleasePbufferDCARBWrapper(HPBUFFERARB hPbuffer, HDC hDC); 73*4882a593Smuzhiyun 74*4882a593Smuzhiyun BOOL wglDestroyPbufferARBWrapper(HPBUFFERARB hPbuffer); 75*4882a593Smuzhiyun 76*4882a593Smuzhiyun BOOL wglQueryPbufferARBWrapper(HPBUFFERARB hPbuffer, 77*4882a593Smuzhiyun int iAttribute, int *piValue); 78*4882a593Smuzhiyun 79*4882a593Smuzhiyun BOOL wglSwapIntervalEXTWrapper(int interval); 80*4882a593Smuzhiyun 81*4882a593Smuzhiyun int wglGetSwapIntervalEXTWrapper(void); 82*4882a593Smuzhiyun 83*4882a593Smuzhiyun #endif /* wgl_ext_api_h */ 84