diff options
Diffstat (limited to 'nx-X11/lib/GL/apple')
-rw-r--r-- | nx-X11/lib/GL/apple/Imakefile | 54 | ||||
-rw-r--r-- | nx-X11/lib/GL/apple/appledri.c | 302 | ||||
-rw-r--r-- | nx-X11/lib/GL/apple/appledri.h | 106 | ||||
-rw-r--r-- | nx-X11/lib/GL/apple/appledristr.h | 174 | ||||
-rwxr-xr-x | nx-X11/lib/GL/apple/build-dispatch | 101 | ||||
-rw-r--r-- | nx-X11/lib/GL/apple/dri_dispatch.c | 153 | ||||
-rw-r--r-- | nx-X11/lib/GL/apple/dri_dispatch.defs | 856 | ||||
-rw-r--r-- | nx-X11/lib/GL/apple/dri_dispatch.h | 3861 | ||||
-rw-r--r-- | nx-X11/lib/GL/apple/dri_driver.c | 1141 | ||||
-rw-r--r-- | nx-X11/lib/GL/apple/dri_driver.h | 188 | ||||
-rw-r--r-- | nx-X11/lib/GL/apple/dri_glx.c | 265 | ||||
-rw-r--r-- | nx-X11/lib/GL/apple/dri_glx.h | 67 |
12 files changed, 7268 insertions, 0 deletions
diff --git a/nx-X11/lib/GL/apple/Imakefile b/nx-X11/lib/GL/apple/Imakefile new file mode 100644 index 000000000..0a593e63e --- /dev/null +++ b/nx-X11/lib/GL/apple/Imakefile @@ -0,0 +1,54 @@ +XCOMM $XFree86: xc/lib/GL/apple/Imakefile,v 1.2 2003/10/09 23:42:32 torrey Exp $ + +#include <Threads.tmpl> + +#define DoNormalLib (NormalLibGlx || SharedLibGlxWithoutPIC) +#define DoSharedLib (SharedLibGlx && !SharedLibGlxWithoutPIC) +#define DoExtraLib SharedLibGlx +#define DoDebugLib DebugLibGlx +#define DoProfileLib ProfileLibGlx + + XPRDIR = $(SERVERSRC)/hw/darwin/quartz/xpr + +LinkSourceFile(x-list.c,$(XPRDIR)) +LinkSourceFile(x-list.h,$(XPRDIR)) +LinkSourceFile(x-hash.c,$(XPRDIR)) +LinkSourceFile(x-hash.h,$(XPRDIR)) + +#if Malloc0ReturnsNull +ALLOC_DEFINES = -DMALLOC_0_RETURNS_NULL +#endif + + DRI_SRCS = dri_glx.c dri_driver.c dri_dispatch.c x-hash.c x-list.c + DRI_OBJS = dri_glx.o dri_driver.o dri_dispatch.o x-hash.o x-list.o + DRI_INCS = -I. -I$(GLXLIBSRC)/glx -I$(INCLUDESRC) -I$(INCLUDESRC)/GL \ + -I$(XINCLUDESRC) -I$(SERVERSRC)/GL/dri -I$(XPINCDIR) \ + -I$(MESASRCDIR)/include -I$(MESASRCDIR)/src/mesa/glapi \ + -I$(GLXLIBSRC)/include + + AS = /System/Library/Frameworks/ApplicationServices.framework + + DEFINES = $(ALLOC_DEFINES) GlxDefines $(GLX_DEFS) -DXP_NO_X_HEADERS=1 \ + -DOSVERSION=OSMajorVersion*100+OSMinorVersion + INCLUDES = -I$(XLIBSRC) -I$(EXTINCSRC) -I$(XF86OSSRC) \ + -I$(DRMSRCDIR)/shared-core -I$(DRI_INCS) -F$(AS)/Frameworks + SRCS = appledri.c $(DRI_SRCS) + OBJS = appledri.o $(DRI_OBJS) + +/* We won't require this to run when building normally, just for updating. + Also, don't give it any dependences so make doesn't attempt to rebuild + it if the dates get screwed up. (It actually depends on build-dispatch + and dri_dispatch.defs) */ +dri_dispatch.h : + ./build-dispatch <dri_dispatch.defs >$@ + +LinkSourceFile(drm.h,$(DRMSRCDIR)/shared-core) + +#include <Library.tmpl> + +LibraryObjectRule() + +SubdirLibraryRule($(OBJS)) +NormalLintTarget($(SRCS)) + +DependTarget() diff --git a/nx-X11/lib/GL/apple/appledri.c b/nx-X11/lib/GL/apple/appledri.c new file mode 100644 index 000000000..ed48fcb0c --- /dev/null +++ b/nx-X11/lib/GL/apple/appledri.c @@ -0,0 +1,302 @@ +/* $XFree86: xc/lib/GL/dri/XF86dri.c,v 1.12 2001/08/27 17:40:57 dawes Exp $ */ +/************************************************************************** + +Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. +Copyright 2000 VA Linux Systems, Inc. +Copyright (c) 2002 Apple Computer, Inc. +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"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sub license, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice (including the +next paragraph) shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. +IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +**************************************************************************/ + +/* + * Authors: + * Kevin E. Martin <martin@valinux.com> + * Jens Owen <jens@valinux.com> + * Rickard E. (Rik) Faith <faith@valinux.com> + * + */ + +/* THIS IS NOT AN X CONSORTIUM STANDARD */ + +#define NEED_EVENTS +#define NEED_REPLIES +#include <X11/Xlibint.h> +#include "appledristr.h" +#include <X11/extensions/Xext.h> +#include "extutil.h" +#include <stdio.h> + +static XExtensionInfo _appledri_info_data; +static XExtensionInfo *appledri_info = &_appledri_info_data; +static char *appledri_extension_name = APPLEDRINAME; + +#define AppleDRICheckExtension(dpy,i,val) \ + XextCheckExtension(dpy, i, appledri_extension_name, val) + +/***************************************************************************** + * * + * private utility routines * + * * + *****************************************************************************/ + +static int close_display(Display *dpy, XExtCodes *extCodes); +static Bool wire_to_event(); + +static /* const */ XExtensionHooks appledri_extension_hooks = { + NULL, /* create_gc */ + NULL, /* copy_gc */ + NULL, /* flush_gc */ + NULL, /* free_gc */ + NULL, /* create_font */ + NULL, /* free_font */ + close_display, /* close_display */ + wire_to_event, /* wire_to_event */ + NULL, /* event_to_wire */ + NULL, /* error */ + NULL, /* error_string */ +}; + +static XEXT_GENERATE_FIND_DISPLAY(find_display, appledri_info, + appledri_extension_name, + &appledri_extension_hooks, + AppleDRINumberEvents, NULL) + +static XEXT_GENERATE_CLOSE_DISPLAY(close_display, appledri_info) + +static void (*surface_notify_handler)(); + +void * +XAppleDRISetSurfaceNotifyHandler(void (*fun)()) +{ + void *old = surface_notify_handler; + surface_notify_handler = fun; + return old; +} + +static Bool wire_to_event(dpy, re, event) + Display *dpy; + XEvent *re; + xEvent *event; +{ + XExtDisplayInfo *info = find_display(dpy); + xAppleDRINotifyEvent *sevent; + + AppleDRICheckExtension(dpy, info, False); + + switch ((event->u.u.type & 0x7f) - info->codes->first_event) { + case AppleDRISurfaceNotify: + sevent = (xAppleDRINotifyEvent *) event; + if (surface_notify_handler != NULL) { + (*surface_notify_handler)(dpy, (unsigned int) sevent->arg, + (int) sevent->kind); + } + return False; + } + return False; +} + +/***************************************************************************** + * * + * public Apple-DRI Extension routines * + * * + *****************************************************************************/ + +#if 0 +#include <stdio.h> +#define TRACE(msg) fprintf(stderr, "AppleDRI%s\n", msg); +#else +#define TRACE(msg) +#endif + + +Bool XAppleDRIQueryExtension(dpy, event_basep, error_basep) + Display *dpy; + int *event_basep, *error_basep; +{ + XExtDisplayInfo *info = find_display(dpy); + + TRACE("QueryExtension..."); + if (XextHasExtension(info)) { + *event_basep = info->codes->first_event; + *error_basep = info->codes->first_error; + TRACE("QueryExtension... return True"); + return True; + } else { + TRACE("QueryExtension... return False"); + return False; + } +} + +Bool XAppleDRIQueryVersion(dpy, majorVersion, minorVersion, patchVersion) + Display* dpy; + int* majorVersion; + int* minorVersion; + int* patchVersion; +{ + XExtDisplayInfo *info = find_display(dpy); + xAppleDRIQueryVersionReply rep; + xAppleDRIQueryVersionReq *req; + + TRACE("QueryVersion..."); + AppleDRICheckExtension(dpy, info, False); + + LockDisplay(dpy); + GetReq(AppleDRIQueryVersion, req); + req->reqType = info->codes->major_opcode; + req->driReqType = X_AppleDRIQueryVersion; + if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) { + UnlockDisplay(dpy); + SyncHandle(); + TRACE("QueryVersion... return False"); + return False; + } + *majorVersion = rep.majorVersion; + *minorVersion = rep.minorVersion; + *patchVersion = rep.patchVersion; + UnlockDisplay(dpy); + SyncHandle(); + TRACE("QueryVersion... return True"); + return True; +} + +Bool XAppleDRIQueryDirectRenderingCapable(dpy, screen, isCapable) + Display* dpy; + int screen; + Bool* isCapable; +{ + XExtDisplayInfo *info = find_display(dpy); + xAppleDRIQueryDirectRenderingCapableReply rep; + xAppleDRIQueryDirectRenderingCapableReq *req; + + TRACE("QueryDirectRenderingCapable..."); + AppleDRICheckExtension(dpy, info, False); + + LockDisplay(dpy); + GetReq(AppleDRIQueryDirectRenderingCapable, req); + req->reqType = info->codes->major_opcode; + req->driReqType = X_AppleDRIQueryDirectRenderingCapable; + req->screen = screen; + if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) { + UnlockDisplay(dpy); + SyncHandle(); + TRACE("QueryDirectRenderingCapable... return False"); + return False; + } + *isCapable = rep.isCapable; + UnlockDisplay(dpy); + SyncHandle(); + TRACE("QueryDirectRenderingCapable... return True"); + return True; +} + +Bool XAppleDRIAuthConnection(dpy, screen, magic) + Display* dpy; + int screen; + unsigned int magic; +{ + XExtDisplayInfo *info = find_display(dpy); + xAppleDRIAuthConnectionReq *req; + xAppleDRIAuthConnectionReply rep; + + TRACE("AuthConnection..."); + AppleDRICheckExtension(dpy, info, False); + + LockDisplay(dpy); + GetReq(AppleDRIAuthConnection, req); + req->reqType = info->codes->major_opcode; + req->driReqType = X_AppleDRIAuthConnection; + req->screen = screen; + req->magic = magic; + rep.authenticated = 0; + if (!_XReply(dpy, (xReply *)&rep, 0, xFalse) || !rep.authenticated) { + UnlockDisplay(dpy); + SyncHandle(); + TRACE("AuthConnection... return False"); + return False; + } + UnlockDisplay(dpy); + SyncHandle(); + TRACE("AuthConnection... return True"); + return True; +} + +Bool XAppleDRICreateSurface(dpy, screen, drawable, client_id, key, uid) + Display* dpy; + int screen; + Drawable drawable; + unsigned int client_id; + unsigned int *key; + unsigned int *uid; +{ + XExtDisplayInfo *info = find_display(dpy); + xAppleDRICreateSurfaceReply rep; + xAppleDRICreateSurfaceReq *req; + + TRACE("CreateSurface..."); + AppleDRICheckExtension(dpy, info, False); + + LockDisplay(dpy); + GetReq(AppleDRICreateSurface, req); + req->reqType = info->codes->major_opcode; + req->driReqType = X_AppleDRICreateSurface; + req->screen = screen; + req->drawable = drawable; + req->client_id = client_id; + rep.key_0 = rep.key_1 = rep.uid = 0; + if (!_XReply(dpy, (xReply *)&rep, 0, xFalse) || !rep.key_0) { + UnlockDisplay(dpy); + SyncHandle(); + TRACE("CreateSurface... return False"); + return False; + } + key[0] = rep.key_0; + key[1] = rep.key_1; + *uid = rep.uid; + UnlockDisplay(dpy); + SyncHandle(); + TRACE("CreateSurface... return True"); + return True; +} + +Bool XAppleDRIDestroySurface(dpy, screen, drawable) + Display* dpy; + int screen; + Drawable drawable; +{ + XExtDisplayInfo *info = find_display(dpy); + xAppleDRIDestroySurfaceReq *req; + + TRACE("DestroySurface..."); + AppleDRICheckExtension(dpy, info, False); + + LockDisplay(dpy); + GetReq(AppleDRIDestroySurface, req); + req->reqType = info->codes->major_opcode; + req->driReqType = X_AppleDRIDestroySurface; + req->screen = screen; + req->drawable = drawable; + UnlockDisplay(dpy); + SyncHandle(); + TRACE("DestroySurface... return True"); + return True; +} diff --git a/nx-X11/lib/GL/apple/appledri.h b/nx-X11/lib/GL/apple/appledri.h new file mode 100644 index 000000000..fafdc236c --- /dev/null +++ b/nx-X11/lib/GL/apple/appledri.h @@ -0,0 +1,106 @@ +/* $XFree86: xc/lib/GL/apple/appledri.h,v 1.1 2003/06/30 01:45:10 torrey Exp $ */ +/************************************************************************** + +Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. +Copyright 2000 VA Linux Systems, Inc. +Copyright (c) 2002 Apple Computer, Inc. +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"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sub license, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice (including the +next paragraph) shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. +IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +**************************************************************************/ + +/* + * Authors: + * Kevin E. Martin <martin@valinux.com> + * Jens Owen <jens@valinux.com> + * Rickard E. (Rik) Faith <faith@valinux.com> + * + */ + +#ifndef _APPLEDRI_H_ +#define _APPLEDRI_H_ + +#include <X11/Xfuncproto.h> + +#define X_AppleDRIQueryVersion 0 +#define X_AppleDRIQueryDirectRenderingCapable 1 +#define X_AppleDRICreateSurface 2 +#define X_AppleDRIDestroySurface 3 +#define X_AppleDRIAuthConnection 4 +/* Requests up to and including 18 were used in a previous version */ + +/* Events */ +#define AppleDRIObsoleteEvent1 0 +#define AppleDRIObsoleteEvent2 1 +#define AppleDRIObsoleteEvent3 2 +#define AppleDRISurfaceNotify 3 +#define AppleDRINumberEvents 4 + +/* Errors */ +#define AppleDRIClientNotLocal 0 +#define AppleDRIOperationNotSupported 1 +#define AppleDRINumberErrors (AppleDRIOperationNotSupported + 1) + +/* Kinds of SurfaceNotify events: */ +#define AppleDRISurfaceNotifyChanged 0 +#define AppleDRISurfaceNotifyDestroyed 1 + +#ifndef _APPLEDRI_SERVER_ + +typedef struct { + int type; /* of event */ + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if this came frome a SendEvent request */ + Display *display; /* Display the event was read from */ + Window window; /* window of event */ + Time time; /* server timestamp when event happened */ + int kind; /* subtype of event */ + int arg; +} XAppleDRINotifyEvent; + +_XFUNCPROTOBEGIN + +Bool XAppleDRIQueryExtension (Display *dpy, int *event_base, int *error_base); + +Bool XAppleDRIQueryVersion (Display *dpy, int *majorVersion, + int *minorVersion, int *patchVersion); + +Bool XAppleDRIQueryDirectRenderingCapable (Display *dpy, int screen, + Bool *isCapable); + +void *XAppleDRISetSurfaceNotifyHandler (void (*fun) (Display *dpy, + unsigned uid, int kind)); + +Bool XAppleDRIAuthConnection (Display *dpy, int screen, unsigned int magic); + +Bool XAppleDRICreateSurface (Display *dpy, int screen, Drawable drawable, + unsigned int client_id, unsigned int key[2], + unsigned int* uid); + +Bool XAppleDRIDestroySurface (Display *dpy, int screen, Drawable drawable); + +Bool XAppleDRISynchronizeSurfaces (Display *dpy); + +_XFUNCPROTOEND + +#endif /* _APPLEDRI_SERVER_ */ +#endif /* _APPLEDRI_H_ */ diff --git a/nx-X11/lib/GL/apple/appledristr.h b/nx-X11/lib/GL/apple/appledristr.h new file mode 100644 index 000000000..ec4158391 --- /dev/null +++ b/nx-X11/lib/GL/apple/appledristr.h @@ -0,0 +1,174 @@ +/* $XFree86: xc/lib/GL/apple/appledristr.h,v 1.1 2003/06/30 01:45:10 torrey Exp $ */ +/************************************************************************** + +Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. +Copyright 2000 VA Linux Systems, Inc. +Copyright (c) 2002 Apple Computer, Inc. +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"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sub license, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice (including the +next paragraph) shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. +IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +**************************************************************************/ + +/* + * Authors: + * Kevin E. Martin <martin@valinux.com> + * Jens Owen <jens@valinux.com> + * Rickard E. (Rik) Fiath <faith@valinux.com> + * + */ + +#ifndef _APPLEDRISTR_H_ +#define _APPLEDRISTR_H_ + +#include "appledri.h" + +#define APPLEDRINAME "Apple-DRI" + +#define APPLE_DRI_MAJOR_VERSION 1 /* current version numbers */ +#define APPLE_DRI_MINOR_VERSION 0 +#define APPLE_DRI_PATCH_VERSION 0 + +typedef struct _AppleDRIQueryVersion { + CARD8 reqType; /* always DRIReqCode */ + CARD8 driReqType; /* always X_DRIQueryVersion */ + CARD16 length B16; +} xAppleDRIQueryVersionReq; +#define sz_xAppleDRIQueryVersionReq 4 + +typedef struct { + BYTE type; /* X_Reply */ + BOOL pad1; + CARD16 sequenceNumber B16; + CARD32 length B32; + CARD16 majorVersion B16; /* major version of DRI protocol */ + CARD16 minorVersion B16; /* minor version of DRI protocol */ + CARD32 patchVersion B32; /* patch version of DRI protocol */ + CARD32 pad3 B32; + CARD32 pad4 B32; + CARD32 pad5 B32; + CARD32 pad6 B32; +} xAppleDRIQueryVersionReply; +#define sz_xAppleDRIQueryVersionReply 32 + +typedef struct _AppleDRIQueryDirectRenderingCapable { + CARD8 reqType; /* always DRIReqCode */ + CARD8 driReqType; /* X_DRIQueryDirectRenderingCapable */ + CARD16 length B16; + CARD32 screen B32; +} xAppleDRIQueryDirectRenderingCapableReq; +#define sz_xAppleDRIQueryDirectRenderingCapableReq 8 + +typedef struct { + BYTE type; /* X_Reply */ + BOOL pad1; + CARD16 sequenceNumber B16; + CARD32 length B32; + BOOL isCapable; + BOOL pad2; + BOOL pad3; + BOOL pad4; + CARD32 pad5 B32; + CARD32 pad6 B32; + CARD32 pad7 B32; + CARD32 pad8 B32; + CARD32 pad9 B32; +} xAppleDRIQueryDirectRenderingCapableReply; +#define sz_xAppleDRIQueryDirectRenderingCapableReply 32 + +typedef struct _AppleDRIAuthConnection { + CARD8 reqType; /* always DRIReqCode */ + CARD8 driReqType; /* always X_DRICloseConnection */ + CARD16 length B16; + CARD32 screen B32; + CARD32 magic B32; +} xAppleDRIAuthConnectionReq; +#define sz_xAppleDRIAuthConnectionReq 12 + +typedef struct { + BYTE type; + BOOL pad1; + CARD16 sequenceNumber B16; + CARD32 length B32; + CARD32 authenticated B32; + CARD32 pad2 B32; + CARD32 pad3 B32; + CARD32 pad4 B32; + CARD32 pad5 B32; + CARD32 pad6 B32; +} xAppleDRIAuthConnectionReply; +#define zx_xAppleDRIAuthConnectionReply 32 + +typedef struct _AppleDRICreateSurface { + CARD8 reqType; /* always DRIReqCode */ + CARD8 driReqType; /* always X_DRICreateSurface */ + CARD16 length B16; + CARD32 screen B32; + CARD32 drawable B32; + CARD32 client_id B32; +} xAppleDRICreateSurfaceReq; +#define sz_xAppleDRICreateSurfaceReq 16 + +typedef struct { + BYTE type; /* X_Reply */ + BOOL pad1; + CARD16 sequenceNumber B16; + CARD32 length B32; + CARD32 key_0 B32; + CARD32 key_1 B32; + CARD32 uid B32; + CARD32 pad4 B32; + CARD32 pad5 B32; + CARD32 pad6 B32; +} xAppleDRICreateSurfaceReply; +#define sz_xAppleDRICreateSurfaceReply 32 + +typedef struct _AppleDRIDestroySurface { + CARD8 reqType; /* always DRIReqCode */ + CARD8 driReqType; /* always X_DRIDestroySurface */ + CARD16 length B16; + CARD32 screen B32; + CARD32 drawable B32; +} xAppleDRIDestroySurfaceReq; +#define sz_xAppleDRIDestroySurfaceReq 12 + +typedef struct _AppleDRINotify { + BYTE type; /* always eventBase + event type */ + BYTE kind; + CARD16 sequenceNumber B16; + Time time B32; /* time of change */ + CARD16 pad1 B16; + CARD32 arg B32; + CARD32 pad3 B32; +} xAppleDRINotifyEvent; +#define sz_xAppleDRINotifyEvent 20 + +#ifdef _APPLEDRI_SERVER_ + +void AppleDRISendEvent ( + int /* type */, + unsigned int /* mask */, + int /* which */, + int /* arg */ +); + +#endif /* _APPLEDRI_SERVER_ */ +#endif /* _APPLEDRISTR_H_ */ diff --git a/nx-X11/lib/GL/apple/build-dispatch b/nx-X11/lib/GL/apple/build-dispatch new file mode 100755 index 000000000..862e10c0d --- /dev/null +++ b/nx-X11/lib/GL/apple/build-dispatch @@ -0,0 +1,101 @@ +#!/bin/sh +exec rep "$0" "$@" +!# + +;; build-dispatch + +;; $Id: build-dispatch,v 1.2 2004/04/23 18:43:09 eich Exp $ +;; $XFree86: $ + +;; Copyright (c) 2002 Apple Computer, Inc. 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"), to deal in the Software without restriction, +;; including without limitation the rights to use, copy, modify, merge, +;; publish, distribute, sublicense, and/or sell copies of the Software, +;; and to permit persons to whom the Software is furnished to do so, +;; subject to the following conditions: + +;; The above copyright notice and this permission notice shall be +;; included in all copies or substantial portions of the Software. + +;; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +;; EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +;; MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +;; NONINFRINGEMENT. IN NO EVENT SHALL THE THE ABOVE LISTED COPYRIGHT +;; HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +;; WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +;; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +;; DEALINGS IN THE SOFTWARE. + +;; Except as contained in this notice, the name(s) of the above +;; copyright holders shall not be used in advertising or otherwise to +;; promote the sale, use or other dealings in this Software without +;; prior written authorization. + +;; This lisp script is used to build the C dispatch table from the +;; .defs file. It currently uses my (jsh's) rep interpreter. The +;; created file is checked into cvs, so it only needs to be run when +;; the .defs file is touched + +(structure () + + (open rep + rep.regexp) + + (defmacro @ args `(format standard-output ,@args)) + + (define stubs '()) + + (define (strip-args s) + (mapcar (lambda (x) + (and (string-match "[ \t\n*]+([a-zA-Z0-9_]+)$" x) + (expand-last-match "\\1"))) + (string-split "," s))) + + (@ "/* dri_dispatch.h -- built automatically, DO NOT EDIT\n $%s$\n $%s$ */\n\n" "Id" "XFree86: ") + + (condition-case nil + (while t + (let* ((form (read standard-input)) + (args (unless (string= (nth 3 form) "void") + (strip-args (nth 3 form)))) + (internal (>= (nth 2 form) 0)) + (alias (nth 4 form)) + (prefix (if (eq (nth 0 form) 'void) + "_VOID \(" + (format nil " \(%s, " (nth 0 form))))) + (when (or internal (not alias)) + (@ "DEFUN_%s%s%s,\n (%s),\n (%s)\)\n\n" + (if internal "LOCAL" "EXTERN") + prefix + (nth 1 form) + (if (string= (nth 3 form) "void") + (if internal "void *rend" "") + (if internal (format nil "void *rend, %s" (nth 3 form)) (nth 3 form))) + (mapconcat identity args ", "))) + (when alias + (@ "DEFUN_ALIAS%s%s, %s,\n (%s),\n (%s)\)\n\n" + prefix (nth 1 form) alias (nth 3 form) + (mapconcat identity args ", "))) + (when internal + (setq stubs (cons form stubs))))) + + (end-of-stream)) + + (setq stubs (nreverse stubs)) + + (@ "#define INDIRECT_DISPATCH_INIT(d,p) \\\n") + (@ "do { \\\n") + + (setq stubs (sort stubs (lambda (a b) + (< (nth 2 a) (nth 2 b))))) + + (let loop ((rest stubs)) + (when rest + (let ((form (car rest))) + (@ " (d)[%s] = (void *) &p ## %s; \\\n" (nth 2 form) (nth 1 form))) + (loop (cdr rest)))) + + (@ "} while (0)\n")) diff --git a/nx-X11/lib/GL/apple/dri_dispatch.c b/nx-X11/lib/GL/apple/dri_dispatch.c new file mode 100644 index 000000000..8e5c4ddfd --- /dev/null +++ b/nx-X11/lib/GL/apple/dri_dispatch.c @@ -0,0 +1,153 @@ +/* dri_dispatch.c + $Id: dri_dispatch.c,v 1.5 2005/07/03 07:00:55 daniels Exp $ + + Copyright (c) 2002 Apple Computer, Inc. All rights reserved. + Copyright (c) Torrey T. Lyons. 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"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, + publish, distribute, sublicense, and/or sell copies of the Software, + and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE THE ABOVE LISTED COPYRIGHT + HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + + Except as contained in this notice, the name(s) of the above + copyright holders shall not be used in advertising or otherwise to + promote the sale, use or other dealings in this Software without + prior written authorization. */ +/* $XFree86: xc/lib/GL/apple/dri_dispatch.c,v 1.4 2004/04/21 04:59:40 torrey Exp $ */ + +#include <OpenGL/OpenGL.h> +#include <OpenGL/CGLContext.h> + +/* We use Apple's GL headers, but as of Panther its glext.h + did not define the following. */ +#ifndef GL_ARB_vertex_buffer_object +#include <stddef.h> +typedef ptrdiff_t GLintptrARB; +typedef ptrdiff_t GLsizeiptrARB; +#endif + +#define GLAPIENTRYP * +#include "glapi.h" +#include "glapitable.h" +#include "glxclient.h" + +#include <Xlibint.h> +#include <stdio.h> + +#ifdef __GNUC__ +# define GCC_VERSION (__GNUC__ * 1000 + __GNUC_MINOR__) +#else +# define GCC_VERSION 0 +#endif + +#if GCC_VERSION < 3000 +# define __builtin_expect(a, b) a +#endif + +static int indirect_noop (void) +{ + return 0; +} + +/* Macro used for gl functions that exist in OpenGL.framework. We'll + use the existing stub for the initial dispatch, but need this + function to handle indirect contexts. */ +#define DEFUN_LOCAL_1(ret, return, gn, proto, args) \ +static ret indirect__ ## gn proto \ +{ \ + struct _glapi_table *disp; \ + \ + disp = _glapi_Dispatch; \ + if (__builtin_expect (disp == NULL, 0)) \ + disp = _glapi_get_dispatch (); \ + \ + return (*disp->gn) args; \ +} + +/* Macro used for gl functions that don't exist in OpenGL.framework. + We drop them on the floor in direct rendering mode, but pass them + over the wire normally for indirect contexts. */ +#define DEFUN_EXTERN_1(ret, return, gn, proto, args) \ +ret gl ## gn proto \ +{ \ + __GLXcontext *gc; \ + struct _glapi_table *disp; \ + \ + gc = __glXGetCurrentContext (); \ + if (!gc->isDirect) { \ + disp = _glapi_Dispatch; \ + if (__builtin_expect (disp == NULL, 0)) \ + disp = _glapi_get_dispatch (); \ + \ + return (*disp->gn) args; \ + } else { \ + int a = 0; return (ret) a; \ + } \ +} + +/* Macro for functions that already exist, but with a different name. */ +#define DEFUN_ALIAS_1(ret, return, gn, on, proto, args) \ +ret gl ## gn proto \ +{ \ + return gl ## on args; \ +} + +#define DEFUN_LOCAL(r, gn, p, a) \ + DEFUN_LOCAL_1 (r, return, gn, p, a) +#define DEFUN_LOCAL_VOID(gn, p, a) \ + DEFUN_LOCAL_1 (void, , gn, p, a) + +#define DEFUN_EXTERN(r, gn, p, a) \ + DEFUN_EXTERN_1 (r, return, gn, p, a) +#define DEFUN_EXTERN_VOID(gn, p, a) \ + DEFUN_EXTERN_1 (void, , gn, p, a) + +#define DEFUN_ALIAS(r, gn, on, p, a) \ + DEFUN_ALIAS_1 (r, return, gn, on, p, a) +#define DEFUN_ALIAS_VOID(gn, on, p, a) \ + DEFUN_ALIAS_1 (void, , gn, on, p, a) + +#include "dri_dispatch.h" + +__private_extern__ const CGLContextObj +XAppleDRIGetIndirectContext (void) +{ + static CGLContextObj ctx; + void **t; + int i; + + if (ctx != NULL) + return ctx; + + /* initialize gl */ + CGLSetOption (kCGLGOResetLibrary, 0); + + /* Create an empty "context" for dispatching purposes. Add some slop + in case the dispatch table grows in future updates. */ + ctx = Xcalloc (1, sizeof (struct _CGLContextObject) + 1024); + + /* fill it with no-op vectors */ + t = (void **) &ctx->disp; + for (i = 0; i < (int) (sizeof (ctx->disp) / sizeof (t[0])); i++) + t[i] = &indirect_noop; + + /* then install the functions we actually support */ + INDIRECT_DISPATCH_INIT (((void **) (&ctx->disp)), indirect__); + + return ctx; +} diff --git a/nx-X11/lib/GL/apple/dri_dispatch.defs b/nx-X11/lib/GL/apple/dri_dispatch.defs new file mode 100644 index 000000000..7d268e929 --- /dev/null +++ b/nx-X11/lib/GL/apple/dri_dispatch.defs @@ -0,0 +1,856 @@ +;; -*- lisp -*- + +;; dri_dispatch.defs + +;; $Id: dri_dispatch.defs,v 1.5 2004/08/18 23:12:49 kem Exp $ +;; $XFree86: xc/lib/GL/apple/dri_dispatch.defs,v 1.6 2004/04/21 04:59:40 torrey Exp $ + +;; Copyright (c) 2002 Apple Computer, Inc. All rights reserved. +;; Copyright (c) 2003-2004 Torrey T. Lyons. 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"), to deal in the Software without restriction, +;; including without limitation the rights to use, copy, modify, merge, +;; publish, distribute, sublicense, and/or sell copies of the Software, +;; and to permit persons to whom the Software is furnished to do so, +;; subject to the following conditions: + +;; The above copyright notice and this permission notice shall be +;; included in all copies or substantial portions of the Software. + +;; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +;; EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +;; MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +;; NONINFRINGEMENT. IN NO EVENT SHALL THE THE ABOVE LISTED COPYRIGHT +;; HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +;; WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +;; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +;; DEALINGS IN THE SOFTWARE. + +;; Except as contained in this notice, the name(s) of the above +;; copyright holders shall not be used in advertising or otherwise to +;; promote the sale, use or other dealings in this Software without +;; prior written authorization. + +;; This file maps the Mesa GL api that X uses to the Apple CGL entry +;; points. It's used to automatically generate the CGL dispatch table +;; that's installed when an indirect context is current + +;; The format is (RETURN-TYPE MESA-NAME CGL-INDEX "ARGS" [ALIAS]) + +;; For the script to work, ARGS must be either the string "void" or a +;; comma separated list of parameters. Each parameter name _must_ be +;; the last non-whitespace token in the field (i.e. inline function +;; declarations won't work) + +;; CGL-INDEX is an index into the function vector table defined in +;; <OpenGL/gliDispatch.h>. The names of the entries in this table +;; aren't guaranteed to remain the same, but the table is guaranteed to +;; be binary-compatible in future revisions, so we use indices. + +;; If CGL-INDEX is -1, it denotes that OpenGL.framework doesn't +;; implement that function. We'll generate our own stub and make +;; it work in indirect mode (unless it has an alias). + +;; ALIAS is the name of the function that should be used to define an +;; external entry point for the function (because it doesn't exist in +;; OpenGL.framework) + +;; The ordering matches the Mesa api table, but that's not important + +;; This table has some dependencies on the version of Mac OS X. +;; Currently the script used to process this table does not handle +;; these dependencies appropriately, so they must be added by hand. +;; They are indicated by MAC_OS_X_VERSION in the comments below. + +(void NewList 177 "GLuint list, GLenum mode") +(void EndList 75 "void") +(void CallList 8 "GLuint list") +(void CallLists 9 "GLsizei n, GLenum type, const GLvoid * lists") +(void DeleteLists 58 "GLuint list, GLsizei range") +(GLuint GenLists 97 "GLsizei range") +(void ListBase 156 "GLuint base") +(void Begin 4 "GLenum mode") +(void Bitmap 6 "GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte * bitmap") +(void Color3b 17 "GLbyte red, GLbyte green, GLbyte blue") +(void Color3bv 18 "const GLbyte * v") +(void Color3d 19 "GLdouble red, GLdouble green, GLdouble blue") +(void Color3dv 20 "const GLdouble * v") +(void Color3f 21 "GLfloat red, GLfloat green, GLfloat blue") +(void Color3fv 22 "const GLfloat * v") +(void Color3i 23 "GLint red, GLint green, GLint blue") +(void Color3iv 24 "const GLint * v") +(void Color3s 25 "GLshort red, GLshort green, GLshort blue") +(void Color3sv 26 "const GLshort * v") +(void Color3ub 27 "GLubyte red, GLubyte green, GLubyte blue") +(void Color3ubv 28 "const GLubyte * v") +(void Color3ui 29 "GLuint red, GLuint green, GLuint blue") +(void Color3uiv 30 "const GLuint * v") +(void Color3us 31 "GLushort red, GLushort green, GLushort blue") +(void Color3usv 32 "const GLushort * v") +(void Color4b 33 "GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha") +(void Color4bv 34 "const GLbyte * v") +(void Color4d 35 "GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha") +(void Color4dv 36 "const GLdouble * v") +(void Color4f 37 "GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha") +(void Color4fv 38 "const GLfloat * v") +(void Color4i 39 "GLint red, GLint green, GLint blue, GLint alpha") +(void Color4iv 40 "const GLint * v") +(void Color4s 41 "GLshort red, GLshort green, GLshort blue, GLshort alpha") +(void Color4sv 42 "const GLshort * v") +(void Color4ub 43 "GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha") +(void Color4ubv 44 "const GLubyte * v") +(void Color4ui 45 "GLuint red, GLuint green, GLuint blue, GLuint alpha") +(void Color4uiv 46 "const GLuint * v") +(void Color4us 47 "GLushort red, GLushort green, GLushort blue, GLushort alpha") +(void Color4usv 48 "const GLushort * v") +(void EdgeFlag 69 "GLboolean flag") +(void EdgeFlagv 71 "const GLboolean * flag") +(void End 74 "void") +(void Indexd 131 "GLdouble c") +(void Indexdv 132 "const GLdouble * c") +(void Indexf 133 "GLfloat c") +(void Indexfv 134 "const GLfloat * c") +(void Indexi 135 "GLint c") +(void Indexiv 136 "const GLint * c") +(void Indexs 137 "GLshort c") +(void Indexsv 138 "const GLshort * c") +(void Normal3b 178 "GLbyte nx, GLbyte ny, GLbyte nz") +(void Normal3bv 179 "const GLbyte * v") +(void Normal3d 180 "GLdouble nx, GLdouble ny, GLdouble nz") +(void Normal3dv 181 "const GLdouble * v") +(void Normal3f 182 "GLfloat nx, GLfloat ny, GLfloat nz") +(void Normal3fv 183 "const GLfloat * v") +(void Normal3i 184 "GLint nx, GLint ny, GLint nz") +(void Normal3iv 185 "const GLint * v") +(void Normal3s 186 "GLshort nx, GLshort ny, GLshort nz") +(void Normal3sv 187 "const GLshort * v") +(void RasterPos2d 212 "GLdouble x, GLdouble y") +(void RasterPos2dv 213 "const GLdouble * v") +(void RasterPos2f 214 "GLfloat x, GLfloat y") +(void RasterPos2fv 215 "const GLfloat * v") +(void RasterPos2i 216 "GLint x, GLint y") +(void RasterPos2iv 217 "const GLint * v") +(void RasterPos2s 218 "GLshort x, GLshort y") +(void RasterPos2sv 219 "const GLshort * v") +(void RasterPos3d 220 "GLdouble x, GLdouble y, GLdouble z") +(void RasterPos3dv 221 "const GLdouble * v") +(void RasterPos3f 222 "GLfloat x, GLfloat y, GLfloat z") +(void RasterPos3fv 223 "const GLfloat * v") +(void RasterPos3i 224 "GLint x, GLint y, GLint z") +(void RasterPos3iv 225 "const GLint * v") +(void RasterPos3s 226 "GLshort x, GLshort y, GLshort z") +(void RasterPos3sv 227 "const GLshort * v") +(void RasterPos4d 228 "GLdouble x, GLdouble y, GLdouble z, GLdouble w") +(void RasterPos4dv 229 "const GLdouble * v") +(void RasterPos4f 230 "GLfloat x, GLfloat y, GLfloat z, GLfloat w") +(void RasterPos4fv 231 "const GLfloat * v") +(void RasterPos4i 232 "GLint x, GLint y, GLint z, GLint w") +(void RasterPos4iv 233 "const GLint * v") +(void RasterPos4s 234 "GLshort x, GLshort y, GLshort z, GLshort w") +(void RasterPos4sv 235 "const GLshort * v") +(void Rectd 238 "GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2") +(void Rectdv 239 "const GLdouble * v1, const GLdouble * v2") +(void Rectf 240 "GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2") +(void Rectfv 241 "const GLfloat * v1, const GLfloat * v2") +(void Recti 242 "GLint x1, GLint y1, GLint x2, GLint y2") +(void Rectiv 243 "const GLint * v1, const GLint * v2") +(void Rects 244 "GLshort x1, GLshort y1, GLshort x2, GLshort y2") +(void Rectsv 245 "const GLshort * v1, const GLshort * v2") +(void TexCoord1d 257 "GLdouble s") +(void TexCoord1dv 258 "const GLdouble * v") +(void TexCoord1f 259 "GLfloat s") +(void TexCoord1fv 260 "const GLfloat * v") +(void TexCoord1i 261 "GLint s") +(void TexCoord1iv 262 "const GLint * v") +(void TexCoord1s 263 "GLshort s") +(void TexCoord1sv 264 "const GLshort * v") +(void TexCoord2d 265 "GLdouble s, GLdouble t") +(void TexCoord2dv 266 "const GLdouble * v") +(void TexCoord2f 267 "GLfloat s, GLfloat t") +(void TexCoord2fv 268 "const GLfloat * v") +(void TexCoord2i 269 "GLint s, GLint t") +(void TexCoord2iv 270 "const GLint * v") +(void TexCoord2s 271 "GLshort s, GLshort t") +(void TexCoord2sv 272 "const GLshort * v") +(void TexCoord3d 273 "GLdouble s, GLdouble t, GLdouble r") +(void TexCoord3dv 274 "const GLdouble * v") +(void TexCoord3f 275 "GLfloat s, GLfloat t, GLfloat r") +(void TexCoord3fv 276 "const GLfloat * v") +(void TexCoord3i 277 "GLint s, GLint t, GLint r") +(void TexCoord3iv 278 "const GLint * v") +(void TexCoord3s 279 "GLshort s, GLshort t, GLshort r") +(void TexCoord3sv 280 "const GLshort * v") +(void TexCoord4d 281 "GLdouble s, GLdouble t, GLdouble r, GLdouble q") +(void TexCoord4dv 282 "const GLdouble * v") +(void TexCoord4f 283 "GLfloat s, GLfloat t, GLfloat r, GLfloat q") +(void TexCoord4fv 284 "const GLfloat * v") +(void TexCoord4i 285 "GLint s, GLint t, GLint r, GLint q") +(void TexCoord4iv 286 "const GLint * v") +(void TexCoord4s 287 "GLshort s, GLshort t, GLshort r, GLshort q") +(void TexCoord4sv 288 "const GLshort * v") +(void Vertex2d 310 "GLdouble x, GLdouble y") +(void Vertex2dv 311 "const GLdouble * v") +(void Vertex2f 312 "GLfloat x, GLfloat y") +(void Vertex2fv 313 "const GLfloat * v") +(void Vertex2i 314 "GLint x, GLint y") +(void Vertex2iv 315 "const GLint * v") +(void Vertex2s 316 "GLshort x, GLshort y") +(void Vertex2sv 317 "const GLshort * v") +(void Vertex3d 318 "GLdouble x, GLdouble y, GLdouble z") +(void Vertex3dv 319 "const GLdouble * v") +(void Vertex3f 320 "GLfloat x, GLfloat y, GLfloat z") +(void Vertex3fv 321 "const GLfloat * v") +(void Vertex3i 322 "GLint x, GLint y, GLint z") +(void Vertex3iv 323 "const GLint * v") +(void Vertex3s 324 "GLshort x, GLshort y, GLshort z") +(void Vertex3sv 325 "const GLshort * v") +(void Vertex4d 326 "GLdouble x, GLdouble y, GLdouble z, GLdouble w") +(void Vertex4dv 327 "const GLdouble * v") +(void Vertex4f 328 "GLfloat x, GLfloat y, GLfloat z, GLfloat w") +(void Vertex4fv 329 "const GLfloat * v") +(void Vertex4i 330 "GLint x, GLint y, GLint z, GLint w") +(void Vertex4iv 331 "const GLint * v") +(void Vertex4s 332 "GLshort x, GLshort y, GLshort z, GLshort w") +(void Vertex4sv 333 "const GLshort * v") +(void ClipPlane 16 "GLenum plane, const GLdouble * equation") +(void ColorMaterial 50 "GLenum face, GLenum mode") +(void CullFace 57 "GLenum mode") +(void Fogf 91 "GLenum pname, GLfloat param") +(void Fogfv 92 "GLenum pname, const GLfloat * params") +(void Fogi 93 "GLenum pname, GLint param") +(void Fogiv 94 "GLenum pname, const GLint * params") +(void FrontFace 95 "GLenum mode") +(void Hint 128 "GLenum target, GLenum mode") +(void Lightf 150 "GLenum light, GLenum pname, GLfloat param") +(void Lightfv 151 "GLenum light, GLenum pname, const GLfloat * params") +(void Lighti 152 "GLenum light, GLenum pname, GLint param") +(void Lightiv 153 "GLenum light, GLenum pname, const GLint * params") +(void LightModelf 146 "GLenum pname, GLfloat param") +(void LightModelfv 147 "GLenum pname, const GLfloat * params") +(void LightModeli 148 "GLenum pname, GLint param") +(void LightModeliv 149 "GLenum pname, const GLint * params") +(void LineStipple 154 "GLint factor, GLushort pattern") +(void LineWidth 155 "GLfloat width") +(void Materialf 170 "GLenum face, GLenum pname, GLfloat param") +(void Materialfv 171 "GLenum face, GLenum pname, const GLfloat * params") +(void Materiali 172 "GLenum face, GLenum pname, GLint param") +(void Materialiv 173 "GLenum face, GLenum pname, const GLint * params") +(void PointSize 199 "GLfloat size") +(void PolygonMode 200 "GLenum face, GLenum mode") +(void PolygonStipple 202 "const GLubyte * mask") +(void Scissor 251 "GLint x, GLint y, GLsizei width, GLsizei height") +(void ShadeModel 253 "GLenum mode") +(void TexParameterf 302 "GLenum target, GLenum pname, GLfloat param") +(void TexParameterfv 303 "GLenum target, GLenum pname, const GLfloat * params") +(void TexParameteri 304 "GLenum target, GLenum pname, GLint param") +(void TexParameteriv 305 "GLenum target, GLenum pname, const GLint * params") +(void TexImage1D 300 "GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid * pixels") +(void TexImage2D 301 "GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid * pixels") +(void TexEnvf 290 "GLenum target, GLenum pname, GLfloat param") +(void TexEnvfv 291 "GLenum target, GLenum pname, const GLfloat * params") +(void TexEnvi 292 "GLenum target, GLenum pname, GLint param") +(void TexEnviv 293 "GLenum target, GLenum pname, const GLint * params") +(void TexGend 294 "GLenum coord, GLenum pname, GLdouble param") +(void TexGendv 295 "GLenum coord, GLenum pname, const GLdouble * params") +(void TexGenf 296 "GLenum coord, GLenum pname, GLfloat param") +(void TexGenfv 297 "GLenum coord, GLenum pname, const GLfloat * params") +(void TexGeni 298 "GLenum coord, GLenum pname, GLint param") +(void TexGeniv 299 "GLenum coord, GLenum pname, const GLint * params") +(void FeedbackBuffer 88 "GLsizei size, GLenum type, GLfloat * buffer") +(void SelectBuffer 252 "GLsizei size, GLuint * buffer") +(GLint RenderMode 246 "GLenum mode") +(void InitNames 141 "void") +(void LoadName 160 "GLuint name") +(void PassThrough 190 "GLfloat token") +(void PopName 206 "void") +(void PushName 211 "GLuint name") +(void DrawBuffer 66 "GLenum mode") +(void Clear 10 "GLbitfield mask") +(void ClearAccum 11 "GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha") +(void ClearIndex 14 "GLfloat c") +(void ClearColor 12 "GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha") +(void ClearStencil 15 "GLint s") +(void ClearDepth 13 "GLclampd depth") +(void StencilMask 255 "GLuint mask") +(void ColorMask 49 "GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha") +(void DepthMask 61 "GLboolean flag") +(void IndexMask 129 "GLuint mask") +(void Accum 0 "GLenum op, GLfloat value") +(void Disable 63 "GLenum cap") +(void Enable 72 "GLenum cap") +(void Finish 89 "void") +(void Flush 90 "void") +(void PopAttrib 203 "void") +(void PushAttrib 208 "GLbitfield mask") +(void Map1d 162 "GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble * points") +(void Map1f 163 "GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat * points") +(void Map2d 164 "GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble * points") +(void Map2f 165 "GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat * points") +(void MapGrid1d 166 "GLint un, GLdouble u1, GLdouble u2") +(void MapGrid1f 167 "GLint un, GLfloat u1, GLfloat u2") +(void MapGrid2d 168 "GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2") +(void MapGrid2f 169 "GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2") +(void EvalCoord1d 76 "GLdouble u") +(void EvalCoord1dv 77 "const GLdouble * u") +(void EvalCoord1f 78 "GLfloat u") +(void EvalCoord1fv 79 "const GLfloat * u") +(void EvalCoord2d 80 "GLdouble u, GLdouble v") +(void EvalCoord2dv 81 "const GLdouble * u") +(void EvalCoord2f 82 "GLfloat u, GLfloat v") +(void EvalCoord2fv 83 "const GLfloat * u") +(void EvalMesh1 84 "GLenum mode, GLint i1, GLint i2") +(void EvalPoint1 86 "GLint i") +(void EvalMesh2 85 "GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2") +(void EvalPoint2 87 "GLint i, GLint j") +(void AlphaFunc 1 "GLenum func, GLclampf ref") +(void BlendFunc 7 "GLenum sfactor, GLenum dfactor") +(void LogicOp 161 "GLenum opcode") +(void StencilFunc 254 "GLenum func, GLint ref, GLuint mask") +(void StencilOp 256 "GLenum fail, GLenum zfail, GLenum zpass") +(void DepthFunc 60 "GLenum func") +(void PixelZoom 198 "GLfloat xfactor, GLfloat yfactor") +(void PixelTransferf 196 "GLenum pname, GLfloat param") +(void PixelTransferi 197 "GLenum pname, GLint param") +(void PixelStoref 194 "GLenum pname, GLfloat param") +(void PixelStorei 195 "GLenum pname, GLint param") +(void PixelMapfv 191 "GLenum map, GLint mapsize, const GLfloat * values") +(void PixelMapuiv 192 "GLenum map, GLint mapsize, const GLuint * values") +(void PixelMapusv 193 "GLenum map, GLint mapsize, const GLushort * values") +(void ReadBuffer 236 "GLenum mode") +(void CopyPixels 52 "GLint x, GLint y, GLsizei width, GLsizei height, GLenum type") +(void ReadPixels 237 "GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid * pixels") +(void DrawPixels 68 "GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * pixels") +(void GetBooleanv 99 "GLenum pname, GLboolean * params") +(void GetClipPlane 100 "GLenum plane, GLdouble * equation") +(void GetDoublev 101 "GLenum pname, GLdouble * params") +(GLenum GetError 102 "void") +(void GetFloatv 103 "GLenum pname, GLfloat * params") +(void GetIntegerv 104 "GLenum pname, GLint * params") +(void GetLightfv 105 "GLenum light, GLenum pname, GLfloat * params") +(void GetLightiv 106 "GLenum light, GLenum pname, GLint * params") +(void GetMapdv 107 "GLenum target, GLenum query, GLdouble * v") +(void GetMapfv 108 "GLenum target, GLenum query, GLfloat * v") +(void GetMapiv 109 "GLenum target, GLenum query, GLint * v") +(void GetMaterialfv 110 "GLenum face, GLenum pname, GLfloat * params") +(void GetMaterialiv 111 "GLenum face, GLenum pname, GLint * params") +(void GetPixelMapfv 112 "GLenum map, GLfloat * values") +(void GetPixelMapuiv 113 "GLenum map, GLuint * values") +(void GetPixelMapusv 114 "GLenum map, GLushort * values") +(void GetPolygonStipple 116 "GLubyte * mask") +(|const GLubyte *| GetString 117 "GLenum name") +(void GetTexEnvfv 118 "GLenum target, GLenum pname, GLfloat * params") +(void GetTexEnviv 119 "GLenum target, GLenum pname, GLint * params") +(void GetTexGendv 120 "GLenum coord, GLenum pname, GLdouble * params") +(void GetTexGenfv 121 "GLenum coord, GLenum pname, GLfloat * params") +(void GetTexGeniv 122 "GLenum coord, GLenum pname, GLint * params") +(void GetTexImage 123 "GLenum target, GLint level, GLenum format, GLenum type, GLvoid * pixels") +(void GetTexParameterfv 126 "GLenum target, GLenum pname, GLfloat * params") +(void GetTexParameteriv 127 "GLenum target, GLenum pname, GLint * params") +(void GetTexLevelParameterfv 124 "GLenum target, GLint level, GLenum pname, GLfloat * params") +(void GetTexLevelParameteriv 125 "GLenum target, GLint level, GLenum pname, GLint * params") +(GLboolean IsEnabled 143 "GLenum cap") +(GLboolean IsList 144 "GLuint list") +(void DepthRange 62 "GLclampd zNear, GLclampd zFar") +(void Frustum 96 "GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar") +(void LoadIdentity 157 "void") +(void LoadMatrixf 159 "const GLfloat * m") +(void LoadMatrixd 158 "const GLdouble * m") +(void MatrixMode 174 "GLenum mode") +(void MultMatrixf 176 "const GLfloat * m") +(void MultMatrixd 175 "const GLdouble * m") +(void Ortho 189 "GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar") +(void PopMatrix 205 "void") +(void PushMatrix 210 "void") +(void Rotated 247 "GLdouble angle, GLdouble x, GLdouble y, GLdouble z") +(void Rotatef 248 "GLfloat angle, GLfloat x, GLfloat y, GLfloat z") +(void Scaled 249 "GLdouble x, GLdouble y, GLdouble z") +(void Scalef 250 "GLfloat x, GLfloat y, GLfloat z") +(void Translated 308 "GLdouble x, GLdouble y, GLdouble z") +(void Translatef 309 "GLfloat x, GLfloat y, GLfloat z") +(void Viewport 335 "GLint x, GLint y, GLsizei width, GLsizei height") +(void ArrayElement 3 "GLint i") +(void BindTexture 5 "GLenum target, GLenum texture") +(void ColorPointer 51 "GLint size, GLenum type, GLsizei stride, const GLvoid * pointer") +(void DisableClientState 64 "GLenum array") +(void DrawArrays 65 "GLenum mode, GLint first, GLsizei count") +(void DrawElements 67 "GLenum mode, GLsizei count, GLenum type, const GLvoid * indices") +(void EdgeFlagPointer 70 "GLsizei stride, const GLvoid * pointer") +(void EnableClientState 73 "GLenum array") +(void IndexPointer 130 "GLenum type, GLsizei stride, const GLvoid * pointer") +(void Indexub 139 "GLubyte c") +(void Indexubv 140 "const GLubyte * c") +(void InterleavedArrays 142 "GLenum format, GLsizei stride, const GLvoid * pointer") +(void NormalPointer 188 "GLenum type, GLsizei stride, const GLvoid * pointer") +(void PolygonOffset 201 "GLfloat factor, GLfloat units") +(void TexCoordPointer 289 "GLint size, GLenum type, GLsizei stride, const GLvoid * pointer") +(void VertexPointer 334 "GLint size, GLenum type, GLsizei stride, const GLvoid * pointer") +(GLboolean AreTexturesResident 2 "GLsizei n, const GLenum * textures, GLboolean * residences") +(void CopyTexImage1D 53 "GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border") +(void CopyTexImage2D 54 "GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border") +(void CopyTexSubImage1D 55 "GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width") +(void CopyTexSubImage2D 56 "GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height") +(void DeleteTextures 59 "GLsizei n, const GLenum * textures") +(void GenTextures 98 "GLsizei n, GLenum * textures") +(void GetPointerv 115 "GLenum pname, GLvoid * * params") +(GLboolean IsTexture 145 "GLenum texture") +(void PrioritizeTextures 207 "GLsizei n, const GLenum * textures, const GLclampf * priorities") +(void TexSubImage1D 306 "GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid * pixels") +(void TexSubImage2D 307 "GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * pixels") +(void PopClientAttrib 204 "void") +(void PushClientAttrib 209 "GLbitfield mask") +(void BlendColor 337 "GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha") +(void BlendEquation 338 "GLenum mode") +(void DrawRangeElements 405 "GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid * indices") +(void ColorTable 406 "GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid * table") +(void ColorTableParameterfv 407 "GLenum target, GLenum pname, const GLfloat * params") +(void ColorTableParameteriv 408 "GLenum target, GLenum pname, const GLint * params") +(void CopyColorTable 409 "GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width") +(void GetColorTable 410 "GLenum target, GLenum format, GLenum type, GLvoid * table") +(void GetColorTableParameterfv 411 "GLenum target, GLenum pname, GLfloat * params") +(void GetColorTableParameteriv 412 "GLenum target, GLenum pname, GLint * params") +(void ColorSubTable 413 "GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid * data") +(void CopyColorSubTable 414 "GLenum target, GLsizei start, GLint x, GLint y, GLsizei width") +(void ConvolutionFilter1D 415 "GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid * image") +(void ConvolutionFilter2D 416 "GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * image") +(void ConvolutionParameterf 417 "GLenum target, GLenum pname, GLfloat params") +(void ConvolutionParameterfv 418 "GLenum target, GLenum pname, const GLfloat * params") +(void ConvolutionParameteri 419 "GLenum target, GLenum pname, GLint params") +(void ConvolutionParameteriv 420 "GLenum target, GLenum pname, const GLint * params") +(void CopyConvolutionFilter1D 421 "GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width") +(void CopyConvolutionFilter2D 422 "GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height") +(void GetConvolutionFilter 423 "GLenum target, GLenum format, GLenum type, GLvoid * image") +(void GetConvolutionParameterfv 424 "GLenum target, GLenum pname, GLfloat * params") +(void GetConvolutionParameteriv 425 "GLenum target, GLenum pname, GLint * params") +(void GetSeparableFilter 426 "GLenum target, GLenum format, GLenum type, GLvoid * row, GLvoid * column, GLvoid * span") +(void SeparableFilter2D 427 "GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * row, const GLvoid * column") +(void GetHistogram 428 "GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid * values") +(void GetHistogramParameterfv 429 "GLenum target, GLenum pname, GLfloat * params") +(void GetHistogramParameteriv 430 "GLenum target, GLenum pname, GLint * params") +(void GetMinmax 431 "GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid * values") +(void GetMinmaxParameterfv 432 "GLenum target, GLenum pname, GLfloat * params") +(void GetMinmaxParameteriv 433 "GLenum target, GLenum pname, GLint * params") +(void Histogram 434 "GLenum target, GLsizei width, GLenum internalformat, GLboolean sink") +(void Minmax 435 "GLenum target, GLenum internalformat, GLboolean sink") +(void ResetHistogram 436 "GLenum target") +(void ResetMinmax 437 "GLenum target") +(void TexImage3D 438 "GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid * pixels") +(void TexSubImage3D 439 "GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid * pixels") +(void CopyTexSubImage3D 440 "GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height") +(void ActiveTextureARB 342 "GLenum texture") +(void ClientActiveTextureARB 341 "GLenum texture") +(void MultiTexCoord1dARB 343 "GLenum target, GLdouble s") +(void MultiTexCoord1dvARB 344 "GLenum target, const GLdouble * v") +(void MultiTexCoord1fARB 345 "GLenum target, GLfloat s") +(void MultiTexCoord1fvARB 346 "GLenum target, const GLfloat * v") +(void MultiTexCoord1iARB 347 "GLenum target, GLint s") +(void MultiTexCoord1ivARB 348 "GLenum target, const GLint * v") +(void MultiTexCoord1sARB 349 "GLenum target, GLshort s") +(void MultiTexCoord1svARB 350 "GLenum target, const GLshort * v") +(void MultiTexCoord2dARB 351 "GLenum target, GLdouble s, GLdouble t") +(void MultiTexCoord2dvARB 352 "GLenum target, const GLdouble * v") +(void MultiTexCoord2fARB 353 "GLenum target, GLfloat s, GLfloat t") +(void MultiTexCoord2fvARB 354 "GLenum target, const GLfloat * v") +(void MultiTexCoord2iARB 355 "GLenum target, GLint s, GLint t") +(void MultiTexCoord2ivARB 356 "GLenum target, const GLint * v") +(void MultiTexCoord2sARB 357 "GLenum target, GLshort s, GLshort t") +(void MultiTexCoord2svARB 358 "GLenum target, const GLshort * v") +(void MultiTexCoord3dARB 359 "GLenum target, GLdouble s, GLdouble t, GLdouble r") +(void MultiTexCoord3dvARB 360 "GLenum target, const GLdouble * v") +(void MultiTexCoord3fARB 361 "GLenum target, GLfloat s, GLfloat t, GLfloat r") +(void MultiTexCoord3fvARB 362 "GLenum target, const GLfloat * v") +(void MultiTexCoord3iARB 363 "GLenum target, GLint s, GLint t, GLint r") +(void MultiTexCoord3ivARB 364 "GLenum target, const GLint * v") +(void MultiTexCoord3sARB 365 "GLenum target, GLshort s, GLshort t, GLshort r") +(void MultiTexCoord3svARB 366 "GLenum target, const GLshort * v") +(void MultiTexCoord4dARB 367 "GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q") +(void MultiTexCoord4dvARB 368 "GLenum target, const GLdouble * v") +(void MultiTexCoord4fARB 369 "GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q") +(void MultiTexCoord4fvARB 370 "GLenum target, const GLfloat * v") +(void MultiTexCoord4iARB 371 "GLenum target, GLint s, GLint t, GLint r, GLint q") +(void MultiTexCoord4ivARB 372 "GLenum target, const GLint * v") +(void MultiTexCoord4sARB 373 "GLenum target, GLshort s, GLshort t, GLshort r, GLshort q") +(void MultiTexCoord4svARB 374 "GLenum target, const GLshort * v") +(void LoadTransposeMatrixfARB 376 "const GLfloat * m") +(void LoadTransposeMatrixdARB 375 "const GLdouble * m") +(void MultTransposeMatrixfARB 378 "const GLfloat * m") +(void MultTransposeMatrixdARB 377 "const GLdouble * m") +(void SampleCoverageARB 459 "GLclampf value, GLboolean invert") +(void __unused413 -1 "void") +(void PolygonOffsetEXT -1 "GLfloat factor, GLfloat bias" PolygonOffset) +(void GetTexFilterFuncSGIS -1 "GLenum target, GLenum filter, GLfloat * weights") +(void TexFilterFuncSGIS -1 "GLenum target, GLenum filter, GLsizei n, const GLfloat * weights") +(void GetHistogramEXT -1 "GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid * values" GetHistogram) +(void GetHistogramParameterfvEXT -1 "GLenum target, GLenum pname, GLfloat * params" GetHistogramParameterfv) +(void GetHistogramParameterivEXT -1 "GLenum target, GLenum pname, GLint * params" GetHistogramParameteriv) +(void GetMinmaxEXT -1 "GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid * values" GetMinmax) +(void GetMinmaxParameterfvEXT -1 "GLenum target, GLenum pname, GLfloat * params" GetMinmaxParameterfv) +(void GetMinmaxParameterivEXT -1 "GLenum target, GLenum pname, GLint * params" GetMinmaxParameteriv) +(void GetConvolutionFilterEXT -1 "GLenum target, GLenum format, GLenum type, GLvoid * image" GetConvolutionFilter) +(void GetConvolutionParameterfvEXT -1 "GLenum target, GLenum pname, GLfloat * params" GetConvolutionParameterfv) +(void GetConvolutionParameterivEXT -1 "GLenum target, GLenum pname, GLint * params" GetConvolutionParameteriv) +(void GetSeparableFilterEXT -1 "GLenum target, GLenum format, GLenum type, GLvoid * row, GLvoid * column, GLvoid * span" GetSeparableFilter) +(void GetColorTableSGI -1 "GLenum target, GLenum format, GLenum type, GLvoid * table" GetColorTable) +(void GetColorTableParameterfvSGI -1 "GLenum target, GLenum pname, GLfloat * params" GetColorTableParameterfv) +(void GetColorTableParameterivSGI -1 "GLenum target, GLenum pname, GLint * params" GetColorTableParameteriv) +(void PixelTexGenSGIX -1 "GLenum mode") +(void PixelTexGenParameteriSGIS -1 "GLenum pname, GLint param") +(void PixelTexGenParameterivSGIS -1 "GLenum pname, const GLint * params") +(void PixelTexGenParameterfSGIS -1 "GLenum pname, GLfloat param") +(void PixelTexGenParameterfvSGIS -1 "GLenum pname, const GLfloat * params") +(void GetPixelTexGenParameterivSGIS -1 "GLenum pname, GLint * params") +(void GetPixelTexGenParameterfvSGIS -1 "GLenum pname, GLfloat * params") +(void TexImage4DSGIS -1 "GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const GLvoid * pixels") +(void TexSubImage4DSGIS -1 "GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const GLvoid * pixels") +(GLboolean AreTexturesResidentEXT -1 "GLsizei n, const GLenum * textures, GLboolean * residences" AreTexturesResident) +(void GenTexturesEXT -1 "GLsizei n, GLenum * textures" GenTextures) +(GLboolean IsTextureEXT -1 "GLenum texture") +(void DetailTexFuncSGIS -1 "GLenum target, GLsizei n, const GLfloat * points") +(void GetDetailTexFuncSGIS -1 "GLenum target, GLfloat * points") +(void SharpenTexFuncSGIS -1 "GLenum target, GLsizei n, const GLfloat * points") +(void GetSharpenTexFuncSGIS -1 "GLenum target, GLfloat * points") +(void SampleMaskSGIS -1 "GLclampf value, GLboolean invert") +(void SamplePatternSGIS -1 "GLenum pattern") +(void ColorPointerEXT -1 "GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer") +(void EdgeFlagPointerEXT -1 "GLsizei stride, GLsizei count, const GLboolean * pointer") +(void IndexPointerEXT -1 "GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer") +(void NormalPointerEXT -1 "GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer") +(void TexCoordPointerEXT -1 "GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer") +(void VertexPointerEXT -1 "GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer") +(void SpriteParameterfSGIX -1 "GLenum pname, GLfloat param") +(void SpriteParameterfvSGIX -1 "GLenum pname, const GLfloat * params") +(void SpriteParameteriSGIX -1 "GLenum pname, GLint param") +(void SpriteParameterivSGIX -1 "GLenum pname, const GLint * params") +(void PointParameterfEXT 540 "GLenum pname, GLfloat param" PointParameterf) +(void PointParameterfvEXT 541 "GLenum pname, const GLfloat * params" PointParameterfv) +(GLint GetInstrumentsSGIX -1 "void") +(void InstrumentsBufferSGIX -1 "GLsizei size, GLint * buffer") +(GLint PollInstrumentsSGIX -1 "GLint * marker_p") +(void ReadInstrumentsSGIX -1 "GLint marker") +(void StartInstrumentsSGIX -1 "void") +(void StopInstrumentsSGIX -1 "GLint marker") +(void FrameZoomSGIX -1 "GLint factor") +(void TagSampleBufferSGIX -1 "void") +(void ReferencePlaneSGIX -1 "const GLdouble * equation") +(void FlushRasterSGIX -1 "void") +(void GetListParameterfvSGIX -1 "GLuint list, GLenum pname, GLfloat * params") +(void GetListParameterivSGIX -1 "GLuint list, GLenum pname, GLint * params") +(void ListParameterfSGIX -1 "GLuint list, GLenum pname, GLfloat param") +(void ListParameterfvSGIX -1 "GLuint list, GLenum pname, const GLfloat * params") +(void ListParameteriSGIX -1 "GLuint list, GLenum pname, GLint param") +(void ListParameterivSGIX -1 "GLuint list, GLenum pname, const GLint * params") +(void FragmentColorMaterialSGIX -1 "GLenum face, GLenum mode") +(void FragmentLightfSGIX -1 "GLenum light, GLenum pname, GLfloat param") +(void FragmentLightfvSGIX -1 "GLenum light, GLenum pname, const GLfloat * params") +(void FragmentLightiSGIX -1 "GLenum light, GLenum pname, GLint param") +(void FragmentLightivSGIX -1 "GLenum light, GLenum pname, const GLint * params") +(void FragmentLightModelfSGIX -1 "GLenum pname, GLfloat param") +(void FragmentLightModelfvSGIX -1 "GLenum pname, const GLfloat * params") +(void FragmentLightModeliSGIX -1 "GLenum pname, GLint param") +(void FragmentLightModelivSGIX -1 "GLenum pname, const GLint * params") +(void FragmentMaterialfSGIX -1 "GLenum face, GLenum pname, GLfloat param") +(void FragmentMaterialfvSGIX -1 "GLenum face, GLenum pname, const GLfloat * params") +(void FragmentMaterialiSGIX -1 "GLenum face, GLenum pname, GLint param") +(void FragmentMaterialivSGIX -1 "GLenum face, GLenum pname, const GLint * params") +(void GetFragmentLightfvSGIX -1 "GLenum light, GLenum pname, GLfloat * params") +(void GetFragmentLightivSGIX -1 "GLenum light, GLenum pname, GLint * params") +(void GetFragmentMaterialfvSGIX -1 "GLenum face, GLenum pname, GLfloat * params") +(void GetFragmentMaterialivSGIX -1 "GLenum face, GLenum pname, GLint * params") +(void LightEnviSGIX -1 "GLenum pname, GLint param") +(void VertexWeightfEXT -1 "GLfloat weight") +(void VertexWeightfvEXT -1 "const GLfloat * weight") +(void VertexWeightPointerEXT -1 "GLsizei size, GLenum type, GLsizei stride, const GLvoid * pointer") +(void FlushVertexArrayRangeNV -1 "void") +(void VertexArrayRangeNV 403 "GLsizei length, const GLvoid * pointer" VertexArrayRangeAPPLE) +(void CombinerParameterfvNV 441 "GLenum pname, const GLfloat * params") +(void CombinerParameterfNV 442 "GLenum pname, GLfloat param") +(void CombinerParameterivNV 443 "GLenum pname, const GLint * params") +(void CombinerParameteriNV 444 "GLenum pname, GLint param") +(void CombinerInputNV 445 "GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage") +(void CombinerOutputNV 446 "GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum") +(void FinalCombinerInputNV 447 "GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage") +(void GetCombinerInputParameterfvNV 448 "GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat * params") +(void GetCombinerInputParameterivNV 449 "GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint * params") +(void GetCombinerOutputParameterfvNV 450 "GLenum stage, GLenum portion, GLenum pname, GLfloat * params") +(void GetCombinerOutputParameterivNV 451 "GLenum stage, GLenum portion, GLenum pname, GLint * params") +(void GetFinalCombinerInputParameterfvNV 452 "GLenum variable, GLenum pname, GLfloat * params") +(void GetFinalCombinerInputParameterivNV 453 "GLenum variable, GLenum pname, GLint * params") +(void ResizeBuffersMESA -1 "void") +(void WindowPos2dMESA 569 "GLdouble x, GLdouble y" WindowPos2d) +(void WindowPos2dvMESA 570 "const GLdouble * v" WindowPos2dv) +(void WindowPos2fMESA 571 "GLfloat x, GLfloat y" WindowPos2f) +(void WindowPos2fvMESA 572 "const GLfloat * v" WindowPos2fv) +(void WindowPos2iMESA 573 "GLint x, GLint y" WindowPos2i) +(void WindowPos2ivMESA 574 "const GLint * v" WindowPos2iv) +(void WindowPos2sMESA 575 "GLshort x, GLshort y" WindowPos2s) +(void WindowPos2svMESA 576 "const GLshort * v" WindowPos2sv) +(void WindowPos3dMESA 577 "GLdouble x, GLdouble y, GLdouble z" WindowPos3d) +(void WindowPos3dvMESA 578 "const GLdouble * v" WindowPos3dv) +(void WindowPos3fMESA 579 "GLfloat x, GLfloat y, GLfloat z" WindowPos3f) +(void WindowPos3fvMESA 580 "const GLfloat * v" WindowPos3fv) +(void WindowPos3iMESA 581 "GLint x, GLint y, GLint z" WindowPos3i) +(void WindowPos3ivMESA 582 "const GLint * v" WindowPos3iv) +(void WindowPos3sMESA 583 "GLshort x, GLshort y, GLshort z" WindowPos3s) +(void WindowPos3svMESA 584 "const GLshort * v" WindowPos3sv) +(void WindowPos4dMESA -1 "GLdouble x, GLdouble y, GLdouble z, GLdouble w") +(void WindowPos4dvMESA -1 "const GLdouble * v") +(void WindowPos4fMESA -1 "GLfloat x, GLfloat y, GLfloat z, GLfloat w") +(void WindowPos4fvMESA -1 "const GLfloat * v") +(void WindowPos4iMESA -1 "GLint x, GLint y, GLint z, GLint w") +(void WindowPos4ivMESA -1 "const GLint * v") +(void WindowPos4sMESA -1 "GLshort x, GLshort y, GLshort z, GLshort w") +(void WindowPos4svMESA -1 "const GLshort * v") +(void BlendFuncSeparateEXT 336 "GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha") +(void IndexMaterialEXT -1 "GLenum face, GLenum mode") +(void IndexFuncEXT -1 "GLenum func, GLclampf ref") +(void LockArraysEXT 339 "GLint first, GLsizei count") +(void UnlockArraysEXT 340 "void") +(void CullParameterdvEXT -1 "GLenum pname, GLdouble * params") +(void CullParameterfvEXT -1 "GLenum pname, GLfloat * params") +(void HintPGI -1 "GLenum target, GLint mode") +(void FogCoordfEXT 544 "GLfloat coord") +(void FogCoordfvEXT 545 "const GLfloat * coord") +(void FogCoorddEXT 546 "GLdouble coord") +(void FogCoorddvEXT 547 "const GLdouble * coord") +(void FogCoordPointerEXT 548 "GLenum type, GLsizei stride, const GLvoid * pointer") +;; OpenGL.framework defines these, but doesn't have dispatch slots for them +;; (void GetColorTableEXT -1 "GLenum target, GLenum format, GLenum type, GLvoid * data" GetColorTable) +;; (void GetColorTableParameterivEXT -1 "GLenum target, GLenum pname, GLint * params" GetColorTableParameteriv) +;; (void GetColorTableParameterfvEXT -1 "GLenum target, GLenum pname, GLfloat * params" GetColorTableParameterfv) +(void TbufferMask3DFX -1 "GLuint mask") +(void CompressedTexImage3DARB 379 "GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid * data") +(void CompressedTexImage2DARB 380 "GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid * data") +(void CompressedTexImage1DARB 381 "GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid * data") +(void CompressedTexSubImage3DARB 382 "GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid * data") +(void CompressedTexSubImage2DARB 383 "GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid * data") +(void CompressedTexSubImage1DARB 384 "GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid * data") +(void GetCompressedTexImageARB 385 "GLenum target, GLint level, void * img") +(void SecondaryColor3bEXT 386 "GLbyte red, GLbyte green, GLbyte blue") +(void SecondaryColor3bvEXT 387 "const GLbyte * v") +(void SecondaryColor3dEXT 388 "GLdouble red, GLdouble green, GLdouble blue") +(void SecondaryColor3dvEXT 389 "const GLdouble * v") +(void SecondaryColor3fEXT 390 "GLfloat red, GLfloat green, GLfloat blue") +(void SecondaryColor3fvEXT 391 "const GLfloat * v") +(void SecondaryColor3iEXT 392 "GLint red, GLint green, GLint blue") +(void SecondaryColor3ivEXT 393 "const GLint * v") +(void SecondaryColor3sEXT 394 "GLshort red, GLshort green, GLshort blue") +(void SecondaryColor3svEXT 395 "const GLshort * v") +(void SecondaryColor3ubEXT 396 "GLubyte red, GLubyte green, GLubyte blue") +(void SecondaryColor3ubvEXT 397 "const GLubyte * v") +(void SecondaryColor3uiEXT 398 "GLuint red, GLuint green, GLuint blue") +(void SecondaryColor3uivEXT 399 "const GLuint * v") +(void SecondaryColor3usEXT 400 "GLushort red, GLushort green, GLushort blue") +(void SecondaryColor3usvEXT 401 "const GLushort * v") +(void SecondaryColorPointerEXT 402 "GLint size, GLenum type, GLsizei stride, const GLvoid * pointer") +(GLboolean AreProgramsResidentNV -1 "GLsizei n, const GLuint * ids, GLboolean * residences") +(void BindProgramNV 471 "GLenum target, GLuint id" BindProgramARB) +(void DeleteProgramsNV 472 "GLsizei n, const GLuint * ids" DeleteProgramsARB) +(void ExecuteProgramNV -1 "GLenum target, GLuint id, const GLfloat * params") +(void GenProgramsNV 473 "GLsizei n, GLuint * ids" GenProgramsARB) +(void GetProgramParameterdvNV -1 "GLenum target, GLuint index, GLenum pname, GLdouble * params") +(void GetProgramParameterfvNV -1 "GLenum target, GLuint index, GLenum pname, GLfloat * params") +(void GetProgramivNV -1 "GLuint id, GLenum pname, GLint * params") +(void GetProgramStringNV -1 "GLuint id, GLenum pname, GLubyte * program") +(void GetTrackMatrixivNV -1 "GLenum target, GLuint address, GLenum pname, GLint * params") +(void GetVertexAttribdvNV 514 "GLuint index, GLenum pname, GLdouble * params" GetVertexAttribdvARB) +(void GetVertexAttribfvNV 515 "GLuint index, GLenum pname, GLfloat * params" GetVertexAttribfvARB) +(void GetVertexAttribivNV 516 "GLuint index, GLenum pname, GLint * params" GetVertexAttribivNV) +(void GetVertexAttribPointervNV 517 "GLuint index, GLenum pname, GLvoid ** pointer" GetVertexAttribPointervARB) +(GLboolean IsProgramNV 474 "GLuint id" IsProgramARB) +(void LoadProgramNV -1 "GLenum target, GLuint id, GLsizei len, const GLubyte * program") +(void ProgramParameter4dNV -1 "GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w") +(void ProgramParameter4dvNV -1 "GLenum target, GLuint index, const GLdouble * params") +(void ProgramParameter4fNV -1 "GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w") +(void ProgramParameter4fvNV -1 "GLenum target, GLuint index, const GLfloat * params") +(void ProgramParameters4dvNV -1 "GLenum target, GLuint index, GLuint num, const GLdouble * params") +(void ProgramParameters4fvNV -1 "GLenum target, GLuint index, GLuint num, const GLfloat * params") +(void RequestResidentProgramsNV -1 "GLsizei n, const GLuint * ids") +(void TrackMatrixNV -1 "GLenum target, GLuint address, GLenum matrix, GLenum transform") +(void VertexAttribPointerNV -1 "GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid * pointer") +(void VertexAttrib1dNV 477 "GLuint index, GLdouble x" VertexAttrib1dARB) +(void VertexAttrib1dvNV 490 "GLuint index, const GLdouble * v" VertexAttrib1dvARB) +(void VertexAttrib1fNV 476 "GLuint index, GLfloat x" VertexAttrib1fARB) +(void VertexAttrib1fvNV 489 "GLuint index, const GLfloat * v" VertexAttrib1fvARB) +(void VertexAttrib1sNV 475 "GLuint index, GLshort x" VertexAttrib1sARB) +(void VertexAttrib1svNV 488 "GLuint index, const GLshort * v" VertexAttrib1svARB) +(void VertexAttrib2dNV 480 "GLuint index, GLdouble x, GLdouble y" VertexAttrib2dARB) +(void VertexAttrib2dvNV 493 "GLuint index, const GLdouble * v" VertexAttrib2dvARB) +(void VertexAttrib2fNV 479 "GLuint index, GLfloat x, GLfloat y" VertexAttrib2fARB) +(void VertexAttrib2fvNV 492 "GLuint index, const GLfloat * v" VertexAttrib2fvARB) +(void VertexAttrib2sNV 478 "GLuint index, GLshort x, GLshort y" VertexAttrib2sARB) +(void VertexAttrib2svNV 491 "GLuint index, const GLshort * v" VertexAttrib2svARB) +(void VertexAttrib3dNV 483 "GLuint index, GLdouble x, GLdouble y, GLdouble z" VertexAttrib3dARB) +(void VertexAttrib3dvNV 496 "GLuint index, const GLdouble * v" VertexAttrib3dvARB) +(void VertexAttrib3fNV 482 "GLuint index, GLfloat x, GLfloat y, GLfloat z" VertexAttrib3fARB) +(void VertexAttrib3fvNV 495 "GLuint index, const GLfloat * v" VertexAttrib3fvARB) +(void VertexAttrib3sNV 481 "GLuint index, GLshort x, GLshort y, GLshort z" VertexAttrib3sARB) +(void VertexAttrib3svNV 494 "GLuint index, const GLshort * v" VertexAttrib3svARB) +(void VertexAttrib4dNV 486 "GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w" VertexAttrib4dARB) +(void VertexAttrib4dvNV 504 "GLuint index, const GLdouble * v" VertexAttrib4dvARB) +(void VertexAttrib4fNV 485 "GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w" VertexAttrib4fARB) +(void VertexAttrib4fvNV 503 "GLuint index, const GLfloat * v" VertexAttrib4fvARB) +(void VertexAttrib4sNV 484 "GLuint index, GLshort x, GLshort y, GLshort z, GLshort w" VertexAttrib4sARB) +(void VertexAttrib4svNV 498 "GLuint index, const GLshort * v" VertexAttrib4svARB) +(void VertexAttrib4ubNV 487 "GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w" VertexAttrib4NubARB) +(void VertexAttrib4ubvNV 500 "GLuint index, const GLubyte * v" VertexAttrib4ubvARB) +(void VertexAttribs1dvNV -1 "GLuint index, GLsizei n, const GLdouble * v") +(void VertexAttribs1fvNV -1 "GLuint index, GLsizei n, const GLfloat * v") +(void VertexAttribs1svNV -1 "GLuint index, GLsizei n, const GLshort * v") +(void VertexAttribs2dvNV -1 "GLuint index, GLsizei n, const GLdouble * v") +(void VertexAttribs2fvNV -1 "GLuint index, GLsizei n, const GLfloat * v") +(void VertexAttribs2svNV -1 "GLuint index, GLsizei n, const GLshort * v") +(void VertexAttribs3dvNV -1 "GLuint index, GLsizei n, const GLdouble * v") +(void VertexAttribs3fvNV -1 "GLuint index, GLsizei n, const GLfloat * v") +(void VertexAttribs3svNV -1 "GLuint index, GLsizei n, const GLshort * v") +(void VertexAttribs4dvNV -1 "GLuint index, GLsizei n, const GLdouble * v") +(void VertexAttribs4fvNV -1 "GLuint index, GLsizei n, const GLfloat * v") +(void VertexAttribs4svNV -1 "GLuint index, GLsizei n, const GLshort * v") +(void VertexAttribs4ubvNV -1 "GLuint index, GLsizei n, const GLubyte * v") +(void PointParameteriNV 542 "GLenum pname, GLint params") +(void PointParameterivNV 543 "GLenum pname, const GLint * params") +(void MultiDrawArraysEXT 567 "GLenum mode, GLint * first, GLsizei * count, GLsizei primcount") +(void MultiDrawElementsEXT 568 "GLenum mode, const GLsizei * count, GLenum type, const GLvoid ** indices, GLsizei primcount") +(void ActiveStencilFaceEXT 585 "GLenum face") +(void DeleteFencesNV -1 "GLsizei n, const GLuint * fences") +(void GenFencesNV -1 "GLsizei n, GLuint * fences") +(GLboolean IsFenceNV -1 "GLuint fence") +(GLboolean TestFenceNV -1 "GLuint fence") +(void GetFenceivNV -1 "GLuint fence, GLenum pname, GLint * params") +(void FinishFenceNV -1 "GLuint fence") +(void SetFenceNV -1 "GLuint fence, GLenum condition") +(void VertexAttrib4bvARB 497 "GLuint index, const GLbyte * v") +(void VertexAttrib4ivARB 499 "GLuint index, const GLint * v") +(void VertexAttrib4ubvARB 500 "GLuint index, const GLubyte * v") +(void VertexAttrib4usvARB 501 "GLuint index, const GLushort * v") +(void VertexAttrib4uivARB 502 "GLuint index, const GLuint * v") +(void VertexAttrib4NbvARB 505 "GLuint index, const GLbyte * v") +(void VertexAttrib4NsvARB 498 "GLuint index, const GLshort * v") +(void VertexAttrib4NivARB 507 "GLuint index, const GLint * v") +(void VertexAttrib4NusvARB 509 "GLuint index, const GLushort * v") +(void VertexAttrib4NuivARB 510 "GLuint index, const GLuint * v") +(void VertexAttribPointerARB 511 "GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid * pointer") +(void EnableVertexAttribArrayARB 512 "GLuint index") +(void DisableVertexAttribArrayARB 513 "GLuint index") +(void ProgramStringARB 530 "GLenum target, GLenum format, GLsizei len, const GLvoid * string") +(void ProgramEnvParameter4dARB 518 "GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w") +(void ProgramEnvParameter4dvARB 519 "GLenum target, GLuint index, const GLdouble * params") +(void ProgramEnvParameter4fARB 520 "GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w") +(void ProgramEnvParameter4fvARB 521 "GLenum target, GLuint index, const GLfloat * params") +(void ProgramLocalParameter4dARB 522 "GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w") +(void ProgramLocalParameter4dvARB 523 "GLenum target, GLuint index, const GLdouble * params") +(void ProgramLocalParameter4fARB 524 "GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w") +(void ProgramLocalParameter4fvARB 525 "GLenum target, GLuint index, const GLfloat * params") +(void GetProgramEnvParameterdvARB 526 "GLenum target, GLuint index, GLdouble * params") +(void GetProgramEnvParameterfvARB 527 "GLenum target, GLuint index, GLfloat * params") +(void GetProgramLocalParameterdvARB 528 "GLenum target, GLuint index, GLdouble * params") +(void GetProgramLocalParameterfvARB 529 "GLenum target, GLuint index, GLfloat * params") +(void GetProgramivARB 532 "GLenum target, GLenum pname, GLint * params") +(void GetProgramStringARB 531 "GLenum target, GLenum pname, GLvoid * string") +(void ProgramNamedParameter4fNV -1 "GLuint id, GLsizei len, const GLubyte * name, GLfloat x, GLfloat y, GLfloat z, GLfloat w") +(void ProgramNamedParameter4dNV -1 "GLuint id, GLsizei len, const GLubyte * name, GLdouble x, GLdouble y, GLdouble z, GLdouble w") +(void ProgramNamedParameter4fvNV -1 "GLuint id, GLsizei len, const GLubyte * name, const GLfloat * v") +(void ProgramNamedParameter4dvNV -1 "GLuint id, GLsizei len, const GLubyte * name, const GLdouble * v") +(void GetProgramNamedParameterfvNV -1 "GLuint id, GLsizei len, const GLubyte * name, GLfloat * params") +(void GetProgramNamedParameterdvNV -1 "GLuint id, GLsizei len, const GLubyte * name, GLdouble * params") +;; On newer versions of Mac OS X, OpenGL.framework defines these but +;; doesn't have dispatch slots for them. On earlier versions, they are +;; not defined. +;; if MAC_OS_X_VERSION < 10.3.4 +;; (void BindBufferARB -1 "GLenum target, GLuint buffer") +;; (void BufferDataARB -1 "GLenum target, GLsizeiptrARB size, const GLvoid * data, GLenum usage") +;; (void BufferSubDataARB -1 "GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid * data") +;; (void DeleteBuffersARB -1 "GLsizei n, const GLuint * buffer") +;; (void GenBuffersARB -1 "GLsizei n, GLuint * buffer") +;; (void GetBufferParameterivARB -1 "GLenum target, GLenum pname, GLint * params") +;; (void GetBufferPointervARB -1 "GLenum target, GLenum pname, GLvoid ** params") +;; (void GetBufferSubDataARB -1 "GLenum target, GLintptrARB offset, GLsizeiptrARB size, void * data") +;; (GLboolean IsBufferARB -1 "GLuint buffer") +;; (void* MapBufferARB -1 "GLenum target, GLenum access") +;; (GLboolean UnmapBufferARB -1 "GLenum target") +;; (void DepthBoundsEXT -1 "GLclampd zmin, GLclampd zmax") +;; endif +;; if MAC_OS_X_VERSION < 10.3.0 +;; (void GenQueriesARB -1 "GLsizei n, GLuint * ids") +;; (void DeleteQueriesARB -1 "GLsizei n, const GLuint * ids") +;; (GLboolean IsQueryARB -1 "GLuint id") +;; (void BeginQueryARB -1 "GLenum target, GLuint id") +;; (void EndQueryARB -1 "GLenum target") +;; (void GetQueryivARB -1 "GLenum target, GLenum pname, GLint * params") +;; (void GetQueryObjectivARB -1 "GLuint id, GLenum pname, GLint * params") +;; (void GetQueryObjectuivARB -1 "GLuint id, GLenum pname, GLuint * params") +;; endif +(void MultiModeDrawArraysIBM -1 "const GLenum * mode, const GLint * first, const GLsizei * count, GLsizei primcount, GLint modestride") +(void MultiModeDrawElementsIBM -1 "const GLenum * mode, const GLsizei * count, GLenum type, const GLvoid * const * indices, GLsizei primcount, GLint modestride") +;; if MAC_OS_X_VERSION < 10.3.4 +;; (void BlendEquationSeparateEXT 458 "GLenum modeRGB, GLenum modeA" BlendEquationSeparateATI) +;; else +(void BlendEquationSeparateEXT 458 "GLenum modeRGB, GLenum modeA") +;; endif + +;; Entry points that exist in standard XFree86 libGL, but aren't in the +;; Mesa dispatch table, and aren't in OpenGL.framework + +(void ArrayElementEXT -1 "GLint i" ArrayElement) +(void BindTextureEXT -1 "GLenum target, GLuint texture" BindTexture) +(void BlendFuncSeparateINGR -1 "GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha" BlendFuncSeparateEXT) +(void ColorTableParameterfvSGI -1 "GLenum target, GLenum pname, const GLfloat * params" ColorTableParameterfv) +(void ColorTableParameterivSGI -1 "GLenum target, GLenum pname, const GLint * params" ColorTableParameteriv) +(void ColorTableSGI -1 "GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid * table" ColorTable) +(void ConvolutionFilter1DEXT -1 "GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid * image" ConvolutionFilter1D) +(void ConvolutionFilter2DEXT -1 "GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * image" ConvolutionFilter2D) +(void ConvolutionParameterfEXT -1 "GLenum target, GLenum pname, GLfloat params" ConvolutionParameterf) +(void ConvolutionParameterfvEXT -1 "GLenum target, GLenum pname, const GLfloat * params" ConvolutionParameterfv) +(void ConvolutionParameteriEXT -1 "GLenum target, GLenum pname, GLint params" ConvolutionParameteri) +(void ConvolutionParameterivEXT -1 "GLenum target, GLenum pname, const GLint * params" ConvolutionParameteriv) +(void CopyColorSubTableEXT -1 "GLenum target, GLsizei start, GLint x, GLint y, GLsizei width" CopyColorSubTable) +(void CopyColorTableSGI -1 "GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width" CopyColorTable) +(void CopyConvolutionFilter1DEXT -1 "GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width" CopyConvolutionFilter1D) +(void CopyConvolutionFilter2DEXT -1 "GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height" CopyConvolutionFilter2D) +(void CopyTexImage1DEXT -1 "GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border" CopyTexImage1D) +(void CopyTexImage2DEXT -1 "GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border" CopyTexImage2D) +(void CopyTexSubImage1DEXT -1 "GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width" CopyTexSubImage1D) +(void CopyTexSubImage2DEXT -1 "GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height" CopyTexSubImage2D) +(void CopyTexSubImage3DEXT -1 "GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height" CopyTexSubImage3D) +(void DeleteTexturesEXT -1 "GLsizei n, const GLuint *textures" DeleteTextures) +(void DrawArraysEXT -1 "GLenum mode, GLint first, GLsizei count" DrawArrays) +(void GetPointervEXT -1 "GLenum pname, GLvoid * * params" GetPointerv) +(void HistogramEXT -1 "GLenum target, GLsizei width, GLenum internalformat, GLboolean sink" Histogram) +(void MinmaxEXT -1 "GLenum target, GLenum internalformat, GLboolean sink" Minmax) +(void PointParameterfSGIS -1 "GLenum pname, GLfloat param" PointParameterf) +(void PointParameterfvSGIS -1 "GLenum pname, const GLfloat * params" PointParameterfv) +(void PointParameteri -1 "GLenum pname, GLint params" PointParameteriNV) +(void PointParameteriv -1 "GLenum pname, const GLint * params" PointParameterivNV) +(void PrioritizeTexturesEXT -1 "GLsizei n, const GLenum * textures, const GLclampf * priorities" PrioritizeTextures) +(void ResetHistogramEXT -1 "GLenum target" ResetHistogram) +(void ResetMinmaxEXT -1 "GLenum target" ResetMinmax) +(void SampleMaskEXT -1 "GLclampf value, GLboolean invert" SampleMaskSGIS) +(void SamplePatternEXT -1 "GLenum pattern" SamplePatternSGIS) +(void SeparableFilter2DEXT -1 "GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * row, const GLvoid * column" SeparableFilter2D) +(void TexImage3DEXT -1 "GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid * pixels" TexImage3D) +(void TexSubImage1DEXT -1 "GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid * pixels" TexSubImage1D) +(void TexSubImage2DEXT -1 "GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * pixels" TexSubImage2D) +(void TexSubImage3DEXT -1 "GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid * pixels" TexSubImage3D) +;; if MAC_OS_X_VERSION < 10.3.4 +;; (void BindBuffer -1 "GLenum target, GLuint buffer" BindBufferARB) +;; (void BufferData -1 "GLenum target, GLsizeiptrARB size, const GLvoid * data, GLenum usage" BufferDataARB) +;; (void BufferSubData -1 "GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid * data" BufferSubDataARB) +;; (void DeleteBuffers -1 "GLsizei n, const GLuint * buffer" DeleteBuffersARB) +;; (void GenBuffers -1 "GLsizei n, GLuint * buffer" GenBuffersARB) +;; (void GetBufferParameteriv -1 "GLenum target, GLenum pname, GLint * params" GetBufferParameterivARB) +;; (void GetBufferPointerv -1 "GLenum target, GLenum pname, GLvoid ** params" GetBufferPointervARB) +;; (void GetBufferSubData -1 "GLenum target, GLintptrARB offset, GLsizeiptrARB size, void * data" GetBufferSubDataARB) +;; (GLboolean IsBuffer -1 "GLuint buffer" IsBufferARB) +;; (void* MapBuffer -1 "GLenum target, GLenum access" MapBufferARB) +;; (GLboolean UnmapBuffer -1 "GLenum target" UnmapBufferARB) +;; endif +;; if MAC_OS_X_VERSION < 10.3.0 +;; (void GenQueries -1 "GLsizei n, GLuint * ids" GenQueriesARB) +;; (void DeleteQueries -1 "GLsizei n, const GLuint * ids" DeleteQueriesARB) +;; (GLboolean IsQuery -1 "GLuint id" IsQueryARB) +;; (void BeginQuery -1 "GLenum target, GLuint id" BeginQueryARB) +;; (void EndQuery -1 "GLenum target" EndQueryARB) +;; (void GetQueryiv -1 "GLenum target, GLenum pname, GLint * params" GetQueryivARB) +;; (void GetQueryObjectiv -1 "GLuint id, GLenum pname, GLint * params" GetQueryObjectivARB) +;; (void GetQueryObjectuiv -1 "GLuint id, GLenum pname, GLuint * params" GetQueryObjectuivARB) +;; endif diff --git a/nx-X11/lib/GL/apple/dri_dispatch.h b/nx-X11/lib/GL/apple/dri_dispatch.h new file mode 100644 index 000000000..854bbc302 --- /dev/null +++ b/nx-X11/lib/GL/apple/dri_dispatch.h @@ -0,0 +1,3861 @@ +/* dri_dispatch.h -- built automatically, DO NOT EDIT + $Id: dri_dispatch.h,v 1.6 2005/07/03 07:00:55 daniels Exp $ + $XFree86: $ */ +/* + Actually, this file has been edited to add necessary + dependencies on the version of Mac OS X. Someday the + automatic script should handle this. + */ + +DEFUN_LOCAL_VOID (NewList, + (void *rend, GLuint list, GLenum mode), + (list, mode)) + +DEFUN_LOCAL_VOID (EndList, + (void *rend), + ()) + +DEFUN_LOCAL_VOID (CallList, + (void *rend, GLuint list), + (list)) + +DEFUN_LOCAL_VOID (CallLists, + (void *rend, GLsizei n, GLenum type, const GLvoid * lists), + (n, type, lists)) + +DEFUN_LOCAL_VOID (DeleteLists, + (void *rend, GLuint list, GLsizei range), + (list, range)) + +DEFUN_LOCAL (GLuint, GenLists, + (void *rend, GLsizei range), + (range)) + +DEFUN_LOCAL_VOID (ListBase, + (void *rend, GLuint base), + (base)) + +DEFUN_LOCAL_VOID (Begin, + (void *rend, GLenum mode), + (mode)) + +DEFUN_LOCAL_VOID (Bitmap, + (void *rend, GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte * bitmap), + (width, height, xorig, yorig, xmove, ymove, bitmap)) + +DEFUN_LOCAL_VOID (Color3b, + (void *rend, GLbyte red, GLbyte green, GLbyte blue), + (red, green, blue)) + +DEFUN_LOCAL_VOID (Color3bv, + (void *rend, const GLbyte * v), + (v)) + +DEFUN_LOCAL_VOID (Color3d, + (void *rend, GLdouble red, GLdouble green, GLdouble blue), + (red, green, blue)) + +DEFUN_LOCAL_VOID (Color3dv, + (void *rend, const GLdouble * v), + (v)) + +DEFUN_LOCAL_VOID (Color3f, + (void *rend, GLfloat red, GLfloat green, GLfloat blue), + (red, green, blue)) + +DEFUN_LOCAL_VOID (Color3fv, + (void *rend, const GLfloat * v), + (v)) + +DEFUN_LOCAL_VOID (Color3i, + (void *rend, GLint red, GLint green, GLint blue), + (red, green, blue)) + +DEFUN_LOCAL_VOID (Color3iv, + (void *rend, const GLint * v), + (v)) + +DEFUN_LOCAL_VOID (Color3s, + (void *rend, GLshort red, GLshort green, GLshort blue), + (red, green, blue)) + +DEFUN_LOCAL_VOID (Color3sv, + (void *rend, const GLshort * v), + (v)) + +DEFUN_LOCAL_VOID (Color3ub, + (void *rend, GLubyte red, GLubyte green, GLubyte blue), + (red, green, blue)) + +DEFUN_LOCAL_VOID (Color3ubv, + (void *rend, const GLubyte * v), + (v)) + +DEFUN_LOCAL_VOID (Color3ui, + (void *rend, GLuint red, GLuint green, GLuint blue), + (red, green, blue)) + +DEFUN_LOCAL_VOID (Color3uiv, + (void *rend, const GLuint * v), + (v)) + +DEFUN_LOCAL_VOID (Color3us, + (void *rend, GLushort red, GLushort green, GLushort blue), + (red, green, blue)) + +DEFUN_LOCAL_VOID (Color3usv, + (void *rend, const GLushort * v), + (v)) + +DEFUN_LOCAL_VOID (Color4b, + (void *rend, GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha), + (red, green, blue, alpha)) + +DEFUN_LOCAL_VOID (Color4bv, + (void *rend, const GLbyte * v), + (v)) + +DEFUN_LOCAL_VOID (Color4d, + (void *rend, GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha), + (red, green, blue, alpha)) + +DEFUN_LOCAL_VOID (Color4dv, + (void *rend, const GLdouble * v), + (v)) + +DEFUN_LOCAL_VOID (Color4f, + (void *rend, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha), + (red, green, blue, alpha)) + +DEFUN_LOCAL_VOID (Color4fv, + (void *rend, const GLfloat * v), + (v)) + +DEFUN_LOCAL_VOID (Color4i, + (void *rend, GLint red, GLint green, GLint blue, GLint alpha), + (red, green, blue, alpha)) + +DEFUN_LOCAL_VOID (Color4iv, + (void *rend, const GLint * v), + (v)) + +DEFUN_LOCAL_VOID (Color4s, + (void *rend, GLshort red, GLshort green, GLshort blue, GLshort alpha), + (red, green, blue, alpha)) + +DEFUN_LOCAL_VOID (Color4sv, + (void *rend, const GLshort * v), + (v)) + +DEFUN_LOCAL_VOID (Color4ub, + (void *rend, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha), + (red, green, blue, alpha)) + +DEFUN_LOCAL_VOID (Color4ubv, + (void *rend, const GLubyte * v), + (v)) + +DEFUN_LOCAL_VOID (Color4ui, + (void *rend, GLuint red, GLuint green, GLuint blue, GLuint alpha), + (red, green, blue, alpha)) + +DEFUN_LOCAL_VOID (Color4uiv, + (void *rend, const GLuint * v), + (v)) + +DEFUN_LOCAL_VOID (Color4us, + (void *rend, GLushort red, GLushort green, GLushort blue, GLushort alpha), + (red, green, blue, alpha)) + +DEFUN_LOCAL_VOID (Color4usv, + (void *rend, const GLushort * v), + (v)) + +DEFUN_LOCAL_VOID (EdgeFlag, + (void *rend, GLboolean flag), + (flag)) + +DEFUN_LOCAL_VOID (EdgeFlagv, + (void *rend, const GLboolean * flag), + (flag)) + +DEFUN_LOCAL_VOID (End, + (void *rend), + ()) + +DEFUN_LOCAL_VOID (Indexd, + (void *rend, GLdouble c), + (c)) + +DEFUN_LOCAL_VOID (Indexdv, + (void *rend, const GLdouble * c), + (c)) + +DEFUN_LOCAL_VOID (Indexf, + (void *rend, GLfloat c), + (c)) + +DEFUN_LOCAL_VOID (Indexfv, + (void *rend, const GLfloat * c), + (c)) + +DEFUN_LOCAL_VOID (Indexi, + (void *rend, GLint c), + (c)) + +DEFUN_LOCAL_VOID (Indexiv, + (void *rend, const GLint * c), + (c)) + +DEFUN_LOCAL_VOID (Indexs, + (void *rend, GLshort c), + (c)) + +DEFUN_LOCAL_VOID (Indexsv, + (void *rend, const GLshort * c), + (c)) + +DEFUN_LOCAL_VOID (Normal3b, + (void *rend, GLbyte nx, GLbyte ny, GLbyte nz), + (nx, ny, nz)) + +DEFUN_LOCAL_VOID (Normal3bv, + (void *rend, const GLbyte * v), + (v)) + +DEFUN_LOCAL_VOID (Normal3d, + (void *rend, GLdouble nx, GLdouble ny, GLdouble nz), + (nx, ny, nz)) + +DEFUN_LOCAL_VOID (Normal3dv, + (void *rend, const GLdouble * v), + (v)) + +DEFUN_LOCAL_VOID (Normal3f, + (void *rend, GLfloat nx, GLfloat ny, GLfloat nz), + (nx, ny, nz)) + +DEFUN_LOCAL_VOID (Normal3fv, + (void *rend, const GLfloat * v), + (v)) + +DEFUN_LOCAL_VOID (Normal3i, + (void *rend, GLint nx, GLint ny, GLint nz), + (nx, ny, nz)) + +DEFUN_LOCAL_VOID (Normal3iv, + (void *rend, const GLint * v), + (v)) + +DEFUN_LOCAL_VOID (Normal3s, + (void *rend, GLshort nx, GLshort ny, GLshort nz), + (nx, ny, nz)) + +DEFUN_LOCAL_VOID (Normal3sv, + (void *rend, const GLshort * v), + (v)) + +DEFUN_LOCAL_VOID (RasterPos2d, + (void *rend, GLdouble x, GLdouble y), + (x, y)) + +DEFUN_LOCAL_VOID (RasterPos2dv, + (void *rend, const GLdouble * v), + (v)) + +DEFUN_LOCAL_VOID (RasterPos2f, + (void *rend, GLfloat x, GLfloat y), + (x, y)) + +DEFUN_LOCAL_VOID (RasterPos2fv, + (void *rend, const GLfloat * v), + (v)) + +DEFUN_LOCAL_VOID (RasterPos2i, + (void *rend, GLint x, GLint y), + (x, y)) + +DEFUN_LOCAL_VOID (RasterPos2iv, + (void *rend, const GLint * v), + (v)) + +DEFUN_LOCAL_VOID (RasterPos2s, + (void *rend, GLshort x, GLshort y), + (x, y)) + +DEFUN_LOCAL_VOID (RasterPos2sv, + (void *rend, const GLshort * v), + (v)) + +DEFUN_LOCAL_VOID (RasterPos3d, + (void *rend, GLdouble x, GLdouble y, GLdouble z), + (x, y, z)) + +DEFUN_LOCAL_VOID (RasterPos3dv, + (void *rend, const GLdouble * v), + (v)) + +DEFUN_LOCAL_VOID (RasterPos3f, + (void *rend, GLfloat x, GLfloat y, GLfloat z), + (x, y, z)) + +DEFUN_LOCAL_VOID (RasterPos3fv, + (void *rend, const GLfloat * v), + (v)) + +DEFUN_LOCAL_VOID (RasterPos3i, + (void *rend, GLint x, GLint y, GLint z), + (x, y, z)) + +DEFUN_LOCAL_VOID (RasterPos3iv, + (void *rend, const GLint * v), + (v)) + +DEFUN_LOCAL_VOID (RasterPos3s, + (void *rend, GLshort x, GLshort y, GLshort z), + (x, y, z)) + +DEFUN_LOCAL_VOID (RasterPos3sv, + (void *rend, const GLshort * v), + (v)) + +DEFUN_LOCAL_VOID (RasterPos4d, + (void *rend, GLdouble x, GLdouble y, GLdouble z, GLdouble w), + (x, y, z, w)) + +DEFUN_LOCAL_VOID (RasterPos4dv, + (void *rend, const GLdouble * v), + (v)) + +DEFUN_LOCAL_VOID (RasterPos4f, + (void *rend, GLfloat x, GLfloat y, GLfloat z, GLfloat w), + (x, y, z, w)) + +DEFUN_LOCAL_VOID (RasterPos4fv, + (void *rend, const GLfloat * v), + (v)) + +DEFUN_LOCAL_VOID (RasterPos4i, + (void *rend, GLint x, GLint y, GLint z, GLint w), + (x, y, z, w)) + +DEFUN_LOCAL_VOID (RasterPos4iv, + (void *rend, const GLint * v), + (v)) + +DEFUN_LOCAL_VOID (RasterPos4s, + (void *rend, GLshort x, GLshort y, GLshort z, GLshort w), + (x, y, z, w)) + +DEFUN_LOCAL_VOID (RasterPos4sv, + (void *rend, const GLshort * v), + (v)) + +DEFUN_LOCAL_VOID (Rectd, + (void *rend, GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2), + (x1, y1, x2, y2)) + +DEFUN_LOCAL_VOID (Rectdv, + (void *rend, const GLdouble * v1, const GLdouble * v2), + (v1, v2)) + +DEFUN_LOCAL_VOID (Rectf, + (void *rend, GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2), + (x1, y1, x2, y2)) + +DEFUN_LOCAL_VOID (Rectfv, + (void *rend, const GLfloat * v1, const GLfloat * v2), + (v1, v2)) + +DEFUN_LOCAL_VOID (Recti, + (void *rend, GLint x1, GLint y1, GLint x2, GLint y2), + (x1, y1, x2, y2)) + +DEFUN_LOCAL_VOID (Rectiv, + (void *rend, const GLint * v1, const GLint * v2), + (v1, v2)) + +DEFUN_LOCAL_VOID (Rects, + (void *rend, GLshort x1, GLshort y1, GLshort x2, GLshort y2), + (x1, y1, x2, y2)) + +DEFUN_LOCAL_VOID (Rectsv, + (void *rend, const GLshort * v1, const GLshort * v2), + (v1, v2)) + +DEFUN_LOCAL_VOID (TexCoord1d, + (void *rend, GLdouble s), + (s)) + +DEFUN_LOCAL_VOID (TexCoord1dv, + (void *rend, const GLdouble * v), + (v)) + +DEFUN_LOCAL_VOID (TexCoord1f, + (void *rend, GLfloat s), + (s)) + +DEFUN_LOCAL_VOID (TexCoord1fv, + (void *rend, const GLfloat * v), + (v)) + +DEFUN_LOCAL_VOID (TexCoord1i, + (void *rend, GLint s), + (s)) + +DEFUN_LOCAL_VOID (TexCoord1iv, + (void *rend, const GLint * v), + (v)) + +DEFUN_LOCAL_VOID (TexCoord1s, + (void *rend, GLshort s), + (s)) + +DEFUN_LOCAL_VOID (TexCoord1sv, + (void *rend, const GLshort * v), + (v)) + +DEFUN_LOCAL_VOID (TexCoord2d, + (void *rend, GLdouble s, GLdouble t), + (s, t)) + +DEFUN_LOCAL_VOID (TexCoord2dv, + (void *rend, const GLdouble * v), + (v)) + +DEFUN_LOCAL_VOID (TexCoord2f, + (void *rend, GLfloat s, GLfloat t), + (s, t)) + +DEFUN_LOCAL_VOID (TexCoord2fv, + (void *rend, const GLfloat * v), + (v)) + +DEFUN_LOCAL_VOID (TexCoord2i, + (void *rend, GLint s, GLint t), + (s, t)) + +DEFUN_LOCAL_VOID (TexCoord2iv, + (void *rend, const GLint * v), + (v)) + +DEFUN_LOCAL_VOID (TexCoord2s, + (void *rend, GLshort s, GLshort t), + (s, t)) + +DEFUN_LOCAL_VOID (TexCoord2sv, + (void *rend, const GLshort * v), + (v)) + +DEFUN_LOCAL_VOID (TexCoord3d, + (void *rend, GLdouble s, GLdouble t, GLdouble r), + (s, t, r)) + +DEFUN_LOCAL_VOID (TexCoord3dv, + (void *rend, const GLdouble * v), + (v)) + +DEFUN_LOCAL_VOID (TexCoord3f, + (void *rend, GLfloat s, GLfloat t, GLfloat r), + (s, t, r)) + +DEFUN_LOCAL_VOID (TexCoord3fv, + (void *rend, const GLfloat * v), + (v)) + +DEFUN_LOCAL_VOID (TexCoord3i, + (void *rend, GLint s, GLint t, GLint r), + (s, t, r)) + +DEFUN_LOCAL_VOID (TexCoord3iv, + (void *rend, const GLint * v), + (v)) + +DEFUN_LOCAL_VOID (TexCoord3s, + (void *rend, GLshort s, GLshort t, GLshort r), + (s, t, r)) + +DEFUN_LOCAL_VOID (TexCoord3sv, + (void *rend, const GLshort * v), + (v)) + +DEFUN_LOCAL_VOID (TexCoord4d, + (void *rend, GLdouble s, GLdouble t, GLdouble r, GLdouble q), + (s, t, r, q)) + +DEFUN_LOCAL_VOID (TexCoord4dv, + (void *rend, const GLdouble * v), + (v)) + +DEFUN_LOCAL_VOID (TexCoord4f, + (void *rend, GLfloat s, GLfloat t, GLfloat r, GLfloat q), + (s, t, r, q)) + +DEFUN_LOCAL_VOID (TexCoord4fv, + (void *rend, const GLfloat * v), + (v)) + +DEFUN_LOCAL_VOID (TexCoord4i, + (void *rend, GLint s, GLint t, GLint r, GLint q), + (s, t, r, q)) + +DEFUN_LOCAL_VOID (TexCoord4iv, + (void *rend, const GLint * v), + (v)) + +DEFUN_LOCAL_VOID (TexCoord4s, + (void *rend, GLshort s, GLshort t, GLshort r, GLshort q), + (s, t, r, q)) + +DEFUN_LOCAL_VOID (TexCoord4sv, + (void *rend, const GLshort * v), + (v)) + +DEFUN_LOCAL_VOID (Vertex2d, + (void *rend, GLdouble x, GLdouble y), + (x, y)) + +DEFUN_LOCAL_VOID (Vertex2dv, + (void *rend, const GLdouble * v), + (v)) + +DEFUN_LOCAL_VOID (Vertex2f, + (void *rend, GLfloat x, GLfloat y), + (x, y)) + +DEFUN_LOCAL_VOID (Vertex2fv, + (void *rend, const GLfloat * v), + (v)) + +DEFUN_LOCAL_VOID (Vertex2i, + (void *rend, GLint x, GLint y), + (x, y)) + +DEFUN_LOCAL_VOID (Vertex2iv, + (void *rend, const GLint * v), + (v)) + +DEFUN_LOCAL_VOID (Vertex2s, + (void *rend, GLshort x, GLshort y), + (x, y)) + +DEFUN_LOCAL_VOID (Vertex2sv, + (void *rend, const GLshort * v), + (v)) + +DEFUN_LOCAL_VOID (Vertex3d, + (void *rend, GLdouble x, GLdouble y, GLdouble z), + (x, y, z)) + +DEFUN_LOCAL_VOID (Vertex3dv, + (void *rend, const GLdouble * v), + (v)) + +DEFUN_LOCAL_VOID (Vertex3f, + (void *rend, GLfloat x, GLfloat y, GLfloat z), + (x, y, z)) + +DEFUN_LOCAL_VOID (Vertex3fv, + (void *rend, const GLfloat * v), + (v)) + +DEFUN_LOCAL_VOID (Vertex3i, + (void *rend, GLint x, GLint y, GLint z), + (x, y, z)) + +DEFUN_LOCAL_VOID (Vertex3iv, + (void *rend, const GLint * v), + (v)) + +DEFUN_LOCAL_VOID (Vertex3s, + (void *rend, GLshort x, GLshort y, GLshort z), + (x, y, z)) + +DEFUN_LOCAL_VOID (Vertex3sv, + (void *rend, const GLshort * v), + (v)) + +DEFUN_LOCAL_VOID (Vertex4d, + (void *rend, GLdouble x, GLdouble y, GLdouble z, GLdouble w), + (x, y, z, w)) + +DEFUN_LOCAL_VOID (Vertex4dv, + (void *rend, const GLdouble * v), + (v)) + +DEFUN_LOCAL_VOID (Vertex4f, + (void *rend, GLfloat x, GLfloat y, GLfloat z, GLfloat w), + (x, y, z, w)) + +DEFUN_LOCAL_VOID (Vertex4fv, + (void *rend, const GLfloat * v), + (v)) + +DEFUN_LOCAL_VOID (Vertex4i, + (void *rend, GLint x, GLint y, GLint z, GLint w), + (x, y, z, w)) + +DEFUN_LOCAL_VOID (Vertex4iv, + (void *rend, const GLint * v), + (v)) + +DEFUN_LOCAL_VOID (Vertex4s, + (void *rend, GLshort x, GLshort y, GLshort z, GLshort w), + (x, y, z, w)) + +DEFUN_LOCAL_VOID (Vertex4sv, + (void *rend, const GLshort * v), + (v)) + +DEFUN_LOCAL_VOID (ClipPlane, + (void *rend, GLenum plane, const GLdouble * equation), + (plane, equation)) + +DEFUN_LOCAL_VOID (ColorMaterial, + (void *rend, GLenum face, GLenum mode), + (face, mode)) + +DEFUN_LOCAL_VOID (CullFace, + (void *rend, GLenum mode), + (mode)) + +DEFUN_LOCAL_VOID (Fogf, + (void *rend, GLenum pname, GLfloat param), + (pname, param)) + +DEFUN_LOCAL_VOID (Fogfv, + (void *rend, GLenum pname, const GLfloat * params), + (pname, params)) + +DEFUN_LOCAL_VOID (Fogi, + (void *rend, GLenum pname, GLint param), + (pname, param)) + +DEFUN_LOCAL_VOID (Fogiv, + (void *rend, GLenum pname, const GLint * params), + (pname, params)) + +DEFUN_LOCAL_VOID (FrontFace, + (void *rend, GLenum mode), + (mode)) + +DEFUN_LOCAL_VOID (Hint, + (void *rend, GLenum target, GLenum mode), + (target, mode)) + +DEFUN_LOCAL_VOID (Lightf, + (void *rend, GLenum light, GLenum pname, GLfloat param), + (light, pname, param)) + +DEFUN_LOCAL_VOID (Lightfv, + (void *rend, GLenum light, GLenum pname, const GLfloat * params), + (light, pname, params)) + +DEFUN_LOCAL_VOID (Lighti, + (void *rend, GLenum light, GLenum pname, GLint param), + (light, pname, param)) + +DEFUN_LOCAL_VOID (Lightiv, + (void *rend, GLenum light, GLenum pname, const GLint * params), + (light, pname, params)) + +DEFUN_LOCAL_VOID (LightModelf, + (void *rend, GLenum pname, GLfloat param), + (pname, param)) + +DEFUN_LOCAL_VOID (LightModelfv, + (void *rend, GLenum pname, const GLfloat * params), + (pname, params)) + +DEFUN_LOCAL_VOID (LightModeli, + (void *rend, GLenum pname, GLint param), + (pname, param)) + +DEFUN_LOCAL_VOID (LightModeliv, + (void *rend, GLenum pname, const GLint * params), + (pname, params)) + +DEFUN_LOCAL_VOID (LineStipple, + (void *rend, GLint factor, GLushort pattern), + (factor, pattern)) + +DEFUN_LOCAL_VOID (LineWidth, + (void *rend, GLfloat width), + (width)) + +DEFUN_LOCAL_VOID (Materialf, + (void *rend, GLenum face, GLenum pname, GLfloat param), + (face, pname, param)) + +DEFUN_LOCAL_VOID (Materialfv, + (void *rend, GLenum face, GLenum pname, const GLfloat * params), + (face, pname, params)) + +DEFUN_LOCAL_VOID (Materiali, + (void *rend, GLenum face, GLenum pname, GLint param), + (face, pname, param)) + +DEFUN_LOCAL_VOID (Materialiv, + (void *rend, GLenum face, GLenum pname, const GLint * params), + (face, pname, params)) + +DEFUN_LOCAL_VOID (PointSize, + (void *rend, GLfloat size), + (size)) + +DEFUN_LOCAL_VOID (PolygonMode, + (void *rend, GLenum face, GLenum mode), + (face, mode)) + +DEFUN_LOCAL_VOID (PolygonStipple, + (void *rend, const GLubyte * mask), + (mask)) + +DEFUN_LOCAL_VOID (Scissor, + (void *rend, GLint x, GLint y, GLsizei width, GLsizei height), + (x, y, width, height)) + +DEFUN_LOCAL_VOID (ShadeModel, + (void *rend, GLenum mode), + (mode)) + +DEFUN_LOCAL_VOID (TexParameterf, + (void *rend, GLenum target, GLenum pname, GLfloat param), + (target, pname, param)) + +DEFUN_LOCAL_VOID (TexParameterfv, + (void *rend, GLenum target, GLenum pname, const GLfloat * params), + (target, pname, params)) + +DEFUN_LOCAL_VOID (TexParameteri, + (void *rend, GLenum target, GLenum pname, GLint param), + (target, pname, param)) + +DEFUN_LOCAL_VOID (TexParameteriv, + (void *rend, GLenum target, GLenum pname, const GLint * params), + (target, pname, params)) + +DEFUN_LOCAL_VOID (TexImage1D, + (void *rend, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid * pixels), + (target, level, internalformat, width, border, format, type, pixels)) + +DEFUN_LOCAL_VOID (TexImage2D, + (void *rend, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid * pixels), + (target, level, internalformat, width, height, border, format, type, pixels)) + +DEFUN_LOCAL_VOID (TexEnvf, + (void *rend, GLenum target, GLenum pname, GLfloat param), + (target, pname, param)) + +DEFUN_LOCAL_VOID (TexEnvfv, + (void *rend, GLenum target, GLenum pname, const GLfloat * params), + (target, pname, params)) + +DEFUN_LOCAL_VOID (TexEnvi, + (void *rend, GLenum target, GLenum pname, GLint param), + (target, pname, param)) + +DEFUN_LOCAL_VOID (TexEnviv, + (void *rend, GLenum target, GLenum pname, const GLint * params), + (target, pname, params)) + +DEFUN_LOCAL_VOID (TexGend, + (void *rend, GLenum coord, GLenum pname, GLdouble param), + (coord, pname, param)) + +DEFUN_LOCAL_VOID (TexGendv, + (void *rend, GLenum coord, GLenum pname, const GLdouble * params), + (coord, pname, params)) + +DEFUN_LOCAL_VOID (TexGenf, + (void *rend, GLenum coord, GLenum pname, GLfloat param), + (coord, pname, param)) + +DEFUN_LOCAL_VOID (TexGenfv, + (void *rend, GLenum coord, GLenum pname, const GLfloat * params), + (coord, pname, params)) + +DEFUN_LOCAL_VOID (TexGeni, + (void *rend, GLenum coord, GLenum pname, GLint param), + (coord, pname, param)) + +DEFUN_LOCAL_VOID (TexGeniv, + (void *rend, GLenum coord, GLenum pname, const GLint * params), + (coord, pname, params)) + +DEFUN_LOCAL_VOID (FeedbackBuffer, + (void *rend, GLsizei size, GLenum type, GLfloat * buffer), + (size, type, buffer)) + +DEFUN_LOCAL_VOID (SelectBuffer, + (void *rend, GLsizei size, GLuint * buffer), + (size, buffer)) + +DEFUN_LOCAL (GLint, RenderMode, + (void *rend, GLenum mode), + (mode)) + +DEFUN_LOCAL_VOID (InitNames, + (void *rend), + ()) + +DEFUN_LOCAL_VOID (LoadName, + (void *rend, GLuint name), + (name)) + +DEFUN_LOCAL_VOID (PassThrough, + (void *rend, GLfloat token), + (token)) + +DEFUN_LOCAL_VOID (PopName, + (void *rend), + ()) + +DEFUN_LOCAL_VOID (PushName, + (void *rend, GLuint name), + (name)) + +DEFUN_LOCAL_VOID (DrawBuffer, + (void *rend, GLenum mode), + (mode)) + +DEFUN_LOCAL_VOID (Clear, + (void *rend, GLbitfield mask), + (mask)) + +DEFUN_LOCAL_VOID (ClearAccum, + (void *rend, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha), + (red, green, blue, alpha)) + +DEFUN_LOCAL_VOID (ClearIndex, + (void *rend, GLfloat c), + (c)) + +DEFUN_LOCAL_VOID (ClearColor, + (void *rend, GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha), + (red, green, blue, alpha)) + +DEFUN_LOCAL_VOID (ClearStencil, + (void *rend, GLint s), + (s)) + +DEFUN_LOCAL_VOID (ClearDepth, + (void *rend, GLclampd depth), + (depth)) + +DEFUN_LOCAL_VOID (StencilMask, + (void *rend, GLuint mask), + (mask)) + +DEFUN_LOCAL_VOID (ColorMask, + (void *rend, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha), + (red, green, blue, alpha)) + +DEFUN_LOCAL_VOID (DepthMask, + (void *rend, GLboolean flag), + (flag)) + +DEFUN_LOCAL_VOID (IndexMask, + (void *rend, GLuint mask), + (mask)) + +DEFUN_LOCAL_VOID (Accum, + (void *rend, GLenum op, GLfloat value), + (op, value)) + +DEFUN_LOCAL_VOID (Disable, + (void *rend, GLenum cap), + (cap)) + +DEFUN_LOCAL_VOID (Enable, + (void *rend, GLenum cap), + (cap)) + +DEFUN_LOCAL_VOID (Finish, + (void *rend), + ()) + +DEFUN_LOCAL_VOID (Flush, + (void *rend), + ()) + +DEFUN_LOCAL_VOID (PopAttrib, + (void *rend), + ()) + +DEFUN_LOCAL_VOID (PushAttrib, + (void *rend, GLbitfield mask), + (mask)) + +DEFUN_LOCAL_VOID (Map1d, + (void *rend, GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble * points), + (target, u1, u2, stride, order, points)) + +DEFUN_LOCAL_VOID (Map1f, + (void *rend, GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat * points), + (target, u1, u2, stride, order, points)) + +DEFUN_LOCAL_VOID (Map2d, + (void *rend, GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble * points), + (target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points)) + +DEFUN_LOCAL_VOID (Map2f, + (void *rend, GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat * points), + (target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points)) + +DEFUN_LOCAL_VOID (MapGrid1d, + (void *rend, GLint un, GLdouble u1, GLdouble u2), + (un, u1, u2)) + +DEFUN_LOCAL_VOID (MapGrid1f, + (void *rend, GLint un, GLfloat u1, GLfloat u2), + (un, u1, u2)) + +DEFUN_LOCAL_VOID (MapGrid2d, + (void *rend, GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2), + (un, u1, u2, vn, v1, v2)) + +DEFUN_LOCAL_VOID (MapGrid2f, + (void *rend, GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2), + (un, u1, u2, vn, v1, v2)) + +DEFUN_LOCAL_VOID (EvalCoord1d, + (void *rend, GLdouble u), + (u)) + +DEFUN_LOCAL_VOID (EvalCoord1dv, + (void *rend, const GLdouble * u), + (u)) + +DEFUN_LOCAL_VOID (EvalCoord1f, + (void *rend, GLfloat u), + (u)) + +DEFUN_LOCAL_VOID (EvalCoord1fv, + (void *rend, const GLfloat * u), + (u)) + +DEFUN_LOCAL_VOID (EvalCoord2d, + (void *rend, GLdouble u, GLdouble v), + (u, v)) + +DEFUN_LOCAL_VOID (EvalCoord2dv, + (void *rend, const GLdouble * u), + (u)) + +DEFUN_LOCAL_VOID (EvalCoord2f, + (void *rend, GLfloat u, GLfloat v), + (u, v)) + +DEFUN_LOCAL_VOID (EvalCoord2fv, + (void *rend, const GLfloat * u), + (u)) + +DEFUN_LOCAL_VOID (EvalMesh1, + (void *rend, GLenum mode, GLint i1, GLint i2), + (mode, i1, i2)) + +DEFUN_LOCAL_VOID (EvalPoint1, + (void *rend, GLint i), + (i)) + +DEFUN_LOCAL_VOID (EvalMesh2, + (void *rend, GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2), + (mode, i1, i2, j1, j2)) + +DEFUN_LOCAL_VOID (EvalPoint2, + (void *rend, GLint i, GLint j), + (i, j)) + +DEFUN_LOCAL_VOID (AlphaFunc, + (void *rend, GLenum func, GLclampf ref), + (func, ref)) + +DEFUN_LOCAL_VOID (BlendFunc, + (void *rend, GLenum sfactor, GLenum dfactor), + (sfactor, dfactor)) + +DEFUN_LOCAL_VOID (LogicOp, + (void *rend, GLenum opcode), + (opcode)) + +DEFUN_LOCAL_VOID (StencilFunc, + (void *rend, GLenum func, GLint ref, GLuint mask), + (func, ref, mask)) + +DEFUN_LOCAL_VOID (StencilOp, + (void *rend, GLenum fail, GLenum zfail, GLenum zpass), + (fail, zfail, zpass)) + +DEFUN_LOCAL_VOID (DepthFunc, + (void *rend, GLenum func), + (func)) + +DEFUN_LOCAL_VOID (PixelZoom, + (void *rend, GLfloat xfactor, GLfloat yfactor), + (xfactor, yfactor)) + +DEFUN_LOCAL_VOID (PixelTransferf, + (void *rend, GLenum pname, GLfloat param), + (pname, param)) + +DEFUN_LOCAL_VOID (PixelTransferi, + (void *rend, GLenum pname, GLint param), + (pname, param)) + +DEFUN_LOCAL_VOID (PixelStoref, + (void *rend, GLenum pname, GLfloat param), + (pname, param)) + +DEFUN_LOCAL_VOID (PixelStorei, + (void *rend, GLenum pname, GLint param), + (pname, param)) + +DEFUN_LOCAL_VOID (PixelMapfv, + (void *rend, GLenum map, GLint mapsize, const GLfloat * values), + (map, mapsize, values)) + +DEFUN_LOCAL_VOID (PixelMapuiv, + (void *rend, GLenum map, GLint mapsize, const GLuint * values), + (map, mapsize, values)) + +DEFUN_LOCAL_VOID (PixelMapusv, + (void *rend, GLenum map, GLint mapsize, const GLushort * values), + (map, mapsize, values)) + +DEFUN_LOCAL_VOID (ReadBuffer, + (void *rend, GLenum mode), + (mode)) + +DEFUN_LOCAL_VOID (CopyPixels, + (void *rend, GLint x, GLint y, GLsizei width, GLsizei height, GLenum type), + (x, y, width, height, type)) + +DEFUN_LOCAL_VOID (ReadPixels, + (void *rend, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid * pixels), + (x, y, width, height, format, type, pixels)) + +DEFUN_LOCAL_VOID (DrawPixels, + (void *rend, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * pixels), + (width, height, format, type, pixels)) + +DEFUN_LOCAL_VOID (GetBooleanv, + (void *rend, GLenum pname, GLboolean * params), + (pname, params)) + +DEFUN_LOCAL_VOID (GetClipPlane, + (void *rend, GLenum plane, GLdouble * equation), + (plane, equation)) + +DEFUN_LOCAL_VOID (GetDoublev, + (void *rend, GLenum pname, GLdouble * params), + (pname, params)) + +DEFUN_LOCAL (GLenum, GetError, + (void *rend), + ()) + +DEFUN_LOCAL_VOID (GetFloatv, + (void *rend, GLenum pname, GLfloat * params), + (pname, params)) + +DEFUN_LOCAL_VOID (GetIntegerv, + (void *rend, GLenum pname, GLint * params), + (pname, params)) + +DEFUN_LOCAL_VOID (GetLightfv, + (void *rend, GLenum light, GLenum pname, GLfloat * params), + (light, pname, params)) + +DEFUN_LOCAL_VOID (GetLightiv, + (void *rend, GLenum light, GLenum pname, GLint * params), + (light, pname, params)) + +DEFUN_LOCAL_VOID (GetMapdv, + (void *rend, GLenum target, GLenum query, GLdouble * v), + (target, query, v)) + +DEFUN_LOCAL_VOID (GetMapfv, + (void *rend, GLenum target, GLenum query, GLfloat * v), + (target, query, v)) + +DEFUN_LOCAL_VOID (GetMapiv, + (void *rend, GLenum target, GLenum query, GLint * v), + (target, query, v)) + +DEFUN_LOCAL_VOID (GetMaterialfv, + (void *rend, GLenum face, GLenum pname, GLfloat * params), + (face, pname, params)) + +DEFUN_LOCAL_VOID (GetMaterialiv, + (void *rend, GLenum face, GLenum pname, GLint * params), + (face, pname, params)) + +DEFUN_LOCAL_VOID (GetPixelMapfv, + (void *rend, GLenum map, GLfloat * values), + (map, values)) + +DEFUN_LOCAL_VOID (GetPixelMapuiv, + (void *rend, GLenum map, GLuint * values), + (map, values)) + +DEFUN_LOCAL_VOID (GetPixelMapusv, + (void *rend, GLenum map, GLushort * values), + (map, values)) + +DEFUN_LOCAL_VOID (GetPolygonStipple, + (void *rend, GLubyte * mask), + (mask)) + +DEFUN_LOCAL (const GLubyte *, GetString, + (void *rend, GLenum name), + (name)) + +DEFUN_LOCAL_VOID (GetTexEnvfv, + (void *rend, GLenum target, GLenum pname, GLfloat * params), + (target, pname, params)) + +DEFUN_LOCAL_VOID (GetTexEnviv, + (void *rend, GLenum target, GLenum pname, GLint * params), + (target, pname, params)) + +DEFUN_LOCAL_VOID (GetTexGendv, + (void *rend, GLenum coord, GLenum pname, GLdouble * params), + (coord, pname, params)) + +DEFUN_LOCAL_VOID (GetTexGenfv, + (void *rend, GLenum coord, GLenum pname, GLfloat * params), + (coord, pname, params)) + +DEFUN_LOCAL_VOID (GetTexGeniv, + (void *rend, GLenum coord, GLenum pname, GLint * params), + (coord, pname, params)) + +DEFUN_LOCAL_VOID (GetTexImage, + (void *rend, GLenum target, GLint level, GLenum format, GLenum type, GLvoid * pixels), + (target, level, format, type, pixels)) + +DEFUN_LOCAL_VOID (GetTexParameterfv, + (void *rend, GLenum target, GLenum pname, GLfloat * params), + (target, pname, params)) + +DEFUN_LOCAL_VOID (GetTexParameteriv, + (void *rend, GLenum target, GLenum pname, GLint * params), + (target, pname, params)) + +DEFUN_LOCAL_VOID (GetTexLevelParameterfv, + (void *rend, GLenum target, GLint level, GLenum pname, GLfloat * params), + (target, level, pname, params)) + +DEFUN_LOCAL_VOID (GetTexLevelParameteriv, + (void *rend, GLenum target, GLint level, GLenum pname, GLint * params), + (target, level, pname, params)) + +DEFUN_LOCAL (GLboolean, IsEnabled, + (void *rend, GLenum cap), + (cap)) + +DEFUN_LOCAL (GLboolean, IsList, + (void *rend, GLuint list), + (list)) + +DEFUN_LOCAL_VOID (DepthRange, + (void *rend, GLclampd zNear, GLclampd zFar), + (zNear, zFar)) + +DEFUN_LOCAL_VOID (Frustum, + (void *rend, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar), + (left, right, bottom, top, zNear, zFar)) + +DEFUN_LOCAL_VOID (LoadIdentity, + (void *rend), + ()) + +DEFUN_LOCAL_VOID (LoadMatrixf, + (void *rend, const GLfloat * m), + (m)) + +DEFUN_LOCAL_VOID (LoadMatrixd, + (void *rend, const GLdouble * m), + (m)) + +DEFUN_LOCAL_VOID (MatrixMode, + (void *rend, GLenum mode), + (mode)) + +DEFUN_LOCAL_VOID (MultMatrixf, + (void *rend, const GLfloat * m), + (m)) + +DEFUN_LOCAL_VOID (MultMatrixd, + (void *rend, const GLdouble * m), + (m)) + +DEFUN_LOCAL_VOID (Ortho, + (void *rend, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar), + (left, right, bottom, top, zNear, zFar)) + +DEFUN_LOCAL_VOID (PopMatrix, + (void *rend), + ()) + +DEFUN_LOCAL_VOID (PushMatrix, + (void *rend), + ()) + +DEFUN_LOCAL_VOID (Rotated, + (void *rend, GLdouble angle, GLdouble x, GLdouble y, GLdouble z), + (angle, x, y, z)) + +DEFUN_LOCAL_VOID (Rotatef, + (void *rend, GLfloat angle, GLfloat x, GLfloat y, GLfloat z), + (angle, x, y, z)) + +DEFUN_LOCAL_VOID (Scaled, + (void *rend, GLdouble x, GLdouble y, GLdouble z), + (x, y, z)) + +DEFUN_LOCAL_VOID (Scalef, + (void *rend, GLfloat x, GLfloat y, GLfloat z), + (x, y, z)) + +DEFUN_LOCAL_VOID (Translated, + (void *rend, GLdouble x, GLdouble y, GLdouble z), + (x, y, z)) + +DEFUN_LOCAL_VOID (Translatef, + (void *rend, GLfloat x, GLfloat y, GLfloat z), + (x, y, z)) + +DEFUN_LOCAL_VOID (Viewport, + (void *rend, GLint x, GLint y, GLsizei width, GLsizei height), + (x, y, width, height)) + +DEFUN_LOCAL_VOID (ArrayElement, + (void *rend, GLint i), + (i)) + +DEFUN_LOCAL_VOID (BindTexture, + (void *rend, GLenum target, GLenum texture), + (target, texture)) + +DEFUN_LOCAL_VOID (ColorPointer, + (void *rend, GLint size, GLenum type, GLsizei stride, const GLvoid * pointer), + (size, type, stride, pointer)) + +DEFUN_LOCAL_VOID (DisableClientState, + (void *rend, GLenum array), + (array)) + +DEFUN_LOCAL_VOID (DrawArrays, + (void *rend, GLenum mode, GLint first, GLsizei count), + (mode, first, count)) + +DEFUN_LOCAL_VOID (DrawElements, + (void *rend, GLenum mode, GLsizei count, GLenum type, const GLvoid * indices), + (mode, count, type, indices)) + +DEFUN_LOCAL_VOID (EdgeFlagPointer, + (void *rend, GLsizei stride, const GLvoid * pointer), + (stride, pointer)) + +DEFUN_LOCAL_VOID (EnableClientState, + (void *rend, GLenum array), + (array)) + +DEFUN_LOCAL_VOID (IndexPointer, + (void *rend, GLenum type, GLsizei stride, const GLvoid * pointer), + (type, stride, pointer)) + +DEFUN_LOCAL_VOID (Indexub, + (void *rend, GLubyte c), + (c)) + +DEFUN_LOCAL_VOID (Indexubv, + (void *rend, const GLubyte * c), + (c)) + +DEFUN_LOCAL_VOID (InterleavedArrays, + (void *rend, GLenum format, GLsizei stride, const GLvoid * pointer), + (format, stride, pointer)) + +DEFUN_LOCAL_VOID (NormalPointer, + (void *rend, GLenum type, GLsizei stride, const GLvoid * pointer), + (type, stride, pointer)) + +DEFUN_LOCAL_VOID (PolygonOffset, + (void *rend, GLfloat factor, GLfloat units), + (factor, units)) + +DEFUN_LOCAL_VOID (TexCoordPointer, + (void *rend, GLint size, GLenum type, GLsizei stride, const GLvoid * pointer), + (size, type, stride, pointer)) + +DEFUN_LOCAL_VOID (VertexPointer, + (void *rend, GLint size, GLenum type, GLsizei stride, const GLvoid * pointer), + (size, type, stride, pointer)) + +DEFUN_LOCAL (GLboolean, AreTexturesResident, + (void *rend, GLsizei n, const GLenum * textures, GLboolean * residences), + (n, textures, residences)) + +DEFUN_LOCAL_VOID (CopyTexImage1D, + (void *rend, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border), + (target, level, internalformat, x, y, width, border)) + +DEFUN_LOCAL_VOID (CopyTexImage2D, + (void *rend, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border), + (target, level, internalformat, x, y, width, height, border)) + +DEFUN_LOCAL_VOID (CopyTexSubImage1D, + (void *rend, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width), + (target, level, xoffset, x, y, width)) + +DEFUN_LOCAL_VOID (CopyTexSubImage2D, + (void *rend, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height), + (target, level, xoffset, yoffset, x, y, width, height)) + +DEFUN_LOCAL_VOID (DeleteTextures, + (void *rend, GLsizei n, const GLenum * textures), + (n, textures)) + +DEFUN_LOCAL_VOID (GenTextures, + (void *rend, GLsizei n, GLenum * textures), + (n, textures)) + +DEFUN_LOCAL_VOID (GetPointerv, + (void *rend, GLenum pname, GLvoid * * params), + (pname, params)) + +DEFUN_LOCAL (GLboolean, IsTexture, + (void *rend, GLenum texture), + (texture)) + +DEFUN_LOCAL_VOID (PrioritizeTextures, + (void *rend, GLsizei n, const GLenum * textures, const GLclampf * priorities), + (n, textures, priorities)) + +DEFUN_LOCAL_VOID (TexSubImage1D, + (void *rend, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid * pixels), + (target, level, xoffset, width, format, type, pixels)) + +DEFUN_LOCAL_VOID (TexSubImage2D, + (void *rend, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * pixels), + (target, level, xoffset, yoffset, width, height, format, type, pixels)) + +DEFUN_LOCAL_VOID (PopClientAttrib, + (void *rend), + ()) + +DEFUN_LOCAL_VOID (PushClientAttrib, + (void *rend, GLbitfield mask), + (mask)) + +DEFUN_LOCAL_VOID (BlendColor, + (void *rend, GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha), + (red, green, blue, alpha)) + +DEFUN_LOCAL_VOID (BlendEquation, + (void *rend, GLenum mode), + (mode)) + +DEFUN_LOCAL_VOID (DrawRangeElements, + (void *rend, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid * indices), + (mode, start, end, count, type, indices)) + +DEFUN_LOCAL_VOID (ColorTable, + (void *rend, GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid * table), + (target, internalformat, width, format, type, table)) + +DEFUN_LOCAL_VOID (ColorTableParameterfv, + (void *rend, GLenum target, GLenum pname, const GLfloat * params), + (target, pname, params)) + +DEFUN_LOCAL_VOID (ColorTableParameteriv, + (void *rend, GLenum target, GLenum pname, const GLint * params), + (target, pname, params)) + +DEFUN_LOCAL_VOID (CopyColorTable, + (void *rend, GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width), + (target, internalformat, x, y, width)) + +DEFUN_LOCAL_VOID (GetColorTable, + (void *rend, GLenum target, GLenum format, GLenum type, GLvoid * table), + (target, format, type, table)) + +DEFUN_LOCAL_VOID (GetColorTableParameterfv, + (void *rend, GLenum target, GLenum pname, GLfloat * params), + (target, pname, params)) + +DEFUN_LOCAL_VOID (GetColorTableParameteriv, + (void *rend, GLenum target, GLenum pname, GLint * params), + (target, pname, params)) + +DEFUN_LOCAL_VOID (ColorSubTable, + (void *rend, GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid * data), + (target, start, count, format, type, data)) + +DEFUN_LOCAL_VOID (CopyColorSubTable, + (void *rend, GLenum target, GLsizei start, GLint x, GLint y, GLsizei width), + (target, start, x, y, width)) + +DEFUN_LOCAL_VOID (ConvolutionFilter1D, + (void *rend, GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid * image), + (target, internalformat, width, format, type, image)) + +DEFUN_LOCAL_VOID (ConvolutionFilter2D, + (void *rend, GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * image), + (target, internalformat, width, height, format, type, image)) + +DEFUN_LOCAL_VOID (ConvolutionParameterf, + (void *rend, GLenum target, GLenum pname, GLfloat params), + (target, pname, params)) + +DEFUN_LOCAL_VOID (ConvolutionParameterfv, + (void *rend, GLenum target, GLenum pname, const GLfloat * params), + (target, pname, params)) + +DEFUN_LOCAL_VOID (ConvolutionParameteri, + (void *rend, GLenum target, GLenum pname, GLint params), + (target, pname, params)) + +DEFUN_LOCAL_VOID (ConvolutionParameteriv, + (void *rend, GLenum target, GLenum pname, const GLint * params), + (target, pname, params)) + +DEFUN_LOCAL_VOID (CopyConvolutionFilter1D, + (void *rend, GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width), + (target, internalformat, x, y, width)) + +DEFUN_LOCAL_VOID (CopyConvolutionFilter2D, + (void *rend, GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height), + (target, internalformat, x, y, width, height)) + +DEFUN_LOCAL_VOID (GetConvolutionFilter, + (void *rend, GLenum target, GLenum format, GLenum type, GLvoid * image), + (target, format, type, image)) + +DEFUN_LOCAL_VOID (GetConvolutionParameterfv, + (void *rend, GLenum target, GLenum pname, GLfloat * params), + (target, pname, params)) + +DEFUN_LOCAL_VOID (GetConvolutionParameteriv, + (void *rend, GLenum target, GLenum pname, GLint * params), + (target, pname, params)) + +DEFUN_LOCAL_VOID (GetSeparableFilter, + (void *rend, GLenum target, GLenum format, GLenum type, GLvoid * row, GLvoid * column, GLvoid * span), + (target, format, type, row, column, span)) + +DEFUN_LOCAL_VOID (SeparableFilter2D, + (void *rend, GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * row, const GLvoid * column), + (target, internalformat, width, height, format, type, row, column)) + +DEFUN_LOCAL_VOID (GetHistogram, + (void *rend, GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid * values), + (target, reset, format, type, values)) + +DEFUN_LOCAL_VOID (GetHistogramParameterfv, + (void *rend, GLenum target, GLenum pname, GLfloat * params), + (target, pname, params)) + +DEFUN_LOCAL_VOID (GetHistogramParameteriv, + (void *rend, GLenum target, GLenum pname, GLint * params), + (target, pname, params)) + +DEFUN_LOCAL_VOID (GetMinmax, + (void *rend, GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid * values), + (target, reset, format, type, values)) + +DEFUN_LOCAL_VOID (GetMinmaxParameterfv, + (void *rend, GLenum target, GLenum pname, GLfloat * params), + (target, pname, params)) + +DEFUN_LOCAL_VOID (GetMinmaxParameteriv, + (void *rend, GLenum target, GLenum pname, GLint * params), + (target, pname, params)) + +DEFUN_LOCAL_VOID (Histogram, + (void *rend, GLenum target, GLsizei width, GLenum internalformat, GLboolean sink), + (target, width, internalformat, sink)) + +DEFUN_LOCAL_VOID (Minmax, + (void *rend, GLenum target, GLenum internalformat, GLboolean sink), + (target, internalformat, sink)) + +DEFUN_LOCAL_VOID (ResetHistogram, + (void *rend, GLenum target), + (target)) + +DEFUN_LOCAL_VOID (ResetMinmax, + (void *rend, GLenum target), + (target)) + +DEFUN_LOCAL_VOID (TexImage3D, + (void *rend, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid * pixels), + (target, level, internalformat, width, height, depth, border, format, type, pixels)) + +DEFUN_LOCAL_VOID (TexSubImage3D, + (void *rend, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid * pixels), + (target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels)) + +DEFUN_LOCAL_VOID (CopyTexSubImage3D, + (void *rend, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height), + (target, level, xoffset, yoffset, zoffset, x, y, width, height)) + +DEFUN_LOCAL_VOID (ActiveTextureARB, + (void *rend, GLenum texture), + (texture)) + +DEFUN_LOCAL_VOID (ClientActiveTextureARB, + (void *rend, GLenum texture), + (texture)) + +DEFUN_LOCAL_VOID (MultiTexCoord1dARB, + (void *rend, GLenum target, GLdouble s), + (target, s)) + +DEFUN_LOCAL_VOID (MultiTexCoord1dvARB, + (void *rend, GLenum target, const GLdouble * v), + (target, v)) + +DEFUN_LOCAL_VOID (MultiTexCoord1fARB, + (void *rend, GLenum target, GLfloat s), + (target, s)) + +DEFUN_LOCAL_VOID (MultiTexCoord1fvARB, + (void *rend, GLenum target, const GLfloat * v), + (target, v)) + +DEFUN_LOCAL_VOID (MultiTexCoord1iARB, + (void *rend, GLenum target, GLint s), + (target, s)) + +DEFUN_LOCAL_VOID (MultiTexCoord1ivARB, + (void *rend, GLenum target, const GLint * v), + (target, v)) + +DEFUN_LOCAL_VOID (MultiTexCoord1sARB, + (void *rend, GLenum target, GLshort s), + (target, s)) + +DEFUN_LOCAL_VOID (MultiTexCoord1svARB, + (void *rend, GLenum target, const GLshort * v), + (target, v)) + +DEFUN_LOCAL_VOID (MultiTexCoord2dARB, + (void *rend, GLenum target, GLdouble s, GLdouble t), + (target, s, t)) + +DEFUN_LOCAL_VOID (MultiTexCoord2dvARB, + (void *rend, GLenum target, const GLdouble * v), + (target, v)) + +DEFUN_LOCAL_VOID (MultiTexCoord2fARB, + (void *rend, GLenum target, GLfloat s, GLfloat t), + (target, s, t)) + +DEFUN_LOCAL_VOID (MultiTexCoord2fvARB, + (void *rend, GLenum target, const GLfloat * v), + (target, v)) + +DEFUN_LOCAL_VOID (MultiTexCoord2iARB, + (void *rend, GLenum target, GLint s, GLint t), + (target, s, t)) + +DEFUN_LOCAL_VOID (MultiTexCoord2ivARB, + (void *rend, GLenum target, const GLint * v), + (target, v)) + +DEFUN_LOCAL_VOID (MultiTexCoord2sARB, + (void *rend, GLenum target, GLshort s, GLshort t), + (target, s, t)) + +DEFUN_LOCAL_VOID (MultiTexCoord2svARB, + (void *rend, GLenum target, const GLshort * v), + (target, v)) + +DEFUN_LOCAL_VOID (MultiTexCoord3dARB, + (void *rend, GLenum target, GLdouble s, GLdouble t, GLdouble r), + (target, s, t, r)) + +DEFUN_LOCAL_VOID (MultiTexCoord3dvARB, + (void *rend, GLenum target, const GLdouble * v), + (target, v)) + +DEFUN_LOCAL_VOID (MultiTexCoord3fARB, + (void *rend, GLenum target, GLfloat s, GLfloat t, GLfloat r), + (target, s, t, r)) + +DEFUN_LOCAL_VOID (MultiTexCoord3fvARB, + (void *rend, GLenum target, const GLfloat * v), + (target, v)) + +DEFUN_LOCAL_VOID (MultiTexCoord3iARB, + (void *rend, GLenum target, GLint s, GLint t, GLint r), + (target, s, t, r)) + +DEFUN_LOCAL_VOID (MultiTexCoord3ivARB, + (void *rend, GLenum target, const GLint * v), + (target, v)) + +DEFUN_LOCAL_VOID (MultiTexCoord3sARB, + (void *rend, GLenum target, GLshort s, GLshort t, GLshort r), + (target, s, t, r)) + +DEFUN_LOCAL_VOID (MultiTexCoord3svARB, + (void *rend, GLenum target, const GLshort * v), + (target, v)) + +DEFUN_LOCAL_VOID (MultiTexCoord4dARB, + (void *rend, GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q), + (target, s, t, r, q)) + +DEFUN_LOCAL_VOID (MultiTexCoord4dvARB, + (void *rend, GLenum target, const GLdouble * v), + (target, v)) + +DEFUN_LOCAL_VOID (MultiTexCoord4fARB, + (void *rend, GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q), + (target, s, t, r, q)) + +DEFUN_LOCAL_VOID (MultiTexCoord4fvARB, + (void *rend, GLenum target, const GLfloat * v), + (target, v)) + +DEFUN_LOCAL_VOID (MultiTexCoord4iARB, + (void *rend, GLenum target, GLint s, GLint t, GLint r, GLint q), + (target, s, t, r, q)) + +DEFUN_LOCAL_VOID (MultiTexCoord4ivARB, + (void *rend, GLenum target, const GLint * v), + (target, v)) + +DEFUN_LOCAL_VOID (MultiTexCoord4sARB, + (void *rend, GLenum target, GLshort s, GLshort t, GLshort r, GLshort q), + (target, s, t, r, q)) + +DEFUN_LOCAL_VOID (MultiTexCoord4svARB, + (void *rend, GLenum target, const GLshort * v), + (target, v)) + +DEFUN_LOCAL_VOID (LoadTransposeMatrixfARB, + (void *rend, const GLfloat * m), + (m)) + +DEFUN_LOCAL_VOID (LoadTransposeMatrixdARB, + (void *rend, const GLdouble * m), + (m)) + +DEFUN_LOCAL_VOID (MultTransposeMatrixfARB, + (void *rend, const GLfloat * m), + (m)) + +DEFUN_LOCAL_VOID (MultTransposeMatrixdARB, + (void *rend, const GLdouble * m), + (m)) + +DEFUN_LOCAL_VOID (SampleCoverageARB, + (void *rend, GLclampf value, GLboolean invert), + (value, invert)) + +DEFUN_EXTERN_VOID (__unused413, + (), + ()) + +DEFUN_ALIAS_VOID (PolygonOffsetEXT, PolygonOffset, + (GLfloat factor, GLfloat bias), + (factor, bias)) + +DEFUN_EXTERN_VOID (GetTexFilterFuncSGIS, + (GLenum target, GLenum filter, GLfloat * weights), + (target, filter, weights)) + +DEFUN_EXTERN_VOID (TexFilterFuncSGIS, + (GLenum target, GLenum filter, GLsizei n, const GLfloat * weights), + (target, filter, n, weights)) + +DEFUN_ALIAS_VOID (GetHistogramEXT, GetHistogram, + (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid * values), + (target, reset, format, type, values)) + +DEFUN_ALIAS_VOID (GetHistogramParameterfvEXT, GetHistogramParameterfv, + (GLenum target, GLenum pname, GLfloat * params), + (target, pname, params)) + +DEFUN_ALIAS_VOID (GetHistogramParameterivEXT, GetHistogramParameteriv, + (GLenum target, GLenum pname, GLint * params), + (target, pname, params)) + +DEFUN_ALIAS_VOID (GetMinmaxEXT, GetMinmax, + (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid * values), + (target, reset, format, type, values)) + +DEFUN_ALIAS_VOID (GetMinmaxParameterfvEXT, GetMinmaxParameterfv, + (GLenum target, GLenum pname, GLfloat * params), + (target, pname, params)) + +DEFUN_ALIAS_VOID (GetMinmaxParameterivEXT, GetMinmaxParameteriv, + (GLenum target, GLenum pname, GLint * params), + (target, pname, params)) + +DEFUN_ALIAS_VOID (GetConvolutionFilterEXT, GetConvolutionFilter, + (GLenum target, GLenum format, GLenum type, GLvoid * image), + (target, format, type, image)) + +DEFUN_ALIAS_VOID (GetConvolutionParameterfvEXT, GetConvolutionParameterfv, + (GLenum target, GLenum pname, GLfloat * params), + (target, pname, params)) + +DEFUN_ALIAS_VOID (GetConvolutionParameterivEXT, GetConvolutionParameteriv, + (GLenum target, GLenum pname, GLint * params), + (target, pname, params)) + +DEFUN_ALIAS_VOID (GetSeparableFilterEXT, GetSeparableFilter, + (GLenum target, GLenum format, GLenum type, GLvoid * row, GLvoid * column, GLvoid * span), + (target, format, type, row, column, span)) + +DEFUN_ALIAS_VOID (GetColorTableSGI, GetColorTable, + (GLenum target, GLenum format, GLenum type, GLvoid * table), + (target, format, type, table)) + +DEFUN_ALIAS_VOID (GetColorTableParameterfvSGI, GetColorTableParameterfv, + (GLenum target, GLenum pname, GLfloat * params), + (target, pname, params)) + +DEFUN_ALIAS_VOID (GetColorTableParameterivSGI, GetColorTableParameteriv, + (GLenum target, GLenum pname, GLint * params), + (target, pname, params)) + +DEFUN_EXTERN_VOID (PixelTexGenSGIX, + (GLenum mode), + (mode)) + +DEFUN_EXTERN_VOID (PixelTexGenParameteriSGIS, + (GLenum pname, GLint param), + (pname, param)) + +DEFUN_EXTERN_VOID (PixelTexGenParameterivSGIS, + (GLenum pname, const GLint * params), + (pname, params)) + +DEFUN_EXTERN_VOID (PixelTexGenParameterfSGIS, + (GLenum pname, GLfloat param), + (pname, param)) + +DEFUN_EXTERN_VOID (PixelTexGenParameterfvSGIS, + (GLenum pname, const GLfloat * params), + (pname, params)) + +DEFUN_EXTERN_VOID (GetPixelTexGenParameterivSGIS, + (GLenum pname, GLint * params), + (pname, params)) + +DEFUN_EXTERN_VOID (GetPixelTexGenParameterfvSGIS, + (GLenum pname, GLfloat * params), + (pname, params)) + +DEFUN_EXTERN_VOID (TexImage4DSGIS, + (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const GLvoid * pixels), + (target, level, internalformat, width, height, depth, size4d, border, format, type, pixels)) + +DEFUN_EXTERN_VOID (TexSubImage4DSGIS, + (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const GLvoid * pixels), + (target, level, xoffset, yoffset, zoffset, woffset, width, height, depth, size4d, format, type, pixels)) + +DEFUN_ALIAS (GLboolean, AreTexturesResidentEXT, AreTexturesResident, + (GLsizei n, const GLenum * textures, GLboolean * residences), + (n, textures, residences)) + +DEFUN_ALIAS_VOID (GenTexturesEXT, GenTextures, + (GLsizei n, GLenum * textures), + (n, textures)) + +DEFUN_EXTERN (GLboolean, IsTextureEXT, + (GLenum texture), + (texture)) + +DEFUN_EXTERN_VOID (DetailTexFuncSGIS, + (GLenum target, GLsizei n, const GLfloat * points), + (target, n, points)) + +DEFUN_EXTERN_VOID (GetDetailTexFuncSGIS, + (GLenum target, GLfloat * points), + (target, points)) + +DEFUN_EXTERN_VOID (SharpenTexFuncSGIS, + (GLenum target, GLsizei n, const GLfloat * points), + (target, n, points)) + +DEFUN_EXTERN_VOID (GetSharpenTexFuncSGIS, + (GLenum target, GLfloat * points), + (target, points)) + +DEFUN_EXTERN_VOID (SampleMaskSGIS, + (GLclampf value, GLboolean invert), + (value, invert)) + +DEFUN_EXTERN_VOID (SamplePatternSGIS, + (GLenum pattern), + (pattern)) + +DEFUN_EXTERN_VOID (ColorPointerEXT, + (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer), + (size, type, stride, count, pointer)) + +DEFUN_EXTERN_VOID (EdgeFlagPointerEXT, + (GLsizei stride, GLsizei count, const GLboolean * pointer), + (stride, count, pointer)) + +DEFUN_EXTERN_VOID (IndexPointerEXT, + (GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer), + (type, stride, count, pointer)) + +DEFUN_EXTERN_VOID (NormalPointerEXT, + (GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer), + (type, stride, count, pointer)) + +DEFUN_EXTERN_VOID (TexCoordPointerEXT, + (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer), + (size, type, stride, count, pointer)) + +DEFUN_EXTERN_VOID (VertexPointerEXT, + (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer), + (size, type, stride, count, pointer)) + +DEFUN_EXTERN_VOID (SpriteParameterfSGIX, + (GLenum pname, GLfloat param), + (pname, param)) + +DEFUN_EXTERN_VOID (SpriteParameterfvSGIX, + (GLenum pname, const GLfloat * params), + (pname, params)) + +DEFUN_EXTERN_VOID (SpriteParameteriSGIX, + (GLenum pname, GLint param), + (pname, param)) + +DEFUN_EXTERN_VOID (SpriteParameterivSGIX, + (GLenum pname, const GLint * params), + (pname, params)) + +DEFUN_LOCAL_VOID (PointParameterfEXT, + (void *rend, GLenum pname, GLfloat param), + (pname, param)) + +DEFUN_ALIAS_VOID (PointParameterfEXT, PointParameterf, + (GLenum pname, GLfloat param), + (pname, param)) + +DEFUN_LOCAL_VOID (PointParameterfvEXT, + (void *rend, GLenum pname, const GLfloat * params), + (pname, params)) + +DEFUN_ALIAS_VOID (PointParameterfvEXT, PointParameterfv, + (GLenum pname, const GLfloat * params), + (pname, params)) + +DEFUN_EXTERN (GLint, GetInstrumentsSGIX, + (), + ()) + +DEFUN_EXTERN_VOID (InstrumentsBufferSGIX, + (GLsizei size, GLint * buffer), + (size, buffer)) + +DEFUN_EXTERN (GLint, PollInstrumentsSGIX, + (GLint * marker_p), + (marker_p)) + +DEFUN_EXTERN_VOID (ReadInstrumentsSGIX, + (GLint marker), + (marker)) + +DEFUN_EXTERN_VOID (StartInstrumentsSGIX, + (), + ()) + +DEFUN_EXTERN_VOID (StopInstrumentsSGIX, + (GLint marker), + (marker)) + +DEFUN_EXTERN_VOID (FrameZoomSGIX, + (GLint factor), + (factor)) + +DEFUN_EXTERN_VOID (TagSampleBufferSGIX, + (), + ()) + +DEFUN_EXTERN_VOID (ReferencePlaneSGIX, + (const GLdouble * equation), + (equation)) + +DEFUN_EXTERN_VOID (FlushRasterSGIX, + (), + ()) + +DEFUN_EXTERN_VOID (GetListParameterfvSGIX, + (GLuint list, GLenum pname, GLfloat * params), + (list, pname, params)) + +DEFUN_EXTERN_VOID (GetListParameterivSGIX, + (GLuint list, GLenum pname, GLint * params), + (list, pname, params)) + +DEFUN_EXTERN_VOID (ListParameterfSGIX, + (GLuint list, GLenum pname, GLfloat param), + (list, pname, param)) + +DEFUN_EXTERN_VOID (ListParameterfvSGIX, + (GLuint list, GLenum pname, const GLfloat * params), + (list, pname, params)) + +DEFUN_EXTERN_VOID (ListParameteriSGIX, + (GLuint list, GLenum pname, GLint param), + (list, pname, param)) + +DEFUN_EXTERN_VOID (ListParameterivSGIX, + (GLuint list, GLenum pname, const GLint * params), + (list, pname, params)) + +DEFUN_EXTERN_VOID (FragmentColorMaterialSGIX, + (GLenum face, GLenum mode), + (face, mode)) + +DEFUN_EXTERN_VOID (FragmentLightfSGIX, + (GLenum light, GLenum pname, GLfloat param), + (light, pname, param)) + +DEFUN_EXTERN_VOID (FragmentLightfvSGIX, + (GLenum light, GLenum pname, const GLfloat * params), + (light, pname, params)) + +DEFUN_EXTERN_VOID (FragmentLightiSGIX, + (GLenum light, GLenum pname, GLint param), + (light, pname, param)) + +DEFUN_EXTERN_VOID (FragmentLightivSGIX, + (GLenum light, GLenum pname, const GLint * params), + (light, pname, params)) + +DEFUN_EXTERN_VOID (FragmentLightModelfSGIX, + (GLenum pname, GLfloat param), + (pname, param)) + +DEFUN_EXTERN_VOID (FragmentLightModelfvSGIX, + (GLenum pname, const GLfloat * params), + (pname, params)) + +DEFUN_EXTERN_VOID (FragmentLightModeliSGIX, + (GLenum pname, GLint param), + (pname, param)) + +DEFUN_EXTERN_VOID (FragmentLightModelivSGIX, + (GLenum pname, const GLint * params), + (pname, params)) + +DEFUN_EXTERN_VOID (FragmentMaterialfSGIX, + (GLenum face, GLenum pname, GLfloat param), + (face, pname, param)) + +DEFUN_EXTERN_VOID (FragmentMaterialfvSGIX, + (GLenum face, GLenum pname, const GLfloat * params), + (face, pname, params)) + +DEFUN_EXTERN_VOID (FragmentMaterialiSGIX, + (GLenum face, GLenum pname, GLint param), + (face, pname, param)) + +DEFUN_EXTERN_VOID (FragmentMaterialivSGIX, + (GLenum face, GLenum pname, const GLint * params), + (face, pname, params)) + +DEFUN_EXTERN_VOID (GetFragmentLightfvSGIX, + (GLenum light, GLenum pname, GLfloat * params), + (light, pname, params)) + +DEFUN_EXTERN_VOID (GetFragmentLightivSGIX, + (GLenum light, GLenum pname, GLint * params), + (light, pname, params)) + +DEFUN_EXTERN_VOID (GetFragmentMaterialfvSGIX, + (GLenum face, GLenum pname, GLfloat * params), + (face, pname, params)) + +DEFUN_EXTERN_VOID (GetFragmentMaterialivSGIX, + (GLenum face, GLenum pname, GLint * params), + (face, pname, params)) + +DEFUN_EXTERN_VOID (LightEnviSGIX, + (GLenum pname, GLint param), + (pname, param)) + +DEFUN_EXTERN_VOID (VertexWeightfEXT, + (GLfloat weight), + (weight)) + +DEFUN_EXTERN_VOID (VertexWeightfvEXT, + (const GLfloat * weight), + (weight)) + +DEFUN_EXTERN_VOID (VertexWeightPointerEXT, + (GLsizei size, GLenum type, GLsizei stride, const GLvoid * pointer), + (size, type, stride, pointer)) + +DEFUN_EXTERN_VOID (FlushVertexArrayRangeNV, + (), + ()) + +DEFUN_LOCAL_VOID (VertexArrayRangeNV, + (void *rend, GLsizei length, const GLvoid * pointer), + (length, pointer)) + +DEFUN_ALIAS_VOID (VertexArrayRangeNV, VertexArrayRangeAPPLE, + (GLsizei length, const GLvoid * pointer), + (length, pointer)) + +DEFUN_LOCAL_VOID (CombinerParameterfvNV, + (void *rend, GLenum pname, const GLfloat * params), + (pname, params)) + +DEFUN_LOCAL_VOID (CombinerParameterfNV, + (void *rend, GLenum pname, GLfloat param), + (pname, param)) + +DEFUN_LOCAL_VOID (CombinerParameterivNV, + (void *rend, GLenum pname, const GLint * params), + (pname, params)) + +DEFUN_LOCAL_VOID (CombinerParameteriNV, + (void *rend, GLenum pname, GLint param), + (pname, param)) + +DEFUN_LOCAL_VOID (CombinerInputNV, + (void *rend, GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage), + (stage, portion, variable, input, mapping, componentUsage)) + +DEFUN_LOCAL_VOID (CombinerOutputNV, + (void *rend, GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum), + (stage, portion, abOutput, cdOutput, sumOutput, scale, bias, abDotProduct, cdDotProduct, muxSum)) + +DEFUN_LOCAL_VOID (FinalCombinerInputNV, + (void *rend, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage), + (variable, input, mapping, componentUsage)) + +DEFUN_LOCAL_VOID (GetCombinerInputParameterfvNV, + (void *rend, GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat * params), + (stage, portion, variable, pname, params)) + +DEFUN_LOCAL_VOID (GetCombinerInputParameterivNV, + (void *rend, GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint * params), + (stage, portion, variable, pname, params)) + +DEFUN_LOCAL_VOID (GetCombinerOutputParameterfvNV, + (void *rend, GLenum stage, GLenum portion, GLenum pname, GLfloat * params), + (stage, portion, pname, params)) + +DEFUN_LOCAL_VOID (GetCombinerOutputParameterivNV, + (void *rend, GLenum stage, GLenum portion, GLenum pname, GLint * params), + (stage, portion, pname, params)) + +DEFUN_LOCAL_VOID (GetFinalCombinerInputParameterfvNV, + (void *rend, GLenum variable, GLenum pname, GLfloat * params), + (variable, pname, params)) + +DEFUN_LOCAL_VOID (GetFinalCombinerInputParameterivNV, + (void *rend, GLenum variable, GLenum pname, GLint * params), + (variable, pname, params)) + +DEFUN_EXTERN_VOID (ResizeBuffersMESA, + (), + ()) + +DEFUN_LOCAL_VOID (WindowPos2dMESA, + (void *rend, GLdouble x, GLdouble y), + (x, y)) + +DEFUN_ALIAS_VOID (WindowPos2dMESA, WindowPos2d, + (GLdouble x, GLdouble y), + (x, y)) + +DEFUN_LOCAL_VOID (WindowPos2dvMESA, + (void *rend, const GLdouble * v), + (v)) + +DEFUN_ALIAS_VOID (WindowPos2dvMESA, WindowPos2dv, + (const GLdouble * v), + (v)) + +DEFUN_LOCAL_VOID (WindowPos2fMESA, + (void *rend, GLfloat x, GLfloat y), + (x, y)) + +DEFUN_ALIAS_VOID (WindowPos2fMESA, WindowPos2f, + (GLfloat x, GLfloat y), + (x, y)) + +DEFUN_LOCAL_VOID (WindowPos2fvMESA, + (void *rend, const GLfloat * v), + (v)) + +DEFUN_ALIAS_VOID (WindowPos2fvMESA, WindowPos2fv, + (const GLfloat * v), + (v)) + +DEFUN_LOCAL_VOID (WindowPos2iMESA, + (void *rend, GLint x, GLint y), + (x, y)) + +DEFUN_ALIAS_VOID (WindowPos2iMESA, WindowPos2i, + (GLint x, GLint y), + (x, y)) + +DEFUN_LOCAL_VOID (WindowPos2ivMESA, + (void *rend, const GLint * v), + (v)) + +DEFUN_ALIAS_VOID (WindowPos2ivMESA, WindowPos2iv, + (const GLint * v), + (v)) + +DEFUN_LOCAL_VOID (WindowPos2sMESA, + (void *rend, GLshort x, GLshort y), + (x, y)) + +DEFUN_ALIAS_VOID (WindowPos2sMESA, WindowPos2s, + (GLshort x, GLshort y), + (x, y)) + +DEFUN_LOCAL_VOID (WindowPos2svMESA, + (void *rend, const GLshort * v), + (v)) + +DEFUN_ALIAS_VOID (WindowPos2svMESA, WindowPos2sv, + (const GLshort * v), + (v)) + +DEFUN_LOCAL_VOID (WindowPos3dMESA, + (void *rend, GLdouble x, GLdouble y, GLdouble z), + (x, y, z)) + +DEFUN_ALIAS_VOID (WindowPos3dMESA, WindowPos3d, + (GLdouble x, GLdouble y, GLdouble z), + (x, y, z)) + +DEFUN_LOCAL_VOID (WindowPos3dvMESA, + (void *rend, const GLdouble * v), + (v)) + +DEFUN_ALIAS_VOID (WindowPos3dvMESA, WindowPos3dv, + (const GLdouble * v), + (v)) + +DEFUN_LOCAL_VOID (WindowPos3fMESA, + (void *rend, GLfloat x, GLfloat y, GLfloat z), + (x, y, z)) + +DEFUN_ALIAS_VOID (WindowPos3fMESA, WindowPos3f, + (GLfloat x, GLfloat y, GLfloat z), + (x, y, z)) + +DEFUN_LOCAL_VOID (WindowPos3fvMESA, + (void *rend, const GLfloat * v), + (v)) + +DEFUN_ALIAS_VOID (WindowPos3fvMESA, WindowPos3fv, + (const GLfloat * v), + (v)) + +DEFUN_LOCAL_VOID (WindowPos3iMESA, + (void *rend, GLint x, GLint y, GLint z), + (x, y, z)) + +DEFUN_ALIAS_VOID (WindowPos3iMESA, WindowPos3i, + (GLint x, GLint y, GLint z), + (x, y, z)) + +DEFUN_LOCAL_VOID (WindowPos3ivMESA, + (void *rend, const GLint * v), + (v)) + +DEFUN_ALIAS_VOID (WindowPos3ivMESA, WindowPos3iv, + (const GLint * v), + (v)) + +DEFUN_LOCAL_VOID (WindowPos3sMESA, + (void *rend, GLshort x, GLshort y, GLshort z), + (x, y, z)) + +DEFUN_ALIAS_VOID (WindowPos3sMESA, WindowPos3s, + (GLshort x, GLshort y, GLshort z), + (x, y, z)) + +DEFUN_LOCAL_VOID (WindowPos3svMESA, + (void *rend, const GLshort * v), + (v)) + +DEFUN_ALIAS_VOID (WindowPos3svMESA, WindowPos3sv, + (const GLshort * v), + (v)) + +DEFUN_EXTERN_VOID (WindowPos4dMESA, + (GLdouble x, GLdouble y, GLdouble z, GLdouble w), + (x, y, z, w)) + +DEFUN_EXTERN_VOID (WindowPos4dvMESA, + (const GLdouble * v), + (v)) + +DEFUN_EXTERN_VOID (WindowPos4fMESA, + (GLfloat x, GLfloat y, GLfloat z, GLfloat w), + (x, y, z, w)) + +DEFUN_EXTERN_VOID (WindowPos4fvMESA, + (const GLfloat * v), + (v)) + +DEFUN_EXTERN_VOID (WindowPos4iMESA, + (GLint x, GLint y, GLint z, GLint w), + (x, y, z, w)) + +DEFUN_EXTERN_VOID (WindowPos4ivMESA, + (const GLint * v), + (v)) + +DEFUN_EXTERN_VOID (WindowPos4sMESA, + (GLshort x, GLshort y, GLshort z, GLshort w), + (x, y, z, w)) + +DEFUN_EXTERN_VOID (WindowPos4svMESA, + (const GLshort * v), + (v)) + +DEFUN_LOCAL_VOID (BlendFuncSeparateEXT, + (void *rend, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha), + (sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha)) + +DEFUN_EXTERN_VOID (IndexMaterialEXT, + (GLenum face, GLenum mode), + (face, mode)) + +DEFUN_EXTERN_VOID (IndexFuncEXT, + (GLenum func, GLclampf ref), + (func, ref)) + +DEFUN_LOCAL_VOID (LockArraysEXT, + (void *rend, GLint first, GLsizei count), + (first, count)) + +DEFUN_LOCAL_VOID (UnlockArraysEXT, + (void *rend), + ()) + +DEFUN_EXTERN_VOID (CullParameterdvEXT, + (GLenum pname, GLdouble * params), + (pname, params)) + +DEFUN_EXTERN_VOID (CullParameterfvEXT, + (GLenum pname, GLfloat * params), + (pname, params)) + +DEFUN_EXTERN_VOID (HintPGI, + (GLenum target, GLint mode), + (target, mode)) + +DEFUN_LOCAL_VOID (FogCoordfEXT, + (void *rend, GLfloat coord), + (coord)) + +DEFUN_LOCAL_VOID (FogCoordfvEXT, + (void *rend, const GLfloat * coord), + (coord)) + +DEFUN_LOCAL_VOID (FogCoorddEXT, + (void *rend, GLdouble coord), + (coord)) + +DEFUN_LOCAL_VOID (FogCoorddvEXT, + (void *rend, const GLdouble * coord), + (coord)) + +DEFUN_LOCAL_VOID (FogCoordPointerEXT, + (void *rend, GLenum type, GLsizei stride, const GLvoid * pointer), + (type, stride, pointer)) + +DEFUN_EXTERN_VOID (TbufferMask3DFX, + (GLuint mask), + (mask)) + +DEFUN_LOCAL_VOID (CompressedTexImage3DARB, + (void *rend, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid * data), + (target, level, internalformat, width, height, depth, border, imageSize, data)) + +DEFUN_LOCAL_VOID (CompressedTexImage2DARB, + (void *rend, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid * data), + (target, level, internalformat, width, height, border, imageSize, data)) + +DEFUN_LOCAL_VOID (CompressedTexImage1DARB, + (void *rend, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid * data), + (target, level, internalformat, width, border, imageSize, data)) + +DEFUN_LOCAL_VOID (CompressedTexSubImage3DARB, + (void *rend, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid * data), + (target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data)) + +DEFUN_LOCAL_VOID (CompressedTexSubImage2DARB, + (void *rend, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid * data), + (target, level, xoffset, yoffset, width, height, format, imageSize, data)) + +DEFUN_LOCAL_VOID (CompressedTexSubImage1DARB, + (void *rend, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid * data), + (target, level, xoffset, width, format, imageSize, data)) + +DEFUN_LOCAL_VOID (GetCompressedTexImageARB, + (void *rend, GLenum target, GLint level, void * img), + (target, level, img)) + +DEFUN_LOCAL_VOID (SecondaryColor3bEXT, + (void *rend, GLbyte red, GLbyte green, GLbyte blue), + (red, green, blue)) + +DEFUN_LOCAL_VOID (SecondaryColor3bvEXT, + (void *rend, const GLbyte * v), + (v)) + +DEFUN_LOCAL_VOID (SecondaryColor3dEXT, + (void *rend, GLdouble red, GLdouble green, GLdouble blue), + (red, green, blue)) + +DEFUN_LOCAL_VOID (SecondaryColor3dvEXT, + (void *rend, const GLdouble * v), + (v)) + +DEFUN_LOCAL_VOID (SecondaryColor3fEXT, + (void *rend, GLfloat red, GLfloat green, GLfloat blue), + (red, green, blue)) + +DEFUN_LOCAL_VOID (SecondaryColor3fvEXT, + (void *rend, const GLfloat * v), + (v)) + +DEFUN_LOCAL_VOID (SecondaryColor3iEXT, + (void *rend, GLint red, GLint green, GLint blue), + (red, green, blue)) + +DEFUN_LOCAL_VOID (SecondaryColor3ivEXT, + (void *rend, const GLint * v), + (v)) + +DEFUN_LOCAL_VOID (SecondaryColor3sEXT, + (void *rend, GLshort red, GLshort green, GLshort blue), + (red, green, blue)) + +DEFUN_LOCAL_VOID (SecondaryColor3svEXT, + (void *rend, const GLshort * v), + (v)) + +DEFUN_LOCAL_VOID (SecondaryColor3ubEXT, + (void *rend, GLubyte red, GLubyte green, GLubyte blue), + (red, green, blue)) + +DEFUN_LOCAL_VOID (SecondaryColor3ubvEXT, + (void *rend, const GLubyte * v), + (v)) + +DEFUN_LOCAL_VOID (SecondaryColor3uiEXT, + (void *rend, GLuint red, GLuint green, GLuint blue), + (red, green, blue)) + +DEFUN_LOCAL_VOID (SecondaryColor3uivEXT, + (void *rend, const GLuint * v), + (v)) + +DEFUN_LOCAL_VOID (SecondaryColor3usEXT, + (void *rend, GLushort red, GLushort green, GLushort blue), + (red, green, blue)) + +DEFUN_LOCAL_VOID (SecondaryColor3usvEXT, + (void *rend, const GLushort * v), + (v)) + +DEFUN_LOCAL_VOID (SecondaryColorPointerEXT, + (void *rend, GLint size, GLenum type, GLsizei stride, const GLvoid * pointer), + (size, type, stride, pointer)) + +DEFUN_EXTERN (GLboolean, AreProgramsResidentNV, + (GLsizei n, const GLuint * ids, GLboolean * residences), + (n, ids, residences)) + +DEFUN_LOCAL_VOID (BindProgramNV, + (void *rend, GLenum target, GLuint id), + (target, id)) + +DEFUN_ALIAS_VOID (BindProgramNV, BindProgramARB, + (GLenum target, GLuint id), + (target, id)) + +DEFUN_LOCAL_VOID (DeleteProgramsNV, + (void *rend, GLsizei n, const GLuint * ids), + (n, ids)) + +DEFUN_ALIAS_VOID (DeleteProgramsNV, DeleteProgramsARB, + (GLsizei n, const GLuint * ids), + (n, ids)) + +DEFUN_EXTERN_VOID (ExecuteProgramNV, + (GLenum target, GLuint id, const GLfloat * params), + (target, id, params)) + +DEFUN_LOCAL_VOID (GenProgramsNV, + (void *rend, GLsizei n, GLuint * ids), + (n, ids)) + +DEFUN_ALIAS_VOID (GenProgramsNV, GenProgramsARB, + (GLsizei n, GLuint * ids), + (n, ids)) + +DEFUN_EXTERN_VOID (GetProgramParameterdvNV, + (GLenum target, GLuint index, GLenum pname, GLdouble * params), + (target, index, pname, params)) + +DEFUN_EXTERN_VOID (GetProgramParameterfvNV, + (GLenum target, GLuint index, GLenum pname, GLfloat * params), + (target, index, pname, params)) + +DEFUN_EXTERN_VOID (GetProgramivNV, + (GLuint id, GLenum pname, GLint * params), + (id, pname, params)) + +DEFUN_EXTERN_VOID (GetProgramStringNV, + (GLuint id, GLenum pname, GLubyte * program), + (id, pname, program)) + +DEFUN_EXTERN_VOID (GetTrackMatrixivNV, + (GLenum target, GLuint address, GLenum pname, GLint * params), + (target, address, pname, params)) + +DEFUN_LOCAL_VOID (GetVertexAttribdvNV, + (void *rend, GLuint index, GLenum pname, GLdouble * params), + (index, pname, params)) + +DEFUN_ALIAS_VOID (GetVertexAttribdvNV, GetVertexAttribdvARB, + (GLuint index, GLenum pname, GLdouble * params), + (index, pname, params)) + +DEFUN_LOCAL_VOID (GetVertexAttribfvNV, + (void *rend, GLuint index, GLenum pname, GLfloat * params), + (index, pname, params)) + +DEFUN_ALIAS_VOID (GetVertexAttribfvNV, GetVertexAttribfvARB, + (GLuint index, GLenum pname, GLfloat * params), + (index, pname, params)) + +DEFUN_LOCAL_VOID (GetVertexAttribivNV, + (void *rend, GLuint index, GLenum pname, GLint * params), + (index, pname, params)) + +DEFUN_ALIAS_VOID (GetVertexAttribivNV, GetVertexAttribivNV, + (GLuint index, GLenum pname, GLint * params), + (index, pname, params)) + +DEFUN_LOCAL_VOID (GetVertexAttribPointervNV, + (void *rend, GLuint index, GLenum pname, GLvoid ** pointer), + (index, pname, pointer)) + +DEFUN_ALIAS_VOID (GetVertexAttribPointervNV, GetVertexAttribPointervARB, + (GLuint index, GLenum pname, GLvoid ** pointer), + (index, pname, pointer)) + +DEFUN_LOCAL (GLboolean, IsProgramNV, + (void *rend, GLuint id), + (id)) + +DEFUN_ALIAS (GLboolean, IsProgramNV, IsProgramARB, + (GLuint id), + (id)) + +DEFUN_EXTERN_VOID (LoadProgramNV, + (GLenum target, GLuint id, GLsizei len, const GLubyte * program), + (target, id, len, program)) + +DEFUN_EXTERN_VOID (ProgramParameter4dNV, + (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w), + (target, index, x, y, z, w)) + +DEFUN_EXTERN_VOID (ProgramParameter4dvNV, + (GLenum target, GLuint index, const GLdouble * params), + (target, index, params)) + +DEFUN_EXTERN_VOID (ProgramParameter4fNV, + (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w), + (target, index, x, y, z, w)) + +DEFUN_EXTERN_VOID (ProgramParameter4fvNV, + (GLenum target, GLuint index, const GLfloat * params), + (target, index, params)) + +DEFUN_EXTERN_VOID (ProgramParameters4dvNV, + (GLenum target, GLuint index, GLuint num, const GLdouble * params), + (target, index, num, params)) + +DEFUN_EXTERN_VOID (ProgramParameters4fvNV, + (GLenum target, GLuint index, GLuint num, const GLfloat * params), + (target, index, num, params)) + +DEFUN_EXTERN_VOID (RequestResidentProgramsNV, + (GLsizei n, const GLuint * ids), + (n, ids)) + +DEFUN_EXTERN_VOID (TrackMatrixNV, + (GLenum target, GLuint address, GLenum matrix, GLenum transform), + (target, address, matrix, transform)) + +DEFUN_EXTERN_VOID (VertexAttribPointerNV, + (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid * pointer), + (index, size, type, stride, pointer)) + +DEFUN_LOCAL_VOID (VertexAttrib1dNV, + (void *rend, GLuint index, GLdouble x), + (index, x)) + +DEFUN_ALIAS_VOID (VertexAttrib1dNV, VertexAttrib1dARB, + (GLuint index, GLdouble x), + (index, x)) + +DEFUN_LOCAL_VOID (VertexAttrib1dvNV, + (void *rend, GLuint index, const GLdouble * v), + (index, v)) + +DEFUN_ALIAS_VOID (VertexAttrib1dvNV, VertexAttrib1dvARB, + (GLuint index, const GLdouble * v), + (index, v)) + +DEFUN_LOCAL_VOID (VertexAttrib1fNV, + (void *rend, GLuint index, GLfloat x), + (index, x)) + +DEFUN_ALIAS_VOID (VertexAttrib1fNV, VertexAttrib1fARB, + (GLuint index, GLfloat x), + (index, x)) + +DEFUN_LOCAL_VOID (VertexAttrib1fvNV, + (void *rend, GLuint index, const GLfloat * v), + (index, v)) + +DEFUN_ALIAS_VOID (VertexAttrib1fvNV, VertexAttrib1fvARB, + (GLuint index, const GLfloat * v), + (index, v)) + +DEFUN_LOCAL_VOID (VertexAttrib1sNV, + (void *rend, GLuint index, GLshort x), + (index, x)) + +DEFUN_ALIAS_VOID (VertexAttrib1sNV, VertexAttrib1sARB, + (GLuint index, GLshort x), + (index, x)) + +DEFUN_LOCAL_VOID (VertexAttrib1svNV, + (void *rend, GLuint index, const GLshort * v), + (index, v)) + +DEFUN_ALIAS_VOID (VertexAttrib1svNV, VertexAttrib1svARB, + (GLuint index, const GLshort * v), + (index, v)) + +DEFUN_LOCAL_VOID (VertexAttrib2dNV, + (void *rend, GLuint index, GLdouble x, GLdouble y), + (index, x, y)) + +DEFUN_ALIAS_VOID (VertexAttrib2dNV, VertexAttrib2dARB, + (GLuint index, GLdouble x, GLdouble y), + (index, x, y)) + +DEFUN_LOCAL_VOID (VertexAttrib2dvNV, + (void *rend, GLuint index, const GLdouble * v), + (index, v)) + +DEFUN_ALIAS_VOID (VertexAttrib2dvNV, VertexAttrib2dvARB, + (GLuint index, const GLdouble * v), + (index, v)) + +DEFUN_LOCAL_VOID (VertexAttrib2fNV, + (void *rend, GLuint index, GLfloat x, GLfloat y), + (index, x, y)) + +DEFUN_ALIAS_VOID (VertexAttrib2fNV, VertexAttrib2fARB, + (GLuint index, GLfloat x, GLfloat y), + (index, x, y)) + +DEFUN_LOCAL_VOID (VertexAttrib2fvNV, + (void *rend, GLuint index, const GLfloat * v), + (index, v)) + +DEFUN_ALIAS_VOID (VertexAttrib2fvNV, VertexAttrib2fvARB, + (GLuint index, const GLfloat * v), + (index, v)) + +DEFUN_LOCAL_VOID (VertexAttrib2sNV, + (void *rend, GLuint index, GLshort x, GLshort y), + (index, x, y)) + +DEFUN_ALIAS_VOID (VertexAttrib2sNV, VertexAttrib2sARB, + (GLuint index, GLshort x, GLshort y), + (index, x, y)) + +DEFUN_LOCAL_VOID (VertexAttrib2svNV, + (void *rend, GLuint index, const GLshort * v), + (index, v)) + +DEFUN_ALIAS_VOID (VertexAttrib2svNV, VertexAttrib2svARB, + (GLuint index, const GLshort * v), + (index, v)) + +DEFUN_LOCAL_VOID (VertexAttrib3dNV, + (void *rend, GLuint index, GLdouble x, GLdouble y, GLdouble z), + (index, x, y, z)) + +DEFUN_ALIAS_VOID (VertexAttrib3dNV, VertexAttrib3dARB, + (GLuint index, GLdouble x, GLdouble y, GLdouble z), + (index, x, y, z)) + +DEFUN_LOCAL_VOID (VertexAttrib3dvNV, + (void *rend, GLuint index, const GLdouble * v), + (index, v)) + +DEFUN_ALIAS_VOID (VertexAttrib3dvNV, VertexAttrib3dvARB, + (GLuint index, const GLdouble * v), + (index, v)) + +DEFUN_LOCAL_VOID (VertexAttrib3fNV, + (void *rend, GLuint index, GLfloat x, GLfloat y, GLfloat z), + (index, x, y, z)) + +DEFUN_ALIAS_VOID (VertexAttrib3fNV, VertexAttrib3fARB, + (GLuint index, GLfloat x, GLfloat y, GLfloat z), + (index, x, y, z)) + +DEFUN_LOCAL_VOID (VertexAttrib3fvNV, + (void *rend, GLuint index, const GLfloat * v), + (index, v)) + +DEFUN_ALIAS_VOID (VertexAttrib3fvNV, VertexAttrib3fvARB, + (GLuint index, const GLfloat * v), + (index, v)) + +DEFUN_LOCAL_VOID (VertexAttrib3sNV, + (void *rend, GLuint index, GLshort x, GLshort y, GLshort z), + (index, x, y, z)) + +DEFUN_ALIAS_VOID (VertexAttrib3sNV, VertexAttrib3sARB, + (GLuint index, GLshort x, GLshort y, GLshort z), + (index, x, y, z)) + +DEFUN_LOCAL_VOID (VertexAttrib3svNV, + (void *rend, GLuint index, const GLshort * v), + (index, v)) + +DEFUN_ALIAS_VOID (VertexAttrib3svNV, VertexAttrib3svARB, + (GLuint index, const GLshort * v), + (index, v)) + +DEFUN_LOCAL_VOID (VertexAttrib4dNV, + (void *rend, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w), + (index, x, y, z, w)) + +DEFUN_ALIAS_VOID (VertexAttrib4dNV, VertexAttrib4dARB, + (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w), + (index, x, y, z, w)) + +DEFUN_LOCAL_VOID (VertexAttrib4dvNV, + (void *rend, GLuint index, const GLdouble * v), + (index, v)) + +DEFUN_ALIAS_VOID (VertexAttrib4dvNV, VertexAttrib4dvARB, + (GLuint index, const GLdouble * v), + (index, v)) + +DEFUN_LOCAL_VOID (VertexAttrib4fNV, + (void *rend, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w), + (index, x, y, z, w)) + +DEFUN_ALIAS_VOID (VertexAttrib4fNV, VertexAttrib4fARB, + (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w), + (index, x, y, z, w)) + +DEFUN_LOCAL_VOID (VertexAttrib4fvNV, + (void *rend, GLuint index, const GLfloat * v), + (index, v)) + +DEFUN_ALIAS_VOID (VertexAttrib4fvNV, VertexAttrib4fvARB, + (GLuint index, const GLfloat * v), + (index, v)) + +DEFUN_LOCAL_VOID (VertexAttrib4sNV, + (void *rend, GLuint index, GLshort x, GLshort y, GLshort z, GLshort w), + (index, x, y, z, w)) + +DEFUN_ALIAS_VOID (VertexAttrib4sNV, VertexAttrib4sARB, + (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w), + (index, x, y, z, w)) + +DEFUN_LOCAL_VOID (VertexAttrib4svNV, + (void *rend, GLuint index, const GLshort * v), + (index, v)) + +DEFUN_ALIAS_VOID (VertexAttrib4svNV, VertexAttrib4svARB, + (GLuint index, const GLshort * v), + (index, v)) + +DEFUN_LOCAL_VOID (VertexAttrib4ubNV, + (void *rend, GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w), + (index, x, y, z, w)) + +DEFUN_ALIAS_VOID (VertexAttrib4ubNV, VertexAttrib4NubARB, + (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w), + (index, x, y, z, w)) + +DEFUN_LOCAL_VOID (VertexAttrib4ubvNV, + (void *rend, GLuint index, const GLubyte * v), + (index, v)) + +DEFUN_ALIAS_VOID (VertexAttrib4ubvNV, VertexAttrib4ubvARB, + (GLuint index, const GLubyte * v), + (index, v)) + +DEFUN_EXTERN_VOID (VertexAttribs1dvNV, + (GLuint index, GLsizei n, const GLdouble * v), + (index, n, v)) + +DEFUN_EXTERN_VOID (VertexAttribs1fvNV, + (GLuint index, GLsizei n, const GLfloat * v), + (index, n, v)) + +DEFUN_EXTERN_VOID (VertexAttribs1svNV, + (GLuint index, GLsizei n, const GLshort * v), + (index, n, v)) + +DEFUN_EXTERN_VOID (VertexAttribs2dvNV, + (GLuint index, GLsizei n, const GLdouble * v), + (index, n, v)) + +DEFUN_EXTERN_VOID (VertexAttribs2fvNV, + (GLuint index, GLsizei n, const GLfloat * v), + (index, n, v)) + +DEFUN_EXTERN_VOID (VertexAttribs2svNV, + (GLuint index, GLsizei n, const GLshort * v), + (index, n, v)) + +DEFUN_EXTERN_VOID (VertexAttribs3dvNV, + (GLuint index, GLsizei n, const GLdouble * v), + (index, n, v)) + +DEFUN_EXTERN_VOID (VertexAttribs3fvNV, + (GLuint index, GLsizei n, const GLfloat * v), + (index, n, v)) + +DEFUN_EXTERN_VOID (VertexAttribs3svNV, + (GLuint index, GLsizei n, const GLshort * v), + (index, n, v)) + +DEFUN_EXTERN_VOID (VertexAttribs4dvNV, + (GLuint index, GLsizei n, const GLdouble * v), + (index, n, v)) + +DEFUN_EXTERN_VOID (VertexAttribs4fvNV, + (GLuint index, GLsizei n, const GLfloat * v), + (index, n, v)) + +DEFUN_EXTERN_VOID (VertexAttribs4svNV, + (GLuint index, GLsizei n, const GLshort * v), + (index, n, v)) + +DEFUN_EXTERN_VOID (VertexAttribs4ubvNV, + (GLuint index, GLsizei n, const GLubyte * v), + (index, n, v)) + +DEFUN_LOCAL_VOID (PointParameteriNV, + (void *rend, GLenum pname, GLint params), + (pname, params)) + +DEFUN_LOCAL_VOID (PointParameterivNV, + (void *rend, GLenum pname, const GLint * params), + (pname, params)) + +DEFUN_LOCAL_VOID (MultiDrawArraysEXT, + (void *rend, GLenum mode, GLint * first, GLsizei * count, GLsizei primcount), + (mode, first, count, primcount)) + +DEFUN_LOCAL_VOID (MultiDrawElementsEXT, + (void *rend, GLenum mode, const GLsizei * count, GLenum type, const GLvoid ** indices, GLsizei primcount), + (mode, count, type, indices, primcount)) + +DEFUN_LOCAL_VOID (ActiveStencilFaceEXT, + (void *rend, GLenum face), + (face)) + +DEFUN_EXTERN_VOID (DeleteFencesNV, + (GLsizei n, const GLuint * fences), + (n, fences)) + +DEFUN_EXTERN_VOID (GenFencesNV, + (GLsizei n, GLuint * fences), + (n, fences)) + +DEFUN_EXTERN (GLboolean, IsFenceNV, + (GLuint fence), + (fence)) + +DEFUN_EXTERN (GLboolean, TestFenceNV, + (GLuint fence), + (fence)) + +DEFUN_EXTERN_VOID (GetFenceivNV, + (GLuint fence, GLenum pname, GLint * params), + (fence, pname, params)) + +DEFUN_EXTERN_VOID (FinishFenceNV, + (GLuint fence), + (fence)) + +DEFUN_EXTERN_VOID (SetFenceNV, + (GLuint fence, GLenum condition), + (fence, condition)) + +DEFUN_LOCAL_VOID (VertexAttrib4bvARB, + (void *rend, GLuint index, const GLbyte * v), + (index, v)) + +DEFUN_LOCAL_VOID (VertexAttrib4ivARB, + (void *rend, GLuint index, const GLint * v), + (index, v)) + +DEFUN_LOCAL_VOID (VertexAttrib4ubvARB, + (void *rend, GLuint index, const GLubyte * v), + (index, v)) + +DEFUN_LOCAL_VOID (VertexAttrib4usvARB, + (void *rend, GLuint index, const GLushort * v), + (index, v)) + +DEFUN_LOCAL_VOID (VertexAttrib4uivARB, + (void *rend, GLuint index, const GLuint * v), + (index, v)) + +DEFUN_LOCAL_VOID (VertexAttrib4NbvARB, + (void *rend, GLuint index, const GLbyte * v), + (index, v)) + +DEFUN_LOCAL_VOID (VertexAttrib4NsvARB, + (void *rend, GLuint index, const GLshort * v), + (index, v)) + +DEFUN_LOCAL_VOID (VertexAttrib4NivARB, + (void *rend, GLuint index, const GLint * v), + (index, v)) + +DEFUN_LOCAL_VOID (VertexAttrib4NusvARB, + (void *rend, GLuint index, const GLushort * v), + (index, v)) + +DEFUN_LOCAL_VOID (VertexAttrib4NuivARB, + (void *rend, GLuint index, const GLuint * v), + (index, v)) + +DEFUN_LOCAL_VOID (VertexAttribPointerARB, + (void *rend, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid * pointer), + (index, size, type, normalized, stride, pointer)) + +DEFUN_LOCAL_VOID (EnableVertexAttribArrayARB, + (void *rend, GLuint index), + (index)) + +DEFUN_LOCAL_VOID (DisableVertexAttribArrayARB, + (void *rend, GLuint index), + (index)) + +DEFUN_LOCAL_VOID (ProgramStringARB, + (void *rend, GLenum target, GLenum format, GLsizei len, const GLvoid * string), + (target, format, len, string)) + +DEFUN_LOCAL_VOID (ProgramEnvParameter4dARB, + (void *rend, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w), + (target, index, x, y, z, w)) + +DEFUN_LOCAL_VOID (ProgramEnvParameter4dvARB, + (void *rend, GLenum target, GLuint index, const GLdouble * params), + (target, index, params)) + +DEFUN_LOCAL_VOID (ProgramEnvParameter4fARB, + (void *rend, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w), + (target, index, x, y, z, w)) + +DEFUN_LOCAL_VOID (ProgramEnvParameter4fvARB, + (void *rend, GLenum target, GLuint index, const GLfloat * params), + (target, index, params)) + +DEFUN_LOCAL_VOID (ProgramLocalParameter4dARB, + (void *rend, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w), + (target, index, x, y, z, w)) + +DEFUN_LOCAL_VOID (ProgramLocalParameter4dvARB, + (void *rend, GLenum target, GLuint index, const GLdouble * params), + (target, index, params)) + +DEFUN_LOCAL_VOID (ProgramLocalParameter4fARB, + (void *rend, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w), + (target, index, x, y, z, w)) + +DEFUN_LOCAL_VOID (ProgramLocalParameter4fvARB, + (void *rend, GLenum target, GLuint index, const GLfloat * params), + (target, index, params)) + +DEFUN_LOCAL_VOID (GetProgramEnvParameterdvARB, + (void *rend, GLenum target, GLuint index, GLdouble * params), + (target, index, params)) + +DEFUN_LOCAL_VOID (GetProgramEnvParameterfvARB, + (void *rend, GLenum target, GLuint index, GLfloat * params), + (target, index, params)) + +DEFUN_LOCAL_VOID (GetProgramLocalParameterdvARB, + (void *rend, GLenum target, GLuint index, GLdouble * params), + (target, index, params)) + +DEFUN_LOCAL_VOID (GetProgramLocalParameterfvARB, + (void *rend, GLenum target, GLuint index, GLfloat * params), + (target, index, params)) + +DEFUN_LOCAL_VOID (GetProgramivARB, + (void *rend, GLenum target, GLenum pname, GLint * params), + (target, pname, params)) + +DEFUN_LOCAL_VOID (GetProgramStringARB, + (void *rend, GLenum target, GLenum pname, GLvoid * string), + (target, pname, string)) + +DEFUN_EXTERN_VOID (ProgramNamedParameter4fNV, + (GLuint id, GLsizei len, const GLubyte * name, GLfloat x, GLfloat y, GLfloat z, GLfloat w), + (id, len, name, x, y, z, w)) + +DEFUN_EXTERN_VOID (ProgramNamedParameter4dNV, + (GLuint id, GLsizei len, const GLubyte * name, GLdouble x, GLdouble y, GLdouble z, GLdouble w), + (id, len, name, x, y, z, w)) + +DEFUN_EXTERN_VOID (ProgramNamedParameter4fvNV, + (GLuint id, GLsizei len, const GLubyte * name, const GLfloat * v), + (id, len, name, v)) + +DEFUN_EXTERN_VOID (ProgramNamedParameter4dvNV, + (GLuint id, GLsizei len, const GLubyte * name, const GLdouble * v), + (id, len, name, v)) + +DEFUN_EXTERN_VOID (GetProgramNamedParameterfvNV, + (GLuint id, GLsizei len, const GLubyte * name, GLfloat * params), + (id, len, name, params)) + +DEFUN_EXTERN_VOID (GetProgramNamedParameterdvNV, + (GLuint id, GLsizei len, const GLubyte * name, GLdouble * params), + (id, len, name, params)) + +#if OSVERSION < 704 /* Mac OS X 10.3.4 */ + +DEFUN_EXTERN_VOID (BindBufferARB, + (GLenum target, GLuint buffer), + (target, buffer)) + +DEFUN_EXTERN_VOID (BufferDataARB, + (GLenum target, GLsizeiptrARB size, const GLvoid * data, GLenum usage), + (target, size, data, usage)) + +DEFUN_EXTERN_VOID (BufferSubDataARB, + (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid * data), + (target, offset, size, data)) + +DEFUN_EXTERN_VOID (DeleteBuffersARB, + (GLsizei n, const GLuint * buffer), + (n, buffer)) + +DEFUN_EXTERN_VOID (GenBuffersARB, + (GLsizei n, GLuint * buffer), + (n, buffer)) + +DEFUN_EXTERN_VOID (GetBufferParameterivARB, + (GLenum target, GLenum pname, GLint * params), + (target, pname, params)) + +DEFUN_EXTERN_VOID (GetBufferPointervARB, + (GLenum target, GLenum pname, GLvoid ** params), + (target, pname, params)) + +DEFUN_EXTERN_VOID (GetBufferSubDataARB, + (GLenum target, GLintptrARB offset, GLsizeiptrARB size, void * data), + (target, offset, size, data)) + +DEFUN_EXTERN (GLboolean, IsBufferARB, + (GLuint buffer), + (buffer)) + +DEFUN_EXTERN (void*, MapBufferARB, + (GLenum target, GLenum access), + (target, access)) + +DEFUN_EXTERN (GLboolean, UnmapBufferARB, + (GLenum target), + (target)) + +DEFUN_EXTERN_VOID (DepthBoundsEXT, + (GLclampd zmin, GLclampd zmax), + (zmin, zmax)) + +#endif /* OSVERSION < 704 */ + +#if OSVERSION < 700 /* Mac OS X 10.3.0 */ + +DEFUN_EXTERN_VOID (GenQueriesARB, + (GLsizei n, GLuint * ids), + (n, ids)) + +DEFUN_EXTERN_VOID (DeleteQueriesARB, + (GLsizei n, const GLuint * ids), + (n, ids)) + +DEFUN_EXTERN (GLboolean, IsQueryARB, + (GLuint id), + (id)) + +DEFUN_EXTERN_VOID (BeginQueryARB, + (GLenum target, GLuint id), + (target, id)) + +DEFUN_EXTERN_VOID (EndQueryARB, + (GLenum target), + (target)) + +DEFUN_EXTERN_VOID (GetQueryivARB, + (GLenum target, GLenum pname, GLint * params), + (target, pname, params)) + +DEFUN_EXTERN_VOID (GetQueryObjectivARB, + (GLuint id, GLenum pname, GLint * params), + (id, pname, params)) + +DEFUN_EXTERN_VOID (GetQueryObjectuivARB, + (GLuint id, GLenum pname, GLuint * params), + (id, pname, params)) + +#endif /* OSVERSION < 700 */ + +DEFUN_EXTERN_VOID (MultiModeDrawArraysIBM, + (const GLenum * mode, const GLint * first, const GLsizei * count, GLsizei primcount, GLint modestride), + (mode, first, count, primcount, modestride)) + +DEFUN_EXTERN_VOID (MultiModeDrawElementsIBM, + (const GLenum * mode, const GLsizei * count, GLenum type, const GLvoid * const * indices, GLsizei primcount, GLint modestride), + (mode, count, type, indices, primcount, modestride)) + +DEFUN_LOCAL_VOID (BlendEquationSeparateEXT, + (void *rend, GLenum modeRGB, GLenum modeA), + (modeRGB, modeA)) + +#if OSVERSION < 704 + +DEFUN_ALIAS_VOID (BlendEquationSeparateEXT, BlendEquationSeparateATI, + (GLenum modeRGB, GLenum modeA), + (modeRGB, modeA)) + +#endif /* OSVERSION < 704 */ + +DEFUN_ALIAS_VOID (ArrayElementEXT, ArrayElement, + (GLint i), + (i)) + +DEFUN_ALIAS_VOID (BindTextureEXT, BindTexture, + (GLenum target, GLuint texture), + (target, texture)) + +DEFUN_ALIAS_VOID (BlendFuncSeparateINGR, BlendFuncSeparateEXT, + (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha), + (sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha)) + +DEFUN_ALIAS_VOID (ColorTableParameterfvSGI, ColorTableParameterfv, + (GLenum target, GLenum pname, const GLfloat * params), + (target, pname, params)) + +DEFUN_ALIAS_VOID (ColorTableParameterivSGI, ColorTableParameteriv, + (GLenum target, GLenum pname, const GLint * params), + (target, pname, params)) + +DEFUN_ALIAS_VOID (ColorTableSGI, ColorTable, + (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid * table), + (target, internalformat, width, format, type, table)) + +DEFUN_ALIAS_VOID (ConvolutionFilter1DEXT, ConvolutionFilter1D, + (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid * image), + (target, internalformat, width, format, type, image)) + +DEFUN_ALIAS_VOID (ConvolutionFilter2DEXT, ConvolutionFilter2D, + (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * image), + (target, internalformat, width, height, format, type, image)) + +DEFUN_ALIAS_VOID (ConvolutionParameterfEXT, ConvolutionParameterf, + (GLenum target, GLenum pname, GLfloat params), + (target, pname, params)) + +DEFUN_ALIAS_VOID (ConvolutionParameterfvEXT, ConvolutionParameterfv, + (GLenum target, GLenum pname, const GLfloat * params), + (target, pname, params)) + +DEFUN_ALIAS_VOID (ConvolutionParameteriEXT, ConvolutionParameteri, + (GLenum target, GLenum pname, GLint params), + (target, pname, params)) + +DEFUN_ALIAS_VOID (ConvolutionParameterivEXT, ConvolutionParameteriv, + (GLenum target, GLenum pname, const GLint * params), + (target, pname, params)) + +DEFUN_ALIAS_VOID (CopyColorSubTableEXT, CopyColorSubTable, + (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width), + (target, start, x, y, width)) + +DEFUN_ALIAS_VOID (CopyColorTableSGI, CopyColorTable, + (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width), + (target, internalformat, x, y, width)) + +DEFUN_ALIAS_VOID (CopyConvolutionFilter1DEXT, CopyConvolutionFilter1D, + (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width), + (target, internalformat, x, y, width)) + +DEFUN_ALIAS_VOID (CopyConvolutionFilter2DEXT, CopyConvolutionFilter2D, + (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height), + (target, internalformat, x, y, width, height)) + +DEFUN_ALIAS_VOID (CopyTexImage1DEXT, CopyTexImage1D, + (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border), + (target, level, internalformat, x, y, width, border)) + +DEFUN_ALIAS_VOID (CopyTexImage2DEXT, CopyTexImage2D, + (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border), + (target, level, internalformat, x, y, width, height, border)) + +DEFUN_ALIAS_VOID (CopyTexSubImage1DEXT, CopyTexSubImage1D, + (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width), + (target, level, xoffset, x, y, width)) + +DEFUN_ALIAS_VOID (CopyTexSubImage2DEXT, CopyTexSubImage2D, + (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height), + (target, level, xoffset, yoffset, x, y, width, height)) + +DEFUN_ALIAS_VOID (CopyTexSubImage3DEXT, CopyTexSubImage3D, + (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height), + (target, level, xoffset, yoffset, zoffset, x, y, width, height)) + +DEFUN_ALIAS_VOID (DeleteTexturesEXT, DeleteTextures, + (GLsizei n, const GLuint *textures), + (n, textures)) + +DEFUN_ALIAS_VOID (DrawArraysEXT, DrawArrays, + (GLenum mode, GLint first, GLsizei count), + (mode, first, count)) + +DEFUN_ALIAS_VOID (GetPointervEXT, GetPointerv, + (GLenum pname, GLvoid * * params), + (pname, params)) + +DEFUN_ALIAS_VOID (HistogramEXT, Histogram, + (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink), + (target, width, internalformat, sink)) + +DEFUN_ALIAS_VOID (MinmaxEXT, Minmax, + (GLenum target, GLenum internalformat, GLboolean sink), + (target, internalformat, sink)) + +DEFUN_ALIAS_VOID (PointParameterfSGIS, PointParameterf, + (GLenum pname, GLfloat param), + (pname, param)) + +DEFUN_ALIAS_VOID (PointParameterfvSGIS, PointParameterfv, + (GLenum pname, const GLfloat * params), + (pname, params)) + +DEFUN_ALIAS_VOID (PointParameteri, PointParameteriNV, + (GLenum pname, GLint params), + (pname, params)) + +DEFUN_ALIAS_VOID (PointParameteriv, PointParameterivNV, + (GLenum pname, const GLint * params), + (pname, params)) + +DEFUN_ALIAS_VOID (PrioritizeTexturesEXT, PrioritizeTextures, + (GLsizei n, const GLenum * textures, const GLclampf * priorities), + (n, textures, priorities)) + +DEFUN_ALIAS_VOID (ResetHistogramEXT, ResetHistogram, + (GLenum target), + (target)) + +DEFUN_ALIAS_VOID (ResetMinmaxEXT, ResetMinmax, + (GLenum target), + (target)) + +DEFUN_ALIAS_VOID (SampleMaskEXT, SampleMaskSGIS, + (GLclampf value, GLboolean invert), + (value, invert)) + +DEFUN_ALIAS_VOID (SamplePatternEXT, SamplePatternSGIS, + (GLenum pattern), + (pattern)) + +DEFUN_ALIAS_VOID (SeparableFilter2DEXT, SeparableFilter2D, + (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * row, const GLvoid * column), + (target, internalformat, width, height, format, type, row, column)) + +DEFUN_ALIAS_VOID (TexImage3DEXT, TexImage3D, + (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid * pixels), + (target, level, internalformat, width, height, depth, border, format, type, pixels)) + +DEFUN_ALIAS_VOID (TexSubImage1DEXT, TexSubImage1D, + (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid * pixels), + (target, level, xoffset, width, format, type, pixels)) + +DEFUN_ALIAS_VOID (TexSubImage2DEXT, TexSubImage2D, + (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * pixels), + (target, level, xoffset, yoffset, width, height, format, type, pixels)) + +DEFUN_ALIAS_VOID (TexSubImage3DEXT, TexSubImage3D, + (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid * pixels), + (target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels)) + +#if OSVERSION < 704 + +DEFUN_ALIAS_VOID (BindBuffer, BindBufferARB, + (GLenum target, GLuint buffer), + (target, buffer)) + +DEFUN_ALIAS_VOID (BufferData, BufferDataARB, + (GLenum target, GLsizeiptrARB size, const GLvoid * data, GLenum usage), + (target, size, data, usage)) + +DEFUN_ALIAS_VOID (BufferSubData, BufferSubDataARB, + (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid * data), + (target, offset, size, data)) + +DEFUN_ALIAS_VOID (DeleteBuffers, DeleteBuffersARB, + (GLsizei n, const GLuint * buffer), + (n, buffer)) + +DEFUN_ALIAS_VOID (GenBuffers, GenBuffersARB, + (GLsizei n, GLuint * buffer), + (n, buffer)) + +DEFUN_ALIAS_VOID (GetBufferParameteriv, GetBufferParameterivARB, + (GLenum target, GLenum pname, GLint * params), + (target, pname, params)) + +DEFUN_ALIAS_VOID (GetBufferPointerv, GetBufferPointervARB, + (GLenum target, GLenum pname, GLvoid ** params), + (target, pname, params)) + +DEFUN_ALIAS_VOID (GetBufferSubData, GetBufferSubDataARB, + (GLenum target, GLintptrARB offset, GLsizeiptrARB size, void * data), + (target, offset, size, data)) + +DEFUN_ALIAS (GLboolean, IsBuffer, IsBufferARB, + (GLuint buffer), + (buffer)) + +DEFUN_ALIAS (void*, MapBuffer, MapBufferARB, + (GLenum target, GLenum access), + (target, access)) + +DEFUN_ALIAS (GLboolean, UnmapBuffer, UnmapBufferARB, + (GLenum target), + (target)) + +#endif /* OSVERSION < 704 */ + +#if OSVERSION < 700 /* Mac OS X 10.3.0 */ + +DEFUN_ALIAS_VOID (GenQueries, GenQueriesARB, + (GLsizei n, GLuint * ids), + (n, ids)) + +DEFUN_ALIAS_VOID (DeleteQueries, DeleteQueriesARB, + (GLsizei n, const GLuint * ids), + (n, ids)) + +DEFUN_ALIAS (GLboolean, IsQuery, IsQueryARB, + (GLuint id), + (id)) + +DEFUN_ALIAS_VOID (BeginQuery, BeginQueryARB, + (GLenum target, GLuint id), + (target, id)) + +DEFUN_ALIAS_VOID (EndQuery, EndQueryARB, + (GLenum target), + (target)) + +DEFUN_ALIAS_VOID (GetQueryiv, GetQueryivARB, + (GLenum target, GLenum pname, GLint * params), + (target, pname, params)) + +DEFUN_ALIAS_VOID (GetQueryObjectiv, GetQueryObjectivARB, + (GLuint id, GLenum pname, GLint * params), + (id, pname, params)) + +DEFUN_ALIAS_VOID (GetQueryObjectuiv, GetQueryObjectuivARB, + (GLuint id, GLenum pname, GLuint * params), + (id, pname, params)) + +#endif /* OSVERSION < 700 */ + +#define INDIRECT_DISPATCH_INIT(d,p) \ +do { \ + (d)[0] = (void *) &p ## Accum; \ + (d)[1] = (void *) &p ## AlphaFunc; \ + (d)[2] = (void *) &p ## AreTexturesResident; \ + (d)[3] = (void *) &p ## ArrayElement; \ + (d)[4] = (void *) &p ## Begin; \ + (d)[5] = (void *) &p ## BindTexture; \ + (d)[6] = (void *) &p ## Bitmap; \ + (d)[7] = (void *) &p ## BlendFunc; \ + (d)[8] = (void *) &p ## CallList; \ + (d)[9] = (void *) &p ## CallLists; \ + (d)[10] = (void *) &p ## Clear; \ + (d)[11] = (void *) &p ## ClearAccum; \ + (d)[12] = (void *) &p ## ClearColor; \ + (d)[13] = (void *) &p ## ClearDepth; \ + (d)[14] = (void *) &p ## ClearIndex; \ + (d)[15] = (void *) &p ## ClearStencil; \ + (d)[16] = (void *) &p ## ClipPlane; \ + (d)[17] = (void *) &p ## Color3b; \ + (d)[18] = (void *) &p ## Color3bv; \ + (d)[19] = (void *) &p ## Color3d; \ + (d)[20] = (void *) &p ## Color3dv; \ + (d)[21] = (void *) &p ## Color3f; \ + (d)[22] = (void *) &p ## Color3fv; \ + (d)[23] = (void *) &p ## Color3i; \ + (d)[24] = (void *) &p ## Color3iv; \ + (d)[25] = (void *) &p ## Color3s; \ + (d)[26] = (void *) &p ## Color3sv; \ + (d)[27] = (void *) &p ## Color3ub; \ + (d)[28] = (void *) &p ## Color3ubv; \ + (d)[29] = (void *) &p ## Color3ui; \ + (d)[30] = (void *) &p ## Color3uiv; \ + (d)[31] = (void *) &p ## Color3us; \ + (d)[32] = (void *) &p ## Color3usv; \ + (d)[33] = (void *) &p ## Color4b; \ + (d)[34] = (void *) &p ## Color4bv; \ + (d)[35] = (void *) &p ## Color4d; \ + (d)[36] = (void *) &p ## Color4dv; \ + (d)[37] = (void *) &p ## Color4f; \ + (d)[38] = (void *) &p ## Color4fv; \ + (d)[39] = (void *) &p ## Color4i; \ + (d)[40] = (void *) &p ## Color4iv; \ + (d)[41] = (void *) &p ## Color4s; \ + (d)[42] = (void *) &p ## Color4sv; \ + (d)[43] = (void *) &p ## Color4ub; \ + (d)[44] = (void *) &p ## Color4ubv; \ + (d)[45] = (void *) &p ## Color4ui; \ + (d)[46] = (void *) &p ## Color4uiv; \ + (d)[47] = (void *) &p ## Color4us; \ + (d)[48] = (void *) &p ## Color4usv; \ + (d)[49] = (void *) &p ## ColorMask; \ + (d)[50] = (void *) &p ## ColorMaterial; \ + (d)[51] = (void *) &p ## ColorPointer; \ + (d)[52] = (void *) &p ## CopyPixels; \ + (d)[53] = (void *) &p ## CopyTexImage1D; \ + (d)[54] = (void *) &p ## CopyTexImage2D; \ + (d)[55] = (void *) &p ## CopyTexSubImage1D; \ + (d)[56] = (void *) &p ## CopyTexSubImage2D; \ + (d)[57] = (void *) &p ## CullFace; \ + (d)[58] = (void *) &p ## DeleteLists; \ + (d)[59] = (void *) &p ## DeleteTextures; \ + (d)[60] = (void *) &p ## DepthFunc; \ + (d)[61] = (void *) &p ## DepthMask; \ + (d)[62] = (void *) &p ## DepthRange; \ + (d)[63] = (void *) &p ## Disable; \ + (d)[64] = (void *) &p ## DisableClientState; \ + (d)[65] = (void *) &p ## DrawArrays; \ + (d)[66] = (void *) &p ## DrawBuffer; \ + (d)[67] = (void *) &p ## DrawElements; \ + (d)[68] = (void *) &p ## DrawPixels; \ + (d)[69] = (void *) &p ## EdgeFlag; \ + (d)[70] = (void *) &p ## EdgeFlagPointer; \ + (d)[71] = (void *) &p ## EdgeFlagv; \ + (d)[72] = (void *) &p ## Enable; \ + (d)[73] = (void *) &p ## EnableClientState; \ + (d)[74] = (void *) &p ## End; \ + (d)[75] = (void *) &p ## EndList; \ + (d)[76] = (void *) &p ## EvalCoord1d; \ + (d)[77] = (void *) &p ## EvalCoord1dv; \ + (d)[78] = (void *) &p ## EvalCoord1f; \ + (d)[79] = (void *) &p ## EvalCoord1fv; \ + (d)[80] = (void *) &p ## EvalCoord2d; \ + (d)[81] = (void *) &p ## EvalCoord2dv; \ + (d)[82] = (void *) &p ## EvalCoord2f; \ + (d)[83] = (void *) &p ## EvalCoord2fv; \ + (d)[84] = (void *) &p ## EvalMesh1; \ + (d)[85] = (void *) &p ## EvalMesh2; \ + (d)[86] = (void *) &p ## EvalPoint1; \ + (d)[87] = (void *) &p ## EvalPoint2; \ + (d)[88] = (void *) &p ## FeedbackBuffer; \ + (d)[89] = (void *) &p ## Finish; \ + (d)[90] = (void *) &p ## Flush; \ + (d)[91] = (void *) &p ## Fogf; \ + (d)[92] = (void *) &p ## Fogfv; \ + (d)[93] = (void *) &p ## Fogi; \ + (d)[94] = (void *) &p ## Fogiv; \ + (d)[95] = (void *) &p ## FrontFace; \ + (d)[96] = (void *) &p ## Frustum; \ + (d)[97] = (void *) &p ## GenLists; \ + (d)[98] = (void *) &p ## GenTextures; \ + (d)[99] = (void *) &p ## GetBooleanv; \ + (d)[100] = (void *) &p ## GetClipPlane; \ + (d)[101] = (void *) &p ## GetDoublev; \ + (d)[102] = (void *) &p ## GetError; \ + (d)[103] = (void *) &p ## GetFloatv; \ + (d)[104] = (void *) &p ## GetIntegerv; \ + (d)[105] = (void *) &p ## GetLightfv; \ + (d)[106] = (void *) &p ## GetLightiv; \ + (d)[107] = (void *) &p ## GetMapdv; \ + (d)[108] = (void *) &p ## GetMapfv; \ + (d)[109] = (void *) &p ## GetMapiv; \ + (d)[110] = (void *) &p ## GetMaterialfv; \ + (d)[111] = (void *) &p ## GetMaterialiv; \ + (d)[112] = (void *) &p ## GetPixelMapfv; \ + (d)[113] = (void *) &p ## GetPixelMapuiv; \ + (d)[114] = (void *) &p ## GetPixelMapusv; \ + (d)[115] = (void *) &p ## GetPointerv; \ + (d)[116] = (void *) &p ## GetPolygonStipple; \ + (d)[117] = (void *) &p ## GetString; \ + (d)[118] = (void *) &p ## GetTexEnvfv; \ + (d)[119] = (void *) &p ## GetTexEnviv; \ + (d)[120] = (void *) &p ## GetTexGendv; \ + (d)[121] = (void *) &p ## GetTexGenfv; \ + (d)[122] = (void *) &p ## GetTexGeniv; \ + (d)[123] = (void *) &p ## GetTexImage; \ + (d)[124] = (void *) &p ## GetTexLevelParameterfv; \ + (d)[125] = (void *) &p ## GetTexLevelParameteriv; \ + (d)[126] = (void *) &p ## GetTexParameterfv; \ + (d)[127] = (void *) &p ## GetTexParameteriv; \ + (d)[128] = (void *) &p ## Hint; \ + (d)[129] = (void *) &p ## IndexMask; \ + (d)[130] = (void *) &p ## IndexPointer; \ + (d)[131] = (void *) &p ## Indexd; \ + (d)[132] = (void *) &p ## Indexdv; \ + (d)[133] = (void *) &p ## Indexf; \ + (d)[134] = (void *) &p ## Indexfv; \ + (d)[135] = (void *) &p ## Indexi; \ + (d)[136] = (void *) &p ## Indexiv; \ + (d)[137] = (void *) &p ## Indexs; \ + (d)[138] = (void *) &p ## Indexsv; \ + (d)[139] = (void *) &p ## Indexub; \ + (d)[140] = (void *) &p ## Indexubv; \ + (d)[141] = (void *) &p ## InitNames; \ + (d)[142] = (void *) &p ## InterleavedArrays; \ + (d)[143] = (void *) &p ## IsEnabled; \ + (d)[144] = (void *) &p ## IsList; \ + (d)[145] = (void *) &p ## IsTexture; \ + (d)[146] = (void *) &p ## LightModelf; \ + (d)[147] = (void *) &p ## LightModelfv; \ + (d)[148] = (void *) &p ## LightModeli; \ + (d)[149] = (void *) &p ## LightModeliv; \ + (d)[150] = (void *) &p ## Lightf; \ + (d)[151] = (void *) &p ## Lightfv; \ + (d)[152] = (void *) &p ## Lighti; \ + (d)[153] = (void *) &p ## Lightiv; \ + (d)[154] = (void *) &p ## LineStipple; \ + (d)[155] = (void *) &p ## LineWidth; \ + (d)[156] = (void *) &p ## ListBase; \ + (d)[157] = (void *) &p ## LoadIdentity; \ + (d)[158] = (void *) &p ## LoadMatrixd; \ + (d)[159] = (void *) &p ## LoadMatrixf; \ + (d)[160] = (void *) &p ## LoadName; \ + (d)[161] = (void *) &p ## LogicOp; \ + (d)[162] = (void *) &p ## Map1d; \ + (d)[163] = (void *) &p ## Map1f; \ + (d)[164] = (void *) &p ## Map2d; \ + (d)[165] = (void *) &p ## Map2f; \ + (d)[166] = (void *) &p ## MapGrid1d; \ + (d)[167] = (void *) &p ## MapGrid1f; \ + (d)[168] = (void *) &p ## MapGrid2d; \ + (d)[169] = (void *) &p ## MapGrid2f; \ + (d)[170] = (void *) &p ## Materialf; \ + (d)[171] = (void *) &p ## Materialfv; \ + (d)[172] = (void *) &p ## Materiali; \ + (d)[173] = (void *) &p ## Materialiv; \ + (d)[174] = (void *) &p ## MatrixMode; \ + (d)[175] = (void *) &p ## MultMatrixd; \ + (d)[176] = (void *) &p ## MultMatrixf; \ + (d)[177] = (void *) &p ## NewList; \ + (d)[178] = (void *) &p ## Normal3b; \ + (d)[179] = (void *) &p ## Normal3bv; \ + (d)[180] = (void *) &p ## Normal3d; \ + (d)[181] = (void *) &p ## Normal3dv; \ + (d)[182] = (void *) &p ## Normal3f; \ + (d)[183] = (void *) &p ## Normal3fv; \ + (d)[184] = (void *) &p ## Normal3i; \ + (d)[185] = (void *) &p ## Normal3iv; \ + (d)[186] = (void *) &p ## Normal3s; \ + (d)[187] = (void *) &p ## Normal3sv; \ + (d)[188] = (void *) &p ## NormalPointer; \ + (d)[189] = (void *) &p ## Ortho; \ + (d)[190] = (void *) &p ## PassThrough; \ + (d)[191] = (void *) &p ## PixelMapfv; \ + (d)[192] = (void *) &p ## PixelMapuiv; \ + (d)[193] = (void *) &p ## PixelMapusv; \ + (d)[194] = (void *) &p ## PixelStoref; \ + (d)[195] = (void *) &p ## PixelStorei; \ + (d)[196] = (void *) &p ## PixelTransferf; \ + (d)[197] = (void *) &p ## PixelTransferi; \ + (d)[198] = (void *) &p ## PixelZoom; \ + (d)[199] = (void *) &p ## PointSize; \ + (d)[200] = (void *) &p ## PolygonMode; \ + (d)[201] = (void *) &p ## PolygonOffset; \ + (d)[202] = (void *) &p ## PolygonStipple; \ + (d)[203] = (void *) &p ## PopAttrib; \ + (d)[204] = (void *) &p ## PopClientAttrib; \ + (d)[205] = (void *) &p ## PopMatrix; \ + (d)[206] = (void *) &p ## PopName; \ + (d)[207] = (void *) &p ## PrioritizeTextures; \ + (d)[208] = (void *) &p ## PushAttrib; \ + (d)[209] = (void *) &p ## PushClientAttrib; \ + (d)[210] = (void *) &p ## PushMatrix; \ + (d)[211] = (void *) &p ## PushName; \ + (d)[212] = (void *) &p ## RasterPos2d; \ + (d)[213] = (void *) &p ## RasterPos2dv; \ + (d)[214] = (void *) &p ## RasterPos2f; \ + (d)[215] = (void *) &p ## RasterPos2fv; \ + (d)[216] = (void *) &p ## RasterPos2i; \ + (d)[217] = (void *) &p ## RasterPos2iv; \ + (d)[218] = (void *) &p ## RasterPos2s; \ + (d)[219] = (void *) &p ## RasterPos2sv; \ + (d)[220] = (void *) &p ## RasterPos3d; \ + (d)[221] = (void *) &p ## RasterPos3dv; \ + (d)[222] = (void *) &p ## RasterPos3f; \ + (d)[223] = (void *) &p ## RasterPos3fv; \ + (d)[224] = (void *) &p ## RasterPos3i; \ + (d)[225] = (void *) &p ## RasterPos3iv; \ + (d)[226] = (void *) &p ## RasterPos3s; \ + (d)[227] = (void *) &p ## RasterPos3sv; \ + (d)[228] = (void *) &p ## RasterPos4d; \ + (d)[229] = (void *) &p ## RasterPos4dv; \ + (d)[230] = (void *) &p ## RasterPos4f; \ + (d)[231] = (void *) &p ## RasterPos4fv; \ + (d)[232] = (void *) &p ## RasterPos4i; \ + (d)[233] = (void *) &p ## RasterPos4iv; \ + (d)[234] = (void *) &p ## RasterPos4s; \ + (d)[235] = (void *) &p ## RasterPos4sv; \ + (d)[236] = (void *) &p ## ReadBuffer; \ + (d)[237] = (void *) &p ## ReadPixels; \ + (d)[238] = (void *) &p ## Rectd; \ + (d)[239] = (void *) &p ## Rectdv; \ + (d)[240] = (void *) &p ## Rectf; \ + (d)[241] = (void *) &p ## Rectfv; \ + (d)[242] = (void *) &p ## Recti; \ + (d)[243] = (void *) &p ## Rectiv; \ + (d)[244] = (void *) &p ## Rects; \ + (d)[245] = (void *) &p ## Rectsv; \ + (d)[246] = (void *) &p ## RenderMode; \ + (d)[247] = (void *) &p ## Rotated; \ + (d)[248] = (void *) &p ## Rotatef; \ + (d)[249] = (void *) &p ## Scaled; \ + (d)[250] = (void *) &p ## Scalef; \ + (d)[251] = (void *) &p ## Scissor; \ + (d)[252] = (void *) &p ## SelectBuffer; \ + (d)[253] = (void *) &p ## ShadeModel; \ + (d)[254] = (void *) &p ## StencilFunc; \ + (d)[255] = (void *) &p ## StencilMask; \ + (d)[256] = (void *) &p ## StencilOp; \ + (d)[257] = (void *) &p ## TexCoord1d; \ + (d)[258] = (void *) &p ## TexCoord1dv; \ + (d)[259] = (void *) &p ## TexCoord1f; \ + (d)[260] = (void *) &p ## TexCoord1fv; \ + (d)[261] = (void *) &p ## TexCoord1i; \ + (d)[262] = (void *) &p ## TexCoord1iv; \ + (d)[263] = (void *) &p ## TexCoord1s; \ + (d)[264] = (void *) &p ## TexCoord1sv; \ + (d)[265] = (void *) &p ## TexCoord2d; \ + (d)[266] = (void *) &p ## TexCoord2dv; \ + (d)[267] = (void *) &p ## TexCoord2f; \ + (d)[268] = (void *) &p ## TexCoord2fv; \ + (d)[269] = (void *) &p ## TexCoord2i; \ + (d)[270] = (void *) &p ## TexCoord2iv; \ + (d)[271] = (void *) &p ## TexCoord2s; \ + (d)[272] = (void *) &p ## TexCoord2sv; \ + (d)[273] = (void *) &p ## TexCoord3d; \ + (d)[274] = (void *) &p ## TexCoord3dv; \ + (d)[275] = (void *) &p ## TexCoord3f; \ + (d)[276] = (void *) &p ## TexCoord3fv; \ + (d)[277] = (void *) &p ## TexCoord3i; \ + (d)[278] = (void *) &p ## TexCoord3iv; \ + (d)[279] = (void *) &p ## TexCoord3s; \ + (d)[280] = (void *) &p ## TexCoord3sv; \ + (d)[281] = (void *) &p ## TexCoord4d; \ + (d)[282] = (void *) &p ## TexCoord4dv; \ + (d)[283] = (void *) &p ## TexCoord4f; \ + (d)[284] = (void *) &p ## TexCoord4fv; \ + (d)[285] = (void *) &p ## TexCoord4i; \ + (d)[286] = (void *) &p ## TexCoord4iv; \ + (d)[287] = (void *) &p ## TexCoord4s; \ + (d)[288] = (void *) &p ## TexCoord4sv; \ + (d)[289] = (void *) &p ## TexCoordPointer; \ + (d)[290] = (void *) &p ## TexEnvf; \ + (d)[291] = (void *) &p ## TexEnvfv; \ + (d)[292] = (void *) &p ## TexEnvi; \ + (d)[293] = (void *) &p ## TexEnviv; \ + (d)[294] = (void *) &p ## TexGend; \ + (d)[295] = (void *) &p ## TexGendv; \ + (d)[296] = (void *) &p ## TexGenf; \ + (d)[297] = (void *) &p ## TexGenfv; \ + (d)[298] = (void *) &p ## TexGeni; \ + (d)[299] = (void *) &p ## TexGeniv; \ + (d)[300] = (void *) &p ## TexImage1D; \ + (d)[301] = (void *) &p ## TexImage2D; \ + (d)[302] = (void *) &p ## TexParameterf; \ + (d)[303] = (void *) &p ## TexParameterfv; \ + (d)[304] = (void *) &p ## TexParameteri; \ + (d)[305] = (void *) &p ## TexParameteriv; \ + (d)[306] = (void *) &p ## TexSubImage1D; \ + (d)[307] = (void *) &p ## TexSubImage2D; \ + (d)[308] = (void *) &p ## Translated; \ + (d)[309] = (void *) &p ## Translatef; \ + (d)[310] = (void *) &p ## Vertex2d; \ + (d)[311] = (void *) &p ## Vertex2dv; \ + (d)[312] = (void *) &p ## Vertex2f; \ + (d)[313] = (void *) &p ## Vertex2fv; \ + (d)[314] = (void *) &p ## Vertex2i; \ + (d)[315] = (void *) &p ## Vertex2iv; \ + (d)[316] = (void *) &p ## Vertex2s; \ + (d)[317] = (void *) &p ## Vertex2sv; \ + (d)[318] = (void *) &p ## Vertex3d; \ + (d)[319] = (void *) &p ## Vertex3dv; \ + (d)[320] = (void *) &p ## Vertex3f; \ + (d)[321] = (void *) &p ## Vertex3fv; \ + (d)[322] = (void *) &p ## Vertex3i; \ + (d)[323] = (void *) &p ## Vertex3iv; \ + (d)[324] = (void *) &p ## Vertex3s; \ + (d)[325] = (void *) &p ## Vertex3sv; \ + (d)[326] = (void *) &p ## Vertex4d; \ + (d)[327] = (void *) &p ## Vertex4dv; \ + (d)[328] = (void *) &p ## Vertex4f; \ + (d)[329] = (void *) &p ## Vertex4fv; \ + (d)[330] = (void *) &p ## Vertex4i; \ + (d)[331] = (void *) &p ## Vertex4iv; \ + (d)[332] = (void *) &p ## Vertex4s; \ + (d)[333] = (void *) &p ## Vertex4sv; \ + (d)[334] = (void *) &p ## VertexPointer; \ + (d)[335] = (void *) &p ## Viewport; \ + (d)[336] = (void *) &p ## BlendFuncSeparateEXT; \ + (d)[337] = (void *) &p ## BlendColor; \ + (d)[338] = (void *) &p ## BlendEquation; \ + (d)[339] = (void *) &p ## LockArraysEXT; \ + (d)[340] = (void *) &p ## UnlockArraysEXT; \ + (d)[341] = (void *) &p ## ClientActiveTextureARB; \ + (d)[342] = (void *) &p ## ActiveTextureARB; \ + (d)[343] = (void *) &p ## MultiTexCoord1dARB; \ + (d)[344] = (void *) &p ## MultiTexCoord1dvARB; \ + (d)[345] = (void *) &p ## MultiTexCoord1fARB; \ + (d)[346] = (void *) &p ## MultiTexCoord1fvARB; \ + (d)[347] = (void *) &p ## MultiTexCoord1iARB; \ + (d)[348] = (void *) &p ## MultiTexCoord1ivARB; \ + (d)[349] = (void *) &p ## MultiTexCoord1sARB; \ + (d)[350] = (void *) &p ## MultiTexCoord1svARB; \ + (d)[351] = (void *) &p ## MultiTexCoord2dARB; \ + (d)[352] = (void *) &p ## MultiTexCoord2dvARB; \ + (d)[353] = (void *) &p ## MultiTexCoord2fARB; \ + (d)[354] = (void *) &p ## MultiTexCoord2fvARB; \ + (d)[355] = (void *) &p ## MultiTexCoord2iARB; \ + (d)[356] = (void *) &p ## MultiTexCoord2ivARB; \ + (d)[357] = (void *) &p ## MultiTexCoord2sARB; \ + (d)[358] = (void *) &p ## MultiTexCoord2svARB; \ + (d)[359] = (void *) &p ## MultiTexCoord3dARB; \ + (d)[360] = (void *) &p ## MultiTexCoord3dvARB; \ + (d)[361] = (void *) &p ## MultiTexCoord3fARB; \ + (d)[362] = (void *) &p ## MultiTexCoord3fvARB; \ + (d)[363] = (void *) &p ## MultiTexCoord3iARB; \ + (d)[364] = (void *) &p ## MultiTexCoord3ivARB; \ + (d)[365] = (void *) &p ## MultiTexCoord3sARB; \ + (d)[366] = (void *) &p ## MultiTexCoord3svARB; \ + (d)[367] = (void *) &p ## MultiTexCoord4dARB; \ + (d)[368] = (void *) &p ## MultiTexCoord4dvARB; \ + (d)[369] = (void *) &p ## MultiTexCoord4fARB; \ + (d)[370] = (void *) &p ## MultiTexCoord4fvARB; \ + (d)[371] = (void *) &p ## MultiTexCoord4iARB; \ + (d)[372] = (void *) &p ## MultiTexCoord4ivARB; \ + (d)[373] = (void *) &p ## MultiTexCoord4sARB; \ + (d)[374] = (void *) &p ## MultiTexCoord4svARB; \ + (d)[375] = (void *) &p ## LoadTransposeMatrixdARB; \ + (d)[376] = (void *) &p ## LoadTransposeMatrixfARB; \ + (d)[377] = (void *) &p ## MultTransposeMatrixdARB; \ + (d)[378] = (void *) &p ## MultTransposeMatrixfARB; \ + (d)[379] = (void *) &p ## CompressedTexImage3DARB; \ + (d)[380] = (void *) &p ## CompressedTexImage2DARB; \ + (d)[381] = (void *) &p ## CompressedTexImage1DARB; \ + (d)[382] = (void *) &p ## CompressedTexSubImage3DARB; \ + (d)[383] = (void *) &p ## CompressedTexSubImage2DARB; \ + (d)[384] = (void *) &p ## CompressedTexSubImage1DARB; \ + (d)[385] = (void *) &p ## GetCompressedTexImageARB; \ + (d)[386] = (void *) &p ## SecondaryColor3bEXT; \ + (d)[387] = (void *) &p ## SecondaryColor3bvEXT; \ + (d)[388] = (void *) &p ## SecondaryColor3dEXT; \ + (d)[389] = (void *) &p ## SecondaryColor3dvEXT; \ + (d)[390] = (void *) &p ## SecondaryColor3fEXT; \ + (d)[391] = (void *) &p ## SecondaryColor3fvEXT; \ + (d)[392] = (void *) &p ## SecondaryColor3iEXT; \ + (d)[393] = (void *) &p ## SecondaryColor3ivEXT; \ + (d)[394] = (void *) &p ## SecondaryColor3sEXT; \ + (d)[395] = (void *) &p ## SecondaryColor3svEXT; \ + (d)[396] = (void *) &p ## SecondaryColor3ubEXT; \ + (d)[397] = (void *) &p ## SecondaryColor3ubvEXT; \ + (d)[398] = (void *) &p ## SecondaryColor3uiEXT; \ + (d)[399] = (void *) &p ## SecondaryColor3uivEXT; \ + (d)[400] = (void *) &p ## SecondaryColor3usEXT; \ + (d)[401] = (void *) &p ## SecondaryColor3usvEXT; \ + (d)[402] = (void *) &p ## SecondaryColorPointerEXT; \ + (d)[403] = (void *) &p ## VertexArrayRangeNV; \ + (d)[405] = (void *) &p ## DrawRangeElements; \ + (d)[406] = (void *) &p ## ColorTable; \ + (d)[407] = (void *) &p ## ColorTableParameterfv; \ + (d)[408] = (void *) &p ## ColorTableParameteriv; \ + (d)[409] = (void *) &p ## CopyColorTable; \ + (d)[410] = (void *) &p ## GetColorTable; \ + (d)[411] = (void *) &p ## GetColorTableParameterfv; \ + (d)[412] = (void *) &p ## GetColorTableParameteriv; \ + (d)[413] = (void *) &p ## ColorSubTable; \ + (d)[414] = (void *) &p ## CopyColorSubTable; \ + (d)[415] = (void *) &p ## ConvolutionFilter1D; \ + (d)[416] = (void *) &p ## ConvolutionFilter2D; \ + (d)[417] = (void *) &p ## ConvolutionParameterf; \ + (d)[418] = (void *) &p ## ConvolutionParameterfv; \ + (d)[419] = (void *) &p ## ConvolutionParameteri; \ + (d)[420] = (void *) &p ## ConvolutionParameteriv; \ + (d)[421] = (void *) &p ## CopyConvolutionFilter1D; \ + (d)[422] = (void *) &p ## CopyConvolutionFilter2D; \ + (d)[423] = (void *) &p ## GetConvolutionFilter; \ + (d)[424] = (void *) &p ## GetConvolutionParameterfv; \ + (d)[425] = (void *) &p ## GetConvolutionParameteriv; \ + (d)[426] = (void *) &p ## GetSeparableFilter; \ + (d)[427] = (void *) &p ## SeparableFilter2D; \ + (d)[428] = (void *) &p ## GetHistogram; \ + (d)[429] = (void *) &p ## GetHistogramParameterfv; \ + (d)[430] = (void *) &p ## GetHistogramParameteriv; \ + (d)[431] = (void *) &p ## GetMinmax; \ + (d)[432] = (void *) &p ## GetMinmaxParameterfv; \ + (d)[433] = (void *) &p ## GetMinmaxParameteriv; \ + (d)[434] = (void *) &p ## Histogram; \ + (d)[435] = (void *) &p ## Minmax; \ + (d)[436] = (void *) &p ## ResetHistogram; \ + (d)[437] = (void *) &p ## ResetMinmax; \ + (d)[438] = (void *) &p ## TexImage3D; \ + (d)[439] = (void *) &p ## TexSubImage3D; \ + (d)[440] = (void *) &p ## CopyTexSubImage3D; \ + (d)[441] = (void *) &p ## CombinerParameterfvNV; \ + (d)[442] = (void *) &p ## CombinerParameterfNV; \ + (d)[443] = (void *) &p ## CombinerParameterivNV; \ + (d)[444] = (void *) &p ## CombinerParameteriNV; \ + (d)[445] = (void *) &p ## CombinerInputNV; \ + (d)[446] = (void *) &p ## CombinerOutputNV; \ + (d)[447] = (void *) &p ## FinalCombinerInputNV; \ + (d)[448] = (void *) &p ## GetCombinerInputParameterfvNV; \ + (d)[449] = (void *) &p ## GetCombinerInputParameterivNV; \ + (d)[450] = (void *) &p ## GetCombinerOutputParameterfvNV; \ + (d)[451] = (void *) &p ## GetCombinerOutputParameterivNV; \ + (d)[452] = (void *) &p ## GetFinalCombinerInputParameterfvNV; \ + (d)[453] = (void *) &p ## GetFinalCombinerInputParameterivNV; \ + (d)[458] = (void *) &p ## BlendEquationSeparateEXT; \ + (d)[459] = (void *) &p ## SampleCoverageARB; \ + (d)[471] = (void *) &p ## BindProgramNV; \ + (d)[472] = (void *) &p ## DeleteProgramsNV; \ + (d)[473] = (void *) &p ## GenProgramsNV; \ + (d)[474] = (void *) &p ## IsProgramNV; \ + (d)[475] = (void *) &p ## VertexAttrib1sNV; \ + (d)[476] = (void *) &p ## VertexAttrib1fNV; \ + (d)[477] = (void *) &p ## VertexAttrib1dNV; \ + (d)[478] = (void *) &p ## VertexAttrib2sNV; \ + (d)[479] = (void *) &p ## VertexAttrib2fNV; \ + (d)[480] = (void *) &p ## VertexAttrib2dNV; \ + (d)[481] = (void *) &p ## VertexAttrib3sNV; \ + (d)[482] = (void *) &p ## VertexAttrib3fNV; \ + (d)[483] = (void *) &p ## VertexAttrib3dNV; \ + (d)[484] = (void *) &p ## VertexAttrib4sNV; \ + (d)[485] = (void *) &p ## VertexAttrib4fNV; \ + (d)[486] = (void *) &p ## VertexAttrib4dNV; \ + (d)[487] = (void *) &p ## VertexAttrib4ubNV; \ + (d)[488] = (void *) &p ## VertexAttrib1svNV; \ + (d)[489] = (void *) &p ## VertexAttrib1fvNV; \ + (d)[490] = (void *) &p ## VertexAttrib1dvNV; \ + (d)[491] = (void *) &p ## VertexAttrib2svNV; \ + (d)[492] = (void *) &p ## VertexAttrib2fvNV; \ + (d)[493] = (void *) &p ## VertexAttrib2dvNV; \ + (d)[494] = (void *) &p ## VertexAttrib3svNV; \ + (d)[495] = (void *) &p ## VertexAttrib3fvNV; \ + (d)[496] = (void *) &p ## VertexAttrib3dvNV; \ + (d)[497] = (void *) &p ## VertexAttrib4bvARB; \ + (d)[498] = (void *) &p ## VertexAttrib4svNV; \ + (d)[498] = (void *) &p ## VertexAttrib4NsvARB; \ + (d)[499] = (void *) &p ## VertexAttrib4ivARB; \ + (d)[500] = (void *) &p ## VertexAttrib4ubvNV; \ + (d)[500] = (void *) &p ## VertexAttrib4ubvARB; \ + (d)[501] = (void *) &p ## VertexAttrib4usvARB; \ + (d)[502] = (void *) &p ## VertexAttrib4uivARB; \ + (d)[503] = (void *) &p ## VertexAttrib4fvNV; \ + (d)[504] = (void *) &p ## VertexAttrib4dvNV; \ + (d)[505] = (void *) &p ## VertexAttrib4NbvARB; \ + (d)[507] = (void *) &p ## VertexAttrib4NivARB; \ + (d)[509] = (void *) &p ## VertexAttrib4NusvARB; \ + (d)[510] = (void *) &p ## VertexAttrib4NuivARB; \ + (d)[511] = (void *) &p ## VertexAttribPointerARB; \ + (d)[512] = (void *) &p ## EnableVertexAttribArrayARB; \ + (d)[513] = (void *) &p ## DisableVertexAttribArrayARB; \ + (d)[514] = (void *) &p ## GetVertexAttribdvNV; \ + (d)[515] = (void *) &p ## GetVertexAttribfvNV; \ + (d)[516] = (void *) &p ## GetVertexAttribivNV; \ + (d)[517] = (void *) &p ## GetVertexAttribPointervNV; \ + (d)[518] = (void *) &p ## ProgramEnvParameter4dARB; \ + (d)[519] = (void *) &p ## ProgramEnvParameter4dvARB; \ + (d)[520] = (void *) &p ## ProgramEnvParameter4fARB; \ + (d)[521] = (void *) &p ## ProgramEnvParameter4fvARB; \ + (d)[522] = (void *) &p ## ProgramLocalParameter4dARB; \ + (d)[523] = (void *) &p ## ProgramLocalParameter4dvARB; \ + (d)[524] = (void *) &p ## ProgramLocalParameter4fARB; \ + (d)[525] = (void *) &p ## ProgramLocalParameter4fvARB; \ + (d)[526] = (void *) &p ## GetProgramEnvParameterdvARB; \ + (d)[527] = (void *) &p ## GetProgramEnvParameterfvARB; \ + (d)[528] = (void *) &p ## GetProgramLocalParameterdvARB; \ + (d)[529] = (void *) &p ## GetProgramLocalParameterfvARB; \ + (d)[530] = (void *) &p ## ProgramStringARB; \ + (d)[531] = (void *) &p ## GetProgramStringARB; \ + (d)[532] = (void *) &p ## GetProgramivARB; \ + (d)[540] = (void *) &p ## PointParameterfEXT; \ + (d)[541] = (void *) &p ## PointParameterfvEXT; \ + (d)[542] = (void *) &p ## PointParameteriNV; \ + (d)[543] = (void *) &p ## PointParameterivNV; \ + (d)[544] = (void *) &p ## FogCoordfEXT; \ + (d)[545] = (void *) &p ## FogCoordfvEXT; \ + (d)[546] = (void *) &p ## FogCoorddEXT; \ + (d)[547] = (void *) &p ## FogCoorddvEXT; \ + (d)[548] = (void *) &p ## FogCoordPointerEXT; \ + (d)[567] = (void *) &p ## MultiDrawArraysEXT; \ + (d)[568] = (void *) &p ## MultiDrawElementsEXT; \ + (d)[569] = (void *) &p ## WindowPos2dMESA; \ + (d)[570] = (void *) &p ## WindowPos2dvMESA; \ + (d)[571] = (void *) &p ## WindowPos2fMESA; \ + (d)[572] = (void *) &p ## WindowPos2fvMESA; \ + (d)[573] = (void *) &p ## WindowPos2iMESA; \ + (d)[574] = (void *) &p ## WindowPos2ivMESA; \ + (d)[575] = (void *) &p ## WindowPos2sMESA; \ + (d)[576] = (void *) &p ## WindowPos2svMESA; \ + (d)[577] = (void *) &p ## WindowPos3dMESA; \ + (d)[578] = (void *) &p ## WindowPos3dvMESA; \ + (d)[579] = (void *) &p ## WindowPos3fMESA; \ + (d)[580] = (void *) &p ## WindowPos3fvMESA; \ + (d)[581] = (void *) &p ## WindowPos3iMESA; \ + (d)[582] = (void *) &p ## WindowPos3ivMESA; \ + (d)[583] = (void *) &p ## WindowPos3sMESA; \ + (d)[584] = (void *) &p ## WindowPos3svMESA; \ + (d)[585] = (void *) &p ## ActiveStencilFaceEXT; \ +} while (0) diff --git a/nx-X11/lib/GL/apple/dri_driver.c b/nx-X11/lib/GL/apple/dri_driver.c new file mode 100644 index 000000000..ce8b0736a --- /dev/null +++ b/nx-X11/lib/GL/apple/dri_driver.c @@ -0,0 +1,1141 @@ +/* $XFree86: xc/lib/GL/apple/dri_driver.c,v 1.2 2003/10/31 02:22:12 torrey Exp $ */ +/************************************************************************** + +Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. +Copyright (c) 2002 Apple Computer, Inc. +Copyright (c) 2004 Torrey T. Lyons +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"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sub license, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice (including the +next paragraph) shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. +IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +**************************************************************************/ + +/* + * Original Authors: + * Kevin E. Martin <kevin@precisioninsight.com> + * Brian E. Paul <brian@precisioninsight.com> + */ + +/* + * This file follows Mesa's dri_util.c closely. The code in dri_util.c + * gets compiled into each of the DRI 3D drivers. A typical DRI driver, + * is loaded dynamically by libGL, so libGL knows nothing about the + * internal functions here. On Mac OS X the AppleDRI driver code is + * statically linked into libGL, but otherwise it tries to behave like + * a standard DRI driver. + * + * The functions defined here are called from the GL library via function + * pointers in the __DRIdisplayRec, __DRIscreenRec, __DRIcontextRec, + * __DRIdrawableRec structures defined in glxclient.h. Those function + * pointers are initialized by code in this file. The process starts when + * libGL calls the __driCreateScreen() function at the end of this file. + * + * The above-mentioned DRI structures have no dependencies on Mesa. + * Each structure instead has a generic (void *) private pointer that + * points to a private structure. For Mesa drivers, these private + * structures are the __DRIdrawablePrivateRec, __DRIcontextPrivateRec, + * __DRIscreenPrivateRec, and __DRIvisualPrivateRec structures defined + * in dri_mesaint.h. We allocate and attach those structs here in + * this file. + */ + + +#ifdef GLX_DIRECT_RENDERING + +/* These are first to ensure that Apple's GL headers are used. */ +#include <OpenGL/OpenGL.h> +#include <OpenGL/CGLContext.h> + +#include <unistd.h> +#include <X11/Xlibint.h> +#include <X11/extensions/Xext.h> + +#define GLAPIENTRYP * +#include "extutil.h" +#include "glxclient.h" +#include "appledri.h" +#include "dri_driver.h" +#include "x-list.h" +#include "x-hash.h" + +/** + * This is used in a couple of places that call \c driMesaCreateNewDrawable. + */ +static const int empty_attribute_list[1] = { None }; + +/* Context binding */ +static Bool driMesaBindContext(Display *dpy, int scrn, + GLXDrawable draw, GLXContext gc); +static Bool driMesaUnbindContext(Display *dpy, int scrn, + GLXDrawable draw, GLXContext gc, + int will_rebind); + +/* Drawable methods */ +static void *driMesaCreateNewDrawable(__DRInativeDisplay *dpy, + const __GLcontextModes *modes, + __DRIid draw, __DRIdrawable *pdraw, + int renderType, const int *attrs); +static __DRIdrawable *driMesaGetDrawable(__DRInativeDisplay *dpy, + GLXDrawable draw, + void *screenPrivate); +static void driMesaSwapBuffers(__DRInativeDisplay *dpy, void *drawPrivate); +static void driMesaDestroyDrawable(__DRInativeDisplay *dpy, void *drawPrivate); + +/* Context methods */ +static void *driMesaCreateContext(Display *dpy, XVisualInfo *vis, void *shared, + __DRIcontext *pctx); +static void driMesaDestroyContext(__DRInativeDisplay *dpy, int scrn, + void *screenPrivate); + +/* Screen methods */ +static void *driMesaCreateScreen(__DRInativeDisplay *dpy, int scrn, + __DRIscreen *psc, int numConfigs, + __GLXvisualConfig *config); +static void driMesaDestroyScreen(__DRInativeDisplay *dpy, int scrn, + void *screenPrivate); + +static void driMesaCreateSurface(Display *dpy, int scrn, + __DRIdrawablePrivate *pdp); + +static void unwrap_context(__DRIcontextPrivate *pcp); +static void wrap_context(__DRIcontextPrivate *pcp); + +extern const CGLContextObj XAppleDRIGetIndirectContext(void); + +/*****************************************************************/ + +/* Maintain a list of drawables */ + +static inline Bool +__driMesaAddDrawable(x_hash_table *drawHash, __DRIdrawable *pdraw) +{ + __DRIdrawablePrivate *pdp = (__DRIdrawablePrivate *)pdraw->private; + + assert(drawHash != NULL); + + x_hash_table_insert(drawHash, (void *) pdp->draw, pdraw); + + return GL_TRUE; +} + +static inline __DRIdrawable * +__driMesaFindDrawable(x_hash_table *drawHash, GLXDrawable draw) +{ + if (drawHash == NULL) + return NULL; + + return x_hash_table_lookup(drawHash, (void *) draw, NULL); +} + +struct find_by_uid_closure { + unsigned int uid; + __DRIdrawable *ret; +}; + +static void +find_by_uid_cb(void *k, void *v, void *data) +{ + __DRIdrawable *pdraw = v; + __DRIdrawablePrivate *pdp = (__DRIdrawablePrivate *)pdraw->private; + struct find_by_uid_closure *c = data; + + if (pdp->uid == c->uid) + c->ret = pdraw; +} + +static __DRIdrawable * +__driMesaFindDrawableByUID(x_hash_table *drawHash, unsigned int uid) +{ + struct find_by_uid_closure c; + + c.uid = uid; + c.ret = NULL; + x_hash_table_foreach(drawHash, find_by_uid_cb, &c); + + return c.ret; +} + +static inline void +__driMesaRemoveDrawable(x_hash_table *drawHash, __DRIdrawable *pdraw) +{ + __DRIdrawablePrivate *pdp = (__DRIdrawablePrivate *)pdraw->private; + + if (drawHash == NULL) + return; + + x_hash_table_remove(drawHash, (void *) pdp->draw); +} + +static Bool __driMesaWindowExistsFlag; + +static int __driMesaWindowExistsErrorHandler(Display *dpy, XErrorEvent *xerr) +{ + if (xerr->error_code == BadWindow) { + __driMesaWindowExistsFlag = GL_FALSE; + } + return 0; +} + +static Bool __driMesaWindowExists(Display *dpy, GLXDrawable draw) +{ + XWindowAttributes xwa; + int (*oldXErrorHandler)(Display *, XErrorEvent *); + + __driMesaWindowExistsFlag = GL_TRUE; + oldXErrorHandler = XSetErrorHandler(__driMesaWindowExistsErrorHandler); + XGetWindowAttributes(dpy, draw, &xwa); /* dummy request */ + XSetErrorHandler(oldXErrorHandler); + return __driMesaWindowExistsFlag; +} + +static void __driMesaCollectCallback(void *k, void *v, void *data) +{ + GLXDrawable draw = (GLXDrawable) k; + __DRIdrawable *pdraw = v; + x_list **todelete = data; + + __DRIdrawablePrivate *pdp = (__DRIdrawablePrivate *)pdraw->private; + Display *dpy; + + dpy = pdp->driScreenPriv->display; + XSync(dpy, GL_FALSE); + if (!pdp->destroyed && !__driMesaWindowExists(dpy, draw)) { + /* Destroy the local drawable data in the hash table, if the + drawable no longer exists in the Xserver */ + pdp->destroyed = TRUE; + *todelete = x_list_prepend(*todelete, pdraw); + } +} + +/* pdp->mutex is held. */ +static void __driMesaGarbageCollectDrawables(void *drawHash) +{ + __DRIdrawable *pdraw; + __DRIdrawablePrivate *pdp; + Display *dpy; + x_list *todelete = NULL, *node; + + x_hash_table_foreach(drawHash, __driMesaCollectCallback, &todelete); + + for (node = todelete; node != NULL; node = node->next) + { + pdraw = node->data; + pdp = (__DRIdrawablePrivate *)pdraw->private; + dpy = pdp->driScreenPriv->display; + + /* Destroy the local drawable data in the hash table, if the + drawable no longer exists in the Xserver */ + + __driMesaRemoveDrawable(drawHash, pdraw); + (*pdraw->destroyDrawable)(dpy, pdraw->private); + Xfree(pdraw); + } + + x_list_free(todelete); +} + +/*****************************************************************/ + +/* returns with psp->mutex locked if successful. */ +static Bool +driMesaFindDrawableByUID(Display *dpy,unsigned int uid, + __DRIscreenPrivate **psp_ret, + __DRIdrawablePrivate **pdp_ret) +{ + __DRIscreen *pDRIScreen; + __DRIscreenPrivate *psp; + __DRIdrawable *pdraw; + int scrn; + + for (scrn = 0; scrn < ScreenCount(dpy); scrn++) + { + if (!(pDRIScreen = __glXFindDRIScreen(dpy, scrn))) { + /* ERROR!!! */ + return FALSE; + } else if (!(psp = (__DRIscreenPrivate *)pDRIScreen->private)) { + /* ERROR!!! */ + return FALSE; + } + + xmutex_lock(psp->mutex); + + pdraw = __driMesaFindDrawableByUID(psp->drawHash, uid); + if (pdraw != NULL) { + *psp_ret = psp; + *pdp_ret = pdraw->private; + return TRUE; + }; + + xmutex_unlock(psp->mutex); + } + + return FALSE; +} + +static void +unbind_context(__DRIcontextPrivate *pcp) +{ + /* Unbind the context from its old drawable. */ + + if (pcp->driDrawablePriv != NULL) + { + if (pcp->next != NULL) + pcp->next->prev = pcp->prev; + if (pcp->prev != NULL) + pcp->prev->next = pcp->next; + + if (pcp->driDrawablePriv->driContextPriv == pcp) + pcp->driDrawablePriv->driContextPriv = pcp->next; + + pcp->driDrawablePriv = NULL; + pcp->prev = pcp->next = NULL; + } + + if (pcp->surface_id != 0) + { + pcp->surface_id = 0; + pcp->pending_clear = TRUE; + } +} + +static void +unbind_drawable(__DRIdrawablePrivate *pdp) +{ + __DRIcontextPrivate *pcp, *next; + + for (pcp = pdp->driContextPriv; pcp != NULL; pcp = next) + { + next = pcp->next; + unbind_context(pcp); + } +} + +static void +update_context(__DRIcontextPrivate *pcp) +{ + if (pcp->pending_clear) + { + CGLClearDrawable(pcp->ctx); + pcp->pending_clear = FALSE; + } + + if (pcp->pending_update && pcp->surface_id != 0) + { + xp_update_gl_context(pcp->ctx); + pcp->pending_update = FALSE; + } +} + +static Bool driMesaUnbindContext(Display *dpy, int scrn, + GLXDrawable draw, GLXContext gc, + int will_rebind) +{ + __DRIscreen *pDRIScreen; +// __DRIdrawable *pdraw; + __DRIcontextPrivate *pcp; + __DRIscreenPrivate *psp; + __DRIdrawablePrivate *pdp; + + /* + ** Assume error checking is done properly in glXMakeCurrent before + ** calling driMesaUnbindContext. + */ + + if (gc == NULL || draw == None) { + /* ERROR!!! */ + return GL_FALSE; + } + + if (!(pDRIScreen = __glXFindDRIScreen(dpy, scrn))) { + /* ERROR!!! */ + return GL_FALSE; + } else if (!(psp = (__DRIscreenPrivate *)pDRIScreen->private)) { + /* ERROR!!! */ + return GL_FALSE; + } + + xmutex_lock(psp->mutex); + + pcp = (__DRIcontextPrivate *)gc->driContext.private; + + pdp = pcp->driDrawablePriv; + if (pdp == NULL) { + /* ERROR!!! */ + xmutex_unlock(psp->mutex); + return GL_FALSE; + } + + /* Put this thread back into normal (indirect) dispatch mode. */ + CGLSetCurrentContext(XAppleDRIGetIndirectContext()); + pcp->thread_id = 0; + + /* Lazily unbind the drawable from the context */ + unbind_context(pcp); + + if (pdp->refcount == 0) { + /* ERROR!!! */ + xmutex_unlock(psp->mutex); + return GL_FALSE; + } else if (--pdp->refcount == 0) { +#if 0 + /* + ** NOT_DONE: When a drawable is unbound from one direct + ** rendering context and then bound to another, we do not want + ** to destroy the drawable data structure each time only to + ** recreate it immediatly afterwards when binding to the next + ** context. This also causes conflicts with caching of the + ** drawable stamp. + ** + ** In addition, we don't destroy the drawable here since Mesa + ** keeps private data internally (e.g., software accumulation + ** buffers) that should not be destroyed unless the client + ** explicitly requests that the window be destroyed. + ** + ** When GLX 1.3 is integrated, the create and destroy drawable + ** functions will have user level counterparts and the memory + ** will be able to be recovered. + ** + ** Below is an example of what needs to go into the destroy + ** drawable routine to support GLX 1.3. + */ + __driMesaRemoveDrawable(psp->drawHash, pdraw); + (*pdraw->destroyDrawable)(dpy, pdraw->private); + Xfree(pdraw); +#endif + } + + xmutex_unlock(psp->mutex); + return GL_TRUE; +} + +static Bool driMesaBindContext(Display *dpy, int scrn, + GLXDrawable draw, GLXContext gc) +{ + __DRIscreen *pDRIScreen; + const __GLcontextModes *modes; + __DRIdrawable *pdraw; + __DRIdrawablePrivate *pdp; + __DRIscreenPrivate *psp; + __DRIcontextPrivate *pcp; + + /* + ** Assume error checking is done properly in glXMakeCurrent before + ** calling driMesaBindContext. + */ + + if (gc == NULL || draw == None) { + /* ERROR!!! */ + return GL_FALSE; + } + + if (!(pDRIScreen = __glXFindDRIScreen(dpy, scrn))) { + /* ERROR!!! */ + return GL_FALSE; + } else if (!(psp = (__DRIscreenPrivate *)pDRIScreen->private)) { + /* ERROR!!! */ + return GL_FALSE; + } + + modes = gc->driContext.mode; + + if ( modes == NULL ) { + /* ERROR!!! */ + return GL_FALSE; + } + + xmutex_lock(psp->mutex); + + pdraw = __driMesaFindDrawable(psp->drawHash, draw); + if (!pdraw) { + /* Allocate a new drawable */ + pdraw = (__DRIdrawable *)Xmalloc(sizeof(__DRIdrawable)); + if (!pdraw) { + /* ERROR!!! */ + xmutex_unlock(psp->mutex); + return GL_FALSE; + } + + /* Create a new drawable */ + pdraw->private = driMesaCreateNewDrawable(dpy, modes, draw, pdraw, + GLX_WINDOW_BIT, + empty_attribute_list); + if (!pdraw->private) { + /* ERROR!!! */ + Xfree(pdraw); + xmutex_unlock(psp->mutex); + return GL_FALSE; + } + + /* Add pdraw to drawable list */ + if (!__driMesaAddDrawable(psp->drawHash, pdraw)) { + /* ERROR!!! */ + (*pdraw->destroyDrawable)(dpy, pdraw->private); + Xfree(pdraw); + xmutex_unlock(psp->mutex); + return GL_FALSE; + } + } + + pdp = (__DRIdrawablePrivate *)pdraw->private; + pcp = (__DRIcontextPrivate *)gc->driContext.private; + + if (pdp->surface_id == 0) + { + /* Surface got destroyed. Try to create a new one. */ + + driMesaCreateSurface(dpy, scrn, pdp); + } + + unbind_context(pcp); + + /* Bind the drawable to the context */ + pcp->driDrawablePriv = pdp; + pcp->prev = NULL; + pcp->next = pdp->driContextPriv; + pdp->driContextPriv = pcp; + pdp->refcount++; + + /* And the physical surface to the physical context */ + if (pcp->surface_id != pdp->surface_id) + { + pcp->surface_id = 0; + + /* Attaching the drawable sets the default viewport. But we don't + want to catch that call to glViewport in our wrappers. */ + unwrap_context(pcp); + + if (pdp->surface_id == 0) + CGLClearDrawable(pcp->ctx); + else if (xp_attach_gl_context(pcp->ctx, pdp->surface_id) == Success) + pcp->surface_id = pdp->surface_id; + else + fprintf(stderr, "failed to bind to surface\n"); + + wrap_context(pcp); + + pcp->pending_clear = FALSE; + pcp->pending_update = FALSE; + } + else if (pcp->pending_clear) + { + CGLClearDrawable(pcp->ctx); + pcp->pending_clear = FALSE; + } + + /* Activate the CGL context and remember which thread it's current for. */ + CGLSetCurrentContext(pcp->ctx); + pcp->thread_id = xthread_self(); + + xmutex_unlock(psp->mutex); + return GL_TRUE; +} + +/*****************************************************************/ + +static xp_client_id +get_client_id(void) +{ + static xp_client_id id; + + if (id == 0) + { + if (xp_init(XP_IN_BACKGROUND) != Success + || xp_get_client_id(&id) != Success) + { + return 0; + } + } + + return id; +} + +static void driMesaCreateSurface(Display *dpy, int scrn, + __DRIdrawablePrivate *pdp) +{ + xp_client_id client_id; + unsigned int key[2]; + + pdp->surface_id = 0; + pdp->uid = 0; + + client_id = get_client_id(); + if (client_id == 0) + return; + + if (XAppleDRICreateSurface(dpy, scrn, pdp->draw, + client_id, key, &pdp->uid)) + { + xp_import_surface(key, &pdp->surface_id); + } +} + +/** + * This is called via __DRIscreenRec's createNewDrawable pointer. + */ +static void *driMesaCreateNewDrawable(__DRInativeDisplay *dpy, + const __GLcontextModes *modes, + __DRIid draw, + __DRIdrawable *pdraw, + int renderType, + const int *attrs) +{ + __DRIscreen * const pDRIScreen = __glXFindDRIScreen(dpy, modes->screen); + __DRIscreenPrivate *psp; + __DRIdrawablePrivate *pdp; + + + pdraw->private = NULL; + + /* Since pbuffers are not yet supported, no drawable attributes are + * supported either. + */ + (void) attrs; + + if ( (pDRIScreen == NULL) || (pDRIScreen->private == NULL) ) { + return NULL; + } + + pdp = (__DRIdrawablePrivate *)Xmalloc(sizeof(__DRIdrawablePrivate)); + if (!pdp) { + return NULL; + } + + pdp->draw = draw; + pdp->refcount = 0; + pdp->surface_id = 0; + pdp->uid = 0; + pdp->destroyed = FALSE; + + psp = (__DRIscreenPrivate *)pDRIScreen->private; + pdp->driScreenPriv = psp; + pdp->driContextPriv = NULL; + + driMesaCreateSurface(dpy, modes->screen, pdp); + if (pdp->surface_id == 0) { + Xfree(pdp); + return NULL; + } + + pdraw->private = pdp; + pdraw->destroyDrawable = driMesaDestroyDrawable; + pdraw->swapBuffers = driMesaSwapBuffers; /* called by glXSwapBuffers() */ + +#if 0 + /* We don't support these yet. */ + if ( driCompareGLXAPIVersion( 20030317 ) >= 0 ) { + pdraw->getSBC = driGetSBC; + pdraw->waitForSBC = driWaitForSBC; + pdraw->waitForMSC = driWaitForMSC; + pdraw->swapBuffersMSC = driSwapBuffersMSC; + pdraw->frameTracking = NULL; + pdraw->queryFrameTracking = driQueryFrameTracking; + + /* This special default value is replaced with the configured + * default value when the drawable is first bound to a direct + * rendering context. */ + pdraw->swap_interval = (unsigned)-1; + } +#endif + + return (void *) pdp; +} + +static __DRIdrawable *driMesaGetDrawable(__DRInativeDisplay *dpy, + GLXDrawable draw, + void *screenPrivate) +{ + __DRIscreenPrivate *psp = (__DRIscreenPrivate *) screenPrivate; + __DRIdrawable *dri_draw; + + xmutex_lock(psp->mutex); + + /* + ** Make sure this routine returns NULL if the drawable is not bound + ** to a direct rendering context! + */ + dri_draw = __driMesaFindDrawable(psp->drawHash, draw); + + xmutex_unlock(psp->mutex); + return dri_draw; +} + +static void driMesaSwapBuffers(__DRInativeDisplay *dpy, void *drawPrivate) +{ + __DRIdrawablePrivate *pdp = (__DRIdrawablePrivate *) drawPrivate; + __DRIcontextPrivate *pcp; + xthread_t self = xthread_self(); + static Bool warned; + + xmutex_lock(pdp->driScreenPriv->mutex); + + /* FIXME: this is sub-optimal, since we may not always find a context + bound to the given drawable on this thread. */ + + for (pcp = pdp->driContextPriv; pcp != NULL; pcp = pcp->next) + { + if (pcp->thread_id == self || pcp->thread_id == 0) + break; + } + + if (pcp != NULL) + { + CGLFlushDrawable(pcp->ctx); + } + else + { + if (!warned) { + fprintf(stderr, "glXSwapBuffers: no context for this drawable\n"); + warned = TRUE; + } + } + + xmutex_unlock(pdp->driScreenPriv->mutex); +} + +/* pdp->mutex is held. */ +static void driMesaDestroyDrawable(__DRInativeDisplay *dpy, void *drawPrivate) +{ + __DRIdrawablePrivate *pdp = (__DRIdrawablePrivate *)drawPrivate; + + if (pdp) { + unbind_drawable(pdp); + if (pdp->surface_id != 0) { + xp_destroy_surface(pdp->surface_id); + pdp->surface_id = 0; + } + if (!pdp->destroyed) { + /* don't try to destroy an already destroyed surface. */ + XAppleDRIDestroySurface(dpy, pdp->driScreenPriv->myNum, pdp->draw); + } + Xfree(pdp); + } +} + +/*****************************************************************/ + +static CGLPixelFormatObj +driCreatePixelFormat(Display *dpy, __DRIscreenPrivate *psp, + XVisualInfo *visinfo, __GLXvisualConfig *config) +{ + int i; + CGLPixelFormatAttribute attr[64]; // currently uses max of 30 + CGLPixelFormatObj result; + long n_formats; + + i = 0; + + if (!config->rgba) + return NULL; + + if (config->stereo) + attr[i++] = kCGLPFAStereo; + + if (config->doubleBuffer) + attr[i++] = kCGLPFADoubleBuffer; + + attr[i++] = kCGLPFAColorSize; + attr[i++] = config->redSize + config->greenSize + config->blueSize; + attr[i++] = kCGLPFAAlphaSize; + attr[i++] = 1; /* FIXME: ignoring config->alphaSize which is always 0 */ + + if (config->accumRedSize + config->accumGreenSize + + config->accumBlueSize + config->accumAlphaSize > 0) + { + attr[i++] = kCGLPFAAccumSize; + attr[i++] = (config->accumRedSize + config->accumGreenSize + + config->accumBlueSize + config->accumAlphaSize); + } + + if (config->depthSize > 0) { + attr[i++] = kCGLPFADepthSize; + attr[i++] = config->depthSize; + } + + if (config->stencilSize > 0) { + attr[i++] = kCGLPFAStencilSize; + attr[i++] = config->stencilSize; + } + + if (config->auxBuffers > 0) { + attr[i++] = kCGLPFAAuxBuffers; + attr[i++] = config->auxBuffers; + } + + /* FIXME: things we don't handle: color/alpha masks, level, + visualrating, transparentFoo */ + + attr[i++] = 0; + + result = NULL; + CGLChoosePixelFormat(attr, &result, &n_formats); + + return result; +} + +static void *driMesaCreateContext(Display *dpy, XVisualInfo *vis, void *shared, + __DRIcontext *pctx) +{ + __DRIscreen *pDRIScreen; + __DRIcontextPrivate *pcp; + __DRIcontextPrivate *pshare = (__DRIcontextPrivate *)shared; + __DRIscreenPrivate *psp; + int i; + + if (!(pDRIScreen = __glXFindDRIScreen(dpy, vis->screen))) { + /* ERROR!!! */ + return NULL; + } else if (!(psp = (__DRIscreenPrivate *)pDRIScreen->private)) { + /* ERROR!!! */ + return NULL; + } + + /* Create the hash table */ + if (!psp->drawHash) { + xmutex_lock(psp->mutex); + if (!psp->drawHash) + psp->drawHash = x_hash_table_new(NULL, NULL, NULL, NULL); + xmutex_unlock(psp->mutex); + } + + pcp = (__DRIcontextPrivate *)Xmalloc(sizeof(__DRIcontextPrivate)); + if (!pcp) { + return NULL; + } + + pcp->display = dpy; + pcp->driScreenPriv = psp; + pcp->driDrawablePriv = NULL; + + pcp->ctx = NULL; + pcp->surface_id = 0; + + pcp->pending_clear = FALSE; + pcp->pending_update = FALSE; + + pcp->ctx = NULL; + for (i = 0; pcp->ctx == NULL && i < psp->numVisuals; i++) { + if (psp->visuals[i].vid == vis->visualid) { + CGLCreateContext(psp->visuals[i].pixel_format, + pshare ? pshare->ctx : NULL, &pcp->ctx); + } + } + + if (!pcp->ctx) { + Xfree(pcp); + return NULL; + } + + pctx->destroyContext = driMesaDestroyContext; + pctx->bindContext = driMesaBindContext; + pctx->unbindContext = driMesaUnbindContext; + + wrap_context(pcp); + + xmutex_lock(psp->mutex); + __driMesaGarbageCollectDrawables(pcp->driScreenPriv->drawHash); + xmutex_unlock(psp->mutex); + + return pcp; +} + +static void driMesaDestroyContext(__DRInativeDisplay *dpy, int scrn, + void *contextPrivate) +{ + __DRIcontextPrivate *pcp = (__DRIcontextPrivate *) contextPrivate; + + if (pcp) { + xmutex_lock(pcp->driScreenPriv->mutex); + unbind_context(pcp); + __driMesaGarbageCollectDrawables(pcp->driScreenPriv->drawHash); + xmutex_unlock(pcp->driScreenPriv->mutex); + CGLDestroyContext(pcp->ctx); + Xfree(pcp); + } +} + +/*****************************************************************/ + +static void *driMesaCreateScreen(__DRInativeDisplay *dpy, int scrn, + __DRIscreen *psc, int numConfigs, + __GLXvisualConfig *config) +{ + int directCapable, i, n; + __DRIscreenPrivate *psp; + XVisualInfo visTmpl, *visinfo; + + if (!XAppleDRIQueryDirectRenderingCapable(dpy, scrn, &directCapable)) { + return NULL; + } + + if (!directCapable) { + return NULL; + } + + psp = (__DRIscreenPrivate *)Xmalloc(sizeof(__DRIscreenPrivate)); + if (!psp) { + return NULL; + } + + psp->mutex = xmutex_malloc(); + if (psp->mutex != NULL) { + xmutex_init (psp->mutex); + xmutex_set_name (psp->mutex, "AppleDRI"); + } + psp->display = dpy; + psp->myNum = scrn; + +#if 0 + if (!XAppleDRIAuthConnection(dpy, scrn, magic)) { + Xfree(psp); + (void)XAppleDRICloseConnection(dpy, scrn); + return NULL; + } +#endif + + /* + * Allocate space for an array of visual records and initialize them. + */ + psp->visuals = (__DRIvisualPrivate *)Xmalloc(numConfigs * + sizeof(__DRIvisualPrivate)); + if (!psp->visuals) { + Xfree(psp); + return NULL; + } + + visTmpl.screen = scrn; + visinfo = XGetVisualInfo(dpy, VisualScreenMask, &visTmpl, &n); + if (n != numConfigs) { + Xfree(psp); + return NULL; + } + + psp->numVisuals = 0; + for (i = 0; i < numConfigs; i++, config++) { + psp->visuals[psp->numVisuals].vid = visinfo[i].visualid; + psp->visuals[psp->numVisuals].pixel_format = + driCreatePixelFormat(dpy, psp, &visinfo[i], config); + if (psp->visuals[psp->numVisuals].pixel_format != NULL) { + psp->numVisuals++; + } + } + + XFree(visinfo); + + if (psp->numVisuals == 0) { + /* Couldn't create any pixel formats. */ + Xfree(psp->visuals); + Xfree(psp); + return NULL; + } + + /* Initialize the drawHash when the first context is created */ + psp->drawHash = NULL; + + psc->destroyScreen = driMesaDestroyScreen; + psc->createContext = driMesaCreateContext; + psc->createNewDrawable = driMesaCreateNewDrawable; + psc->getDrawable = driMesaGetDrawable; + + return (void *)psp; +} + +static void driMesaDestroyScreen(__DRInativeDisplay *dpy, int scrn, + void *screenPrivate) +{ + __DRIscreenPrivate *psp = (__DRIscreenPrivate *) screenPrivate; + + if (psp) { + //FIXME resetDriver ? + Xfree(psp->visuals); + Xfree(psp); + } +} + +/* Note: definitely can't make any X protocol requests here. */ +static void driAppleSurfaceNotify(Display *dpy, unsigned int uid, int kind) +{ + __DRIscreenPrivate *psp; + __DRIdrawablePrivate *pdp; + __DRIcontextPrivate *pcp; + + /* locks psp->mutex if successful. */ + if (driMesaFindDrawableByUID(dpy, uid, &psp, &pdp)) + { + xthread_t self = xthread_self(); + + switch (kind) + { + Bool all_safe; + + case AppleDRISurfaceNotifyDestroyed: + xp_destroy_surface(pdp->surface_id); + pdp->surface_id = 0; + + for (pcp = pdp->driContextPriv; pcp != NULL; pcp = pcp->next) + { + pcp->surface_id = 0; + + if (pcp->thread_id == self || pcp->thread_id == 0) { + CGLClearDrawable(pcp->ctx); + pcp->pending_clear = FALSE; + } else + pcp->pending_clear = TRUE; + } + break; + + case AppleDRISurfaceNotifyChanged: + all_safe = TRUE; + for (pcp = pdp->driContextPriv; pcp != NULL; pcp = pcp->next) + { + if (pcp->thread_id != 0 && pcp->thread_id != self) { + all_safe = FALSE; + break; + } + } + for (pcp = pdp->driContextPriv; pcp != NULL; pcp = pcp->next) + { + if (all_safe) { + xp_update_gl_context(pcp->ctx); + pcp->pending_update = FALSE; + } else + pcp->pending_update = TRUE; + } + break; + } + + xmutex_unlock(psp->mutex); + } +} + +/** + * Entrypoint function used to create a new driver-private screen structure. + * + * \param dpy Display pointer. + * \param scrn Index of the screen. + * \param psc DRI screen data (not driver private) + * \param numConfigs Number of visual configs pointed to by \c configs. + * \param config Array of GLXvisualConfigs exported by the 2D driver. + * + * \deprecated + * In dynamically linked drivers, this function has been replaced by + * \c __driCreateNewScreen. + */ +void *__driCreateScreen(Display *dpy, int scrn, __DRIscreen *psc, + int numConfigs, __GLXvisualConfig *config) +{ + static int here_before; + + if (!here_before) + { + XAppleDRISetSurfaceNotifyHandler(driAppleSurfaceNotify); + here_before = True; + } + + return driMesaCreateScreen(dpy, scrn, psc, numConfigs, config); +} + +void __driRegisterExtensions(void) +{ +} + +__private_extern__ void XAppleDRIUseIndirectDispatch(void) +{ + CGLSetCurrentContext(XAppleDRIGetIndirectContext()); +} + +/*****************************************************************/ + +/* + * Currently (Mac OS X 10.3) the only way we have of regaining control + * from threads calling GL and nothing else is by patching the dispatch + * table of the CGLContext, so that glViewport, glFlush and glFinish + * call us back. + * + * Since glNewList and glEndList overwrite the entire dispatch table we + * also need to patch those so we can restore the others. + * + * WARNING: This is not expected to work on future OS releases. + */ + +#define WRAP_CGL(context, vec, fun) \ + do { \ + (context)->disp.vec = (context)->ctx->disp.vec; \ + (context)->ctx->disp.vec = (fun); \ + } while (0) + +#define UNWRAP_CGL(context, vec) \ + do { \ + (context)->ctx->disp.vec = (context)->disp.vec; \ + } while (0) + +#define WRAP_BOILERPLATE \ + GLXContext gc; \ + __DRIcontextPrivate *pcp; \ + gc = __glXGetCurrentContext(); \ + if (gc == NULL || !gc->isDirect) return; \ + pcp = (__DRIcontextPrivate *) gc->driContext.private; \ + if (pcp == NULL) return; + +static void viewport_callback(GLIContext ctx, GLint x, GLint y, + GLsizei width, GLsizei height) +{ + WRAP_BOILERPLATE + + xmutex_lock(pcp->driScreenPriv->mutex); + update_context(pcp); + xmutex_unlock(pcp->driScreenPriv->mutex); + + (*pcp->disp.viewport)(ctx, x, y, width, height); +} + +static void new_list_callback(GLIContext ctx, GLuint list, GLenum mode) +{ + WRAP_BOILERPLATE + + unwrap_context(pcp); + (*pcp->ctx->disp.new_list)(ctx, list, mode); + wrap_context(pcp); +} + +static void end_list_callback(GLIContext ctx) +{ + WRAP_BOILERPLATE + + unwrap_context(pcp); + (*pcp->ctx->disp.end_list)(ctx); + wrap_context(pcp); +} + +static void unwrap_context(__DRIcontextPrivate *pcp) +{ + UNWRAP_CGL(pcp, viewport); + UNWRAP_CGL(pcp, new_list); + UNWRAP_CGL(pcp, end_list); +} + +static void wrap_context(__DRIcontextPrivate *pcp) +{ + WRAP_CGL(pcp, new_list, new_list_callback); + WRAP_CGL(pcp, end_list, end_list_callback); + WRAP_CGL(pcp, viewport, viewport_callback); +} + +#endif /* GLX_DIRECT_RENDERING */ diff --git a/nx-X11/lib/GL/apple/dri_driver.h b/nx-X11/lib/GL/apple/dri_driver.h new file mode 100644 index 000000000..84965786f --- /dev/null +++ b/nx-X11/lib/GL/apple/dri_driver.h @@ -0,0 +1,188 @@ +/* $XFree86: xc/lib/GL/apple/dri_driver.h,v 1.1 2003/06/30 01:45:10 torrey Exp $ */ +/************************************************************************** + +Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. +Copyright (c) 2002 Apple Computer, Inc. +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"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sub license, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice (including the +next paragraph) shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. +IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +**************************************************************************/ + +/* + * Authors: + * Kevin E. Martin <kevin@precisioninsight.com> + * Brian Paul <brian@precisioninsight.com> + */ + +#ifndef _DRI_DRIVER_H_ +#define _DRI_DRIVER_H_ + +#include "Xplugin.h" +#include "Xthreads.h" +#include <CoreGraphics/CoreGraphics.h> +#include <OpenGL/OpenGL.h> +#include <OpenGL/CGLContext.h> + +#ifdef GLX_DIRECT_RENDERING + +typedef struct __DRIdisplayPrivateRec __DRIdisplayPrivate; +typedef struct __DRIscreenPrivateRec __DRIscreenPrivate; +typedef struct __DRIvisualPrivateRec __DRIvisualPrivate; +typedef struct __DRIcontextPrivateRec __DRIcontextPrivate; +typedef struct __DRIdrawablePrivateRec __DRIdrawablePrivate; + +#endif /* GLX_DIRECT_RENDERING */ + +#define DRI_MESA_VALIDATE_DRAWABLE_INFO(dpy,scrn,pDrawPriv) \ + do { \ + if (*(pDrawPriv->pStamp) != pDrawPriv->lastStamp) { \ + driMesaUpdateDrawableInfo(dpy,scrn,pDrawPriv); \ + } \ + } while (0) + +struct __DRIdrawablePrivateRec { + /* + ** X's drawable ID associated with this private drawable. + */ + GLXDrawable draw; + + /* + ** Reference count for number of context's currently bound to this + ** drawable. Once the refcount reaches 0, the drawable can be + ** destroyed. This behavior will change with GLX 1.3. + */ + int refcount; + + xp_surface_id surface_id; + unsigned int uid; + + /* + ** Pointer to contexts to which this drawable is currently bound. + */ + __DRIcontextPrivate *driContextPriv; + + /* + ** Pointer to screen on which this drawable was created. + */ + __DRIscreenPrivate *driScreenPriv; + + /* + ** Set when the drawable on the server is known to have gone away + */ + unsigned int destroyed :1; +}; + +struct __DRIcontextPrivateRec { + /* + ** Other contexts bound to the same drawable. + */ + __DRIcontextPrivate *next, *prev; + + /* + ** Kernel context handle used to access the device lock. + */ + XID contextID; + + CGLContextObj ctx; + + /* + ** Set when attached + */ + xp_surface_id surface_id; + xthread_t thread_id; + + /* + ** This context's display pointer. + */ + Display *display; + + /* + ** Pointer to drawable currently bound to this context. + */ + __DRIdrawablePrivate *driDrawablePriv; + + /* + ** Pointer to screen on which this context was created. + */ + __DRIscreenPrivate *driScreenPriv; + + /* + ** wrapped CGL vectors + */ + struct { + void (*viewport)(GLIContext ctx, GLint x, GLint y, + GLsizei width, GLsizei height); + void (*new_list)(GLIContext ctx, GLuint list, GLenum mode); + void (*end_list)(GLIContext ctx); + } disp; + + unsigned int pending_update :1; + unsigned int pending_clear :1; +}; + +struct __DRIvisualPrivateRec { + /* + ** X's visual ID associated with this private visual. + */ + VisualID vid; + + /* + ** CGL object representing the visual + */ + CGLPixelFormatObj pixel_format; +}; + +struct __DRIscreenPrivateRec { + /* + ** Display for this screen + */ + Display *display; + + /* + ** Mutex for this screen + */ + xmutex_t mutex; + + /* + ** Current screen's number + */ + int myNum; + + /* + ** Core rendering library's visuals associated with the current + ** screen. + */ + __DRIvisualPrivate *visuals; + int numVisuals; + + /* + ** Hash table to hold the drawable information for this screen. + */ + void *drawHash; +}; + + +extern void driMesaUpdateDrawableInfo(Display *dpy, int scrn, + __DRIdrawablePrivate *pdp); + + +#endif /* _DRI_DRIVER_H_ */ diff --git a/nx-X11/lib/GL/apple/dri_glx.c b/nx-X11/lib/GL/apple/dri_glx.c new file mode 100644 index 000000000..c2adc868f --- /dev/null +++ b/nx-X11/lib/GL/apple/dri_glx.c @@ -0,0 +1,265 @@ +/************************************************************************** + +Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. +Copyright (c) 2002 Apple Computer, Inc. +Copyright (c) 2004 Torrey T. Lyons +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"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sub license, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice (including the +next paragraph) shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. +IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +**************************************************************************/ +/* $XFree86: xc/lib/GL/apple/dri_glx.c,v 1.2 2004/04/21 04:59:40 torrey Exp $ */ + +/* + * Authors: + * Kevin E. Martin <kevin@precisioninsight.com> + * Brian Paul <brian@precisioninsight.com> + * + */ + +#ifdef GLX_DIRECT_RENDERING + +#include <unistd.h> +#include <X11/Xlibint.h> +#include <X11/extensions/Xext.h> +#include "extutil.h" +#include "glxclient.h" +#include "appledri.h" +#include <stdio.h> +#include "dri_glx.h" +#include <sys/types.h> +#include <stdarg.h> + + +/* Apple OpenGL "driver" information. */ +static const char *__driAppleDriverName = "apple"; +static const int __driAppleDriverMajor = 1; +static const int __driAppleDriverMinor = 0; +static const int __driAppleDriverPatch = 0; + + +/* + * printf wrappers + */ + +static void InfoMessageF(const char *f, ...) +{ + va_list args; + const char *env; + + if ((env = getenv("LIBGL_DEBUG")) && strstr(env, "verbose")) { + fprintf(stderr, "libGL: "); + va_start(args, f); + vfprintf(stderr, f, args); + va_end(args); + } +} + +static void ErrorMessageF(const char *f, ...) +{ + va_list args; + + if (getenv("LIBGL_DEBUG")) { + fprintf(stderr, "libGL error: "); + va_start(args, f); + vfprintf(stderr, f, args); + va_end(args); + } +} + + +/* + * Given a display pointer and screen number, determine the name of + * the DRI driver for the screen. (I.e. "r128", "tdfx", etc). + * Return True for success, False for failure. + */ +static Bool GetDriverName(Display *dpy, int scrNum, char **driverName) +{ + int directCapable; + + *driverName = NULL; + + if (!XAppleDRIQueryDirectRenderingCapable(dpy, scrNum, &directCapable)) { + ErrorMessageF("XAppleDRIQueryDirectRenderingCapable failed\n"); + return False; + } + if (!directCapable) { + ErrorMessageF("XAppleDRIQueryDirectRenderingCapable returned false\n"); + return False; + } + + *driverName = (char *) __driAppleDriverName; + + InfoMessageF("XF86DRIGetClientDriverName: %d.%d.%d %s (screen %d)\n", + __driAppleDriverMajor, __driAppleDriverMinor, + __driAppleDriverPatch, *driverName, scrNum); + + return True; +} + + +/* + * Exported function for querying the DRI driver for a given screen. + * + * The returned char pointer points to a static array that will be + * overwritten by subsequent calls. + */ +const char *glXGetScreenDriver (Display *dpy, int scrNum) { + static char ret[32]; + char *driverName; + if (GetDriverName(dpy, scrNum, &driverName)) { + int len; + if (!driverName) + return NULL; + len = strlen (driverName); + if (len >= 31) + return NULL; + memcpy (ret, driverName, len+1); + Xfree(driverName); + return ret; + } + return NULL; +} + + +/* + * Exported function for obtaining a driver's option list (UTF-8 encoded XML). + * + * The returned char pointer points directly into the driver. Therefore + * it should be treated as a constant. + * + * If the driver was not found or does not support configuration NULL is + * returned. + * + * Note: In a standard GLX imlementation the driver remains opened after + * this function returns. + */ +const char *glXGetDriverConfig(const char *driverName) { + /* the apple stub driver does not support configuration */ + return NULL; +} + + +static void driDestroyDisplay(Display *dpy, void *private) +{ + __DRIdisplayPrivate *pdpyp = (__DRIdisplayPrivate *)private; + + if (pdpyp) { + Xfree(pdpyp->libraryHandles); + Xfree(pdpyp); + } +} + + +void *driCreateDisplay(Display *dpy, __DRIdisplay *pdisp) +{ + const int numScreens = ScreenCount(dpy); + __DRIdisplayPrivate *pdpyp; + int eventBase, errorBase; + int major, minor, patch; + int scrn; + + /* Initialize these fields to NULL in case we fail. + * If we don't do this we may later get segfaults trying to free random + * addresses when the display is closed. + */ + pdisp->private = NULL; + pdisp->destroyDisplay = NULL; + pdisp->createScreen = NULL; + + if (!XAppleDRIQueryExtension(dpy, &eventBase, &errorBase)) { + return NULL; + } + + if (!XAppleDRIQueryVersion(dpy, &major, &minor, &patch)) { + return NULL; + } + + pdpyp = (__DRIdisplayPrivate *)Xmalloc(sizeof(__DRIdisplayPrivate)); + if (!pdpyp) { + return NULL; + } + + pdpyp->driMajor = major; + pdpyp->driMinor = minor; + pdpyp->driPatch = patch; + + pdisp->destroyDisplay = driDestroyDisplay; + + /* allocate array of pointers to createScreen funcs */ + pdisp->createScreen = (CreateScreenFunc *) Xmalloc(numScreens * sizeof(void *)); + if (!pdisp->createScreen) + return NULL; + + /* allocate array of pointers to createScreen funcs */ + pdisp->createNewScreen = (CreateNewScreenFunc *) Xmalloc(numScreens * sizeof(void *)); + if (!pdisp->createNewScreen) { + Xfree(pdisp->createScreen); + Xfree(pdpyp); + return NULL; + } + + /* allocate array of library handles */ + pdpyp->libraryHandles = (void **) Xmalloc(numScreens * sizeof(void*)); + if (!pdpyp->libraryHandles) { + Xfree(pdisp->createNewScreen); + Xfree(pdisp->createScreen); + Xfree(pdpyp); + return NULL; + } + + /* we'll statically bind to the __driCreateScreen function */ + for (scrn = 0; scrn < numScreens; scrn++) { + pdisp->createScreen[scrn] = __driCreateScreen; + pdisp->createNewScreen[scrn] = NULL; + pdpyp->libraryHandles[scrn] = NULL; + } + + return (void *)pdpyp; +} + + +/* +** Here we'll query the DRI driver for each screen and let each +** driver register its GL extension functions. We only have to +** do this once. But it MUST be done before we create any contexts +** (i.e. before any dispatch tables are created) and before +** glXGetProcAddressARB() returns. +** +** Currently called by glXGetProcAddress(), __glXInitialize(), and +** __glXNewIndirectAPI(). +*/ +void +__glXRegisterExtensions(void) +{ + static GLboolean alreadyCalled = GL_FALSE; + + if (alreadyCalled) { + return; + } + + __driRegisterExtensions (); + + alreadyCalled = GL_TRUE; +} + + +#endif /* GLX_DIRECT_RENDERING */ diff --git a/nx-X11/lib/GL/apple/dri_glx.h b/nx-X11/lib/GL/apple/dri_glx.h new file mode 100644 index 000000000..6d01b35a5 --- /dev/null +++ b/nx-X11/lib/GL/apple/dri_glx.h @@ -0,0 +1,67 @@ +/************************************************************************** + +Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. +Copyright (c) 2002 Apple Computer, Inc. +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"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sub license, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice (including the +next paragraph) shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. +IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +**************************************************************************/ +/* $XFree86$ */ + +/* + * Authors: + * Kevin E. Martin <kevin@precisioninsight.com> + * Brian Paul <brian@precisioninsight.com> + * + */ + +#ifndef _DRI_GLX_H_ +#define _DRI_GLX_H_ + +#ifdef GLX_DIRECT_RENDERING + +struct __DRIdisplayPrivateRec { + /* + ** XFree86-DRI version information + */ + int driMajor; + int driMinor; + int driPatch; + + /* + ** Array of library handles [indexed by screen number] + */ + void **libraryHandles; +}; + +typedef struct __DRIdisplayPrivateRec __DRIdisplayPrivate; +typedef struct __DRIscreenPrivateRec __DRIscreenPrivate; +typedef struct __DRIvisualPrivateRec __DRIvisualPrivate; +typedef struct __DRIcontextPrivateRec __DRIcontextPrivate; +typedef struct __DRIdrawablePrivateRec __DRIdrawablePrivate; + +extern void *__driCreateScreen (Display *dpy, int scrn, __DRIscreen *psc, + int numConfigs, __GLXvisualConfig *config); +extern void __driRegisterExtensions (void); + +#endif /* GLX_DIRECT_RENDERING */ +#endif /* _DRI_GLX_H_ */ |