117ca54c3Smrg#ifndef __GLX_glxtokens_h__
217ca54c3Smrg#define __GLX_glxtokens_h__
317ca54c3Smrg
417ca54c3Smrg/*
517ca54c3Smrg * SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008)
617ca54c3Smrg * Copyright (C) 1991-2000 Silicon Graphics, Inc. All Rights Reserved.
717ca54c3Smrg *
817ca54c3Smrg * Permission is hereby granted, free of charge, to any person obtaining a
917ca54c3Smrg * copy of this software and associated documentation files (the "Software"),
1017ca54c3Smrg * to deal in the Software without restriction, including without limitation
1117ca54c3Smrg * the rights to use, copy, modify, merge, publish, distribute, sublicense,
1217ca54c3Smrg * and/or sell copies of the Software, and to permit persons to whom the
1317ca54c3Smrg * Software is furnished to do so, subject to the following conditions:
1417ca54c3Smrg *
1517ca54c3Smrg * The above copyright notice including the dates of first publication and
1617ca54c3Smrg * either this permission notice or a reference to
1717ca54c3Smrg * http://oss.sgi.com/projects/FreeB/
1817ca54c3Smrg * shall be included in all copies or substantial portions of the Software.
1917ca54c3Smrg *
2017ca54c3Smrg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
2117ca54c3Smrg * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
2217ca54c3Smrg * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
2317ca54c3Smrg * SILICON GRAPHICS, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
2417ca54c3Smrg * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
2517ca54c3Smrg * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2617ca54c3Smrg * SOFTWARE.
2717ca54c3Smrg *
2817ca54c3Smrg * Except as contained in this notice, the name of Silicon Graphics, Inc.
2917ca54c3Smrg * shall not be used in advertising or otherwise to promote the sale, use or
3017ca54c3Smrg * other dealings in this Software without prior written authorization from
3117ca54c3Smrg * Silicon Graphics, Inc.
3217ca54c3Smrg */
3317ca54c3Smrg
3417ca54c3Smrg#ifdef __cplusplus
3517ca54c3Smrgextern "C" {
3617ca54c3Smrg#endif
3717ca54c3Smrg
3817ca54c3Smrg#define GLX_VERSION_1_1 1
3917ca54c3Smrg#define GLX_VERSION_1_2 1
4017ca54c3Smrg#define GLX_VERSION_1_3 1
4117ca54c3Smrg#define GLX_VERSION_1_4 1
4217ca54c3Smrg
4317ca54c3Smrg/*
4417ca54c3Smrg** Visual Config Attributes (glXGetConfig, glXGetFBConfigAttrib)
4517ca54c3Smrg*/
4617ca54c3Smrg#define GLX_USE_GL		1	/* support GLX rendering */
4717ca54c3Smrg#define GLX_BUFFER_SIZE		2	/* depth of the color buffer */
4817ca54c3Smrg#define GLX_LEVEL		3	/* level in plane stacking */
4917ca54c3Smrg#define GLX_RGBA		4	/* true if RGBA mode */
5017ca54c3Smrg#define GLX_DOUBLEBUFFER	5	/* double buffering supported */
5117ca54c3Smrg#define GLX_STEREO		6	/* stereo buffering supported */
5217ca54c3Smrg#define GLX_AUX_BUFFERS		7	/* number of aux buffers */
5317ca54c3Smrg#define GLX_RED_SIZE		8	/* number of red component bits */
5417ca54c3Smrg#define GLX_GREEN_SIZE		9	/* number of green component bits */
5517ca54c3Smrg#define GLX_BLUE_SIZE		10	/* number of blue component bits */
5617ca54c3Smrg#define GLX_ALPHA_SIZE		11	/* number of alpha component bits */
5717ca54c3Smrg#define GLX_DEPTH_SIZE		12	/* number of depth bits */
5817ca54c3Smrg#define GLX_STENCIL_SIZE	13	/* number of stencil bits */
5917ca54c3Smrg#define GLX_ACCUM_RED_SIZE	14	/* number of red accum bits */
6017ca54c3Smrg#define GLX_ACCUM_GREEN_SIZE	15	/* number of green accum bits */
6117ca54c3Smrg#define GLX_ACCUM_BLUE_SIZE	16	/* number of blue accum bits */
6217ca54c3Smrg#define GLX_ACCUM_ALPHA_SIZE	17	/* number of alpha accum bits */
6317ca54c3Smrg/*
6417ca54c3Smrg** FBConfig-specific attributes
6517ca54c3Smrg*/
6617ca54c3Smrg#define GLX_X_VISUAL_TYPE		0x22
6717ca54c3Smrg#define GLX_CONFIG_CAVEAT		0x20	/* Like visual_info VISUAL_CAVEAT_EXT */
6817ca54c3Smrg#define GLX_TRANSPARENT_TYPE		0x23
6917ca54c3Smrg#define GLX_TRANSPARENT_INDEX_VALUE	0x24
7017ca54c3Smrg#define GLX_TRANSPARENT_RED_VALUE	0x25
7117ca54c3Smrg#define GLX_TRANSPARENT_GREEN_VALUE	0x26
7217ca54c3Smrg#define GLX_TRANSPARENT_BLUE_VALUE	0x27
7317ca54c3Smrg#define GLX_TRANSPARENT_ALPHA_VALUE	0x28
7417ca54c3Smrg#define GLX_DRAWABLE_TYPE		0x8010
7517ca54c3Smrg#define GLX_RENDER_TYPE			0x8011
7617ca54c3Smrg#define GLX_X_RENDERABLE		0x8012
7717ca54c3Smrg#define GLX_FBCONFIG_ID			0x8013
7817ca54c3Smrg#define GLX_MAX_PBUFFER_WIDTH		0x8016
7917ca54c3Smrg#define GLX_MAX_PBUFFER_HEIGHT		0x8017
8017ca54c3Smrg#define GLX_MAX_PBUFFER_PIXELS		0x8018
8117ca54c3Smrg#define GLX_VISUAL_ID			0x800B
8217ca54c3Smrg
8317ca54c3Smrg/* FBConfigSGIX Attributes */
8417ca54c3Smrg#define GLX_OPTIMAL_PBUFFER_WIDTH_SGIX	0x8019
8517ca54c3Smrg#define GLX_OPTIMAL_PBUFFER_HEIGHT_SGIX	0x801A
8617ca54c3Smrg
8717ca54c3Smrg/*
8817ca54c3Smrg** Error return values from glXGetConfig.  Success is indicated by
8917ca54c3Smrg** a value of 0.
9017ca54c3Smrg*/
9117ca54c3Smrg#define GLX_BAD_SCREEN		1	/* screen # is bad */
9217ca54c3Smrg#define GLX_BAD_ATTRIBUTE	2	/* attribute to get is bad */
9317ca54c3Smrg#define GLX_NO_EXTENSION	3	/* no glx extension on server */
9417ca54c3Smrg#define GLX_BAD_VISUAL		4	/* visual # not known by GLX */
9517ca54c3Smrg#define GLX_BAD_CONTEXT		5	/* returned only by import_context EXT? */
9617ca54c3Smrg#define GLX_BAD_VALUE		6	/* returned only by glXSwapIntervalSGI? */
9717ca54c3Smrg#define GLX_BAD_ENUM		7	/* unused? */
9817ca54c3Smrg
9917ca54c3Smrg/* FBConfig attribute values */
10017ca54c3Smrg
10117ca54c3Smrg/*
10217ca54c3Smrg** Generic "don't care" value for glX ChooseFBConfig attributes (except
10317ca54c3Smrg** GLX_LEVEL)
10417ca54c3Smrg*/
10517ca54c3Smrg#define GLX_DONT_CARE			0xFFFFFFFF
10617ca54c3Smrg
10717ca54c3Smrg/* GLX_RENDER_TYPE bits */
10817ca54c3Smrg#define GLX_RGBA_BIT			0x00000001
10917ca54c3Smrg#define GLX_COLOR_INDEX_BIT		0x00000002
11017ca54c3Smrg#define GLX_RGBA_FLOAT_BIT_ARB          0x00000004
11117ca54c3Smrg#define GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT 0x00000008
11217ca54c3Smrg
11317ca54c3Smrg/* GLX_DRAWABLE_TYPE bits */
11417ca54c3Smrg#define GLX_WINDOW_BIT			0x00000001
11517ca54c3Smrg#define GLX_PIXMAP_BIT			0x00000002
11617ca54c3Smrg#define GLX_PBUFFER_BIT			0x00000004
11717ca54c3Smrg
11817ca54c3Smrg/* GLX_CONFIG_CAVEAT attribute values */
11917ca54c3Smrg#define GLX_NONE			0x8000
12017ca54c3Smrg#define GLX_SLOW_CONFIG			0x8001
12117ca54c3Smrg#define GLX_NON_CONFORMANT_CONFIG	0x800D
12217ca54c3Smrg
12317ca54c3Smrg/* GLX_X_VISUAL_TYPE attribute values */
12417ca54c3Smrg#define GLX_TRUE_COLOR			0x8002
12517ca54c3Smrg#define GLX_DIRECT_COLOR		0x8003
12617ca54c3Smrg#define GLX_PSEUDO_COLOR		0x8004
12717ca54c3Smrg#define GLX_STATIC_COLOR		0x8005
12817ca54c3Smrg#define GLX_GRAY_SCALE			0x8006
12917ca54c3Smrg#define GLX_STATIC_GRAY			0x8007
13017ca54c3Smrg
13117ca54c3Smrg/* GLX_TRANSPARENT_TYPE attribute values */
13217ca54c3Smrg/* #define GLX_NONE			   0x8000 */
13317ca54c3Smrg#define GLX_TRANSPARENT_RGB		0x8008
13417ca54c3Smrg#define GLX_TRANSPARENT_INDEX		0x8009
13517ca54c3Smrg
13617ca54c3Smrg/* glXCreateGLXPbuffer attributes */
13717ca54c3Smrg#define GLX_PRESERVED_CONTENTS		0x801B
13817ca54c3Smrg#define GLX_LARGEST_PBUFFER		0x801C
13917ca54c3Smrg#define GLX_PBUFFER_HEIGHT		0x8040	/* New for GLX 1.3 */
14017ca54c3Smrg#define GLX_PBUFFER_WIDTH		0x8041	/* New for GLX 1.3 */
14117ca54c3Smrg
14217ca54c3Smrg/* glXQueryGLXPBuffer attributes */
14317ca54c3Smrg#define GLX_WIDTH			0x801D
14417ca54c3Smrg#define GLX_HEIGHT			0x801E
14517ca54c3Smrg#define GLX_EVENT_MASK			0x801F
14617ca54c3Smrg
14717ca54c3Smrg/* glXCreateNewContext render_type attribute values */
14817ca54c3Smrg#define GLX_RGBA_TYPE			0x8014
14917ca54c3Smrg#define GLX_COLOR_INDEX_TYPE		0x8015
15017ca54c3Smrg
15117ca54c3Smrg/* glXQueryContext attributes */
15217ca54c3Smrg/* #define GLX_FBCONFIG_ID		  0x8013 */
15317ca54c3Smrg/* #define GLX_RENDER_TYPE		  0x8011 */
15417ca54c3Smrg#define GLX_SCREEN			0x800C
15517ca54c3Smrg
15617ca54c3Smrg/* glXSelectEvent event mask bits */
15717ca54c3Smrg#define GLX_PBUFFER_CLOBBER_MASK	0x08000000
15817ca54c3Smrg#define GLX_BUFFER_SWAP_COMPLETE_INTEL_MASK	0x04000000
15917ca54c3Smrg
16017ca54c3Smrg/* GLXPbufferClobberEvent event_type values */
16117ca54c3Smrg#define GLX_DAMAGED			0x8020
16217ca54c3Smrg#define GLX_SAVED			0x8021
16317ca54c3Smrg#define GLX_EXCHANGE_COMPLETE_INTEL	0x8180
16417ca54c3Smrg#define GLX_BLIT_COMPLETE_INTEL		0x8181
16517ca54c3Smrg#define GLX_FLIP_COMPLETE_INTEL		0x8182
16617ca54c3Smrg
16717ca54c3Smrg/* GLXPbufferClobberEvent draw_type values */
16817ca54c3Smrg#define GLX_WINDOW			0x8022
16917ca54c3Smrg#define GLX_PBUFFER			0x8023
17017ca54c3Smrg
17117ca54c3Smrg/* GLXPbufferClobberEvent buffer_mask bits */
17217ca54c3Smrg#define GLX_FRONT_LEFT_BUFFER_BIT	0x00000001
17317ca54c3Smrg#define GLX_FRONT_RIGHT_BUFFER_BIT	0x00000002
17417ca54c3Smrg#define GLX_BACK_LEFT_BUFFER_BIT	0x00000004
17517ca54c3Smrg#define GLX_BACK_RIGHT_BUFFER_BIT	0x00000008
17617ca54c3Smrg#define GLX_AUX_BUFFERS_BIT		0x00000010
17717ca54c3Smrg#define GLX_DEPTH_BUFFER_BIT		0x00000020
17817ca54c3Smrg#define GLX_STENCIL_BUFFER_BIT		0x00000040
17917ca54c3Smrg#define GLX_ACCUM_BUFFER_BIT		0x00000080
18017ca54c3Smrg
18117ca54c3Smrg/*
18217ca54c3Smrg** Extension return values from glXGetConfig.  These are also
18317ca54c3Smrg** accepted as parameter values for glXChooseVisual.
18417ca54c3Smrg*/
18517ca54c3Smrg
18617ca54c3Smrg#define GLX_X_VISUAL_TYPE_EXT	0x22	/* visual_info extension type */
18717ca54c3Smrg#define GLX_TRANSPARENT_TYPE_EXT 0x23	/* visual_info extension */
18817ca54c3Smrg#define GLX_TRANSPARENT_INDEX_VALUE_EXT 0x24	/* visual_info extension */
18917ca54c3Smrg#define GLX_TRANSPARENT_RED_VALUE_EXT	0x25	/* visual_info extension */
19017ca54c3Smrg#define GLX_TRANSPARENT_GREEN_VALUE_EXT 0x26	/* visual_info extension */
19117ca54c3Smrg#define GLX_TRANSPARENT_BLUE_VALUE_EXT	0x27	/* visual_info extension */
19217ca54c3Smrg#define GLX_TRANSPARENT_ALPHA_VALUE_EXT 0x28	/* visual_info extension */
19317ca54c3Smrg
19417ca54c3Smrg/* Property values for visual_type */
19517ca54c3Smrg#define GLX_TRUE_COLOR_EXT	0x8002
19617ca54c3Smrg#define GLX_DIRECT_COLOR_EXT	0x8003
19717ca54c3Smrg#define GLX_PSEUDO_COLOR_EXT	0x8004
19817ca54c3Smrg#define GLX_STATIC_COLOR_EXT	0x8005
19917ca54c3Smrg#define GLX_GRAY_SCALE_EXT	0x8006
20017ca54c3Smrg#define GLX_STATIC_GRAY_EXT	0x8007
20117ca54c3Smrg
20217ca54c3Smrg/* Property values for transparent pixel */
20317ca54c3Smrg#define GLX_NONE_EXT		0x8000
20417ca54c3Smrg#define GLX_TRANSPARENT_RGB_EXT		0x8008
20517ca54c3Smrg#define GLX_TRANSPARENT_INDEX_EXT	0x8009
20617ca54c3Smrg
20717ca54c3Smrg/* Property values for visual_rating */
20817ca54c3Smrg#define GLX_VISUAL_CAVEAT_EXT		0x20  /* visual_rating extension type */
20917ca54c3Smrg#define GLX_SLOW_VISUAL_EXT		0x8001
21017ca54c3Smrg#define GLX_NON_CONFORMANT_VISUAL_EXT	0x800D
21117ca54c3Smrg
21217ca54c3Smrg/* Property values for swap method (GLX_OML_swap_method) */
21317ca54c3Smrg#define GLX_SWAP_METHOD_OML                0x8060
21417ca54c3Smrg#define GLX_SWAP_EXCHANGE_OML              0x8061
21517ca54c3Smrg#define GLX_SWAP_COPY_OML                  0x8062
21617ca54c3Smrg#define GLX_SWAP_UNDEFINED_OML             0x8063
21717ca54c3Smrg
21817ca54c3Smrg/* Property values for multi-sampling */
21917ca54c3Smrg#define GLX_VISUAL_SELECT_GROUP_SGIX	0x8028	/* visuals grouped by select priority */
22017ca54c3Smrg
22117ca54c3Smrg/*
22217ca54c3Smrg** Names for attributes to glXGetClientString.
22317ca54c3Smrg*/
22417ca54c3Smrg#define GLX_VENDOR		0x1
22517ca54c3Smrg#define GLX_VERSION		0x2
22617ca54c3Smrg#define GLX_EXTENSIONS		0x3
22717ca54c3Smrg
22817ca54c3Smrg/*
22917ca54c3Smrg** Names for attributes to glXQueryContextInfoEXT.
23017ca54c3Smrg*/
23117ca54c3Smrg#define GLX_SHARE_CONTEXT_EXT	0x800A	/* id of share context */
23217ca54c3Smrg#define GLX_VISUAL_ID_EXT	0x800B	/* id of context's visual */
23317ca54c3Smrg#define GLX_SCREEN_EXT		0x800C	/* screen number */
23417ca54c3Smrg
23517ca54c3Smrg/*
23617ca54c3Smrg** GLX_EXT_texture_from_pixmap
23717ca54c3Smrg*/
23817ca54c3Smrg#define GLX_BIND_TO_TEXTURE_RGB_EXT        0x20D0
23917ca54c3Smrg#define GLX_BIND_TO_TEXTURE_RGBA_EXT       0x20D1
24017ca54c3Smrg#define GLX_BIND_TO_MIPMAP_TEXTURE_EXT     0x20D2
24117ca54c3Smrg#define GLX_BIND_TO_TEXTURE_TARGETS_EXT    0x20D3
24217ca54c3Smrg#define GLX_Y_INVERTED_EXT                 0x20D4
24317ca54c3Smrg
24417ca54c3Smrg#define GLX_TEXTURE_FORMAT_EXT             0x20D5
24517ca54c3Smrg#define GLX_TEXTURE_TARGET_EXT             0x20D6
24617ca54c3Smrg#define GLX_MIPMAP_TEXTURE_EXT             0x20D7
24717ca54c3Smrg
24817ca54c3Smrg#define GLX_TEXTURE_FORMAT_NONE_EXT        0x20D8
24917ca54c3Smrg#define GLX_TEXTURE_FORMAT_RGB_EXT         0x20D9
25017ca54c3Smrg#define GLX_TEXTURE_FORMAT_RGBA_EXT        0x20DA
25117ca54c3Smrg
25217ca54c3Smrg#define GLX_TEXTURE_1D_BIT_EXT             0x00000001
25317ca54c3Smrg#define GLX_TEXTURE_2D_BIT_EXT             0x00000002
25417ca54c3Smrg#define GLX_TEXTURE_RECTANGLE_BIT_EXT      0x00000004
25517ca54c3Smrg
25617ca54c3Smrg#define GLX_TEXTURE_1D_EXT                 0x20DB
25717ca54c3Smrg#define GLX_TEXTURE_2D_EXT                 0x20DC
25817ca54c3Smrg#define GLX_TEXTURE_RECTANGLE_EXT          0x20DD
25917ca54c3Smrg
26017ca54c3Smrg#define GLX_FRONT_LEFT_EXT                 0x20DE
26117ca54c3Smrg#define GLX_FRONT_RIGHT_EXT                0x20DF
26217ca54c3Smrg#define GLX_BACK_LEFT_EXT                  0x20E0
26317ca54c3Smrg#define GLX_BACK_RIGHT_EXT                 0x20E1
26417ca54c3Smrg#define GLX_FRONT_EXT                      GLX_FRONT_LEFT_EXT
26517ca54c3Smrg#define GLX_BACK_EXT                       GLX_BACK_LEFT_EXT
26617ca54c3Smrg#define GLX_AUX0_EXT                       0x20E2
267ea1d6981Smrg#define GLX_AUX1_EXT                       0x20E3
268ea1d6981Smrg#define GLX_AUX2_EXT                       0x20E4
269ea1d6981Smrg#define GLX_AUX3_EXT                       0x20E5
270ea1d6981Smrg#define GLX_AUX4_EXT                       0x20E6
271ea1d6981Smrg#define GLX_AUX5_EXT                       0x20E7
27217ca54c3Smrg#define GLX_AUX6_EXT                       0x20E8
273ea1d6981Smrg#define GLX_AUX7_EXT                       0x20E9
274ea1d6981Smrg#define GLX_AUX8_EXT                       0x20EA
27517ca54c3Smrg#define GLX_AUX9_EXT                       0x20EB
27617ca54c3Smrg
27717ca54c3Smrg/*
27817ca54c3Smrg * GLX 1.4 and later:
27917ca54c3Smrg */
28017ca54c3Smrg#define GLX_SAMPLE_BUFFERS_SGIS            100000
28117ca54c3Smrg#define GLX_SAMPLES_SGIS                   100001
28217ca54c3Smrg
28317ca54c3Smrg/*
28417ca54c3Smrg * GLX_EXT_framebuffer_SRGB
28517ca54c3Smrg */
28617ca54c3Smrg#define GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT   0x20B2
28717ca54c3Smrg
28817ca54c3Smrg/*
28917ca54c3Smrg * GLX_ARB_create_context
29017ca54c3Smrg * GLX_ARB_create_context_profile
29117ca54c3Smrg * GLX_EXT_create_context_es2_profile
29217ca54c3Smrg */
29317ca54c3Smrg#define GLX_CONTEXT_MAJOR_VERSION_ARB      0x2091
29417ca54c3Smrg#define GLX_CONTEXT_MINOR_VERSION_ARB      0x2092
29517ca54c3Smrg#define GLX_CONTEXT_FLAGS_ARB              0x2094
29617ca54c3Smrg#define GLX_CONTEXT_PROFILE_MASK_ARB       0x9126
29717ca54c3Smrg
29817ca54c3Smrg#define GLX_CONTEXT_DEBUG_BIT_ARB          0x0001
29917ca54c3Smrg#define GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB          0x0002
30017ca54c3Smrg
30117ca54c3Smrg#define GLX_CONTEXT_CORE_PROFILE_BIT_ARB   0x0001
30217ca54c3Smrg#define GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB   0x0002
30317ca54c3Smrg#define GLX_CONTEXT_ES2_PROFILE_BIT_EXT    0x0004
30417ca54c3Smrg
30517ca54c3Smrg/*
30617ca54c3Smrg * GLX_ARB_create_context_robustness
30717ca54c3Smrg */
30817ca54c3Smrg#define GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB  0x0004
30917ca54c3Smrg#define GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256
31017ca54c3Smrg#define GLX_NO_RESET_NOTIFICATION_ARB      0x8261
31117ca54c3Smrg#define GLX_LOSE_CONTEXT_ON_RESET_ARB      0x8252
31217ca54c3Smrg#ifdef __cplusplus
31317ca54c3Smrg}
31417ca54c3Smrg#endif
31517ca54c3Smrg
31617ca54c3Smrg#endif /* !__GLX_glxtokens_h__ */
317