more DOS updates from Daniel Borca
[mesa.git] / include / GL / glx.h
index 70574426e13b1908b8d4ebdf88b5e7f5890e2f31..5feb013bae05df82d20889f17330768f38f8579d 100644 (file)
@@ -1,10 +1,8 @@
-/* $Id: glx.h,v 1.24 2000/11/25 18:52:58 brianp Exp $ */
-
 /*
  * Mesa 3-D graphics library
- * Version:  3.5
+ * Version:  4.1
  * 
- * Copyright (C) 1999-2000  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2002  Brian Paul   All Rights Reserved.
  * 
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
 #pragma message enable nosimpint
 #endif
 #endif
-#include "GL/gl.h"
+#include <GL/gl.h>
 
 
 #if defined(USE_MGL_NAMESPACE)
-#include "glx_mangle.h"
+#include <GL/glx_mangle.h>
 #endif
 
 
@@ -60,6 +58,7 @@ extern "C" {
 #define GLX_VERSION_1_1                1
 #define GLX_VERSION_1_2                1
 #define GLX_VERSION_1_3                1
+#define GLX_VERSION_1_4                1
 
 #define GLX_EXTENSION_NAME   "GLX"
 
@@ -125,7 +124,10 @@ extern "C" {
 #define GLX_MAX_PBUFFER_HEIGHT         0x8017
 #define GLX_MAX_PBUFFER_PIXELS         0x8018
 #define GLX_PRESERVED_CONTENTS         0x801B
-#define GLX_LARGEST_BUFFER             0x801C
+#define GLX_LARGEST_PBUFFER            0x801C
+#define GLX_WIDTH                      0x801D
+#define GLX_HEIGHT                     0x801E
+#define GLX_EVENT_MASK                 0x801F
 #define GLX_DRAWABLE_TYPE              0x8010
 #define GLX_FBCONFIG_ID                        0x8013
 #define GLX_VISUAL_ID                  0x800B
@@ -137,7 +139,6 @@ extern "C" {
 #define GLX_FRONT_RIGHT_BUFFER_BIT     0x00000002
 #define GLX_BACK_LEFT_BUFFER_BIT       0x00000004
 #define GLX_BACK_RIGHT_BUFFER_BIT      0x00000008
-#define GLX_AUX_BUFFERS_BIT            0x00000010
 #define GLX_DEPTH_BUFFER_BIT           0x00000020
 #define GLX_STENCIL_BUFFER_BIT         0x00000040
 #define GLX_ACCUM_BUFFER_BIT           0x00000080
@@ -151,23 +152,35 @@ extern "C" {
 #define GLX_STATIC_COLOR               0x8005
 #define GLX_GRAY_SCALE                 0x8006
 #define GLX_STATIC_GRAY                        0x8007
+#define GLX_TRANSPARENT_RGB            0x8008
 #define GLX_TRANSPARENT_INDEX          0x8009
+#define GLX_RGBA_TYPE                  0x8014
 #define GLX_COLOR_INDEX_TYPE           0x8015
 #define GLX_COLOR_INDEX_BIT            0x00000002
+#define GLX_RGBA_BIT                   0x00000001
 #define GLX_SCREEN                     0x800C
 #define GLX_PBUFFER_CLOBBER_MASK       0x08000000
 #define GLX_DAMAGED                    0x8020
 #define GLX_SAVED                      0x8021
 #define GLX_WINDOW                     0x8022
 #define GLX_PBUFFER                    0x8023
+#define GLX_PBUFFER_HEIGHT              0x8040
+#define GLX_PBUFFER_WIDTH               0x8041
 
 
+/*
+ * GLX 1.4 and later:
+ */
+#define GLX_SAMPLE_BUFFERS              0x186a0 /*100000*/
+#define GLX_SAMPLES                     0x186a1 /*100001*/
 
-typedef void * GLXContext;
+
+
+typedef struct __GLXcontextRec *GLXContext;
 typedef XID GLXPixmap;
 typedef XID GLXDrawable;
 /* GLX 1.3 and later */
-typedef void * GLXFBConfig;
+typedef struct __GLXFBConfigRec *GLXFBConfig;
 typedef XID GLXFBConfigID;
 typedef XID GLXContextID;
 typedef XID GLXWindow;
@@ -279,12 +292,15 @@ extern void glXGetSelectedEvent( Display *dpy, GLXDrawable drawable,
                                  unsigned long *mask );
 
 
+/* GLX 1.4 and later */
+extern void (*glXGetProcAddress(const GLubyte *procname))();
+
 
-/*#ifndef GLX_GLXEXT_LEGACY*/
+#ifndef GLX_GLXEXT_LEGACY
 
-/*#include <GL/glxext.h>*/
+#include <GL/glxext.h>
 
-/*#else*/
+#else
 
 
 /*
@@ -414,7 +430,7 @@ extern Bool glXReleaseBuffersMESA( Display *dpy, GLXDrawable d );
 #define GLX_3DFX_WINDOW_MODE_MESA       0x1
 #define GLX_3DFX_FULLSCREEN_MODE_MESA   0x2
 
-extern GLboolean glXSet3DfxModeMESA( GLint mode );
+extern Bool glXSet3DfxModeMESA( int mode );
 
 #endif /* GLX_MESA_set_3dfx_mode */
 
@@ -432,7 +448,52 @@ extern void (*glXGetProcAddressARB(const GLubyte *procName))();
 
 
 
-/*#endif*/ /* GLX_GLXEXT_LEGACY */
+#endif /* GLX_GLXEXT_LEGACY */
+
+
+/**
+ ** The following aren't in glxext.h yet.
+ **/
+
+
+/*
+ * ???. GLX_NV_vertex_array_range
+ */
+#ifndef GLX_NV_vertex_array_range
+#define GLX_NV_vertex_array_range
+
+extern void *glXAllocateMemoryNV(GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority);
+extern void glXFreeMemoryNV(GLvoid *pointer);
+typedef void * ( * PFNGLXALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority);
+typedef void ( * PFNGLXFREEMEMORYNVPROC) (GLvoid *pointer);
+
+#endif /* GLX_NV_vertex_array_range */
+
+
+
+/*
+ * ???. GLX_MESA_agp_offset
+ */ 
+#ifndef GLX_MESA_agp_offset
+#define GLX_MESA_agp_offset 1
+
+extern GLuint glXGetAGPOffsetMESA(const GLvoid *pointer);
+typedef GLuint (* PFNGLXGETAGPOFFSETMESAPROC) (const GLvoid *pointer);
+
+#endif /* GLX_MESA_agp_offset */
+
+
+/*
+ * ARB ?. GLX_ARB_render_texture
+ */
+#ifndef GLX_ARB_render_texture
+#define GLX_ARB_render_texture 1
+
+extern Bool glXBindTexImageARB(Display *dpy, GLXPbuffer pbuffer, int buffer);
+extern Bool glXReleaseTexImageARB(Display *dpy, GLXPbuffer pbuffer, int buffer);
+extern Bool glXDrawableAttribARB(Display *dpy, GLXDrawable draw, const int *attribList);
+
+#endif /* GLX_ARB_render_texture */