summaryrefslogtreecommitdiff
path: root/win/win_gl.h
diff options
context:
space:
mode:
authorleo2000-05-24 17:39:53 +0000
committerleo2000-05-24 17:39:53 +0000
commitdaaff783a77e2fa5a35678091663c3a6fa850e25 (patch)
tree89191de78a4d8e061cb30259747985602f1aaae7 /win/win_gl.h
parente5773dcd4fd5a3a32ebc15262f9d6f40ff339b0e (diff)
Load OpenGL dynamically under Windows
git-svn-id: http://svn.leocad.org/trunk@66 c7d43263-9d01-0410-8a33-9dba5d9f93d6
Diffstat (limited to 'win/win_gl.h')
-rwxr-xr-xwin/win_gl.h94
1 files changed, 94 insertions, 0 deletions
diff --git a/win/win_gl.h b/win/win_gl.h
new file mode 100755
index 0000000..891361c
--- /dev/null
+++ b/win/win_gl.h
@@ -0,0 +1,94 @@
+#ifndef _WIN_GL_H_
+#define _WIN_GL_H_
+
+// ============================================================================
+// WGL functions typedefs
+
+typedef int (WINAPI* WGLCHOOSEPIXELFORMAT) (HDC, CONST PIXELFORMATDESCRIPTOR *);
+typedef int (WINAPI* WGLDESCRIBEPIXELFORMAT) (HDC, int, UINT, LPPIXELFORMATDESCRIPTOR);
+typedef int (WINAPI* WGLGETPIXELFORMAT)(HDC);
+typedef BOOL (WINAPI* WGLSETPIXELFORMAT)(HDC, int, CONST PIXELFORMATDESCRIPTOR *);
+typedef BOOL (WINAPI* WGLSWAPBUFFERS)(HDC);
+typedef BOOL (WINAPI* WGLCOPYCONTEXT)(HGLRC, HGLRC, UINT);
+typedef HGLRC (WINAPI* WGLCREATECONTEXT)(HDC);
+typedef HGLRC (WINAPI* WGLCREATELAYERCONTEXT)(HDC, int);
+typedef BOOL (WINAPI* WGLDELETECONTEXT)(HGLRC);
+typedef HGLRC (WINAPI* WGLGETCURRENTCONTEXT)(VOID);
+typedef HDC (WINAPI* WGLGETCURRENTDC)(VOID);
+typedef PROC (WINAPI* WGLGETPROCADDRESS)(LPCSTR);
+typedef BOOL (WINAPI* WGLMAKECURRENT)(HDC, HGLRC);
+typedef BOOL (WINAPI* WGLSHARELISTS)(HGLRC, HGLRC);
+typedef BOOL (WINAPI* WGLUSEFONTBITMAPS)(HDC, DWORD, DWORD, DWORD);
+typedef BOOL (WINAPI* WGLUSEFONTOUTLINES)(HDC, DWORD, DWORD, DWORD, FLOAT, FLOAT, int, LPGLYPHMETRICSFLOAT);
+typedef BOOL (WINAPI* WGLDESCRIBELAYERPLANE)(HDC, int, int, UINT, LPLAYERPLANEDESCRIPTOR);
+typedef int (WINAPI* WGLSETLAYERPALETTEENTRIES)(HDC, int, int, int, CONST COLORREF *);
+typedef int (WINAPI* WGLGETLAYERPALETTEENTRIES)(HDC, int, int, int, COLORREF *);
+typedef BOOL (WINAPI* WGLREALIZELAYERPALETTE)(HDC, int, BOOL);
+typedef BOOL (WINAPI* WGLSWAPLAYERBUFFERS)(HDC, UINT);
+typedef BOOL (WINAPI* WGLSWAPINTERVALEXT)(int interval);
+typedef BOOL (WINAPI* WGLGETDEVICEGAMMARAMPEXT) (unsigned char *pRed, unsigned char *pGreen, unsigned char *pBlue);
+typedef BOOL (WINAPI* WGLSETDEVICEGAMMARAMPEXT) (const unsigned char *pRed, const unsigned char *pGreen, const unsigned char *pBlue);
+
+
+// ============================================================================
+// WGL extern declarations
+
+extern WGLCHOOSEPIXELFORMAT pfnwglChoosePixelFormat;
+extern WGLDESCRIBEPIXELFORMAT pfnwglDescribePixelFormat;
+extern WGLGETPIXELFORMAT pfnwglGetPixelFormat;
+extern WGLSETPIXELFORMAT pfnwglSetPixelFormat;
+extern WGLSWAPBUFFERS pfnwglSwapBuffers;
+extern WGLCOPYCONTEXT pfnwglCopyContext;
+extern WGLCREATECONTEXT pfnwglCreateContext;
+extern WGLCREATELAYERCONTEXT pfnwglCreateLayerContext;
+extern WGLDELETECONTEXT pfnwglDeleteContext;
+extern WGLGETCURRENTCONTEXT pfnwglGetCurrentContext;
+extern WGLGETCURRENTDC pfnwglGetCurrentDC;
+extern WGLGETPROCADDRESS pfnwglGetProcAddress;
+extern WGLMAKECURRENT pfnwglMakeCurrent;
+extern WGLSHARELISTS pfnwglShareLists;
+extern WGLUSEFONTBITMAPS pfnwglUseFontBitmaps;
+extern WGLUSEFONTOUTLINES pfnwglUseFontOutlines;
+extern WGLDESCRIBELAYERPLANE pfnwglDescribeLayerPlane;
+extern WGLSETLAYERPALETTEENTRIES pfnwglSetLayerPaletteEntries;
+extern WGLGETLAYERPALETTEENTRIES pfnwglGetLayerPaletteEntries;
+extern WGLREALIZELAYERPALETTE pfnwglRealizeLayerPalette;
+extern WGLSWAPLAYERBUFFERS pfnwglSwapLayerBuffers;
+extern WGLSWAPINTERVALEXT pfnwglSwapIntervalEXT;
+extern WGLGETDEVICEGAMMARAMPEXT pfnwglGetDeviceGammaRampEXT;
+extern WGLSETDEVICEGAMMARAMPEXT pfnwglSetDeviceGammaRampEXT;
+
+
+// ============================================================================
+// Replace WGL functions
+/*
+#undef wglUseFontBitmaps
+#undef wglUseFontOutlines
+
+#define wglChoosePixelFormat pfnwglChoosePixelFormat;
+#define wglDescribePixelFormat pfnwglDescribePixelFormat;
+#define wglGetPixelFormat pfnwglGetPixelFormat;
+#define wglSetPixelFormat pfnwglSetPixelFormat;
+#define wglSwapBuffers pfnwglSwapBuffers;
+#define wglCopyContext pfnwglCopyContext;
+#define wglCreateContext pfnwglCreateContext;
+#define wglCreateLayerContext pfnwglCreateLayerContext;
+#define wglDeleteContext pfnwglDeleteContext;
+#define wglGetCurrentContext pfnwglGetCurrentContext;
+#define wglGetCurrentDC pfnwglGetCurrentDC;
+#define wglGetProcAddress pfnwglGetProcAddress;
+#define wglMakeCurrent pfnwglMakeCurrent;
+#define wglShareLists pfnwglShareLists;
+#define wglUseFontBitmaps pfnwglUseFontBitmaps;
+#define wglUseFontOutlines pfnwglUseFontOutlines;
+#define wglDescribeLayerPlane pfnwglDescribeLayerPlane;
+#define wglSetLayerPaletteEntries pfnwglSetLayerPaletteEntries;
+#define wglGetLayerPaletteEntries pfnwglGetLayerPaletteEntries;
+#define wglRealizeLayerPalette pfnwglRealizeLayerPalette;
+#define wglSwapLayerBuffers pfnwglSwapLayerBuffers;
+#define wglSwapIntervalEXT pfnwglSwapIntervalEXT;
+#define wglGetDeviceGammaRampEXT pfnwglGetDeviceGammaRampEXT;
+#define wglSetDeviceGammaRampEXT pfnwglSetDeviceGammaRampEXT;
+*/
+
+#endif // _WIN_GL_H_