-/* os2_glx.c */\r
-\r
-#include <stdio.h>\r
-#include <string.h>\r
-#include <malloc.h>\r
-#include "gl/gl.h"\r
-#include "WarpGL.h"\r
-#include "GL/os2mesa.h"\r
-\r
-#define POKA 0\r
-/* global current HDC */\r
-\r
-XVisualInfo *wglDescribePixelFormat(int iPixelFormat);\r
-\r
-extern HDC XHDC;\r
-extern HWND XHWND;\r
-//extern HPS hpsCurrent;\r
-extern HAB hab; /* PM anchor block handle */\r
-\r
-GLXContext\r
-glXCreateContext(HPS hps, XVisualInfo * visinfo,\r
- GLXContext share, Bool direct)\r
-{\r
- /* KLUDGE: GLX really expects a display pointer to be passed\r
- in as the first parameter, but Win32 needs an HDC instead,\r
- so BE SURE that the global XHDC is set before calling this\r
- routine. */\r
- HGLRC context;\r
-\r
- context = wglCreateContext(XHDC,hps,hab);\r
-\r
-\r
- /* Since direct rendering is implicit, the direct flag is\r
- ignored. */\r
-\r
- return context;\r
-}\r
-\r
-\r
-int\r
-glXGetConfig(XVisualInfo * visual, int attrib, int *value)\r
-{\r
- if (!visual)\r
- return GLX_BAD_VISUAL;\r
-\r
- switch (attrib) {\r
- case GLX_USE_GL:\r
- if (visual->dwFlags & (PFD_SUPPORT_OPENGL | PFD_DRAW_TO_WINDOW)) {\r
- /* XXX Brad's Matrix Millenium II has problems creating\r
- color index windows in 24-bit mode (lead to GDI crash)\r
- and 32-bit mode (lead to black window). The cColorBits\r
- filed of the PIXELFORMATDESCRIPTOR returned claims to\r
- have 24 and 32 bits respectively of color indices. 2^24\r
- and 2^32 are ridiculously huge writable colormaps.\r
- Assume that if we get back a color index\r
- PIXELFORMATDESCRIPTOR with 24 or more bits, the\r
- PIXELFORMATDESCRIPTOR doesn't really work and skip it.\r
- -mjk */\r
- if (visual->iPixelType == PFD_TYPE_COLORINDEX\r
- && visual->cColorBits >= 24) {\r
- *value = 0;\r
- } else {\r
- *value = 1;\r
- }\r
- } else {\r
- *value = 0;\r
- }\r
- break;\r
- case GLX_BUFFER_SIZE:\r
- /* KLUDGE: if we're RGBA, return the number of bits/pixel,\r
- otherwise, return 8 (we guessed at 256 colors in CI\r
- mode). */\r
- if (visual->iPixelType == PFD_TYPE_RGBA)\r
- *value = visual->cColorBits;\r
- else\r
- *value = 8;\r
- break;\r
- case GLX_LEVEL:\r
- /* The bReserved flag of the pfd contains the\r
- overlay/underlay info. */\r
- *value = visual->bReserved;\r
- break;\r
- case GLX_RGBA:\r
- *value = visual->iPixelType == PFD_TYPE_RGBA;\r
- break;\r
- case GLX_DOUBLEBUFFER:\r
- *value = visual->dwFlags & PFD_DOUBLEBUFFER;\r
- break;\r
- case GLX_STEREO:\r
- *value = visual->dwFlags & PFD_STEREO;\r
- break;\r
- case GLX_AUX_BUFFERS:\r
- *value = visual->cAuxBuffers;\r
- break;\r
- case GLX_RED_SIZE:\r
- *value = visual->cRedBits;\r
- break;\r
- case GLX_GREEN_SIZE:\r
- *value = visual->cGreenBits;\r
- break;\r
- case GLX_BLUE_SIZE:\r
- *value = visual->cBlueBits;\r
- break;\r
- case GLX_ALPHA_SIZE:\r
- *value = visual->cAlphaBits;\r
- break;\r
- case GLX_DEPTH_SIZE:\r
- *value = visual->cDepthBits;\r
- break;\r
- case GLX_STENCIL_SIZE:\r
- *value = visual->cStencilBits;\r
- break;\r
- case GLX_ACCUM_RED_SIZE:\r
- *value = visual->cAccumRedBits;\r
- break;\r
- case GLX_ACCUM_GREEN_SIZE:\r
- *value = visual->cAccumGreenBits;\r
- break;\r
- case GLX_ACCUM_BLUE_SIZE:\r
- *value = visual->cAccumBlueBits;\r
- break;\r
- case GLX_ACCUM_ALPHA_SIZE:\r
- *value = visual->cAccumAlphaBits;\r
- break;\r
-#if POKA == 100\r
-#endif /* POKA == 100 */\r
- default:\r
- return GLX_BAD_ATTRIB;\r
- }\r
- return 0;\r
-}\r
-\r
-\r
-XVisualInfo * glXChooseVisual(int mode)\r
-{ int imode = 2;\r
- if(mode & GLUT_DOUBLE)\r
- imode = 1;\r
- return\r
- wglDescribePixelFormat(imode);\r
-}\r
-\r
-\r
-#if POKA\r
-#endif /* POKA */\r
-\r
+/* os2_glx.c */
+
+#include <stdio.h>
+#include <string.h>
+#include <malloc.h>
+#include "gl/gl.h"
+#include "WarpGL.h"
+#include "GL/os2mesa.h"
+
+#define POKA 0
+/* global current HDC */
+
+XVisualInfo *wglDescribePixelFormat(int iPixelFormat);
+
+extern HDC XHDC;
+extern HWND XHWND;
+//extern HPS hpsCurrent;
+extern HAB hab; /* PM anchor block handle */
+
+GLXContext
+glXCreateContext(HPS hps, XVisualInfo * visinfo,
+ GLXContext share, Bool direct)
+{
+ /* KLUDGE: GLX really expects a display pointer to be passed
+ in as the first parameter, but Win32 needs an HDC instead,
+ so BE SURE that the global XHDC is set before calling this
+ routine. */
+ HGLRC context;
+
+ context = wglCreateContext(XHDC,hps,hab);
+
+
+ /* Since direct rendering is implicit, the direct flag is
+ ignored. */
+
+ return context;
+}
+
+
+int
+glXGetConfig(XVisualInfo * visual, int attrib, int *value)
+{
+ if (!visual)
+ return GLX_BAD_VISUAL;
+
+ switch (attrib) {
+ case GLX_USE_GL:
+ if (visual->dwFlags & (PFD_SUPPORT_OPENGL | PFD_DRAW_TO_WINDOW)) {
+ /* XXX Brad's Matrix Millenium II has problems creating
+ color index windows in 24-bit mode (lead to GDI crash)
+ and 32-bit mode (lead to black window). The cColorBits
+ filed of the PIXELFORMATDESCRIPTOR returned claims to
+ have 24 and 32 bits respectively of color indices. 2^24
+ and 2^32 are ridiculously huge writable colormaps.
+ Assume that if we get back a color index
+ PIXELFORMATDESCRIPTOR with 24 or more bits, the
+ PIXELFORMATDESCRIPTOR doesn't really work and skip it.
+ -mjk */
+ if (visual->iPixelType == PFD_TYPE_COLORINDEX
+ && visual->cColorBits >= 24) {
+ *value = 0;
+ } else {
+ *value = 1;
+ }
+ } else {
+ *value = 0;
+ }
+ break;
+ case GLX_BUFFER_SIZE:
+ /* KLUDGE: if we're RGBA, return the number of bits/pixel,
+ otherwise, return 8 (we guessed at 256 colors in CI
+ mode). */
+ if (visual->iPixelType == PFD_TYPE_RGBA)
+ *value = visual->cColorBits;
+ else
+ *value = 8;
+ break;
+ case GLX_LEVEL:
+ /* The bReserved flag of the pfd contains the
+ overlay/underlay info. */
+ *value = visual->bReserved;
+ break;
+ case GLX_RGBA:
+ *value = visual->iPixelType == PFD_TYPE_RGBA;
+ break;
+ case GLX_DOUBLEBUFFER:
+ *value = visual->dwFlags & PFD_DOUBLEBUFFER;
+ break;
+ case GLX_STEREO:
+ *value = visual->dwFlags & PFD_STEREO;
+ break;
+ case GLX_AUX_BUFFERS:
+ *value = visual->cAuxBuffers;
+ break;
+ case GLX_RED_SIZE:
+ *value = visual->cRedBits;
+ break;
+ case GLX_GREEN_SIZE:
+ *value = visual->cGreenBits;
+ break;
+ case GLX_BLUE_SIZE:
+ *value = visual->cBlueBits;
+ break;
+ case GLX_ALPHA_SIZE:
+ *value = visual->cAlphaBits;
+ break;
+ case GLX_DEPTH_SIZE:
+ *value = visual->cDepthBits;
+ break;
+ case GLX_STENCIL_SIZE:
+ *value = visual->cStencilBits;
+ break;
+ case GLX_ACCUM_RED_SIZE:
+ *value = visual->cAccumRedBits;
+ break;
+ case GLX_ACCUM_GREEN_SIZE:
+ *value = visual->cAccumGreenBits;
+ break;
+ case GLX_ACCUM_BLUE_SIZE:
+ *value = visual->cAccumBlueBits;
+ break;
+ case GLX_ACCUM_ALPHA_SIZE:
+ *value = visual->cAccumAlphaBits;
+ break;
+#if POKA == 100
+#endif /* POKA == 100 */
+ default:
+ return GLX_BAD_ATTRIB;
+ }
+ return 0;
+}
+
+
+XVisualInfo * glXChooseVisual(int mode)
+{ int imode = 2;
+ if(mode & GLUT_DOUBLE)
+ imode = 1;
+ return
+ wglDescribePixelFormat(imode);
+}
+
+
+#if POKA
+#endif /* POKA */
+
\1a
\ No newline at end of file