X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=include%2FGL%2Fglx.h;h=672a9b860e436087ca933d36c6a7adf2e62cddca;hb=bd2055cf7e740886e5fce1d814d17ca2662bc64d;hp=4163fe2857909f5335cab9e55c34d2594a5f8ef9;hpb=89a42b7e736bd9b0ab090906cab0cd047a6ec12e;p=mesa.git diff --git a/include/GL/glx.h b/include/GL/glx.h index 4163fe28579..672a9b860e4 100644 --- a/include/GL/glx.h +++ b/include/GL/glx.h @@ -1,10 +1,10 @@ -/* $Id: glx.h,v 1.2 1999/09/11 11:33:45 brianp Exp $ */ +/* $Id: glx.h,v 1.17 2000/03/31 01:03:41 brianp Exp $ */ /* * Mesa 3-D graphics library - * Version: 3.1 + * Version: 3.3 * - * Copyright (C) 1999 Brian Paul All Rights Reserved. + * Copyright (C) 1999-2000 Brian Paul All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -25,53 +25,26 @@ */ -/* - * $Log: glx.h,v $ - * Revision 1.2 1999/09/11 11:33:45 brianp - * added GLX_EXT_get_proc_address - * - * Revision 1.1.1.1 1999/08/19 00:55:40 jtg - * Imported sources - * - * Revision 3.3 1999/02/14 03:39:09 brianp - * new copyright - * - * Revision 3.2 1998/06/18 03:44:00 brianp - * replaced "uint" with "unsigned int" - * - * Revision 3.1 1998/06/01 00:00:17 brianp - * added GLX_SGI_video_sync extension - * - * Revision 3.0 1998/02/20 05:06:01 brianp - * initial rev - * - */ - #ifndef GLX_H #define GLX_H -/* - * A pseudo-GLX implementation to allow GLX-based OpenGL programs to - * work with Mesa. - * - * Notes: - * 1. If the visual passed to glXGetConfig was not one returned by - * glXChooseVisual then the GLX_RGBA and GLX_DOUBLEBUFFER queries - * will always return True and the GLX_DEPTH_SIZE query will always - * return non-zero. - * 2. The glXIsDirect() function always returns True. - */ - - - +#ifdef __VMS +# ifdef __cplusplus +/* VMS Xlib.h gives problems with C++. + * this avoids a bunch of trivial warnings */ +#pragma message disable nosimpint +#endif +#endif #include #include -#include "GL/gl.h" -#ifdef MESA -#include "GL/xmesa.h" +#ifdef __VMS +# ifdef __cplusplus +#pragma message enable nosimpint +#endif #endif +#include "GL/gl.h" #if defined(USE_MGL_NAMESPACE) @@ -85,39 +58,32 @@ extern "C" { #define GLX_VERSION_1_1 1 +#define GLX_VERSION_1_2 1 + +#define GLX_EXTENSION_NAME "GLX" + /* * Tokens for glXChooseVisual and glXGetConfig: */ -enum _GLX_CONFIGS { - GLX_USE_GL = 1, - GLX_BUFFER_SIZE = 2, - GLX_LEVEL = 3, - GLX_RGBA = 4, - GLX_DOUBLEBUFFER = 5, - GLX_STEREO = 6, - GLX_AUX_BUFFERS = 7, - GLX_RED_SIZE = 8, - GLX_GREEN_SIZE = 9, - GLX_BLUE_SIZE = 10, - GLX_ALPHA_SIZE = 11, - GLX_DEPTH_SIZE = 12, - GLX_STENCIL_SIZE = 13, - GLX_ACCUM_RED_SIZE = 14, - GLX_ACCUM_GREEN_SIZE = 15, - GLX_ACCUM_BLUE_SIZE = 16, - GLX_ACCUM_ALPHA_SIZE = 17, - - /* GLX_EXT_visual_info extension */ - GLX_X_VISUAL_TYPE_EXT = 0x22, - GLX_TRANSPARENT_TYPE_EXT = 0x23, - GLX_TRANSPARENT_INDEX_VALUE_EXT = 0x24, - GLX_TRANSPARENT_RED_VALUE_EXT = 0x25, - GLX_TRANSPARENT_GREEN_VALUE_EXT = 0x26, - GLX_TRANSPARENT_BLUE_VALUE_EXT = 0x27, - GLX_TRANSPARENT_ALPHA_VALUE_EXT = 0x28 -}; +#define GLX_USE_GL 1 +#define GLX_BUFFER_SIZE 2 +#define GLX_LEVEL 3 +#define GLX_RGBA 4 +#define GLX_DOUBLEBUFFER 5 +#define GLX_STEREO 6 +#define GLX_AUX_BUFFERS 7 +#define GLX_RED_SIZE 8 +#define GLX_GREEN_SIZE 9 +#define GLX_BLUE_SIZE 10 +#define GLX_ALPHA_SIZE 11 +#define GLX_DEPTH_SIZE 12 +#define GLX_STENCIL_SIZE 13 +#define GLX_ACCUM_RED_SIZE 14 +#define GLX_ACCUM_GREEN_SIZE 15 +#define GLX_ACCUM_BLUE_SIZE 16 +#define GLX_ACCUM_ALPHA_SIZE 17 /* @@ -141,8 +107,72 @@ enum _GLX_CONFIGS { /* - * GLX_visual_info extension + * GLX 1.3 and later: + * XXX don't know the values of some of these enums! + * XXX some 1.3 enums may be missing! */ +#define GLX_CONFIG_CAVEAT ? +#define GLX_DONT_CARE ? +#define GLX_SLOW_CONFIG ? +#define GLX_NON_CONFORMANT_CONFIG ? +#define GLX_X_VISUAL_TYPE 0x22 +#define GLX_TRANSPARENT_TYPE 0x23 +#define GLX_TRANSPARENT_INDEX_VALUE 0x24 +#define GLX_TRANSPARENT_RED_VALUE 0x25 +#define GLX_TRANSPARENT_GREEN_VALUE 0x26 +#define GLX_TRANSPARENT_BLUE_VALUE 0x27 +#define GLX_TRANSPARENT_ALPHA_VALUE 0x28 +#define GLX_MAX_PBUFFER_WIDTH ? +#define GLX_MAX_PBUFFER_HEIGHT ? +#define GLX_MAX_PBUFFER_PIXELS ? +#define GLX_PRESERVED_CONTENTS ? +#define GLX_LARGEST_BUFFER ? +#define GLX_DRAWABLE_TYPE ? +#define GLX_FBCONFIG_ID ? +#define GLX_VISUAL_ID ? +#define GLX_WINDOW_BIT ? +#define GLX_PIXMAP_BIT ? +#define GLX_PBUFFER_BIT ? +#define GLX_AUX_BUFFERS_BIT ? +#define GLX_FRONT_LEFT_BUFFER_BIT ? +#define GLX_FRONT_RIGHT_BUFFER_BIT ? +#define GLX_BACK_LEFT_BUFFER_BIT ? +#define GLX_BACK_RIGHT_BUFFER_BIT ? +#define GLX_AUX_BUFFERS_BIT ? +#define GLX_DEPTH_BUFFER_BIT ? +#define GLX_STENCIL_BUFFER_BIT ? +#define GLX_ACCUM_BUFFER_BIT ? +#define GLX_RENDER_TYPE ? +#define GLX_DRAWABLE_TYPE ? +#define GLX_X_RENDERABLE ? +#define GLX_NONE 0x8000 +#define GLX_TRUE_COLOR 0x8002 +#define GLX_DIRECT_COLOR 0x8003 +#define GLX_PSEUDO_COLOR 0x8004 +#define GLX_STATIC_COLOR 0x8005 +#define GLX_GRAY_SCALE 0x8006 +#define GLX_STATIC_GRAY 0x8007 +#define GLX_TRANSPARENT_INDEX 0x8009 +#define GLX_COLOR_INDEX_TYPE ? +#define GLX_COLOR_INDEX_BIT ? +#define GLX_SCREEN ? +#define GLX_PBUFFER_CLOBBER_MASK ? +#define GLX_DAMAGED ? +#define GLX_SAVED ? +#define GLX_WINDOW ? +#define GLX_PBUFFER ? + + +/* + * 28. GLX_EXT_visual_info extension + */ +#define GLX_X_VISUAL_TYPE_EXT 0x22 +#define GLX_TRANSPARENT_TYPE_EXT 0x23 +#define GLX_TRANSPARENT_INDEX_VALUE_EXT 0x24 +#define GLX_TRANSPARENT_RED_VALUE_EXT 0x25 +#define GLX_TRANSPARENT_GREEN_VALUE_EXT 0x26 +#define GLX_TRANSPARENT_BLUE_VALUE_EXT 0x27 +#define GLX_TRANSPARENT_ALPHA_VALUE_EXT 0x28 #define GLX_TRUE_COLOR_EXT 0x8002 #define GLX_DIRECT_COLOR_EXT 0x8003 #define GLX_PSEUDO_COLOR_EXT 0x8004 @@ -154,15 +184,26 @@ enum _GLX_CONFIGS { #define GLX_TRANSPARENT_INDEX_EXT 0x8009 +/* + * 42. GLX_EXT_visual_rating + */ +#define GLX_VISUAL_CAVEAT_EXT 0x20 +/*#define GLX_NONE_EXT 0x8000*/ +#define GLX_SLOW_VISUALEXT 0x8001 +#define GLX_NON_CONFORMANT_VISUAL_EXT 0x800D + + /* * Compile-time extension tests */ #define GLX_EXT_visual_info 1 +#define GLX_EXT_visual_rating 1 #define GLX_MESA_pixmap_colormap 1 #define GLX_MESA_release_buffers 1 #define GLX_MESA_copy_sub_buffer 1 +#define GLX_MESA_set_3dfx_mode 1 #define GLX_SGI_video_sync 1 -#define GLX_EXT_get_proc_address 1 +#define GLX_ARB_get_proc_address 1 @@ -174,6 +215,12 @@ enum _GLX_CONFIGS { typedef void * GLXContext; typedef XID GLXPixmap; typedef XID GLXDrawable; + /* GLX 1.3 and later */ + typedef XID GLXFBConfigID; + typedef XID GLXPfuffer; + typedef XID GLXWindow; + typedef XID GLXPbuffer; + typedef XID GLXFBConfig; #endif typedef XID GLXContextID; @@ -191,7 +238,7 @@ extern Bool glXMakeCurrent( Display *dpy, GLXDrawable drawable, GLXContext ctx); extern void glXCopyContext( Display *dpy, GLXContext src, GLXContext dst, - GLuint mask ); + unsigned long mask ); extern void glXSwapBuffers( Display *dpy, GLXDrawable drawable ); @@ -229,33 +276,84 @@ extern const char *glXQueryServerString( Display *dpy, int screen, int name ); extern const char *glXGetClientString( Display *dpy, int name ); -/* GLX_EXT_get_proc_address */ -extern GLfunction glXGetProcAddressEXT(const GLubyte *procName); +/* GLX 1.2 and later */ +extern Display *glXGetCurrentDisplay( void ); -/* - * Mesa GLX Extensions - */ +/* GLX 1.3 and later */ +extern GLXFBConfig glXChooseFBConfig( Display *dpy, int screen, + const int *attribList, int *nitems ); + +extern int glXGetFBConfigAttrib( Display *dpy, GLXFBConfig config, + int attribute, int *value ); -#ifdef GLX_MESA_pixmap_colormap +extern XVisualInfo *glXGetVisualFromFBConfig( Display *dpy, + GLXFBConfig config ); + +extern GLXWindow glXCreateWindow( Display *dpy, GLXFBConfig config, + Window win, const int *attribList ); + +extern void glXDestroyWindow( Display *dpy, GLXWindow window ); + +extern GLXPixmap glXCreatePixmap( Display *dpy, GLXFBConfig config, + Pixmap pixmap, const int *attribList ); + +extern void glXDestroyPixmap( Display *dpy, GLXPixmap pixmap ); + +extern GLXPbuffer glXCreatePbuffer( Display *dpy, GLXFBConfig config, + const int *attribList ); + +extern void glXDestroyPbuffer( Display *dpy, GLXPbuffer pbuf ); + +extern void glXQueryDrawable( Display *dpy, GLXDrawable draw, int attribute, + unsigned int *value ); + +extern GLXContext glXCreateNewContext( Display *dpy, GLXFBConfig config, + int renderType, GLXContext shareList, + Bool direct ); + +extern Bool glXMakeContextCurrent( Display *dpy, GLXDrawable draw, + GLXDrawable read, GLXContext ctx ); + +extern GLXDrawable glXGetCurrentReadDrawable( void ); + +extern int glXQueryContext( Display *dpy, GLXContext ctx, int attribute, + int *value ); + +extern void glXSelectEvent( Display *dpy, GLXDrawable drawable, + unsigned long mask ); + +extern void glXGetSelectedEvent( Display *dpy, GLXDrawable drawable, + unsigned long *mask ); + + + +/* GLX_MESA_pixmap_colormap */ extern GLXPixmap glXCreateGLXPixmapMESA( Display *dpy, XVisualInfo *visual, Pixmap pixmap, Colormap cmap ); -#endif -#ifdef GLX_MESA_release_buffers + +/* GLX_MESA_release_buffers */ extern Bool glXReleaseBuffersMESA( Display *dpy, GLXDrawable d ); -#endif -#ifdef GLX_MESA_copy_sub_buffer + +/* GLX_MESA_copy_sub_buffer */ extern void glXCopySubBufferMESA( Display *dpy, GLXDrawable drawable, int x, int y, int width, int height ); -#endif -#ifdef GLX_SGI_video_sync + +/* GLX_MESA_set_3dfx_mode */ +extern GLboolean glXSet3DfxModeMESA( GLint mode ); + + +/* GLX_SGI_video_sync */ extern int glXGetVideoSyncSGI(unsigned int *count); extern int glXWaitVideoSyncSGI(int divisor, int remainder, unsigned int *count); -#endif + + +/* GLX_ARB_get_proc_address */ +extern void (*glXGetProcAddressARB(const GLubyte *procName))();