1 /* HACK: Prevent both Mesa and SGI's broken headers from screwing us */ 2 #define __glxext_h_ 3 #define __glx_glxext_h_ 4 #include <GL/glx.h> 5 #undef __glx_glxext_h_ 6 #undef __glxext_h_ 7 8 #ifndef GLX_VERSION_1_3 9 #define AGLX_VERSION_1_3 10 #define GLX_VERSION_1_3 11 #define GLX_WINDOW_BIT 0x00000001 12 #define GLX_PIXMAP_BIT 0x00000002 13 #define GLX_PBUFFER_BIT 0x00000004 14 #define GLX_RGBA_BIT 0x00000001 15 #define GLX_COLOR_INDEX_BIT 0x00000002 16 #define GLX_PBUFFER_CLOBBER_MASK 0x08000000 17 #define GLX_FRONT_LEFT_BUFFER_BIT 0x00000001 18 #define GLX_FRONT_RIGHT_BUFFER_BIT 0x00000002 19 #define GLX_BACK_LEFT_BUFFER_BIT 0x00000004 20 #define GLX_BACK_RIGHT_BUFFER_BIT 0x00000008 21 #define GLX_AUX_BUFFERS_BIT 0x00000010 22 #define GLX_DEPTH_BUFFER_BIT 0x00000020 23 #define GLX_STENCIL_BUFFER_BIT 0x00000040 24 #define GLX_ACCUM_BUFFER_BIT 0x00000080 25 #define GLX_CONFIG_CAVEAT 0x20 26 #define GLX_X_VISUAL_TYPE 0x22 27 #define GLX_TRANSPARENT_TYPE 0x23 28 #define GLX_TRANSPARENT_INDEX_VALUE 0x24 29 #define GLX_TRANSPARENT_RED_VALUE 0x25 30 #define GLX_TRANSPARENT_GREEN_VALUE 0x26 31 #define GLX_TRANSPARENT_BLUE_VALUE 0x27 32 #define GLX_TRANSPARENT_ALPHA_VALUE 0x28 33 #define GLX_DONT_CARE 0xFFFFFFFF 34 #define GLX_NONE 0x8000 35 #define GLX_SLOW_CONFIG 0x8001 36 #define GLX_TRUE_COLOR 0x8002 37 #define GLX_DIRECT_COLOR 0x8003 38 #define GLX_PSEUDO_COLOR 0x8004 39 #define GLX_STATIC_COLOR 0x8005 40 #define GLX_GRAY_SCALE 0x8006 41 #define GLX_STATIC_GRAY 0x8007 42 #define GLX_TRANSPARENT_RGB 0x8008 43 #define GLX_TRANSPARENT_INDEX 0x8009 44 #define GLX_VISUAL_ID 0x800B 45 #define GLX_SCREEN 0x800C 46 #define GLX_NON_CONFORMANT_CONFIG 0x800D 47 #define GLX_DRAWABLE_TYPE 0x8010 48 #define GLX_RENDER_TYPE 0x8011 49 #define GLX_X_RENDERABLE 0x8012 50 #define GLX_FBCONFIG_ID 0x8013 51 #define GLX_RGBA_TYPE 0x8014 52 #define GLX_COLOR_INDEX_TYPE 0x8015 53 #define GLX_MAX_PBUFFER_WIDTH 0x8016 54 #define GLX_MAX_PBUFFER_HEIGHT 0x8017 55 #define GLX_MAX_PBUFFER_PIXELS 0x8018 56 #define GLX_PRESERVED_CONTENTS 0x801B 57 #define GLX_LARGEST_PBUFFER 0x801C 58 #define GLX_WIDTH 0x801D 59 #define GLX_HEIGHT 0x801E 60 #define GLX_EVENT_MASK 0x801F 61 #define GLX_DAMAGED 0x8020 62 #define GLX_SAVED 0x8021 63 #define GLX_WINDOW 0x8022 64 #define GLX_PBUFFER 0x8023 65 #define GLX_PBUFFER_HEIGHT 0x8040 66 #define GLX_PBUFFER_WIDTH 0x8041 67 #endif 68 69 #ifndef GLX_VERSION_1_4 70 #define AGLX_VERSION_1_4 71 #define GLX_VERSION_1_4 72 #define GLX_SAMPLE_BUFFERS 100000 73 #define GLX_SAMPLES 100001 74 #endif 75 76 #ifndef GLX_ARB_multisample 77 #define AGLX_ARB_multisample 78 #define GLX_ARB_multisample 79 #define GLX_SAMPLE_BUFFERS_ARB 100000 80 #define GLX_SAMPLES_ARB 100001 81 #endif 82 83 #ifndef GLX_SGIS_multisample 84 #define AGLX_SGIS_multisample 85 #define GLX_SGIS_multisample 86 #define GLX_SAMPLE_BUFFERS_SGIS 100000 87 #define GLX_SAMPLES_SGIS 100001 88 #endif 89 90 /* Fix for system headers that define GLX_VERSION_1_4 but do not define 91 * GLX_SAMPLES and GLX_SAMPLE_BUFFERS. */ 92 #ifndef GLX_SAMPLES 93 #define GLX_SAMPLE_BUFFERS 100000 94 #define GLX_SAMPLES 100001 95 #endif 96 97 #ifndef GLX_EXT_visual_info 98 #define AGLX_EXT_visual_info 99 #define GLX_EXT_visual_info 100 #define GLX_X_VISUAL_TYPE_EXT 0x22 101 #define GLX_TRANSPARENT_TYPE_EXT 0x23 102 #define GLX_TRANSPARENT_INDEX_VALUE_EXT 0x24 103 #define GLX_TRANSPARENT_RED_VALUE_EXT 0x25 104 #define GLX_TRANSPARENT_GREEN_VALUE_EXT 0x26 105 #define GLX_TRANSPARENT_BLUE_VALUE_EXT 0x27 106 #define GLX_TRANSPARENT_ALPHA_VALUE_EXT 0x28 107 #define GLX_NONE_EXT 0x8000 108 #define GLX_TRUE_COLOR_EXT 0x8002 109 #define GLX_DIRECT_COLOR_EXT 0x8003 110 #define GLX_PSEUDO_COLOR_EXT 0x8004 111 #define GLX_STATIC_COLOR_EXT 0x8005 112 #define GLX_GRAY_SCALE_EXT 0x8006 113 #define GLX_STATIC_GRAY_EXT 0x8007 114 #define GLX_TRANSPARENT_RGB_EXT 0x8008 115 #define GLX_TRANSPARENT_INDEX_EXT 0x8009 116 #endif 117 118 #ifndef GLX_EXT_visual_rating 119 #define AGLX_EXT_visual_rating 120 #define GLX_EXT_visual_rating 121 #define GLX_VISUAL_CAVEAT_EXT 0x20 122 #define GLX_SLOW_VISUAL_EXT 0x8001 123 #define GLX_NON_CONFORMANT_VISUAL_EXT 0x800D 124 /* GLX_NONE_EXT */ 125 #endif 126 127 #ifndef GLX_EXT_import_context 128 #define AGLX_EXT_import_context 129 #define GLX_EXT_import_context 130 #define GLX_SHARE_CONTEXT_EXT 0x800A 131 #define GLX_VISUAL_ID_EXT 0x800B 132 #define GLX_SCREEN_EXT 0x800C 133 #endif 134 135 #ifndef GLX_SGIX_fbconfig 136 #define AGLX_SGIX_fbconfig 137 #define GLX_SGIX_fbconfig 138 typedef XID GLXFBConfigIDSGIX; 139 typedef struct __GLXFBConfigRec *GLXFBConfigSGIX; 140 #define GLX_WINDOW_BIT_SGIX 0x00000001 141 #define GLX_PIXMAP_BIT_SGIX 0x00000002 142 #define GLX_RGBA_BIT_SGIX 0x00000001 143 #define GLX_COLOR_INDEX_BIT_SGIX 0x00000002 144 #define GLX_DRAWABLE_TYPE_SGIX 0x8010 145 #define GLX_RENDER_TYPE_SGIX 0x8011 146 #define GLX_X_RENDERABLE_SGIX 0x8012 147 #define GLX_FBCONFIG_ID_SGIX 0x8013 148 #define GLX_RGBA_TYPE_SGIX 0x8014 149 #define GLX_COLOR_INDEX_TYPE_SGIX 0x8015 150 /* GLX_SCREEN_EXT */ 151 #endif 152 153 #ifndef GLX_SGIX_pbuffer 154 #define AGLX_SGIX_pbuffer 155 #define GLX_SGIX_pbuffer 156 typedef XID GLXPbufferSGIX; 157 typedef struct { 158 int type; 159 unsigned long serial; /* # of last request processed by server */ 160 Bool send_event; /* true if this came for SendEvent request */ 161 Display *display; /* display the event was read from */ 162 GLXDrawable drawable; /* i.d. of Drawable */ 163 int event_type; /* GLX_DAMAGED_SGIX or GLX_SAVED_SGIX */ 164 int draw_type; /* GLX_WINDOW_SGIX or GLX_PBUFFER_SGIX */ 165 unsigned int mask; /* mask indicating which buffers are affected*/ 166 int x, y; 167 int width, height; 168 int count; /* if nonzero, at least this many more */ 169 } GLXBufferClobberEventSGIX; 170 #define GLX_PBUFFER_BIT_SGIX 0x00000004 171 #define GLX_BUFFER_CLOBBER_MASK_SGIX 0x08000000 172 #define GLX_FRONT_LEFT_BUFFER_BIT_SGIX 0x00000001 173 #define GLX_FRONT_RIGHT_BUFFER_BIT_SGIX 0x00000002 174 #define GLX_BACK_LEFT_BUFFER_BIT_SGIX 0x00000004 175 #define GLX_BACK_RIGHT_BUFFER_BIT_SGIX 0x00000008 176 #define GLX_AUX_BUFFERS_BIT_SGIX 0x00000010 177 #define GLX_DEPTH_BUFFER_BIT_SGIX 0x00000020 178 #define GLX_STENCIL_BUFFER_BIT_SGIX 0x00000040 179 #define GLX_ACCUM_BUFFER_BIT_SGIX 0x00000080 180 #define GLX_SAMPLE_BUFFERS_BIT_SGIX 0x00000100 181 #define GLX_MAX_PBUFFER_WIDTH_SGIX 0x8016 182 #define GLX_MAX_PBUFFER_HEIGHT_SGIX 0x8017 183 #define GLX_MAX_PBUFFER_PIXELS_SGIX 0x8018 184 #define GLX_OPTIMAL_PBUFFER_WIDTH_SGIX 0x8019 185 #define GLX_OPTIMAL_PBUFFER_HEIGHT_SGIX 0x801A 186 #define GLX_PRESERVED_CONTENTS_SGIX 0x801B 187 #define GLX_LARGEST_PBUFFER_SGIX 0x801C 188 #define GLX_WIDTH_SGIX 0x801D 189 #define GLX_HEIGHT_SGIX 0x801E 190 #define GLX_EVENT_MASK_SGIX 0x801F 191 #define GLX_DAMAGED_SGIX 0x8020 192 #define GLX_SAVED_SGIX 0x8021 193 #define GLX_WINDOW_SGIX 0x8022 194 #define GLX_PBUFFER_SGIX 0x8023 195 #endif 196 197 #ifndef GLX_SGIX_video_resize 198 #define AGLX_SGIX_video_resize 199 #define GLX_SGIX_video_resize 200 #define GLX_SYNC_FRAME_SGIX 0x00000000 201 #define GLX_SYNC_SWAP_SGIX 0x00000001 202 #endif 203 204 #ifndef GLX_SGIX_dmbuffer 205 #define AGLX_SGIX_dmbuffer 206 #define GLX_SGIX_dmbuffer 207 #define GLX_DIGITAL_MEDIA_PBUFFER_SGIX 0x8024 208 #endif 209 210 #ifndef GLX_SGIS_blended_overlay 211 #define AGLX_SGIS_blended_overlay 212 #define GLX_SGIS_blended_overlay 213 #define GLX_BLENDED_RGBA_SGIS 0x8025 214 #endif 215 216 #ifndef GLX_SGIS_shared_multisample 217 #define AGLX_SGIS_shared_multisample 218 #define GLX_SGIS_shared_multisample 219 #define GLX_MULTISAMPLE_SUB_RECT_WIDTH_SGIS 0x8026 220 #define GLX_MULTISAMPLE_SUB_RECT_HEIGHT_SGIS 0x8027 221 #endif 222 223 #ifndef GLX_3DFX_multisample 224 #define AGLX_3DFX_multisample 225 #define GLX_3DFX_multisample 226 #define GLX_SAMPLE_BUFFERS_3DFX 0x8050 227 #define GLX_SAMPLES_3DFX 0x8051 228 #endif 229 230 #ifndef GLX_MESA_set_3dfx_mode 231 #define AGLX_MESA_set_3dfx_mode 232 #define GLX_MESA_set_3dfx_mode 233 #define GLX_3DFX_WINDOW_MODE_MESA 0x1 234 #define GLX_3DFX_FULLSCREEN_MODE_MESA 0x2 235 #endif 236 237 #ifndef GLX_SGIX_visual_select_group 238 #define AGLX_SGIX_visual_select_group 239 #define GLX_SGIX_visual_select_group 240 #define GLX_VISUAL_SELECT_GROUP_SGIX 0x8028 241 #endif 242 243 #ifndef GLX_OML_swap_method 244 #define AGLX_OML_swap_method 245 #define GLX_OML_swap_method 246 #define GLX_SWAP_METHOD_OML 0x8060 247 #define GLX_SWAP_EXCHANGE_OML 0x8061 248 #define GLX_SWAP_COPY_OML 0x8062 249 #define GLX_SWAP_UNDEFINED_OML 0x8063 250 #endif 251 252 253 #ifndef GLX_ARB_get_proc_address 254 #define AGLX_ARB_get_proc_address 255 #define GLX_ARB_get_proc_address 256 typedef void (*__GLXextFuncPtr)(void); 257 #endif 258 259 #ifndef GLX_SGIX_video_source 260 #define AGLX_SGIX_video_source 261 #define GLX_SGIX_video_source 262 typedef XID GLXVideoSourceSGIX; 263 #endif 264 265 #ifndef GLX_SGI_video_sync 266 #define GLX_SGI_video_sync 267 #define AGLX_SGI_video_sync 268 #endif 269 270 #ifndef GLX_SGI_swap_control 271 #define GLX_SGI_swap_control 272 #define AGLX_SGI_swap_control 273 #endif 274 275 #ifndef GLX_SGI_make_current_read 276 #define GLX_SGI_make_current_read 277 #define AGLX_SGI_make_current_read 278 #endif 279 280 #ifndef GLX_SGI_cushion 281 #define GLX_SGI_cushion 282 #define AGLX_SGI_cushion 283 #endif 284 285 #ifndef GLX_SGIX_swap_group 286 #define GLX_SGIX_swap_group 287 #define AGLX_SGIX_swap_group 288 #endif 289 290 #ifndef GLX_SGIX_swap_barrier 291 #define GLX_SGIX_swap_barrier 292 #define AGLX_SGIX_swap_barrier 293 #endif 294 295 #ifndef GLX_SUN_get_transparent_index 296 #define GLX_SUN_get_transparent_index 297 #define AGLX_SUN_get_transparent_index 298 #endif 299 300 #ifndef GLX_MESA_copy_sub_buffer 301 #define GLX_MESA_copy_sub_buffer 302 #define AGLX_MESA_copy_sub_buffer 303 #endif 304 305 #ifndef GLX_MESA_pixmap_colormap 306 #define GLX_MESA_pixmap_colormap 307 #define AGLX_MESA_pixmap_colormap 308 #endif 309 310 #ifndef GLX_MESA_release_buffers 311 #define GLX_MESA_release_buffers 312 #define AGLX_MESA_release_buffers 313 #endif 314 315 #ifndef GLX_OML_sync_control 316 #define GLX_OML_sync_control 317 #define AGLX_OML_sync_control 318 #endif 319 320 #ifndef GLX_SGIX_hyperpipe 321 #define GLX_SGIX_hyperpipe 322 #define AGLX_SGIX_hyperpipe 323 #define GLX_HYPERPIPE_ID_SGIX 0x8030 324 #define GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX 80 325 #define GLX_HYPERPIPE_DISPLAY_PIPE_SGIX 0x00000001 326 #define GLX_HYPERPIPE_RENDER_PIPE_SGIX 0x00000002 327 #define GLX_PIPE_RECT_SGIX 0x00000001 328 #define GLX_PIPE_RECT_LIMITS_SGIX 0x00000002 329 #define GLX_HYPERPIPE_STEREO_SGIX 0x00000003 330 #define GLX_HYPERPIPE_PIXEL_AVERAGE_SGIX 0x00000004 331 #define GLX_BAD_HYPERPIPE_CONFIG_SGIX 91 332 #define GLX_BAD_HYPERPIPE_SGIX 92 333 334 typedef struct { 335 char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; 336 int networkId; 337 } GLXHyperpipeNetworkSGIX; 338 339 typedef struct { 340 char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; 341 int channel; 342 unsigned int participationType; 343 int timeSlice; 344 } GLXHyperpipeConfigSGIX; 345 346 typedef struct { 347 char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; 348 int srcXOrigin; 349 int srcYOrigin; 350 int srcWidth; 351 int srcHeight; 352 int destXOrigin; 353 int destYOrigin; 354 int destWidth; 355 int destHeight; 356 } GLXPipeRect; 357 358 typedef struct { 359 char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; 360 int XOrigin; 361 int YOrigin; 362 int maxHeight; 363 int maxWidth; 364 } GLXPipeRectLimits; 365 #endif 366 367 368 #ifndef GLX_MESA_agp_offset 369 #define GLX_MESA_agp_offset 370 #define AGLX_MESA_agp_offset 371 #endif 372 373 374 #ifndef GLX_ARB_fbconfig_float 375 #define GLX_ARB_fbconfig_float 376 #define AGLX_ARB_fbconfig_float 377 #define GLX_RGBA_FLOAT_TYPE 0x20B9 378 #define GLX_RGBA_FLOAT_BIT 0x00000004 379 #endif 380 381 #ifndef GLX_EXT_framebuffer_sRGB 382 #define GLX_EXT_framebuffer_sRGB 383 #define AGLX_EXT_framebuffer_sRGB 384 #define GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20B2 385 #endif 386 387 #ifndef GLX_EXT_fbconfig_packed_float 388 #define GLX_EXT_fbconfig_packed_float 389 #define AGLX_EXT_fbconfig_packed_float 390 #define GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT 0x20B1 391 #define GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT 0x00000008 392 #endif 393 394 #ifndef GLX_EXT_texture_from_pixmap 395 #define GLX_EXT_texture_from_pixmap 396 #define AGLX_EXT_texture_from_pixmap 397 #define GLX_BIND_TO_TEXTURE_RGB_EXT 0x20D0 398 #define GLX_BIND_TO_TEXTURE_RGBA_EXT 0x20D1 399 #define GLX_BIND_TO_MIPMAP_TEXTURE_EXT 0x20D2 400 #define GLX_BIND_TO_TEXTURE_TARGETS_EXT 0x20D3 401 #define GLX_Y_INVERTED_EXT 0x20D4 402 #define GLX_TEXTURE_FORMAT_EXT 0x20D5 403 #define GLX_TEXTURE_TARGET_EXT 0x20D6 404 #define GLX_MIPMAP_TEXTURE_EXT 0x20D7 405 #define GLX_TEXTURE_FORMAT_NONE_EXT 0x20D8 406 #define GLX_TEXTURE_FORMAT_RGB_EXT 0x20D9 407 #define GLX_TEXTURE_FORMAT_RGBA_EXT 0x20DA 408 #define GLX_TEXTURE_1D_BIT_EXT 0x00000001 409 #define GLX_TEXTURE_2D_BIT_EXT 0x00000002 410 #define GLX_TEXTURE_RECTANGLE_BIT_EXT 0x00000004 411 #define GLX_TEXTURE_1D_EXT 0x20DB 412 #define GLX_TEXTURE_2D_EXT 0x20DC 413 #define GLX_TEXTURE_RECTANGLE_EXT 0x20DD 414 #define GLX_FRONT_LEFT_EXT 0x20DE 415 #define GLX_FRONT_RIGHT_EXT 0x20DF 416 #define GLX_BACK_LEFT_EXT 0x20E0 417 #define GLX_BACK_RIGHT_EXT 0x20E1 418 #define GLX_FRONT_EXT GLX_FRONT_LEFT_EXT 419 #define GLX_BACK_EXT GLX_BACK_LEFT_EXT 420 #define GLX_AUX0_EXT 0x20E2 421 #define GLX_AUX1_EXT 0x20E3 422 #define GLX_AUX2_EXT 0x20E4 423 #define GLX_AUX3_EXT 0x20E5 424 #define GLX_AUX4_EXT 0x20E6 425 #define GLX_AUX5_EXT 0x20E7 426 #define GLX_AUX6_EXT 0x20E8 427 #define GLX_AUX7_EXT 0x20E9 428 #define GLX_AUX8_EXT 0x20EA 429 #define GLX_AUX9_EXT 0x20EB 430 #endif 431 432 #ifndef GLX_NV_present_video 433 #define GLX_NV_present_video 434 #define AGLX_NV_present_video 435 #define GLX_GLX_NUM_VIDEO_SLOTS_NV 0x20F0 436 #endif 437 438 #ifndef GLX_NV_video_out 439 #define GLX_NV_video_out 440 #define AGLX_NV_video_out 441 #define GLX_VIDEO_OUT_COLOR_NV 0x20C3 442 #define GLX_VIDEO_OUT_ALPHA_NV 0x20C4 443 #define GLX_VIDEO_OUT_DEPTH_NV 0x20C5 444 #define GLX_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6 445 #define GLX_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7 446 #define GLX_VIDEO_OUT_FRAME_NV 0x20C8 447 #define GLX_VIDEO_OUT_FIELD_1_NV 0x20C9 448 #define GLX_VIDEO_OUT_FIELD_2_NV 0x20CA 449 typedef unsigned int GLXVideoDeviceNV; 450 #endif 451 452 #ifndef GLX_NV_swap_group 453 #define GLX_NV_swap_group 454 #define AGLX_NV_swap_group 455 #endif 456