-/* $Id: glxapi.h,v 1.10 2001/05/25 21:51:02 brianp Exp $ */
/*
* Mesa 3-D graphics library
- * Version: 3.5
+ * Version: 5.1
*
- * Copyright (C) 1999-2001 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"),
#include "GL/glx.h"
-#ifdef GLX_BUILD_IN_XLIB_MESA
-/* The GLX API dispatcher is being built into XFree86's libGL */
+#ifdef GLX_BUILT_IN_XMESA
+/* The GLX API dispatcher (i.e. this code) is being built into XFree86's
+ * libGL so we'll use the __GLXContextRec defined in xc/lib/GL/glx/glxclient.h
+*/
#include "glxclient.h"
#else
-/* The GLX API dispatcher is being built into stand-alone Mesa */
+/* The GLX API dispatcher (i.e. this code) is being built into stand-alone
+ * Mesa. We don't know anything about XFree86 or real GLX so we define a
+ * minimal __GLXContextRec here so some of the functions in this file can
+ * work properly.
+ */
typedef struct __GLXcontextRec {
Display *currentDpy;
GLboolean isDirect;
* pseudo-GLX can be present at the same time. The former being used on
* GLX-enabled X servers and the later on non-GLX X servers.
*
- * XXX Note that this hasn't actually been fully used yet in either Mesa or
- * the DRI. Red Hat, however, has used it for their custom libGL.
+ * Red Hat has been using this since Red Hat Linux 7.0 (I think).
+ * This'll be a standard feature in XFree86 4.3. It basically allows one
+ * libGL to do both DRI-rendering and "fake GLX" rendering to X displays
+ * that lack the GLX extension.
*/
struct _glxapi_table {
/*** GLX_VERSION_1_0 ***/
/*** GLX_MESA_set_3dfx_mode ***/
Bool (*Set3DfxModeMESA)(int mode);
+ /*** GLX_NV_vertex_array_range ***/
+ void * (*AllocateMemoryNV)( GLsizei size,
+ GLfloat readFrequency,
+ GLfloat writeFrequency,
+ GLfloat priority );
+ void (*FreeMemoryNV)( GLvoid *pointer );
+
+ /*** GLX_MESA_agp_offset ***/
+ GLuint (*GetAGPOffsetMESA)( const GLvoid *pointer );
+
+ /*** GLX_ARB_render_texture ***/
+ Bool (*BindTexImageARB)(Display *dpy, GLXPbuffer pbuffer, int buffer);
+ Bool (*ReleaseTexImageARB)(Display *dpy, GLXPbuffer pbuffer, int buffer);
+ Bool (*DrawableAttribARB)(Display *dpy, GLXDrawable draw, const int *attribList);
};