1 /// GLX bindings for D. Generated automatically by gldgen. 2 /// See https://github.com/rtbo/gldgen 3 module gfx.bindings.opengl.glx; 4 5 version(linux): 6 7 import core.stdc.config; 8 import core.stdc.stdint; 9 import gfx.bindings.opengl.loader : SymbolLoader; 10 import gfx.bindings.opengl.gl; 11 import X11.Xlib; 12 13 // Base Types 14 15 // Types for GLX_VERSION_1_0 16 alias GLXContext = __GLXcontextRec*; 17 alias GLXDrawable = XID; 18 alias GLXPixmap = XID; 19 20 // Types for GLX_VERSION_1_3 21 alias GLXContextID = XID; 22 alias GLXFBConfig = __GLXFBConfigRec*; 23 alias GLXWindow = XID; 24 alias GLXPbuffer = XID; 25 26 // Types for GLX_NV_video_capture 27 alias GLXVideoCaptureDeviceNV = XID; 28 29 // Types for GLX_NV_video_out 30 alias GLXVideoDeviceNV = uint; 31 32 // Types for GLX_SGIX_fbconfig 33 alias GLXFBConfigSGIX = __GLXFBConfigRec*; 34 35 // Types for GLX_SGIX_pbuffer 36 alias GLXPbufferSGIX = XID; 37 38 // Struct declarations 39 struct __GLXcontextRec; 40 struct __GLXFBConfigRec; 41 42 // Struct definitions 43 // Structs for GLX_EXT_stereo_tree 44 struct GLXStereoNotifyEventEXT { 45 int type; 46 c_ulong serial; 47 Bool send_event; 48 Display * display; 49 int extension; 50 int evtype; 51 GLXDrawable window; 52 Bool stereo_tree; 53 } 54 // Structs for GLX_SGIX_hyperpipe 55 struct GLXHyperpipeNetworkSGIX { 56 char[80] pipeName; 57 int networkId; 58 } 59 struct GLXHyperpipeConfigSGIX { 60 char[80] pipeName; 61 int channel; 62 uint participationType; 63 int timeSlice; 64 } 65 struct GLXPipeRect { 66 char[80] pipeName; 67 int srcXOrigin; 68 int srcYOrigin; 69 int srcWidth; 70 int srcHeight; 71 int destXOrigin; 72 int destYOrigin; 73 int destWidth; 74 int destHeight; 75 } 76 struct GLXPipeRectLimits { 77 char[80] pipeName; 78 int XOrigin; 79 int YOrigin; 80 int maxHeight; 81 int maxWidth; 82 } 83 84 // Function pointers 85 86 extern(C) nothrow @nogc { 87 88 // for GLX_VERSION_1_4 89 alias __GLXextFuncPtr = void function(); 90 } 91 92 93 // Constants for GLX_VERSION_1_0 94 enum GLX_EXTENSION_NAME = "GLX"; 95 enum GLX_PbufferClobber = 0; 96 enum GLX_BufferSwapComplete = 1; 97 enum __GLX_NUMBER_EVENTS = 17; 98 enum GLX_BAD_SCREEN = 1; 99 enum GLX_BAD_ATTRIBUTE = 2; 100 enum GLX_NO_EXTENSION = 3; 101 enum GLX_BAD_VISUAL = 4; 102 enum GLX_BAD_CONTEXT = 5; 103 enum GLX_BAD_VALUE = 6; 104 enum GLX_BAD_ENUM = 7; 105 enum GLX_USE_GL = 1; 106 enum GLX_BUFFER_SIZE = 2; 107 enum GLX_LEVEL = 3; 108 enum GLX_RGBA = 4; 109 enum GLX_DOUBLEBUFFER = 5; 110 enum GLX_STEREO = 6; 111 enum GLX_AUX_BUFFERS = 7; 112 enum GLX_RED_SIZE = 8; 113 enum GLX_GREEN_SIZE = 9; 114 enum GLX_BLUE_SIZE = 10; 115 enum GLX_ALPHA_SIZE = 11; 116 enum GLX_DEPTH_SIZE = 12; 117 enum GLX_STENCIL_SIZE = 13; 118 enum GLX_ACCUM_RED_SIZE = 14; 119 enum GLX_ACCUM_GREEN_SIZE = 15; 120 enum GLX_ACCUM_BLUE_SIZE = 16; 121 enum GLX_ACCUM_ALPHA_SIZE = 17; 122 123 // Constants for GLX_VERSION_1_1 124 enum GLX_VENDOR = 0x1; 125 enum GLX_VERSION = 0x2; 126 enum GLX_EXTENSIONS = 0x3; 127 128 // Constants for GLX_VERSION_1_3 129 enum GLX_WINDOW_BIT = 0x00000001; 130 enum GLX_PIXMAP_BIT = 0x00000002; 131 enum GLX_PBUFFER_BIT = 0x00000004; 132 enum GLX_RGBA_BIT = 0x00000001; 133 enum GLX_COLOR_INDEX_BIT = 0x00000002; 134 enum GLX_PBUFFER_CLOBBER_MASK = 0x08000000; 135 enum GLX_FRONT_LEFT_BUFFER_BIT = 0x00000001; 136 enum GLX_FRONT_RIGHT_BUFFER_BIT = 0x00000002; 137 enum GLX_BACK_LEFT_BUFFER_BIT = 0x00000004; 138 enum GLX_BACK_RIGHT_BUFFER_BIT = 0x00000008; 139 enum GLX_AUX_BUFFERS_BIT = 0x00000010; 140 enum GLX_DEPTH_BUFFER_BIT = 0x00000020; 141 enum GLX_STENCIL_BUFFER_BIT = 0x00000040; 142 enum GLX_ACCUM_BUFFER_BIT = 0x00000080; 143 enum GLX_CONFIG_CAVEAT = 0x20; 144 enum GLX_X_VISUAL_TYPE = 0x22; 145 enum GLX_TRANSPARENT_TYPE = 0x23; 146 enum GLX_TRANSPARENT_INDEX_VALUE = 0x24; 147 enum GLX_TRANSPARENT_RED_VALUE = 0x25; 148 enum GLX_TRANSPARENT_GREEN_VALUE = 0x26; 149 enum GLX_TRANSPARENT_BLUE_VALUE = 0x27; 150 enum GLX_TRANSPARENT_ALPHA_VALUE = 0x28; 151 enum GLX_DONT_CARE = 0xFFFFFFFF; 152 enum GLX_NONE = 0x8000; 153 enum GLX_SLOW_CONFIG = 0x8001; 154 enum GLX_TRUE_COLOR = 0x8002; 155 enum GLX_DIRECT_COLOR = 0x8003; 156 enum GLX_PSEUDO_COLOR = 0x8004; 157 enum GLX_STATIC_COLOR = 0x8005; 158 enum GLX_GRAY_SCALE = 0x8006; 159 enum GLX_STATIC_GRAY = 0x8007; 160 enum GLX_TRANSPARENT_RGB = 0x8008; 161 enum GLX_TRANSPARENT_INDEX = 0x8009; 162 enum GLX_VISUAL_ID = 0x800B; 163 enum GLX_SCREEN = 0x800C; 164 enum GLX_NON_CONFORMANT_CONFIG = 0x800D; 165 enum GLX_DRAWABLE_TYPE = 0x8010; 166 enum GLX_RENDER_TYPE = 0x8011; 167 enum GLX_X_RENDERABLE = 0x8012; 168 enum GLX_FBCONFIG_ID = 0x8013; 169 enum GLX_RGBA_TYPE = 0x8014; 170 enum GLX_COLOR_INDEX_TYPE = 0x8015; 171 enum GLX_MAX_PBUFFER_WIDTH = 0x8016; 172 enum GLX_MAX_PBUFFER_HEIGHT = 0x8017; 173 enum GLX_MAX_PBUFFER_PIXELS = 0x8018; 174 enum GLX_PRESERVED_CONTENTS = 0x801B; 175 enum GLX_LARGEST_PBUFFER = 0x801C; 176 enum GLX_WIDTH = 0x801D; 177 enum GLX_HEIGHT = 0x801E; 178 enum GLX_EVENT_MASK = 0x801F; 179 enum GLX_DAMAGED = 0x8020; 180 enum GLX_SAVED = 0x8021; 181 enum GLX_WINDOW = 0x8022; 182 enum GLX_PBUFFER = 0x8023; 183 enum GLX_PBUFFER_HEIGHT = 0x8040; 184 enum GLX_PBUFFER_WIDTH = 0x8041; 185 186 // Constants for GLX_VERSION_1_4 187 enum GLX_SAMPLE_BUFFERS = 100000; 188 enum GLX_SAMPLES = 100001; 189 190 // Constants for GLX_ARB_context_flush_control 191 enum GLX_CONTEXT_RELEASE_BEHAVIOR_ARB = 0x2097; 192 enum GLX_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB = 0; 193 enum GLX_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB = 0x2098; 194 195 // Constants for GLX_ARB_create_context 196 enum GLX_CONTEXT_DEBUG_BIT_ARB = 0x00000001; 197 enum GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB = 0x00000002; 198 enum GLX_CONTEXT_MAJOR_VERSION_ARB = 0x2091; 199 enum GLX_CONTEXT_MINOR_VERSION_ARB = 0x2092; 200 enum GLX_CONTEXT_FLAGS_ARB = 0x2094; 201 202 // Constants for GLX_ARB_create_context_no_error 203 enum GLX_CONTEXT_OPENGL_NO_ERROR_ARB = 0x31B3; 204 205 // Constants for GLX_ARB_create_context_profile 206 enum GLX_CONTEXT_CORE_PROFILE_BIT_ARB = 0x00000001; 207 enum GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB = 0x00000002; 208 enum GLX_CONTEXT_PROFILE_MASK_ARB = 0x9126; 209 210 // Constants for GLX_ARB_create_context_robustness 211 enum GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB = 0x00000004; 212 enum GLX_LOSE_CONTEXT_ON_RESET_ARB = 0x8252; 213 enum GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB = 0x8256; 214 enum GLX_NO_RESET_NOTIFICATION_ARB = 0x8261; 215 216 // Constants for GLX_ARB_fbconfig_float 217 enum GLX_RGBA_FLOAT_TYPE_ARB = 0x20B9; 218 enum GLX_RGBA_FLOAT_BIT_ARB = 0x00000004; 219 220 // Constants for GLX_ARB_framebuffer_sRGB 221 enum GLX_FRAMEBUFFER_SRGB_CAPABLE_ARB = 0x20B2; 222 223 // Constants for GLX_ARB_multisample 224 enum GLX_SAMPLE_BUFFERS_ARB = 100000; 225 enum GLX_SAMPLES_ARB = 100001; 226 227 // Constants for GLX_ARB_robustness_application_isolation 228 enum GLX_CONTEXT_RESET_ISOLATION_BIT_ARB = 0x00000008; 229 230 // Constants for GLX_ARB_vertex_buffer_object 231 enum GLX_CONTEXT_ALLOW_BUFFER_BYTE_ORDER_MISMATCH_ARB = 0x2095; 232 233 // Constants for GLX_3DFX_multisample 234 enum GLX_SAMPLE_BUFFERS_3DFX = 0x8050; 235 enum GLX_SAMPLES_3DFX = 0x8051; 236 237 // Constants for GLX_AMD_gpu_association 238 enum GLX_GPU_VENDOR_AMD = 0x1F00; 239 enum GLX_GPU_RENDERER_STRING_AMD = 0x1F01; 240 enum GLX_GPU_OPENGL_VERSION_STRING_AMD = 0x1F02; 241 enum GLX_GPU_FASTEST_TARGET_GPUS_AMD = 0x21A2; 242 enum GLX_GPU_RAM_AMD = 0x21A3; 243 enum GLX_GPU_CLOCK_AMD = 0x21A4; 244 enum GLX_GPU_NUM_PIPES_AMD = 0x21A5; 245 enum GLX_GPU_NUM_SIMD_AMD = 0x21A6; 246 enum GLX_GPU_NUM_RB_AMD = 0x21A7; 247 enum GLX_GPU_NUM_SPI_AMD = 0x21A8; 248 249 // Constants for GLX_EXT_buffer_age 250 enum GLX_BACK_BUFFER_AGE_EXT = 0x20F4; 251 252 // Constants for GLX_EXT_create_context_es2_profile 253 enum GLX_CONTEXT_ES2_PROFILE_BIT_EXT = 0x00000004; 254 255 // Constants for GLX_EXT_create_context_es_profile 256 enum GLX_CONTEXT_ES_PROFILE_BIT_EXT = 0x00000004; 257 258 // Constants for GLX_EXT_fbconfig_packed_float 259 enum GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT = 0x20B1; 260 enum GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT = 0x00000008; 261 262 // Constants for GLX_EXT_framebuffer_sRGB 263 enum GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT = 0x20B2; 264 265 // Constants for GLX_EXT_import_context 266 enum GLX_SHARE_CONTEXT_EXT = 0x800A; 267 enum GLX_VISUAL_ID_EXT = 0x800B; 268 enum GLX_SCREEN_EXT = 0x800C; 269 270 // Constants for GLX_EXT_libglvnd 271 enum GLX_VENDOR_NAMES_EXT = 0x20F6; 272 273 // Constants for GLX_EXT_stereo_tree 274 enum GLX_STEREO_TREE_EXT = 0x20F5; 275 enum GLX_STEREO_NOTIFY_MASK_EXT = 0x00000001; 276 enum GLX_STEREO_NOTIFY_EXT = 0x00000000; 277 278 // Constants for GLX_EXT_swap_control 279 enum GLX_SWAP_INTERVAL_EXT = 0x20F1; 280 enum GLX_MAX_SWAP_INTERVAL_EXT = 0x20F2; 281 282 // Constants for GLX_EXT_swap_control_tear 283 enum GLX_LATE_SWAPS_TEAR_EXT = 0x20F3; 284 285 // Constants for GLX_EXT_texture_from_pixmap 286 enum GLX_TEXTURE_1D_BIT_EXT = 0x00000001; 287 enum GLX_TEXTURE_2D_BIT_EXT = 0x00000002; 288 enum GLX_TEXTURE_RECTANGLE_BIT_EXT = 0x00000004; 289 enum GLX_BIND_TO_TEXTURE_RGB_EXT = 0x20D0; 290 enum GLX_BIND_TO_TEXTURE_RGBA_EXT = 0x20D1; 291 enum GLX_BIND_TO_MIPMAP_TEXTURE_EXT = 0x20D2; 292 enum GLX_BIND_TO_TEXTURE_TARGETS_EXT = 0x20D3; 293 enum GLX_Y_INVERTED_EXT = 0x20D4; 294 enum GLX_TEXTURE_FORMAT_EXT = 0x20D5; 295 enum GLX_TEXTURE_TARGET_EXT = 0x20D6; 296 enum GLX_MIPMAP_TEXTURE_EXT = 0x20D7; 297 enum GLX_TEXTURE_FORMAT_NONE_EXT = 0x20D8; 298 enum GLX_TEXTURE_FORMAT_RGB_EXT = 0x20D9; 299 enum GLX_TEXTURE_FORMAT_RGBA_EXT = 0x20DA; 300 enum GLX_TEXTURE_1D_EXT = 0x20DB; 301 enum GLX_TEXTURE_2D_EXT = 0x20DC; 302 enum GLX_TEXTURE_RECTANGLE_EXT = 0x20DD; 303 enum GLX_FRONT_LEFT_EXT = 0x20DE; 304 enum GLX_FRONT_RIGHT_EXT = 0x20DF; 305 enum GLX_BACK_LEFT_EXT = 0x20E0; 306 enum GLX_BACK_RIGHT_EXT = 0x20E1; 307 enum GLX_FRONT_EXT = 0x20DE; 308 enum GLX_BACK_EXT = 0x20E0; 309 enum GLX_AUX0_EXT = 0x20E2; 310 enum GLX_AUX1_EXT = 0x20E3; 311 enum GLX_AUX2_EXT = 0x20E4; 312 enum GLX_AUX3_EXT = 0x20E5; 313 enum GLX_AUX4_EXT = 0x20E6; 314 enum GLX_AUX5_EXT = 0x20E7; 315 enum GLX_AUX6_EXT = 0x20E8; 316 enum GLX_AUX7_EXT = 0x20E9; 317 enum GLX_AUX8_EXT = 0x20EA; 318 enum GLX_AUX9_EXT = 0x20EB; 319 320 // Constants for GLX_EXT_visual_info 321 enum GLX_X_VISUAL_TYPE_EXT = 0x22; 322 enum GLX_TRANSPARENT_TYPE_EXT = 0x23; 323 enum GLX_TRANSPARENT_INDEX_VALUE_EXT = 0x24; 324 enum GLX_TRANSPARENT_RED_VALUE_EXT = 0x25; 325 enum GLX_TRANSPARENT_GREEN_VALUE_EXT = 0x26; 326 enum GLX_TRANSPARENT_BLUE_VALUE_EXT = 0x27; 327 enum GLX_TRANSPARENT_ALPHA_VALUE_EXT = 0x28; 328 enum GLX_NONE_EXT = 0x8000; 329 enum GLX_TRUE_COLOR_EXT = 0x8002; 330 enum GLX_DIRECT_COLOR_EXT = 0x8003; 331 enum GLX_PSEUDO_COLOR_EXT = 0x8004; 332 enum GLX_STATIC_COLOR_EXT = 0x8005; 333 enum GLX_GRAY_SCALE_EXT = 0x8006; 334 enum GLX_STATIC_GRAY_EXT = 0x8007; 335 enum GLX_TRANSPARENT_RGB_EXT = 0x8008; 336 enum GLX_TRANSPARENT_INDEX_EXT = 0x8009; 337 338 // Constants for GLX_EXT_visual_rating 339 enum GLX_VISUAL_CAVEAT_EXT = 0x20; 340 enum GLX_SLOW_VISUAL_EXT = 0x8001; 341 enum GLX_NON_CONFORMANT_VISUAL_EXT = 0x800D; 342 343 // Constants for GLX_INTEL_swap_event 344 enum GLX_BUFFER_SWAP_COMPLETE_INTEL_MASK = 0x04000000; 345 enum GLX_EXCHANGE_COMPLETE_INTEL = 0x8180; 346 enum GLX_COPY_COMPLETE_INTEL = 0x8181; 347 enum GLX_FLIP_COMPLETE_INTEL = 0x8182; 348 349 // Constants for GLX_MESA_query_renderer 350 enum GLX_RENDERER_VENDOR_ID_MESA = 0x8183; 351 enum GLX_RENDERER_DEVICE_ID_MESA = 0x8184; 352 enum GLX_RENDERER_VERSION_MESA = 0x8185; 353 enum GLX_RENDERER_ACCELERATED_MESA = 0x8186; 354 enum GLX_RENDERER_VIDEO_MEMORY_MESA = 0x8187; 355 enum GLX_RENDERER_UNIFIED_MEMORY_ARCHITECTURE_MESA = 0x8188; 356 enum GLX_RENDERER_PREFERRED_PROFILE_MESA = 0x8189; 357 enum GLX_RENDERER_OPENGL_CORE_PROFILE_VERSION_MESA = 0x818A; 358 enum GLX_RENDERER_OPENGL_COMPATIBILITY_PROFILE_VERSION_MESA = 0x818B; 359 enum GLX_RENDERER_OPENGL_ES_PROFILE_VERSION_MESA = 0x818C; 360 enum GLX_RENDERER_OPENGL_ES2_PROFILE_VERSION_MESA = 0x818D; 361 362 // Constants for GLX_MESA_set_3dfx_mode 363 enum GLX_3DFX_WINDOW_MODE_MESA = 0x1; 364 enum GLX_3DFX_FULLSCREEN_MODE_MESA = 0x2; 365 366 // Constants for GLX_NV_float_buffer 367 enum GLX_FLOAT_COMPONENTS_NV = 0x20B0; 368 369 // Constants for GLX_NV_multisample_coverage 370 enum GLX_COVERAGE_SAMPLES_NV = 100001; 371 enum GLX_COLOR_SAMPLES_NV = 0x20B3; 372 373 // Constants for GLX_NV_present_video 374 enum GLX_NUM_VIDEO_SLOTS_NV = 0x20F0; 375 376 // Constants for GLX_NV_robustness_video_memory_purge 377 enum GLX_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV = 0x20F7; 378 379 // Constants for GLX_NV_video_capture 380 enum GLX_DEVICE_ID_NV = 0x20CD; 381 enum GLX_UNIQUE_ID_NV = 0x20CE; 382 enum GLX_NUM_VIDEO_CAPTURE_SLOTS_NV = 0x20CF; 383 384 // Constants for GLX_NV_video_out 385 enum GLX_VIDEO_OUT_COLOR_NV = 0x20C3; 386 enum GLX_VIDEO_OUT_ALPHA_NV = 0x20C4; 387 enum GLX_VIDEO_OUT_DEPTH_NV = 0x20C5; 388 enum GLX_VIDEO_OUT_COLOR_AND_ALPHA_NV = 0x20C6; 389 enum GLX_VIDEO_OUT_COLOR_AND_DEPTH_NV = 0x20C7; 390 enum GLX_VIDEO_OUT_FRAME_NV = 0x20C8; 391 enum GLX_VIDEO_OUT_FIELD_1_NV = 0x20C9; 392 enum GLX_VIDEO_OUT_FIELD_2_NV = 0x20CA; 393 enum GLX_VIDEO_OUT_STACKED_FIELDS_1_2_NV = 0x20CB; 394 enum GLX_VIDEO_OUT_STACKED_FIELDS_2_1_NV = 0x20CC; 395 396 // Constants for GLX_OML_swap_method 397 enum GLX_SWAP_METHOD_OML = 0x8060; 398 enum GLX_SWAP_EXCHANGE_OML = 0x8061; 399 enum GLX_SWAP_COPY_OML = 0x8062; 400 enum GLX_SWAP_UNDEFINED_OML = 0x8063; 401 402 // Constants for GLX_SGIS_blended_overlay 403 enum GLX_BLENDED_RGBA_SGIS = 0x8025; 404 405 // Constants for GLX_SGIS_multisample 406 enum GLX_SAMPLE_BUFFERS_SGIS = 100000; 407 enum GLX_SAMPLES_SGIS = 100001; 408 409 // Constants for GLX_SGIS_shared_multisample 410 enum GLX_MULTISAMPLE_SUB_RECT_WIDTH_SGIS = 0x8026; 411 enum GLX_MULTISAMPLE_SUB_RECT_HEIGHT_SGIS = 0x8027; 412 413 // Constants for GLX_SGIX_fbconfig 414 enum GLX_WINDOW_BIT_SGIX = 0x00000001; 415 enum GLX_PIXMAP_BIT_SGIX = 0x00000002; 416 enum GLX_RGBA_BIT_SGIX = 0x00000001; 417 enum GLX_COLOR_INDEX_BIT_SGIX = 0x00000002; 418 enum GLX_DRAWABLE_TYPE_SGIX = 0x8010; 419 enum GLX_RENDER_TYPE_SGIX = 0x8011; 420 enum GLX_X_RENDERABLE_SGIX = 0x8012; 421 enum GLX_FBCONFIG_ID_SGIX = 0x8013; 422 enum GLX_RGBA_TYPE_SGIX = 0x8014; 423 enum GLX_COLOR_INDEX_TYPE_SGIX = 0x8015; 424 425 // Constants for GLX_SGIX_hyperpipe 426 enum GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX = 80; 427 enum GLX_BAD_HYPERPIPE_CONFIG_SGIX = 91; 428 enum GLX_BAD_HYPERPIPE_SGIX = 92; 429 enum GLX_HYPERPIPE_DISPLAY_PIPE_SGIX = 0x00000001; 430 enum GLX_HYPERPIPE_RENDER_PIPE_SGIX = 0x00000002; 431 enum GLX_PIPE_RECT_SGIX = 0x00000001; 432 enum GLX_PIPE_RECT_LIMITS_SGIX = 0x00000002; 433 enum GLX_HYPERPIPE_STEREO_SGIX = 0x00000003; 434 enum GLX_HYPERPIPE_PIXEL_AVERAGE_SGIX = 0x00000004; 435 enum GLX_HYPERPIPE_ID_SGIX = 0x8030; 436 437 // Constants for GLX_SGIX_pbuffer 438 enum GLX_PBUFFER_BIT_SGIX = 0x00000004; 439 enum GLX_BUFFER_CLOBBER_MASK_SGIX = 0x08000000; 440 enum GLX_FRONT_LEFT_BUFFER_BIT_SGIX = 0x00000001; 441 enum GLX_FRONT_RIGHT_BUFFER_BIT_SGIX = 0x00000002; 442 enum GLX_BACK_LEFT_BUFFER_BIT_SGIX = 0x00000004; 443 enum GLX_BACK_RIGHT_BUFFER_BIT_SGIX = 0x00000008; 444 enum GLX_AUX_BUFFERS_BIT_SGIX = 0x00000010; 445 enum GLX_DEPTH_BUFFER_BIT_SGIX = 0x00000020; 446 enum GLX_STENCIL_BUFFER_BIT_SGIX = 0x00000040; 447 enum GLX_ACCUM_BUFFER_BIT_SGIX = 0x00000080; 448 enum GLX_SAMPLE_BUFFERS_BIT_SGIX = 0x00000100; 449 enum GLX_MAX_PBUFFER_WIDTH_SGIX = 0x8016; 450 enum GLX_MAX_PBUFFER_HEIGHT_SGIX = 0x8017; 451 enum GLX_MAX_PBUFFER_PIXELS_SGIX = 0x8018; 452 enum GLX_OPTIMAL_PBUFFER_WIDTH_SGIX = 0x8019; 453 enum GLX_OPTIMAL_PBUFFER_HEIGHT_SGIX = 0x801A; 454 enum GLX_PRESERVED_CONTENTS_SGIX = 0x801B; 455 enum GLX_LARGEST_PBUFFER_SGIX = 0x801C; 456 enum GLX_WIDTH_SGIX = 0x801D; 457 enum GLX_HEIGHT_SGIX = 0x801E; 458 enum GLX_EVENT_MASK_SGIX = 0x801F; 459 enum GLX_DAMAGED_SGIX = 0x8020; 460 enum GLX_SAVED_SGIX = 0x8021; 461 enum GLX_WINDOW_SGIX = 0x8022; 462 enum GLX_PBUFFER_SGIX = 0x8023; 463 464 // Constants for GLX_SGIX_video_resize 465 enum GLX_SYNC_FRAME_SGIX = 0x00000000; 466 enum GLX_SYNC_SWAP_SGIX = 0x00000001; 467 468 // Constants for GLX_SGIX_visual_select_group 469 enum GLX_VISUAL_SELECT_GROUP_SGIX = 0x8028; 470 471 // Command pointer aliases 472 473 extern(C) nothrow @nogc { 474 475 // Command pointers for GLX_VERSION_1_0 476 alias PFN_glXChooseVisual = XVisualInfo * function ( 477 Display* dpy, 478 int screen, 479 int* attribList, 480 ); 481 alias PFN_glXCreateContext = GLXContext function ( 482 Display* dpy, 483 XVisualInfo* vis, 484 GLXContext shareList, 485 Bool direct, 486 ); 487 alias PFN_glXDestroyContext = void function ( 488 Display* dpy, 489 GLXContext ctx, 490 ); 491 alias PFN_glXMakeCurrent = Bool function ( 492 Display* dpy, 493 GLXDrawable drawable, 494 GLXContext ctx, 495 ); 496 alias PFN_glXCopyContext = void function ( 497 Display* dpy, 498 GLXContext src, 499 GLXContext dst, 500 c_ulong mask, 501 ); 502 alias PFN_glXSwapBuffers = void function ( 503 Display* dpy, 504 GLXDrawable drawable, 505 ); 506 alias PFN_glXCreateGLXPixmap = GLXPixmap function ( 507 Display* dpy, 508 XVisualInfo* visual, 509 Pixmap pixmap, 510 ); 511 alias PFN_glXDestroyGLXPixmap = void function ( 512 Display* dpy, 513 GLXPixmap pixmap, 514 ); 515 alias PFN_glXQueryExtension = Bool function ( 516 Display* dpy, 517 int* errorb, 518 int* event, 519 ); 520 alias PFN_glXQueryVersion = Bool function ( 521 Display* dpy, 522 int* maj, 523 int* min, 524 ); 525 alias PFN_glXIsDirect = Bool function ( 526 Display* dpy, 527 GLXContext ctx, 528 ); 529 alias PFN_glXGetConfig = int function ( 530 Display* dpy, 531 XVisualInfo* visual, 532 int attrib, 533 int* value, 534 ); 535 alias PFN_glXGetCurrentContext = GLXContext function (); 536 alias PFN_glXGetCurrentDrawable = GLXDrawable function (); 537 alias PFN_glXWaitGL = void function (); 538 alias PFN_glXWaitX = void function (); 539 alias PFN_glXUseXFont = void function ( 540 Font font, 541 int first, 542 int count, 543 int list, 544 ); 545 546 // Command pointers for GLX_VERSION_1_1 547 alias PFN_glXQueryExtensionsString = const(char)* function ( 548 Display* dpy, 549 int screen, 550 ); 551 alias PFN_glXQueryServerString = const(char)* function ( 552 Display* dpy, 553 int screen, 554 int name, 555 ); 556 alias PFN_glXGetClientString = const(char)* function ( 557 Display* dpy, 558 int name, 559 ); 560 561 // Command pointers for GLX_VERSION_1_2 562 alias PFN_glXGetCurrentDisplay = Display * function (); 563 564 // Command pointers for GLX_VERSION_1_3 565 alias PFN_glXGetFBConfigs = GLXFBConfig * function ( 566 Display* dpy, 567 int screen, 568 int* nelements, 569 ); 570 alias PFN_glXChooseFBConfig = GLXFBConfig * function ( 571 Display* dpy, 572 int screen, 573 const(int)* attrib_list, 574 int* nelements, 575 ); 576 alias PFN_glXGetFBConfigAttrib = int function ( 577 Display* dpy, 578 GLXFBConfig config, 579 int attribute, 580 int* value, 581 ); 582 alias PFN_glXGetVisualFromFBConfig = XVisualInfo * function ( 583 Display* dpy, 584 GLXFBConfig config, 585 ); 586 alias PFN_glXCreateWindow = GLXWindow function ( 587 Display* dpy, 588 GLXFBConfig config, 589 Window win, 590 const(int)* attrib_list, 591 ); 592 alias PFN_glXDestroyWindow = void function ( 593 Display* dpy, 594 GLXWindow win, 595 ); 596 alias PFN_glXCreatePixmap = GLXPixmap function ( 597 Display* dpy, 598 GLXFBConfig config, 599 Pixmap pixmap, 600 const(int)* attrib_list, 601 ); 602 alias PFN_glXDestroyPixmap = void function ( 603 Display* dpy, 604 GLXPixmap pixmap, 605 ); 606 alias PFN_glXCreatePbuffer = GLXPbuffer function ( 607 Display* dpy, 608 GLXFBConfig config, 609 const(int)* attrib_list, 610 ); 611 alias PFN_glXDestroyPbuffer = void function ( 612 Display* dpy, 613 GLXPbuffer pbuf, 614 ); 615 alias PFN_glXQueryDrawable = void function ( 616 Display* dpy, 617 GLXDrawable draw, 618 int attribute, 619 uint* value, 620 ); 621 alias PFN_glXCreateNewContext = GLXContext function ( 622 Display* dpy, 623 GLXFBConfig config, 624 int render_type, 625 GLXContext share_list, 626 Bool direct, 627 ); 628 alias PFN_glXMakeContextCurrent = Bool function ( 629 Display* dpy, 630 GLXDrawable draw, 631 GLXDrawable read, 632 GLXContext ctx, 633 ); 634 alias PFN_glXGetCurrentReadDrawable = GLXDrawable function (); 635 alias PFN_glXQueryContext = int function ( 636 Display* dpy, 637 GLXContext ctx, 638 int attribute, 639 int* value, 640 ); 641 alias PFN_glXSelectEvent = void function ( 642 Display* dpy, 643 GLXDrawable draw, 644 c_ulong event_mask, 645 ); 646 alias PFN_glXGetSelectedEvent = void function ( 647 Display* dpy, 648 GLXDrawable draw, 649 c_ulong* event_mask, 650 ); 651 652 // Command pointers for GLX_VERSION_1_4 653 alias PFN_glXGetProcAddress = __GLXextFuncPtr function ( 654 const(GLubyte)* procName, 655 ); 656 657 // Command pointers for GLX_ARB_create_context 658 alias PFN_glXCreateContextAttribsARB = GLXContext function ( 659 Display* dpy, 660 GLXFBConfig config, 661 GLXContext share_context, 662 Bool direct, 663 const(int)* attrib_list, 664 ); 665 666 // Command pointers for GLX_ARB_get_proc_address 667 alias PFN_glXGetProcAddressARB = __GLXextFuncPtr function ( 668 const(GLubyte)* procName, 669 ); 670 671 // Command pointers for GLX_AMD_gpu_association 672 alias PFN_glXGetGPUIDsAMD = uint function ( 673 uint maxCount, 674 uint* ids, 675 ); 676 alias PFN_glXGetGPUInfoAMD = int function ( 677 uint id, 678 int property, 679 GLenum dataType, 680 uint size, 681 void* data, 682 ); 683 alias PFN_glXGetContextGPUIDAMD = uint function ( 684 GLXContext ctx, 685 ); 686 alias PFN_glXCreateAssociatedContextAMD = GLXContext function ( 687 uint id, 688 GLXContext share_list, 689 ); 690 alias PFN_glXCreateAssociatedContextAttribsAMD = GLXContext function ( 691 uint id, 692 GLXContext share_context, 693 const(int)* attribList, 694 ); 695 alias PFN_glXDeleteAssociatedContextAMD = Bool function ( 696 GLXContext ctx, 697 ); 698 alias PFN_glXMakeAssociatedContextCurrentAMD = Bool function ( 699 GLXContext ctx, 700 ); 701 alias PFN_glXGetCurrentAssociatedContextAMD = GLXContext function (); 702 alias PFN_glXBlitContextFramebufferAMD = void function ( 703 GLXContext dstCtx, 704 GLint srcX0, 705 GLint srcY0, 706 GLint srcX1, 707 GLint srcY1, 708 GLint dstX0, 709 GLint dstY0, 710 GLint dstX1, 711 GLint dstY1, 712 GLbitfield mask, 713 GLenum filter, 714 ); 715 716 // Command pointers for GLX_EXT_import_context 717 alias PFN_glXGetCurrentDisplayEXT = Display * function (); 718 alias PFN_glXQueryContextInfoEXT = int function ( 719 Display* dpy, 720 GLXContext context, 721 int attribute, 722 int* value, 723 ); 724 alias PFN_glXGetContextIDEXT = GLXContextID function ( 725 const GLXContext context, 726 ); 727 alias PFN_glXImportContextEXT = GLXContext function ( 728 Display* dpy, 729 GLXContextID contextID, 730 ); 731 alias PFN_glXFreeContextEXT = void function ( 732 Display* dpy, 733 GLXContext context, 734 ); 735 736 // Command pointers for GLX_EXT_swap_control 737 alias PFN_glXSwapIntervalEXT = void function ( 738 Display* dpy, 739 GLXDrawable drawable, 740 int interval, 741 ); 742 743 // Command pointers for GLX_EXT_texture_from_pixmap 744 alias PFN_glXBindTexImageEXT = void function ( 745 Display* dpy, 746 GLXDrawable drawable, 747 int buffer, 748 const(int)* attrib_list, 749 ); 750 alias PFN_glXReleaseTexImageEXT = void function ( 751 Display* dpy, 752 GLXDrawable drawable, 753 int buffer, 754 ); 755 756 // Command pointers for GLX_MESA_agp_offset 757 alias PFN_glXGetAGPOffsetMESA = uint function ( 758 const(void)* pointer, 759 ); 760 761 // Command pointers for GLX_MESA_copy_sub_buffer 762 alias PFN_glXCopySubBufferMESA = void function ( 763 Display* dpy, 764 GLXDrawable drawable, 765 int x, 766 int y, 767 int width, 768 int height, 769 ); 770 771 // Command pointers for GLX_MESA_pixmap_colormap 772 alias PFN_glXCreateGLXPixmapMESA = GLXPixmap function ( 773 Display* dpy, 774 XVisualInfo* visual, 775 Pixmap pixmap, 776 Colormap cmap, 777 ); 778 779 // Command pointers for GLX_MESA_query_renderer 780 alias PFN_glXQueryCurrentRendererIntegerMESA = Bool function ( 781 int attribute, 782 uint* value, 783 ); 784 alias PFN_glXQueryCurrentRendererStringMESA = const(char)* function ( 785 int attribute, 786 ); 787 alias PFN_glXQueryRendererIntegerMESA = Bool function ( 788 Display* dpy, 789 int screen, 790 int renderer, 791 int attribute, 792 uint* value, 793 ); 794 alias PFN_glXQueryRendererStringMESA = const(char)* function ( 795 Display* dpy, 796 int screen, 797 int renderer, 798 int attribute, 799 ); 800 801 // Command pointers for GLX_MESA_release_buffers 802 alias PFN_glXReleaseBuffersMESA = Bool function ( 803 Display* dpy, 804 GLXDrawable drawable, 805 ); 806 807 // Command pointers for GLX_MESA_set_3dfx_mode 808 alias PFN_glXSet3DfxModeMESA = Bool function ( 809 int mode, 810 ); 811 812 // Command pointers for GLX_MESA_swap_control 813 alias PFN_glXGetSwapIntervalMESA = int function (); 814 alias PFN_glXSwapIntervalMESA = int function ( 815 uint interval, 816 ); 817 818 // Command pointers for GLX_NV_copy_buffer 819 alias PFN_glXCopyBufferSubDataNV = void function ( 820 Display* dpy, 821 GLXContext readCtx, 822 GLXContext writeCtx, 823 GLenum readTarget, 824 GLenum writeTarget, 825 GLintptr readOffset, 826 GLintptr writeOffset, 827 GLsizeiptr size, 828 ); 829 alias PFN_glXNamedCopyBufferSubDataNV = void function ( 830 Display* dpy, 831 GLXContext readCtx, 832 GLXContext writeCtx, 833 GLuint readBuffer, 834 GLuint writeBuffer, 835 GLintptr readOffset, 836 GLintptr writeOffset, 837 GLsizeiptr size, 838 ); 839 840 // Command pointers for GLX_NV_copy_image 841 alias PFN_glXCopyImageSubDataNV = void function ( 842 Display* dpy, 843 GLXContext srcCtx, 844 GLuint srcName, 845 GLenum srcTarget, 846 GLint srcLevel, 847 GLint srcX, 848 GLint srcY, 849 GLint srcZ, 850 GLXContext dstCtx, 851 GLuint dstName, 852 GLenum dstTarget, 853 GLint dstLevel, 854 GLint dstX, 855 GLint dstY, 856 GLint dstZ, 857 GLsizei width, 858 GLsizei height, 859 GLsizei depth, 860 ); 861 862 // Command pointers for GLX_NV_delay_before_swap 863 alias PFN_glXDelayBeforeSwapNV = Bool function ( 864 Display* dpy, 865 GLXDrawable drawable, 866 GLfloat seconds, 867 ); 868 869 // Command pointers for GLX_NV_present_video 870 alias PFN_glXEnumerateVideoDevicesNV = uint * function ( 871 Display* dpy, 872 int screen, 873 int* nelements, 874 ); 875 alias PFN_glXBindVideoDeviceNV = int function ( 876 Display* dpy, 877 uint video_slot, 878 uint video_device, 879 const(int)* attrib_list, 880 ); 881 882 // Command pointers for GLX_NV_swap_group 883 alias PFN_glXJoinSwapGroupNV = Bool function ( 884 Display* dpy, 885 GLXDrawable drawable, 886 GLuint group, 887 ); 888 alias PFN_glXBindSwapBarrierNV = Bool function ( 889 Display* dpy, 890 GLuint group, 891 GLuint barrier, 892 ); 893 alias PFN_glXQuerySwapGroupNV = Bool function ( 894 Display* dpy, 895 GLXDrawable drawable, 896 GLuint* group, 897 GLuint* barrier, 898 ); 899 alias PFN_glXQueryMaxSwapGroupsNV = Bool function ( 900 Display* dpy, 901 int screen, 902 GLuint* maxGroups, 903 GLuint* maxBarriers, 904 ); 905 alias PFN_glXQueryFrameCountNV = Bool function ( 906 Display* dpy, 907 int screen, 908 GLuint* count, 909 ); 910 alias PFN_glXResetFrameCountNV = Bool function ( 911 Display* dpy, 912 int screen, 913 ); 914 915 // Command pointers for GLX_NV_video_capture 916 alias PFN_glXBindVideoCaptureDeviceNV = int function ( 917 Display* dpy, 918 uint video_capture_slot, 919 GLXVideoCaptureDeviceNV device, 920 ); 921 alias PFN_glXEnumerateVideoCaptureDevicesNV = GLXVideoCaptureDeviceNV * function ( 922 Display* dpy, 923 int screen, 924 int* nelements, 925 ); 926 alias PFN_glXLockVideoCaptureDeviceNV = void function ( 927 Display* dpy, 928 GLXVideoCaptureDeviceNV device, 929 ); 930 alias PFN_glXQueryVideoCaptureDeviceNV = int function ( 931 Display* dpy, 932 GLXVideoCaptureDeviceNV device, 933 int attribute, 934 int* value, 935 ); 936 alias PFN_glXReleaseVideoCaptureDeviceNV = void function ( 937 Display* dpy, 938 GLXVideoCaptureDeviceNV device, 939 ); 940 941 // Command pointers for GLX_NV_video_out 942 alias PFN_glXGetVideoDeviceNV = int function ( 943 Display* dpy, 944 int screen, 945 int numVideoDevices, 946 GLXVideoDeviceNV* pVideoDevice, 947 ); 948 alias PFN_glXReleaseVideoDeviceNV = int function ( 949 Display* dpy, 950 int screen, 951 GLXVideoDeviceNV VideoDevice, 952 ); 953 alias PFN_glXBindVideoImageNV = int function ( 954 Display* dpy, 955 GLXVideoDeviceNV VideoDevice, 956 GLXPbuffer pbuf, 957 int iVideoBuffer, 958 ); 959 alias PFN_glXReleaseVideoImageNV = int function ( 960 Display* dpy, 961 GLXPbuffer pbuf, 962 ); 963 alias PFN_glXSendPbufferToVideoNV = int function ( 964 Display* dpy, 965 GLXPbuffer pbuf, 966 int iBufferType, 967 c_ulong* pulCounterPbuffer, 968 GLboolean bBlock, 969 ); 970 alias PFN_glXGetVideoInfoNV = int function ( 971 Display* dpy, 972 int screen, 973 GLXVideoDeviceNV VideoDevice, 974 c_ulong* pulCounterOutputPbuffer, 975 c_ulong* pulCounterOutputVideo, 976 ); 977 978 // Command pointers for GLX_OML_sync_control 979 alias PFN_glXGetSyncValuesOML = Bool function ( 980 Display* dpy, 981 GLXDrawable drawable, 982 int64_t* ust, 983 int64_t* msc, 984 int64_t* sbc, 985 ); 986 alias PFN_glXGetMscRateOML = Bool function ( 987 Display* dpy, 988 GLXDrawable drawable, 989 int32_t* numerator, 990 int32_t* denominator, 991 ); 992 alias PFN_glXSwapBuffersMscOML = int64_t function ( 993 Display* dpy, 994 GLXDrawable drawable, 995 int64_t target_msc, 996 int64_t divisor, 997 int64_t remainder, 998 ); 999 alias PFN_glXWaitForMscOML = Bool function ( 1000 Display* dpy, 1001 GLXDrawable drawable, 1002 int64_t target_msc, 1003 int64_t divisor, 1004 int64_t remainder, 1005 int64_t* ust, 1006 int64_t* msc, 1007 int64_t* sbc, 1008 ); 1009 alias PFN_glXWaitForSbcOML = Bool function ( 1010 Display* dpy, 1011 GLXDrawable drawable, 1012 int64_t target_sbc, 1013 int64_t* ust, 1014 int64_t* msc, 1015 int64_t* sbc, 1016 ); 1017 1018 // Command pointers for GLX_SGIX_fbconfig 1019 alias PFN_glXGetFBConfigAttribSGIX = int function ( 1020 Display* dpy, 1021 GLXFBConfigSGIX config, 1022 int attribute, 1023 int* value, 1024 ); 1025 alias PFN_glXChooseFBConfigSGIX = GLXFBConfigSGIX * function ( 1026 Display* dpy, 1027 int screen, 1028 int* attrib_list, 1029 int* nelements, 1030 ); 1031 alias PFN_glXCreateGLXPixmapWithConfigSGIX = GLXPixmap function ( 1032 Display* dpy, 1033 GLXFBConfigSGIX config, 1034 Pixmap pixmap, 1035 ); 1036 alias PFN_glXCreateContextWithConfigSGIX = GLXContext function ( 1037 Display* dpy, 1038 GLXFBConfigSGIX config, 1039 int render_type, 1040 GLXContext share_list, 1041 Bool direct, 1042 ); 1043 alias PFN_glXGetVisualFromFBConfigSGIX = XVisualInfo * function ( 1044 Display* dpy, 1045 GLXFBConfigSGIX config, 1046 ); 1047 alias PFN_glXGetFBConfigFromVisualSGIX = GLXFBConfigSGIX function ( 1048 Display* dpy, 1049 XVisualInfo* vis, 1050 ); 1051 1052 // Command pointers for GLX_SGIX_hyperpipe 1053 alias PFN_glXQueryHyperpipeNetworkSGIX = GLXHyperpipeNetworkSGIX * function ( 1054 Display* dpy, 1055 int* npipes, 1056 ); 1057 alias PFN_glXHyperpipeConfigSGIX = int function ( 1058 Display* dpy, 1059 int networkId, 1060 int npipes, 1061 GLXHyperpipeConfigSGIX* cfg, 1062 int* hpId, 1063 ); 1064 alias PFN_glXQueryHyperpipeConfigSGIX = GLXHyperpipeConfigSGIX * function ( 1065 Display* dpy, 1066 int hpId, 1067 int* npipes, 1068 ); 1069 alias PFN_glXDestroyHyperpipeConfigSGIX = int function ( 1070 Display* dpy, 1071 int hpId, 1072 ); 1073 alias PFN_glXBindHyperpipeSGIX = int function ( 1074 Display* dpy, 1075 int hpId, 1076 ); 1077 alias PFN_glXQueryHyperpipeBestAttribSGIX = int function ( 1078 Display* dpy, 1079 int timeSlice, 1080 int attrib, 1081 int size, 1082 void* attribList, 1083 void* returnAttribList, 1084 ); 1085 alias PFN_glXHyperpipeAttribSGIX = int function ( 1086 Display* dpy, 1087 int timeSlice, 1088 int attrib, 1089 int size, 1090 void* attribList, 1091 ); 1092 alias PFN_glXQueryHyperpipeAttribSGIX = int function ( 1093 Display* dpy, 1094 int timeSlice, 1095 int attrib, 1096 int size, 1097 void* returnAttribList, 1098 ); 1099 1100 // Command pointers for GLX_SGIX_pbuffer 1101 alias PFN_glXCreateGLXPbufferSGIX = GLXPbufferSGIX function ( 1102 Display* dpy, 1103 GLXFBConfigSGIX config, 1104 uint width, 1105 uint height, 1106 int* attrib_list, 1107 ); 1108 alias PFN_glXDestroyGLXPbufferSGIX = void function ( 1109 Display* dpy, 1110 GLXPbufferSGIX pbuf, 1111 ); 1112 alias PFN_glXQueryGLXPbufferSGIX = int function ( 1113 Display* dpy, 1114 GLXPbufferSGIX pbuf, 1115 int attribute, 1116 uint* value, 1117 ); 1118 alias PFN_glXSelectEventSGIX = void function ( 1119 Display* dpy, 1120 GLXDrawable drawable, 1121 c_ulong mask, 1122 ); 1123 alias PFN_glXGetSelectedEventSGIX = void function ( 1124 Display* dpy, 1125 GLXDrawable drawable, 1126 c_ulong* mask, 1127 ); 1128 1129 // Command pointers for GLX_SGIX_swap_barrier 1130 alias PFN_glXBindSwapBarrierSGIX = void function ( 1131 Display* dpy, 1132 GLXDrawable drawable, 1133 int barrier, 1134 ); 1135 alias PFN_glXQueryMaxSwapBarriersSGIX = Bool function ( 1136 Display* dpy, 1137 int screen, 1138 int* max, 1139 ); 1140 1141 // Command pointers for GLX_SGIX_swap_group 1142 alias PFN_glXJoinSwapGroupSGIX = void function ( 1143 Display* dpy, 1144 GLXDrawable drawable, 1145 GLXDrawable member, 1146 ); 1147 1148 // Command pointers for GLX_SGIX_video_resize 1149 alias PFN_glXBindChannelToWindowSGIX = int function ( 1150 Display* display, 1151 int screen, 1152 int channel, 1153 Window window, 1154 ); 1155 alias PFN_glXChannelRectSGIX = int function ( 1156 Display* display, 1157 int screen, 1158 int channel, 1159 int x, 1160 int y, 1161 int w, 1162 int h, 1163 ); 1164 alias PFN_glXQueryChannelRectSGIX = int function ( 1165 Display* display, 1166 int screen, 1167 int channel, 1168 int* dx, 1169 int* dy, 1170 int* dw, 1171 int* dh, 1172 ); 1173 alias PFN_glXQueryChannelDeltasSGIX = int function ( 1174 Display* display, 1175 int screen, 1176 int channel, 1177 int* x, 1178 int* y, 1179 int* w, 1180 int* h, 1181 ); 1182 alias PFN_glXChannelRectSyncSGIX = int function ( 1183 Display* display, 1184 int screen, 1185 int channel, 1186 GLenum synctype, 1187 ); 1188 1189 // Command pointers for GLX_SGI_cushion 1190 alias PFN_glXCushionSGI = void function ( 1191 Display* dpy, 1192 Window window, 1193 float cushion, 1194 ); 1195 1196 // Command pointers for GLX_SGI_make_current_read 1197 alias PFN_glXMakeCurrentReadSGI = Bool function ( 1198 Display* dpy, 1199 GLXDrawable draw, 1200 GLXDrawable read, 1201 GLXContext ctx, 1202 ); 1203 alias PFN_glXGetCurrentReadDrawableSGI = GLXDrawable function (); 1204 1205 // Command pointers for GLX_SGI_swap_control 1206 alias PFN_glXSwapIntervalSGI = int function ( 1207 int interval, 1208 ); 1209 1210 // Command pointers for GLX_SGI_video_sync 1211 alias PFN_glXGetVideoSyncSGI = int function ( 1212 uint* count, 1213 ); 1214 alias PFN_glXWaitVideoSyncSGI = int function ( 1215 int divisor, 1216 int remainder, 1217 uint* count, 1218 ); 1219 1220 // Command pointers for GLX_SUN_get_transparent_index 1221 alias PFN_glXGetTransparentIndexSUN = Status function ( 1222 Display* dpy, 1223 Window overlay, 1224 Window underlay, 1225 long* pTransparentIndex, 1226 ); 1227 } 1228 1229 /// GlxVersion describes the version of GLX 1230 enum GlxVersion { 1231 glx10 = 10, 1232 glx11 = 11, 1233 glx12 = 12, 1234 glx13 = 13, 1235 glx14 = 14, 1236 } 1237 1238 /// GLX loader base class 1239 final class Glx { 1240 this(SymbolLoader loader) { 1241 1242 // GLX_VERSION_1_0 1243 _ChooseVisual = cast(PFN_glXChooseVisual)loadSymbol(loader, "glXChooseVisual", []); 1244 _CreateContext = cast(PFN_glXCreateContext)loadSymbol(loader, "glXCreateContext", []); 1245 _DestroyContext = cast(PFN_glXDestroyContext)loadSymbol(loader, "glXDestroyContext", []); 1246 _MakeCurrent = cast(PFN_glXMakeCurrent)loadSymbol(loader, "glXMakeCurrent", []); 1247 _CopyContext = cast(PFN_glXCopyContext)loadSymbol(loader, "glXCopyContext", []); 1248 _SwapBuffers = cast(PFN_glXSwapBuffers)loadSymbol(loader, "glXSwapBuffers", []); 1249 _CreateGLXPixmap = cast(PFN_glXCreateGLXPixmap)loadSymbol(loader, "glXCreateGLXPixmap", []); 1250 _DestroyGLXPixmap = cast(PFN_glXDestroyGLXPixmap)loadSymbol(loader, "glXDestroyGLXPixmap", []); 1251 _QueryExtension = cast(PFN_glXQueryExtension)loadSymbol(loader, "glXQueryExtension", []); 1252 _QueryVersion = cast(PFN_glXQueryVersion)loadSymbol(loader, "glXQueryVersion", []); 1253 _IsDirect = cast(PFN_glXIsDirect)loadSymbol(loader, "glXIsDirect", []); 1254 _GetConfig = cast(PFN_glXGetConfig)loadSymbol(loader, "glXGetConfig", []); 1255 _GetCurrentContext = cast(PFN_glXGetCurrentContext)loadSymbol(loader, "glXGetCurrentContext", []); 1256 _GetCurrentDrawable = cast(PFN_glXGetCurrentDrawable)loadSymbol(loader, "glXGetCurrentDrawable", []); 1257 _WaitGL = cast(PFN_glXWaitGL)loadSymbol(loader, "glXWaitGL", []); 1258 _WaitX = cast(PFN_glXWaitX)loadSymbol(loader, "glXWaitX", []); 1259 _UseXFont = cast(PFN_glXUseXFont)loadSymbol(loader, "glXUseXFont", []); 1260 1261 // GLX_VERSION_1_1 1262 _QueryExtensionsString = cast(PFN_glXQueryExtensionsString)loadSymbol(loader, "glXQueryExtensionsString", []); 1263 _QueryServerString = cast(PFN_glXQueryServerString)loadSymbol(loader, "glXQueryServerString", []); 1264 _GetClientString = cast(PFN_glXGetClientString)loadSymbol(loader, "glXGetClientString", []); 1265 1266 // GLX_VERSION_1_2 1267 _GetCurrentDisplay = cast(PFN_glXGetCurrentDisplay)loadSymbol(loader, "glXGetCurrentDisplay", []); 1268 1269 // GLX_VERSION_1_3 1270 _GetFBConfigs = cast(PFN_glXGetFBConfigs)loadSymbol(loader, "glXGetFBConfigs", []); 1271 _ChooseFBConfig = cast(PFN_glXChooseFBConfig)loadSymbol(loader, "glXChooseFBConfig", []); 1272 _GetFBConfigAttrib = cast(PFN_glXGetFBConfigAttrib)loadSymbol(loader, "glXGetFBConfigAttrib", []); 1273 _GetVisualFromFBConfig = cast(PFN_glXGetVisualFromFBConfig)loadSymbol(loader, "glXGetVisualFromFBConfig", []); 1274 _CreateWindow = cast(PFN_glXCreateWindow)loadSymbol(loader, "glXCreateWindow", []); 1275 _DestroyWindow = cast(PFN_glXDestroyWindow)loadSymbol(loader, "glXDestroyWindow", []); 1276 _CreatePixmap = cast(PFN_glXCreatePixmap)loadSymbol(loader, "glXCreatePixmap", []); 1277 _DestroyPixmap = cast(PFN_glXDestroyPixmap)loadSymbol(loader, "glXDestroyPixmap", []); 1278 _CreatePbuffer = cast(PFN_glXCreatePbuffer)loadSymbol(loader, "glXCreatePbuffer", []); 1279 _DestroyPbuffer = cast(PFN_glXDestroyPbuffer)loadSymbol(loader, "glXDestroyPbuffer", []); 1280 _QueryDrawable = cast(PFN_glXQueryDrawable)loadSymbol(loader, "glXQueryDrawable", []); 1281 _CreateNewContext = cast(PFN_glXCreateNewContext)loadSymbol(loader, "glXCreateNewContext", []); 1282 _MakeContextCurrent = cast(PFN_glXMakeContextCurrent)loadSymbol(loader, "glXMakeContextCurrent", []); 1283 _GetCurrentReadDrawable = cast(PFN_glXGetCurrentReadDrawable)loadSymbol(loader, "glXGetCurrentReadDrawable", []); 1284 _QueryContext = cast(PFN_glXQueryContext)loadSymbol(loader, "glXQueryContext", []); 1285 _SelectEvent = cast(PFN_glXSelectEvent)loadSymbol(loader, "glXSelectEvent", []); 1286 _GetSelectedEvent = cast(PFN_glXGetSelectedEvent)loadSymbol(loader, "glXGetSelectedEvent", []); 1287 1288 // GLX_VERSION_1_4 1289 _GetProcAddress = cast(PFN_glXGetProcAddress)loadSymbol(loader, "glXGetProcAddress", []); 1290 1291 // GLX_ARB_create_context, 1292 _CreateContextAttribsARB = cast(PFN_glXCreateContextAttribsARB)loadSymbol(loader, "glXCreateContextAttribsARB", []); 1293 1294 // GLX_ARB_get_proc_address, 1295 _GetProcAddressARB = cast(PFN_glXGetProcAddressARB)loadSymbol(loader, "glXGetProcAddressARB", []); 1296 1297 // GLX_AMD_gpu_association, 1298 _GetGPUIDsAMD = cast(PFN_glXGetGPUIDsAMD)loadSymbol(loader, "glXGetGPUIDsAMD", []); 1299 _GetGPUInfoAMD = cast(PFN_glXGetGPUInfoAMD)loadSymbol(loader, "glXGetGPUInfoAMD", []); 1300 _GetContextGPUIDAMD = cast(PFN_glXGetContextGPUIDAMD)loadSymbol(loader, "glXGetContextGPUIDAMD", []); 1301 _CreateAssociatedContextAMD = cast(PFN_glXCreateAssociatedContextAMD)loadSymbol(loader, "glXCreateAssociatedContextAMD", []); 1302 _CreateAssociatedContextAttribsAMD = cast(PFN_glXCreateAssociatedContextAttribsAMD)loadSymbol(loader, "glXCreateAssociatedContextAttribsAMD", []); 1303 _DeleteAssociatedContextAMD = cast(PFN_glXDeleteAssociatedContextAMD)loadSymbol(loader, "glXDeleteAssociatedContextAMD", []); 1304 _MakeAssociatedContextCurrentAMD = cast(PFN_glXMakeAssociatedContextCurrentAMD)loadSymbol(loader, "glXMakeAssociatedContextCurrentAMD", []); 1305 _GetCurrentAssociatedContextAMD = cast(PFN_glXGetCurrentAssociatedContextAMD)loadSymbol(loader, "glXGetCurrentAssociatedContextAMD", []); 1306 _BlitContextFramebufferAMD = cast(PFN_glXBlitContextFramebufferAMD)loadSymbol(loader, "glXBlitContextFramebufferAMD", []); 1307 1308 // GLX_EXT_import_context, 1309 _GetCurrentDisplayEXT = cast(PFN_glXGetCurrentDisplayEXT)loadSymbol(loader, "glXGetCurrentDisplayEXT", []); 1310 _QueryContextInfoEXT = cast(PFN_glXQueryContextInfoEXT)loadSymbol(loader, "glXQueryContextInfoEXT", []); 1311 _GetContextIDEXT = cast(PFN_glXGetContextIDEXT)loadSymbol(loader, "glXGetContextIDEXT", []); 1312 _ImportContextEXT = cast(PFN_glXImportContextEXT)loadSymbol(loader, "glXImportContextEXT", []); 1313 _FreeContextEXT = cast(PFN_glXFreeContextEXT)loadSymbol(loader, "glXFreeContextEXT", []); 1314 1315 // GLX_EXT_swap_control, 1316 _SwapIntervalEXT = cast(PFN_glXSwapIntervalEXT)loadSymbol(loader, "glXSwapIntervalEXT", []); 1317 1318 // GLX_EXT_texture_from_pixmap, 1319 _BindTexImageEXT = cast(PFN_glXBindTexImageEXT)loadSymbol(loader, "glXBindTexImageEXT", []); 1320 _ReleaseTexImageEXT = cast(PFN_glXReleaseTexImageEXT)loadSymbol(loader, "glXReleaseTexImageEXT", []); 1321 1322 // GLX_MESA_agp_offset, 1323 _GetAGPOffsetMESA = cast(PFN_glXGetAGPOffsetMESA)loadSymbol(loader, "glXGetAGPOffsetMESA", []); 1324 1325 // GLX_MESA_copy_sub_buffer, 1326 _CopySubBufferMESA = cast(PFN_glXCopySubBufferMESA)loadSymbol(loader, "glXCopySubBufferMESA", []); 1327 1328 // GLX_MESA_pixmap_colormap, 1329 _CreateGLXPixmapMESA = cast(PFN_glXCreateGLXPixmapMESA)loadSymbol(loader, "glXCreateGLXPixmapMESA", []); 1330 1331 // GLX_MESA_query_renderer, 1332 _QueryCurrentRendererIntegerMESA = cast(PFN_glXQueryCurrentRendererIntegerMESA)loadSymbol(loader, "glXQueryCurrentRendererIntegerMESA", []); 1333 _QueryCurrentRendererStringMESA = cast(PFN_glXQueryCurrentRendererStringMESA)loadSymbol(loader, "glXQueryCurrentRendererStringMESA", []); 1334 _QueryRendererIntegerMESA = cast(PFN_glXQueryRendererIntegerMESA)loadSymbol(loader, "glXQueryRendererIntegerMESA", []); 1335 _QueryRendererStringMESA = cast(PFN_glXQueryRendererStringMESA)loadSymbol(loader, "glXQueryRendererStringMESA", []); 1336 1337 // GLX_MESA_release_buffers, 1338 _ReleaseBuffersMESA = cast(PFN_glXReleaseBuffersMESA)loadSymbol(loader, "glXReleaseBuffersMESA", []); 1339 1340 // GLX_MESA_set_3dfx_mode, 1341 _Set3DfxModeMESA = cast(PFN_glXSet3DfxModeMESA)loadSymbol(loader, "glXSet3DfxModeMESA", []); 1342 1343 // GLX_MESA_swap_control, 1344 _GetSwapIntervalMESA = cast(PFN_glXGetSwapIntervalMESA)loadSymbol(loader, "glXGetSwapIntervalMESA", []); 1345 _SwapIntervalMESA = cast(PFN_glXSwapIntervalMESA)loadSymbol(loader, "glXSwapIntervalMESA", []); 1346 1347 // GLX_NV_copy_buffer, 1348 _CopyBufferSubDataNV = cast(PFN_glXCopyBufferSubDataNV)loadSymbol(loader, "glXCopyBufferSubDataNV", []); 1349 _NamedCopyBufferSubDataNV = cast(PFN_glXNamedCopyBufferSubDataNV)loadSymbol(loader, "glXNamedCopyBufferSubDataNV", []); 1350 1351 // GLX_NV_copy_image, 1352 _CopyImageSubDataNV = cast(PFN_glXCopyImageSubDataNV)loadSymbol(loader, "glXCopyImageSubDataNV", []); 1353 1354 // GLX_NV_delay_before_swap, 1355 _DelayBeforeSwapNV = cast(PFN_glXDelayBeforeSwapNV)loadSymbol(loader, "glXDelayBeforeSwapNV", []); 1356 1357 // GLX_NV_present_video, 1358 _EnumerateVideoDevicesNV = cast(PFN_glXEnumerateVideoDevicesNV)loadSymbol(loader, "glXEnumerateVideoDevicesNV", []); 1359 _BindVideoDeviceNV = cast(PFN_glXBindVideoDeviceNV)loadSymbol(loader, "glXBindVideoDeviceNV", []); 1360 1361 // GLX_NV_swap_group, 1362 _JoinSwapGroupNV = cast(PFN_glXJoinSwapGroupNV)loadSymbol(loader, "glXJoinSwapGroupNV", []); 1363 _BindSwapBarrierNV = cast(PFN_glXBindSwapBarrierNV)loadSymbol(loader, "glXBindSwapBarrierNV", []); 1364 _QuerySwapGroupNV = cast(PFN_glXQuerySwapGroupNV)loadSymbol(loader, "glXQuerySwapGroupNV", []); 1365 _QueryMaxSwapGroupsNV = cast(PFN_glXQueryMaxSwapGroupsNV)loadSymbol(loader, "glXQueryMaxSwapGroupsNV", []); 1366 _QueryFrameCountNV = cast(PFN_glXQueryFrameCountNV)loadSymbol(loader, "glXQueryFrameCountNV", []); 1367 _ResetFrameCountNV = cast(PFN_glXResetFrameCountNV)loadSymbol(loader, "glXResetFrameCountNV", []); 1368 1369 // GLX_NV_video_capture, 1370 _BindVideoCaptureDeviceNV = cast(PFN_glXBindVideoCaptureDeviceNV)loadSymbol(loader, "glXBindVideoCaptureDeviceNV", []); 1371 _EnumerateVideoCaptureDevicesNV = cast(PFN_glXEnumerateVideoCaptureDevicesNV)loadSymbol(loader, "glXEnumerateVideoCaptureDevicesNV", []); 1372 _LockVideoCaptureDeviceNV = cast(PFN_glXLockVideoCaptureDeviceNV)loadSymbol(loader, "glXLockVideoCaptureDeviceNV", []); 1373 _QueryVideoCaptureDeviceNV = cast(PFN_glXQueryVideoCaptureDeviceNV)loadSymbol(loader, "glXQueryVideoCaptureDeviceNV", []); 1374 _ReleaseVideoCaptureDeviceNV = cast(PFN_glXReleaseVideoCaptureDeviceNV)loadSymbol(loader, "glXReleaseVideoCaptureDeviceNV", []); 1375 1376 // GLX_NV_video_out, 1377 _GetVideoDeviceNV = cast(PFN_glXGetVideoDeviceNV)loadSymbol(loader, "glXGetVideoDeviceNV", []); 1378 _ReleaseVideoDeviceNV = cast(PFN_glXReleaseVideoDeviceNV)loadSymbol(loader, "glXReleaseVideoDeviceNV", []); 1379 _BindVideoImageNV = cast(PFN_glXBindVideoImageNV)loadSymbol(loader, "glXBindVideoImageNV", []); 1380 _ReleaseVideoImageNV = cast(PFN_glXReleaseVideoImageNV)loadSymbol(loader, "glXReleaseVideoImageNV", []); 1381 _SendPbufferToVideoNV = cast(PFN_glXSendPbufferToVideoNV)loadSymbol(loader, "glXSendPbufferToVideoNV", []); 1382 _GetVideoInfoNV = cast(PFN_glXGetVideoInfoNV)loadSymbol(loader, "glXGetVideoInfoNV", []); 1383 1384 // GLX_OML_sync_control, 1385 _GetSyncValuesOML = cast(PFN_glXGetSyncValuesOML)loadSymbol(loader, "glXGetSyncValuesOML", []); 1386 _GetMscRateOML = cast(PFN_glXGetMscRateOML)loadSymbol(loader, "glXGetMscRateOML", []); 1387 _SwapBuffersMscOML = cast(PFN_glXSwapBuffersMscOML)loadSymbol(loader, "glXSwapBuffersMscOML", []); 1388 _WaitForMscOML = cast(PFN_glXWaitForMscOML)loadSymbol(loader, "glXWaitForMscOML", []); 1389 _WaitForSbcOML = cast(PFN_glXWaitForSbcOML)loadSymbol(loader, "glXWaitForSbcOML", []); 1390 1391 // GLX_SGIX_fbconfig, 1392 _GetFBConfigAttribSGIX = cast(PFN_glXGetFBConfigAttribSGIX)loadSymbol(loader, "glXGetFBConfigAttribSGIX", []); 1393 _ChooseFBConfigSGIX = cast(PFN_glXChooseFBConfigSGIX)loadSymbol(loader, "glXChooseFBConfigSGIX", []); 1394 _CreateGLXPixmapWithConfigSGIX = cast(PFN_glXCreateGLXPixmapWithConfigSGIX)loadSymbol(loader, "glXCreateGLXPixmapWithConfigSGIX", []); 1395 _CreateContextWithConfigSGIX = cast(PFN_glXCreateContextWithConfigSGIX)loadSymbol(loader, "glXCreateContextWithConfigSGIX", []); 1396 _GetVisualFromFBConfigSGIX = cast(PFN_glXGetVisualFromFBConfigSGIX)loadSymbol(loader, "glXGetVisualFromFBConfigSGIX", []); 1397 _GetFBConfigFromVisualSGIX = cast(PFN_glXGetFBConfigFromVisualSGIX)loadSymbol(loader, "glXGetFBConfigFromVisualSGIX", []); 1398 1399 // GLX_SGIX_hyperpipe, 1400 _QueryHyperpipeNetworkSGIX = cast(PFN_glXQueryHyperpipeNetworkSGIX)loadSymbol(loader, "glXQueryHyperpipeNetworkSGIX", []); 1401 _HyperpipeConfigSGIX = cast(PFN_glXHyperpipeConfigSGIX)loadSymbol(loader, "glXHyperpipeConfigSGIX", []); 1402 _QueryHyperpipeConfigSGIX = cast(PFN_glXQueryHyperpipeConfigSGIX)loadSymbol(loader, "glXQueryHyperpipeConfigSGIX", []); 1403 _DestroyHyperpipeConfigSGIX = cast(PFN_glXDestroyHyperpipeConfigSGIX)loadSymbol(loader, "glXDestroyHyperpipeConfigSGIX", []); 1404 _BindHyperpipeSGIX = cast(PFN_glXBindHyperpipeSGIX)loadSymbol(loader, "glXBindHyperpipeSGIX", []); 1405 _QueryHyperpipeBestAttribSGIX = cast(PFN_glXQueryHyperpipeBestAttribSGIX)loadSymbol(loader, "glXQueryHyperpipeBestAttribSGIX", []); 1406 _HyperpipeAttribSGIX = cast(PFN_glXHyperpipeAttribSGIX)loadSymbol(loader, "glXHyperpipeAttribSGIX", []); 1407 _QueryHyperpipeAttribSGIX = cast(PFN_glXQueryHyperpipeAttribSGIX)loadSymbol(loader, "glXQueryHyperpipeAttribSGIX", []); 1408 1409 // GLX_SGIX_pbuffer, 1410 _CreateGLXPbufferSGIX = cast(PFN_glXCreateGLXPbufferSGIX)loadSymbol(loader, "glXCreateGLXPbufferSGIX", []); 1411 _DestroyGLXPbufferSGIX = cast(PFN_glXDestroyGLXPbufferSGIX)loadSymbol(loader, "glXDestroyGLXPbufferSGIX", []); 1412 _QueryGLXPbufferSGIX = cast(PFN_glXQueryGLXPbufferSGIX)loadSymbol(loader, "glXQueryGLXPbufferSGIX", []); 1413 _SelectEventSGIX = cast(PFN_glXSelectEventSGIX)loadSymbol(loader, "glXSelectEventSGIX", []); 1414 _GetSelectedEventSGIX = cast(PFN_glXGetSelectedEventSGIX)loadSymbol(loader, "glXGetSelectedEventSGIX", []); 1415 1416 // GLX_SGIX_swap_barrier, 1417 _BindSwapBarrierSGIX = cast(PFN_glXBindSwapBarrierSGIX)loadSymbol(loader, "glXBindSwapBarrierSGIX", []); 1418 _QueryMaxSwapBarriersSGIX = cast(PFN_glXQueryMaxSwapBarriersSGIX)loadSymbol(loader, "glXQueryMaxSwapBarriersSGIX", []); 1419 1420 // GLX_SGIX_swap_group, 1421 _JoinSwapGroupSGIX = cast(PFN_glXJoinSwapGroupSGIX)loadSymbol(loader, "glXJoinSwapGroupSGIX", []); 1422 1423 // GLX_SGIX_video_resize, 1424 _BindChannelToWindowSGIX = cast(PFN_glXBindChannelToWindowSGIX)loadSymbol(loader, "glXBindChannelToWindowSGIX", []); 1425 _ChannelRectSGIX = cast(PFN_glXChannelRectSGIX)loadSymbol(loader, "glXChannelRectSGIX", []); 1426 _QueryChannelRectSGIX = cast(PFN_glXQueryChannelRectSGIX)loadSymbol(loader, "glXQueryChannelRectSGIX", []); 1427 _QueryChannelDeltasSGIX = cast(PFN_glXQueryChannelDeltasSGIX)loadSymbol(loader, "glXQueryChannelDeltasSGIX", []); 1428 _ChannelRectSyncSGIX = cast(PFN_glXChannelRectSyncSGIX)loadSymbol(loader, "glXChannelRectSyncSGIX", []); 1429 1430 // GLX_SGI_cushion, 1431 _CushionSGI = cast(PFN_glXCushionSGI)loadSymbol(loader, "glXCushionSGI", []); 1432 1433 // GLX_SGI_make_current_read, 1434 _MakeCurrentReadSGI = cast(PFN_glXMakeCurrentReadSGI)loadSymbol(loader, "glXMakeCurrentReadSGI", []); 1435 _GetCurrentReadDrawableSGI = cast(PFN_glXGetCurrentReadDrawableSGI)loadSymbol(loader, "glXGetCurrentReadDrawableSGI", []); 1436 1437 // GLX_SGI_swap_control, 1438 _SwapIntervalSGI = cast(PFN_glXSwapIntervalSGI)loadSymbol(loader, "glXSwapIntervalSGI", []); 1439 1440 // GLX_SGI_video_sync, 1441 _GetVideoSyncSGI = cast(PFN_glXGetVideoSyncSGI)loadSymbol(loader, "glXGetVideoSyncSGI", []); 1442 _WaitVideoSyncSGI = cast(PFN_glXWaitVideoSyncSGI)loadSymbol(loader, "glXWaitVideoSyncSGI", []); 1443 1444 // GLX_SUN_get_transparent_index, 1445 _GetTransparentIndexSUN = cast(PFN_glXGetTransparentIndexSUN)loadSymbol(loader, "glXGetTransparentIndexSUN", []); 1446 } 1447 1448 private static void* loadSymbol(SymbolLoader loader, in string name, in string[] aliases) { 1449 void* sym = loader(name); 1450 if (sym) return sym; 1451 foreach (n; aliases) { 1452 sym = loader(n); 1453 if (sym) return sym; 1454 } 1455 return null; 1456 } 1457 1458 /// Commands for GLX_VERSION_1_0 1459 public XVisualInfo * ChooseVisual (Display* dpy, int screen, int* attribList) const { 1460 assert(_ChooseVisual !is null, "GLX command glXChooseVisual was not loaded"); 1461 return _ChooseVisual (dpy, screen, attribList); 1462 } 1463 /// ditto 1464 public GLXContext CreateContext (Display* dpy, XVisualInfo* vis, GLXContext shareList, Bool direct) const { 1465 assert(_CreateContext !is null, "GLX command glXCreateContext was not loaded"); 1466 return _CreateContext (dpy, vis, shareList, direct); 1467 } 1468 /// ditto 1469 public void DestroyContext (Display* dpy, GLXContext ctx) const { 1470 assert(_DestroyContext !is null, "GLX command glXDestroyContext was not loaded"); 1471 return _DestroyContext (dpy, ctx); 1472 } 1473 /// ditto 1474 public Bool MakeCurrent (Display* dpy, GLXDrawable drawable, GLXContext ctx) const { 1475 assert(_MakeCurrent !is null, "GLX command glXMakeCurrent was not loaded"); 1476 return _MakeCurrent (dpy, drawable, ctx); 1477 } 1478 /// ditto 1479 public void CopyContext (Display* dpy, GLXContext src, GLXContext dst, c_ulong mask) const { 1480 assert(_CopyContext !is null, "GLX command glXCopyContext was not loaded"); 1481 return _CopyContext (dpy, src, dst, mask); 1482 } 1483 /// ditto 1484 public void SwapBuffers (Display* dpy, GLXDrawable drawable) const { 1485 assert(_SwapBuffers !is null, "GLX command glXSwapBuffers was not loaded"); 1486 return _SwapBuffers (dpy, drawable); 1487 } 1488 /// ditto 1489 public GLXPixmap CreateGLXPixmap (Display* dpy, XVisualInfo* visual, Pixmap pixmap) const { 1490 assert(_CreateGLXPixmap !is null, "GLX command glXCreateGLXPixmap was not loaded"); 1491 return _CreateGLXPixmap (dpy, visual, pixmap); 1492 } 1493 /// ditto 1494 public void DestroyGLXPixmap (Display* dpy, GLXPixmap pixmap) const { 1495 assert(_DestroyGLXPixmap !is null, "GLX command glXDestroyGLXPixmap was not loaded"); 1496 return _DestroyGLXPixmap (dpy, pixmap); 1497 } 1498 /// ditto 1499 public Bool QueryExtension (Display* dpy, int* errorb, int* event) const { 1500 assert(_QueryExtension !is null, "GLX command glXQueryExtension was not loaded"); 1501 return _QueryExtension (dpy, errorb, event); 1502 } 1503 /// ditto 1504 public Bool QueryVersion (Display* dpy, int* maj, int* min) const { 1505 assert(_QueryVersion !is null, "GLX command glXQueryVersion was not loaded"); 1506 return _QueryVersion (dpy, maj, min); 1507 } 1508 /// ditto 1509 public Bool IsDirect (Display* dpy, GLXContext ctx) const { 1510 assert(_IsDirect !is null, "GLX command glXIsDirect was not loaded"); 1511 return _IsDirect (dpy, ctx); 1512 } 1513 /// ditto 1514 public int GetConfig (Display* dpy, XVisualInfo* visual, int attrib, int* value) const { 1515 assert(_GetConfig !is null, "GLX command glXGetConfig was not loaded"); 1516 return _GetConfig (dpy, visual, attrib, value); 1517 } 1518 /// ditto 1519 public GLXContext GetCurrentContext () const { 1520 assert(_GetCurrentContext !is null, "GLX command glXGetCurrentContext was not loaded"); 1521 return _GetCurrentContext (); 1522 } 1523 /// ditto 1524 public GLXDrawable GetCurrentDrawable () const { 1525 assert(_GetCurrentDrawable !is null, "GLX command glXGetCurrentDrawable was not loaded"); 1526 return _GetCurrentDrawable (); 1527 } 1528 /// ditto 1529 public void WaitGL () const { 1530 assert(_WaitGL !is null, "GLX command glXWaitGL was not loaded"); 1531 return _WaitGL (); 1532 } 1533 /// ditto 1534 public void WaitX () const { 1535 assert(_WaitX !is null, "GLX command glXWaitX was not loaded"); 1536 return _WaitX (); 1537 } 1538 /// ditto 1539 public void UseXFont (Font font, int first, int count, int list) const { 1540 assert(_UseXFont !is null, "GLX command glXUseXFont was not loaded"); 1541 return _UseXFont (font, first, count, list); 1542 } 1543 1544 /// Commands for GLX_VERSION_1_1 1545 public const(char)* QueryExtensionsString (Display* dpy, int screen) const { 1546 assert(_QueryExtensionsString !is null, "GLX command glXQueryExtensionsString was not loaded"); 1547 return _QueryExtensionsString (dpy, screen); 1548 } 1549 /// ditto 1550 public const(char)* QueryServerString (Display* dpy, int screen, int name) const { 1551 assert(_QueryServerString !is null, "GLX command glXQueryServerString was not loaded"); 1552 return _QueryServerString (dpy, screen, name); 1553 } 1554 /// ditto 1555 public const(char)* GetClientString (Display* dpy, int name) const { 1556 assert(_GetClientString !is null, "GLX command glXGetClientString was not loaded"); 1557 return _GetClientString (dpy, name); 1558 } 1559 1560 /// Commands for GLX_VERSION_1_2 1561 public Display * GetCurrentDisplay () const { 1562 assert(_GetCurrentDisplay !is null, "GLX command glXGetCurrentDisplay was not loaded"); 1563 return _GetCurrentDisplay (); 1564 } 1565 1566 /// Commands for GLX_VERSION_1_3 1567 public GLXFBConfig * GetFBConfigs (Display* dpy, int screen, int* nelements) const { 1568 assert(_GetFBConfigs !is null, "GLX command glXGetFBConfigs was not loaded"); 1569 return _GetFBConfigs (dpy, screen, nelements); 1570 } 1571 /// ditto 1572 public GLXFBConfig * ChooseFBConfig (Display* dpy, int screen, const(int)* attrib_list, int* nelements) const { 1573 assert(_ChooseFBConfig !is null, "GLX command glXChooseFBConfig was not loaded"); 1574 return _ChooseFBConfig (dpy, screen, attrib_list, nelements); 1575 } 1576 /// ditto 1577 public int GetFBConfigAttrib (Display* dpy, GLXFBConfig config, int attribute, int* value) const { 1578 assert(_GetFBConfigAttrib !is null, "GLX command glXGetFBConfigAttrib was not loaded"); 1579 return _GetFBConfigAttrib (dpy, config, attribute, value); 1580 } 1581 /// ditto 1582 public XVisualInfo * GetVisualFromFBConfig (Display* dpy, GLXFBConfig config) const { 1583 assert(_GetVisualFromFBConfig !is null, "GLX command glXGetVisualFromFBConfig was not loaded"); 1584 return _GetVisualFromFBConfig (dpy, config); 1585 } 1586 /// ditto 1587 public GLXWindow CreateWindow (Display* dpy, GLXFBConfig config, Window win, const(int)* attrib_list) const { 1588 assert(_CreateWindow !is null, "GLX command glXCreateWindow was not loaded"); 1589 return _CreateWindow (dpy, config, win, attrib_list); 1590 } 1591 /// ditto 1592 public void DestroyWindow (Display* dpy, GLXWindow win) const { 1593 assert(_DestroyWindow !is null, "GLX command glXDestroyWindow was not loaded"); 1594 return _DestroyWindow (dpy, win); 1595 } 1596 /// ditto 1597 public GLXPixmap CreatePixmap (Display* dpy, GLXFBConfig config, Pixmap pixmap, const(int)* attrib_list) const { 1598 assert(_CreatePixmap !is null, "GLX command glXCreatePixmap was not loaded"); 1599 return _CreatePixmap (dpy, config, pixmap, attrib_list); 1600 } 1601 /// ditto 1602 public void DestroyPixmap (Display* dpy, GLXPixmap pixmap) const { 1603 assert(_DestroyPixmap !is null, "GLX command glXDestroyPixmap was not loaded"); 1604 return _DestroyPixmap (dpy, pixmap); 1605 } 1606 /// ditto 1607 public GLXPbuffer CreatePbuffer (Display* dpy, GLXFBConfig config, const(int)* attrib_list) const { 1608 assert(_CreatePbuffer !is null, "GLX command glXCreatePbuffer was not loaded"); 1609 return _CreatePbuffer (dpy, config, attrib_list); 1610 } 1611 /// ditto 1612 public void DestroyPbuffer (Display* dpy, GLXPbuffer pbuf) const { 1613 assert(_DestroyPbuffer !is null, "GLX command glXDestroyPbuffer was not loaded"); 1614 return _DestroyPbuffer (dpy, pbuf); 1615 } 1616 /// ditto 1617 public void QueryDrawable (Display* dpy, GLXDrawable draw, int attribute, uint* value) const { 1618 assert(_QueryDrawable !is null, "GLX command glXQueryDrawable was not loaded"); 1619 return _QueryDrawable (dpy, draw, attribute, value); 1620 } 1621 /// ditto 1622 public GLXContext CreateNewContext (Display* dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct) const { 1623 assert(_CreateNewContext !is null, "GLX command glXCreateNewContext was not loaded"); 1624 return _CreateNewContext (dpy, config, render_type, share_list, direct); 1625 } 1626 /// ditto 1627 public Bool MakeContextCurrent (Display* dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx) const { 1628 assert(_MakeContextCurrent !is null, "GLX command glXMakeContextCurrent was not loaded"); 1629 return _MakeContextCurrent (dpy, draw, read, ctx); 1630 } 1631 /// ditto 1632 public GLXDrawable GetCurrentReadDrawable () const { 1633 assert(_GetCurrentReadDrawable !is null, "GLX command glXGetCurrentReadDrawable was not loaded"); 1634 return _GetCurrentReadDrawable (); 1635 } 1636 /// ditto 1637 public int QueryContext (Display* dpy, GLXContext ctx, int attribute, int* value) const { 1638 assert(_QueryContext !is null, "GLX command glXQueryContext was not loaded"); 1639 return _QueryContext (dpy, ctx, attribute, value); 1640 } 1641 /// ditto 1642 public void SelectEvent (Display* dpy, GLXDrawable draw, c_ulong event_mask) const { 1643 assert(_SelectEvent !is null, "GLX command glXSelectEvent was not loaded"); 1644 return _SelectEvent (dpy, draw, event_mask); 1645 } 1646 /// ditto 1647 public void GetSelectedEvent (Display* dpy, GLXDrawable draw, c_ulong* event_mask) const { 1648 assert(_GetSelectedEvent !is null, "GLX command glXGetSelectedEvent was not loaded"); 1649 return _GetSelectedEvent (dpy, draw, event_mask); 1650 } 1651 1652 /// Commands for GLX_VERSION_1_4 1653 public __GLXextFuncPtr GetProcAddress (const(GLubyte)* procName) const { 1654 assert(_GetProcAddress !is null, "GLX command glXGetProcAddress was not loaded"); 1655 return _GetProcAddress (procName); 1656 } 1657 1658 /// Commands for GLX_ARB_create_context 1659 public GLXContext CreateContextAttribsARB (Display* dpy, GLXFBConfig config, GLXContext share_context, Bool direct, const(int)* attrib_list) const { 1660 assert(_CreateContextAttribsARB !is null, "GLX command glXCreateContextAttribsARB was not loaded"); 1661 return _CreateContextAttribsARB (dpy, config, share_context, direct, attrib_list); 1662 } 1663 1664 /// Commands for GLX_ARB_get_proc_address 1665 public __GLXextFuncPtr GetProcAddressARB (const(GLubyte)* procName) const { 1666 assert(_GetProcAddressARB !is null, "GLX command glXGetProcAddressARB was not loaded"); 1667 return _GetProcAddressARB (procName); 1668 } 1669 1670 /// Commands for GLX_AMD_gpu_association 1671 public uint GetGPUIDsAMD (uint maxCount, uint* ids) const { 1672 assert(_GetGPUIDsAMD !is null, "GLX command glXGetGPUIDsAMD was not loaded"); 1673 return _GetGPUIDsAMD (maxCount, ids); 1674 } 1675 /// ditto 1676 public int GetGPUInfoAMD (uint id, int property, GLenum dataType, uint size, void* data) const { 1677 assert(_GetGPUInfoAMD !is null, "GLX command glXGetGPUInfoAMD was not loaded"); 1678 return _GetGPUInfoAMD (id, property, dataType, size, data); 1679 } 1680 /// ditto 1681 public uint GetContextGPUIDAMD (GLXContext ctx) const { 1682 assert(_GetContextGPUIDAMD !is null, "GLX command glXGetContextGPUIDAMD was not loaded"); 1683 return _GetContextGPUIDAMD (ctx); 1684 } 1685 /// ditto 1686 public GLXContext CreateAssociatedContextAMD (uint id, GLXContext share_list) const { 1687 assert(_CreateAssociatedContextAMD !is null, "GLX command glXCreateAssociatedContextAMD was not loaded"); 1688 return _CreateAssociatedContextAMD (id, share_list); 1689 } 1690 /// ditto 1691 public GLXContext CreateAssociatedContextAttribsAMD (uint id, GLXContext share_context, const(int)* attribList) const { 1692 assert(_CreateAssociatedContextAttribsAMD !is null, "GLX command glXCreateAssociatedContextAttribsAMD was not loaded"); 1693 return _CreateAssociatedContextAttribsAMD (id, share_context, attribList); 1694 } 1695 /// ditto 1696 public Bool DeleteAssociatedContextAMD (GLXContext ctx) const { 1697 assert(_DeleteAssociatedContextAMD !is null, "GLX command glXDeleteAssociatedContextAMD was not loaded"); 1698 return _DeleteAssociatedContextAMD (ctx); 1699 } 1700 /// ditto 1701 public Bool MakeAssociatedContextCurrentAMD (GLXContext ctx) const { 1702 assert(_MakeAssociatedContextCurrentAMD !is null, "GLX command glXMakeAssociatedContextCurrentAMD was not loaded"); 1703 return _MakeAssociatedContextCurrentAMD (ctx); 1704 } 1705 /// ditto 1706 public GLXContext GetCurrentAssociatedContextAMD () const { 1707 assert(_GetCurrentAssociatedContextAMD !is null, "GLX command glXGetCurrentAssociatedContextAMD was not loaded"); 1708 return _GetCurrentAssociatedContextAMD (); 1709 } 1710 /// ditto 1711 public void BlitContextFramebufferAMD (GLXContext dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter) const { 1712 assert(_BlitContextFramebufferAMD !is null, "GLX command glXBlitContextFramebufferAMD was not loaded"); 1713 return _BlitContextFramebufferAMD (dstCtx, srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter); 1714 } 1715 1716 /// Commands for GLX_EXT_import_context 1717 public Display * GetCurrentDisplayEXT () const { 1718 assert(_GetCurrentDisplayEXT !is null, "GLX command glXGetCurrentDisplayEXT was not loaded"); 1719 return _GetCurrentDisplayEXT (); 1720 } 1721 /// ditto 1722 public int QueryContextInfoEXT (Display* dpy, GLXContext context, int attribute, int* value) const { 1723 assert(_QueryContextInfoEXT !is null, "GLX command glXQueryContextInfoEXT was not loaded"); 1724 return _QueryContextInfoEXT (dpy, context, attribute, value); 1725 } 1726 /// ditto 1727 public GLXContextID GetContextIDEXT (const GLXContext context) const { 1728 assert(_GetContextIDEXT !is null, "GLX command glXGetContextIDEXT was not loaded"); 1729 return _GetContextIDEXT (context); 1730 } 1731 /// ditto 1732 public GLXContext ImportContextEXT (Display* dpy, GLXContextID contextID) const { 1733 assert(_ImportContextEXT !is null, "GLX command glXImportContextEXT was not loaded"); 1734 return _ImportContextEXT (dpy, contextID); 1735 } 1736 /// ditto 1737 public void FreeContextEXT (Display* dpy, GLXContext context) const { 1738 assert(_FreeContextEXT !is null, "GLX command glXFreeContextEXT was not loaded"); 1739 return _FreeContextEXT (dpy, context); 1740 } 1741 1742 /// Commands for GLX_EXT_swap_control 1743 public void SwapIntervalEXT (Display* dpy, GLXDrawable drawable, int interval) const { 1744 assert(_SwapIntervalEXT !is null, "GLX command glXSwapIntervalEXT was not loaded"); 1745 return _SwapIntervalEXT (dpy, drawable, interval); 1746 } 1747 1748 /// Commands for GLX_EXT_texture_from_pixmap 1749 public void BindTexImageEXT (Display* dpy, GLXDrawable drawable, int buffer, const(int)* attrib_list) const { 1750 assert(_BindTexImageEXT !is null, "GLX command glXBindTexImageEXT was not loaded"); 1751 return _BindTexImageEXT (dpy, drawable, buffer, attrib_list); 1752 } 1753 /// ditto 1754 public void ReleaseTexImageEXT (Display* dpy, GLXDrawable drawable, int buffer) const { 1755 assert(_ReleaseTexImageEXT !is null, "GLX command glXReleaseTexImageEXT was not loaded"); 1756 return _ReleaseTexImageEXT (dpy, drawable, buffer); 1757 } 1758 1759 /// Commands for GLX_MESA_agp_offset 1760 public uint GetAGPOffsetMESA (const(void)* pointer) const { 1761 assert(_GetAGPOffsetMESA !is null, "GLX command glXGetAGPOffsetMESA was not loaded"); 1762 return _GetAGPOffsetMESA (pointer); 1763 } 1764 1765 /// Commands for GLX_MESA_copy_sub_buffer 1766 public void CopySubBufferMESA (Display* dpy, GLXDrawable drawable, int x, int y, int width, int height) const { 1767 assert(_CopySubBufferMESA !is null, "GLX command glXCopySubBufferMESA was not loaded"); 1768 return _CopySubBufferMESA (dpy, drawable, x, y, width, height); 1769 } 1770 1771 /// Commands for GLX_MESA_pixmap_colormap 1772 public GLXPixmap CreateGLXPixmapMESA (Display* dpy, XVisualInfo* visual, Pixmap pixmap, Colormap cmap) const { 1773 assert(_CreateGLXPixmapMESA !is null, "GLX command glXCreateGLXPixmapMESA was not loaded"); 1774 return _CreateGLXPixmapMESA (dpy, visual, pixmap, cmap); 1775 } 1776 1777 /// Commands for GLX_MESA_query_renderer 1778 public Bool QueryCurrentRendererIntegerMESA (int attribute, uint* value) const { 1779 assert(_QueryCurrentRendererIntegerMESA !is null, "GLX command glXQueryCurrentRendererIntegerMESA was not loaded"); 1780 return _QueryCurrentRendererIntegerMESA (attribute, value); 1781 } 1782 /// ditto 1783 public const(char)* QueryCurrentRendererStringMESA (int attribute) const { 1784 assert(_QueryCurrentRendererStringMESA !is null, "GLX command glXQueryCurrentRendererStringMESA was not loaded"); 1785 return _QueryCurrentRendererStringMESA (attribute); 1786 } 1787 /// ditto 1788 public Bool QueryRendererIntegerMESA (Display* dpy, int screen, int renderer, int attribute, uint* value) const { 1789 assert(_QueryRendererIntegerMESA !is null, "GLX command glXQueryRendererIntegerMESA was not loaded"); 1790 return _QueryRendererIntegerMESA (dpy, screen, renderer, attribute, value); 1791 } 1792 /// ditto 1793 public const(char)* QueryRendererStringMESA (Display* dpy, int screen, int renderer, int attribute) const { 1794 assert(_QueryRendererStringMESA !is null, "GLX command glXQueryRendererStringMESA was not loaded"); 1795 return _QueryRendererStringMESA (dpy, screen, renderer, attribute); 1796 } 1797 1798 /// Commands for GLX_MESA_release_buffers 1799 public Bool ReleaseBuffersMESA (Display* dpy, GLXDrawable drawable) const { 1800 assert(_ReleaseBuffersMESA !is null, "GLX command glXReleaseBuffersMESA was not loaded"); 1801 return _ReleaseBuffersMESA (dpy, drawable); 1802 } 1803 1804 /// Commands for GLX_MESA_set_3dfx_mode 1805 public Bool Set3DfxModeMESA (int mode) const { 1806 assert(_Set3DfxModeMESA !is null, "GLX command glXSet3DfxModeMESA was not loaded"); 1807 return _Set3DfxModeMESA (mode); 1808 } 1809 1810 /// Commands for GLX_MESA_swap_control 1811 public int GetSwapIntervalMESA () const { 1812 assert(_GetSwapIntervalMESA !is null, "GLX command glXGetSwapIntervalMESA was not loaded"); 1813 return _GetSwapIntervalMESA (); 1814 } 1815 /// ditto 1816 public int SwapIntervalMESA (uint interval) const { 1817 assert(_SwapIntervalMESA !is null, "GLX command glXSwapIntervalMESA was not loaded"); 1818 return _SwapIntervalMESA (interval); 1819 } 1820 1821 /// Commands for GLX_NV_copy_buffer 1822 public void CopyBufferSubDataNV (Display* dpy, GLXContext readCtx, GLXContext writeCtx, GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size) const { 1823 assert(_CopyBufferSubDataNV !is null, "GLX command glXCopyBufferSubDataNV was not loaded"); 1824 return _CopyBufferSubDataNV (dpy, readCtx, writeCtx, readTarget, writeTarget, readOffset, writeOffset, size); 1825 } 1826 /// ditto 1827 public void NamedCopyBufferSubDataNV (Display* dpy, GLXContext readCtx, GLXContext writeCtx, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size) const { 1828 assert(_NamedCopyBufferSubDataNV !is null, "GLX command glXNamedCopyBufferSubDataNV was not loaded"); 1829 return _NamedCopyBufferSubDataNV (dpy, readCtx, writeCtx, readBuffer, writeBuffer, readOffset, writeOffset, size); 1830 } 1831 1832 /// Commands for GLX_NV_copy_image 1833 public void CopyImageSubDataNV (Display* dpy, GLXContext srcCtx, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLXContext dstCtx, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth) const { 1834 assert(_CopyImageSubDataNV !is null, "GLX command glXCopyImageSubDataNV was not loaded"); 1835 return _CopyImageSubDataNV (dpy, srcCtx, srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstCtx, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, width, height, depth); 1836 } 1837 1838 /// Commands for GLX_NV_delay_before_swap 1839 public Bool DelayBeforeSwapNV (Display* dpy, GLXDrawable drawable, GLfloat seconds) const { 1840 assert(_DelayBeforeSwapNV !is null, "GLX command glXDelayBeforeSwapNV was not loaded"); 1841 return _DelayBeforeSwapNV (dpy, drawable, seconds); 1842 } 1843 1844 /// Commands for GLX_NV_present_video 1845 public uint * EnumerateVideoDevicesNV (Display* dpy, int screen, int* nelements) const { 1846 assert(_EnumerateVideoDevicesNV !is null, "GLX command glXEnumerateVideoDevicesNV was not loaded"); 1847 return _EnumerateVideoDevicesNV (dpy, screen, nelements); 1848 } 1849 /// ditto 1850 public int BindVideoDeviceNV (Display* dpy, uint video_slot, uint video_device, const(int)* attrib_list) const { 1851 assert(_BindVideoDeviceNV !is null, "GLX command glXBindVideoDeviceNV was not loaded"); 1852 return _BindVideoDeviceNV (dpy, video_slot, video_device, attrib_list); 1853 } 1854 1855 /// Commands for GLX_NV_swap_group 1856 public Bool JoinSwapGroupNV (Display* dpy, GLXDrawable drawable, GLuint group) const { 1857 assert(_JoinSwapGroupNV !is null, "GLX command glXJoinSwapGroupNV was not loaded"); 1858 return _JoinSwapGroupNV (dpy, drawable, group); 1859 } 1860 /// ditto 1861 public Bool BindSwapBarrierNV (Display* dpy, GLuint group, GLuint barrier) const { 1862 assert(_BindSwapBarrierNV !is null, "GLX command glXBindSwapBarrierNV was not loaded"); 1863 return _BindSwapBarrierNV (dpy, group, barrier); 1864 } 1865 /// ditto 1866 public Bool QuerySwapGroupNV (Display* dpy, GLXDrawable drawable, GLuint* group, GLuint* barrier) const { 1867 assert(_QuerySwapGroupNV !is null, "GLX command glXQuerySwapGroupNV was not loaded"); 1868 return _QuerySwapGroupNV (dpy, drawable, group, barrier); 1869 } 1870 /// ditto 1871 public Bool QueryMaxSwapGroupsNV (Display* dpy, int screen, GLuint* maxGroups, GLuint* maxBarriers) const { 1872 assert(_QueryMaxSwapGroupsNV !is null, "GLX command glXQueryMaxSwapGroupsNV was not loaded"); 1873 return _QueryMaxSwapGroupsNV (dpy, screen, maxGroups, maxBarriers); 1874 } 1875 /// ditto 1876 public Bool QueryFrameCountNV (Display* dpy, int screen, GLuint* count) const { 1877 assert(_QueryFrameCountNV !is null, "GLX command glXQueryFrameCountNV was not loaded"); 1878 return _QueryFrameCountNV (dpy, screen, count); 1879 } 1880 /// ditto 1881 public Bool ResetFrameCountNV (Display* dpy, int screen) const { 1882 assert(_ResetFrameCountNV !is null, "GLX command glXResetFrameCountNV was not loaded"); 1883 return _ResetFrameCountNV (dpy, screen); 1884 } 1885 1886 /// Commands for GLX_NV_video_capture 1887 public int BindVideoCaptureDeviceNV (Display* dpy, uint video_capture_slot, GLXVideoCaptureDeviceNV device) const { 1888 assert(_BindVideoCaptureDeviceNV !is null, "GLX command glXBindVideoCaptureDeviceNV was not loaded"); 1889 return _BindVideoCaptureDeviceNV (dpy, video_capture_slot, device); 1890 } 1891 /// ditto 1892 public GLXVideoCaptureDeviceNV * EnumerateVideoCaptureDevicesNV (Display* dpy, int screen, int* nelements) const { 1893 assert(_EnumerateVideoCaptureDevicesNV !is null, "GLX command glXEnumerateVideoCaptureDevicesNV was not loaded"); 1894 return _EnumerateVideoCaptureDevicesNV (dpy, screen, nelements); 1895 } 1896 /// ditto 1897 public void LockVideoCaptureDeviceNV (Display* dpy, GLXVideoCaptureDeviceNV device) const { 1898 assert(_LockVideoCaptureDeviceNV !is null, "GLX command glXLockVideoCaptureDeviceNV was not loaded"); 1899 return _LockVideoCaptureDeviceNV (dpy, device); 1900 } 1901 /// ditto 1902 public int QueryVideoCaptureDeviceNV (Display* dpy, GLXVideoCaptureDeviceNV device, int attribute, int* value) const { 1903 assert(_QueryVideoCaptureDeviceNV !is null, "GLX command glXQueryVideoCaptureDeviceNV was not loaded"); 1904 return _QueryVideoCaptureDeviceNV (dpy, device, attribute, value); 1905 } 1906 /// ditto 1907 public void ReleaseVideoCaptureDeviceNV (Display* dpy, GLXVideoCaptureDeviceNV device) const { 1908 assert(_ReleaseVideoCaptureDeviceNV !is null, "GLX command glXReleaseVideoCaptureDeviceNV was not loaded"); 1909 return _ReleaseVideoCaptureDeviceNV (dpy, device); 1910 } 1911 1912 /// Commands for GLX_NV_video_out 1913 public int GetVideoDeviceNV (Display* dpy, int screen, int numVideoDevices, GLXVideoDeviceNV* pVideoDevice) const { 1914 assert(_GetVideoDeviceNV !is null, "GLX command glXGetVideoDeviceNV was not loaded"); 1915 return _GetVideoDeviceNV (dpy, screen, numVideoDevices, pVideoDevice); 1916 } 1917 /// ditto 1918 public int ReleaseVideoDeviceNV (Display* dpy, int screen, GLXVideoDeviceNV VideoDevice) const { 1919 assert(_ReleaseVideoDeviceNV !is null, "GLX command glXReleaseVideoDeviceNV was not loaded"); 1920 return _ReleaseVideoDeviceNV (dpy, screen, VideoDevice); 1921 } 1922 /// ditto 1923 public int BindVideoImageNV (Display* dpy, GLXVideoDeviceNV VideoDevice, GLXPbuffer pbuf, int iVideoBuffer) const { 1924 assert(_BindVideoImageNV !is null, "GLX command glXBindVideoImageNV was not loaded"); 1925 return _BindVideoImageNV (dpy, VideoDevice, pbuf, iVideoBuffer); 1926 } 1927 /// ditto 1928 public int ReleaseVideoImageNV (Display* dpy, GLXPbuffer pbuf) const { 1929 assert(_ReleaseVideoImageNV !is null, "GLX command glXReleaseVideoImageNV was not loaded"); 1930 return _ReleaseVideoImageNV (dpy, pbuf); 1931 } 1932 /// ditto 1933 public int SendPbufferToVideoNV (Display* dpy, GLXPbuffer pbuf, int iBufferType, c_ulong* pulCounterPbuffer, GLboolean bBlock) const { 1934 assert(_SendPbufferToVideoNV !is null, "GLX command glXSendPbufferToVideoNV was not loaded"); 1935 return _SendPbufferToVideoNV (dpy, pbuf, iBufferType, pulCounterPbuffer, bBlock); 1936 } 1937 /// ditto 1938 public int GetVideoInfoNV (Display* dpy, int screen, GLXVideoDeviceNV VideoDevice, c_ulong* pulCounterOutputPbuffer, c_ulong* pulCounterOutputVideo) const { 1939 assert(_GetVideoInfoNV !is null, "GLX command glXGetVideoInfoNV was not loaded"); 1940 return _GetVideoInfoNV (dpy, screen, VideoDevice, pulCounterOutputPbuffer, pulCounterOutputVideo); 1941 } 1942 1943 /// Commands for GLX_OML_sync_control 1944 public Bool GetSyncValuesOML (Display* dpy, GLXDrawable drawable, int64_t* ust, int64_t* msc, int64_t* sbc) const { 1945 assert(_GetSyncValuesOML !is null, "GLX command glXGetSyncValuesOML was not loaded"); 1946 return _GetSyncValuesOML (dpy, drawable, ust, msc, sbc); 1947 } 1948 /// ditto 1949 public Bool GetMscRateOML (Display* dpy, GLXDrawable drawable, int32_t* numerator, int32_t* denominator) const { 1950 assert(_GetMscRateOML !is null, "GLX command glXGetMscRateOML was not loaded"); 1951 return _GetMscRateOML (dpy, drawable, numerator, denominator); 1952 } 1953 /// ditto 1954 public int64_t SwapBuffersMscOML (Display* dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder) const { 1955 assert(_SwapBuffersMscOML !is null, "GLX command glXSwapBuffersMscOML was not loaded"); 1956 return _SwapBuffersMscOML (dpy, drawable, target_msc, divisor, remainder); 1957 } 1958 /// ditto 1959 public Bool WaitForMscOML (Display* dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder, int64_t* ust, int64_t* msc, int64_t* sbc) const { 1960 assert(_WaitForMscOML !is null, "GLX command glXWaitForMscOML was not loaded"); 1961 return _WaitForMscOML (dpy, drawable, target_msc, divisor, remainder, ust, msc, sbc); 1962 } 1963 /// ditto 1964 public Bool WaitForSbcOML (Display* dpy, GLXDrawable drawable, int64_t target_sbc, int64_t* ust, int64_t* msc, int64_t* sbc) const { 1965 assert(_WaitForSbcOML !is null, "GLX command glXWaitForSbcOML was not loaded"); 1966 return _WaitForSbcOML (dpy, drawable, target_sbc, ust, msc, sbc); 1967 } 1968 1969 /// Commands for GLX_SGIX_fbconfig 1970 public int GetFBConfigAttribSGIX (Display* dpy, GLXFBConfigSGIX config, int attribute, int* value) const { 1971 assert(_GetFBConfigAttribSGIX !is null, "GLX command glXGetFBConfigAttribSGIX was not loaded"); 1972 return _GetFBConfigAttribSGIX (dpy, config, attribute, value); 1973 } 1974 /// ditto 1975 public GLXFBConfigSGIX * ChooseFBConfigSGIX (Display* dpy, int screen, int* attrib_list, int* nelements) const { 1976 assert(_ChooseFBConfigSGIX !is null, "GLX command glXChooseFBConfigSGIX was not loaded"); 1977 return _ChooseFBConfigSGIX (dpy, screen, attrib_list, nelements); 1978 } 1979 /// ditto 1980 public GLXPixmap CreateGLXPixmapWithConfigSGIX (Display* dpy, GLXFBConfigSGIX config, Pixmap pixmap) const { 1981 assert(_CreateGLXPixmapWithConfigSGIX !is null, "GLX command glXCreateGLXPixmapWithConfigSGIX was not loaded"); 1982 return _CreateGLXPixmapWithConfigSGIX (dpy, config, pixmap); 1983 } 1984 /// ditto 1985 public GLXContext CreateContextWithConfigSGIX (Display* dpy, GLXFBConfigSGIX config, int render_type, GLXContext share_list, Bool direct) const { 1986 assert(_CreateContextWithConfigSGIX !is null, "GLX command glXCreateContextWithConfigSGIX was not loaded"); 1987 return _CreateContextWithConfigSGIX (dpy, config, render_type, share_list, direct); 1988 } 1989 /// ditto 1990 public XVisualInfo * GetVisualFromFBConfigSGIX (Display* dpy, GLXFBConfigSGIX config) const { 1991 assert(_GetVisualFromFBConfigSGIX !is null, "GLX command glXGetVisualFromFBConfigSGIX was not loaded"); 1992 return _GetVisualFromFBConfigSGIX (dpy, config); 1993 } 1994 /// ditto 1995 public GLXFBConfigSGIX GetFBConfigFromVisualSGIX (Display* dpy, XVisualInfo* vis) const { 1996 assert(_GetFBConfigFromVisualSGIX !is null, "GLX command glXGetFBConfigFromVisualSGIX was not loaded"); 1997 return _GetFBConfigFromVisualSGIX (dpy, vis); 1998 } 1999 2000 /// Commands for GLX_SGIX_hyperpipe 2001 public GLXHyperpipeNetworkSGIX * QueryHyperpipeNetworkSGIX (Display* dpy, int* npipes) const { 2002 assert(_QueryHyperpipeNetworkSGIX !is null, "GLX command glXQueryHyperpipeNetworkSGIX was not loaded"); 2003 return _QueryHyperpipeNetworkSGIX (dpy, npipes); 2004 } 2005 /// ditto 2006 public int HyperpipeConfigSGIX (Display* dpy, int networkId, int npipes, GLXHyperpipeConfigSGIX* cfg, int* hpId) const { 2007 assert(_HyperpipeConfigSGIX !is null, "GLX command glXHyperpipeConfigSGIX was not loaded"); 2008 return _HyperpipeConfigSGIX (dpy, networkId, npipes, cfg, hpId); 2009 } 2010 /// ditto 2011 public GLXHyperpipeConfigSGIX * QueryHyperpipeConfigSGIX (Display* dpy, int hpId, int* npipes) const { 2012 assert(_QueryHyperpipeConfigSGIX !is null, "GLX command glXQueryHyperpipeConfigSGIX was not loaded"); 2013 return _QueryHyperpipeConfigSGIX (dpy, hpId, npipes); 2014 } 2015 /// ditto 2016 public int DestroyHyperpipeConfigSGIX (Display* dpy, int hpId) const { 2017 assert(_DestroyHyperpipeConfigSGIX !is null, "GLX command glXDestroyHyperpipeConfigSGIX was not loaded"); 2018 return _DestroyHyperpipeConfigSGIX (dpy, hpId); 2019 } 2020 /// ditto 2021 public int BindHyperpipeSGIX (Display* dpy, int hpId) const { 2022 assert(_BindHyperpipeSGIX !is null, "GLX command glXBindHyperpipeSGIX was not loaded"); 2023 return _BindHyperpipeSGIX (dpy, hpId); 2024 } 2025 /// ditto 2026 public int QueryHyperpipeBestAttribSGIX (Display* dpy, int timeSlice, int attrib, int size, void* attribList, void* returnAttribList) const { 2027 assert(_QueryHyperpipeBestAttribSGIX !is null, "GLX command glXQueryHyperpipeBestAttribSGIX was not loaded"); 2028 return _QueryHyperpipeBestAttribSGIX (dpy, timeSlice, attrib, size, attribList, returnAttribList); 2029 } 2030 /// ditto 2031 public int HyperpipeAttribSGIX (Display* dpy, int timeSlice, int attrib, int size, void* attribList) const { 2032 assert(_HyperpipeAttribSGIX !is null, "GLX command glXHyperpipeAttribSGIX was not loaded"); 2033 return _HyperpipeAttribSGIX (dpy, timeSlice, attrib, size, attribList); 2034 } 2035 /// ditto 2036 public int QueryHyperpipeAttribSGIX (Display* dpy, int timeSlice, int attrib, int size, void* returnAttribList) const { 2037 assert(_QueryHyperpipeAttribSGIX !is null, "GLX command glXQueryHyperpipeAttribSGIX was not loaded"); 2038 return _QueryHyperpipeAttribSGIX (dpy, timeSlice, attrib, size, returnAttribList); 2039 } 2040 2041 /// Commands for GLX_SGIX_pbuffer 2042 public GLXPbufferSGIX CreateGLXPbufferSGIX (Display* dpy, GLXFBConfigSGIX config, uint width, uint height, int* attrib_list) const { 2043 assert(_CreateGLXPbufferSGIX !is null, "GLX command glXCreateGLXPbufferSGIX was not loaded"); 2044 return _CreateGLXPbufferSGIX (dpy, config, width, height, attrib_list); 2045 } 2046 /// ditto 2047 public void DestroyGLXPbufferSGIX (Display* dpy, GLXPbufferSGIX pbuf) const { 2048 assert(_DestroyGLXPbufferSGIX !is null, "GLX command glXDestroyGLXPbufferSGIX was not loaded"); 2049 return _DestroyGLXPbufferSGIX (dpy, pbuf); 2050 } 2051 /// ditto 2052 public int QueryGLXPbufferSGIX (Display* dpy, GLXPbufferSGIX pbuf, int attribute, uint* value) const { 2053 assert(_QueryGLXPbufferSGIX !is null, "GLX command glXQueryGLXPbufferSGIX was not loaded"); 2054 return _QueryGLXPbufferSGIX (dpy, pbuf, attribute, value); 2055 } 2056 /// ditto 2057 public void SelectEventSGIX (Display* dpy, GLXDrawable drawable, c_ulong mask) const { 2058 assert(_SelectEventSGIX !is null, "GLX command glXSelectEventSGIX was not loaded"); 2059 return _SelectEventSGIX (dpy, drawable, mask); 2060 } 2061 /// ditto 2062 public void GetSelectedEventSGIX (Display* dpy, GLXDrawable drawable, c_ulong* mask) const { 2063 assert(_GetSelectedEventSGIX !is null, "GLX command glXGetSelectedEventSGIX was not loaded"); 2064 return _GetSelectedEventSGIX (dpy, drawable, mask); 2065 } 2066 2067 /// Commands for GLX_SGIX_swap_barrier 2068 public void BindSwapBarrierSGIX (Display* dpy, GLXDrawable drawable, int barrier) const { 2069 assert(_BindSwapBarrierSGIX !is null, "GLX command glXBindSwapBarrierSGIX was not loaded"); 2070 return _BindSwapBarrierSGIX (dpy, drawable, barrier); 2071 } 2072 /// ditto 2073 public Bool QueryMaxSwapBarriersSGIX (Display* dpy, int screen, int* max) const { 2074 assert(_QueryMaxSwapBarriersSGIX !is null, "GLX command glXQueryMaxSwapBarriersSGIX was not loaded"); 2075 return _QueryMaxSwapBarriersSGIX (dpy, screen, max); 2076 } 2077 2078 /// Commands for GLX_SGIX_swap_group 2079 public void JoinSwapGroupSGIX (Display* dpy, GLXDrawable drawable, GLXDrawable member) const { 2080 assert(_JoinSwapGroupSGIX !is null, "GLX command glXJoinSwapGroupSGIX was not loaded"); 2081 return _JoinSwapGroupSGIX (dpy, drawable, member); 2082 } 2083 2084 /// Commands for GLX_SGIX_video_resize 2085 public int BindChannelToWindowSGIX (Display* display, int screen, int channel, Window window) const { 2086 assert(_BindChannelToWindowSGIX !is null, "GLX command glXBindChannelToWindowSGIX was not loaded"); 2087 return _BindChannelToWindowSGIX (display, screen, channel, window); 2088 } 2089 /// ditto 2090 public int ChannelRectSGIX (Display* display, int screen, int channel, int x, int y, int w, int h) const { 2091 assert(_ChannelRectSGIX !is null, "GLX command glXChannelRectSGIX was not loaded"); 2092 return _ChannelRectSGIX (display, screen, channel, x, y, w, h); 2093 } 2094 /// ditto 2095 public int QueryChannelRectSGIX (Display* display, int screen, int channel, int* dx, int* dy, int* dw, int* dh) const { 2096 assert(_QueryChannelRectSGIX !is null, "GLX command glXQueryChannelRectSGIX was not loaded"); 2097 return _QueryChannelRectSGIX (display, screen, channel, dx, dy, dw, dh); 2098 } 2099 /// ditto 2100 public int QueryChannelDeltasSGIX (Display* display, int screen, int channel, int* x, int* y, int* w, int* h) const { 2101 assert(_QueryChannelDeltasSGIX !is null, "GLX command glXQueryChannelDeltasSGIX was not loaded"); 2102 return _QueryChannelDeltasSGIX (display, screen, channel, x, y, w, h); 2103 } 2104 /// ditto 2105 public int ChannelRectSyncSGIX (Display* display, int screen, int channel, GLenum synctype) const { 2106 assert(_ChannelRectSyncSGIX !is null, "GLX command glXChannelRectSyncSGIX was not loaded"); 2107 return _ChannelRectSyncSGIX (display, screen, channel, synctype); 2108 } 2109 2110 /// Commands for GLX_SGI_cushion 2111 public void CushionSGI (Display* dpy, Window window, float cushion) const { 2112 assert(_CushionSGI !is null, "GLX command glXCushionSGI was not loaded"); 2113 return _CushionSGI (dpy, window, cushion); 2114 } 2115 2116 /// Commands for GLX_SGI_make_current_read 2117 public Bool MakeCurrentReadSGI (Display* dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx) const { 2118 assert(_MakeCurrentReadSGI !is null, "GLX command glXMakeCurrentReadSGI was not loaded"); 2119 return _MakeCurrentReadSGI (dpy, draw, read, ctx); 2120 } 2121 /// ditto 2122 public GLXDrawable GetCurrentReadDrawableSGI () const { 2123 assert(_GetCurrentReadDrawableSGI !is null, "GLX command glXGetCurrentReadDrawableSGI was not loaded"); 2124 return _GetCurrentReadDrawableSGI (); 2125 } 2126 2127 /// Commands for GLX_SGI_swap_control 2128 public int SwapIntervalSGI (int interval) const { 2129 assert(_SwapIntervalSGI !is null, "GLX command glXSwapIntervalSGI was not loaded"); 2130 return _SwapIntervalSGI (interval); 2131 } 2132 2133 /// Commands for GLX_SGI_video_sync 2134 public int GetVideoSyncSGI (uint* count) const { 2135 assert(_GetVideoSyncSGI !is null, "GLX command glXGetVideoSyncSGI was not loaded"); 2136 return _GetVideoSyncSGI (count); 2137 } 2138 /// ditto 2139 public int WaitVideoSyncSGI (int divisor, int remainder, uint* count) const { 2140 assert(_WaitVideoSyncSGI !is null, "GLX command glXWaitVideoSyncSGI was not loaded"); 2141 return _WaitVideoSyncSGI (divisor, remainder, count); 2142 } 2143 2144 /// Commands for GLX_SUN_get_transparent_index 2145 public Status GetTransparentIndexSUN (Display* dpy, Window overlay, Window underlay, long* pTransparentIndex) const { 2146 assert(_GetTransparentIndexSUN !is null, "GLX command glXGetTransparentIndexSUN was not loaded"); 2147 return _GetTransparentIndexSUN (dpy, overlay, underlay, pTransparentIndex); 2148 } 2149 2150 // GLX_VERSION_1_0 2151 private PFN_glXChooseVisual _ChooseVisual; 2152 private PFN_glXCreateContext _CreateContext; 2153 private PFN_glXDestroyContext _DestroyContext; 2154 private PFN_glXMakeCurrent _MakeCurrent; 2155 private PFN_glXCopyContext _CopyContext; 2156 private PFN_glXSwapBuffers _SwapBuffers; 2157 private PFN_glXCreateGLXPixmap _CreateGLXPixmap; 2158 private PFN_glXDestroyGLXPixmap _DestroyGLXPixmap; 2159 private PFN_glXQueryExtension _QueryExtension; 2160 private PFN_glXQueryVersion _QueryVersion; 2161 private PFN_glXIsDirect _IsDirect; 2162 private PFN_glXGetConfig _GetConfig; 2163 private PFN_glXGetCurrentContext _GetCurrentContext; 2164 private PFN_glXGetCurrentDrawable _GetCurrentDrawable; 2165 private PFN_glXWaitGL _WaitGL; 2166 private PFN_glXWaitX _WaitX; 2167 private PFN_glXUseXFont _UseXFont; 2168 2169 // GLX_VERSION_1_1 2170 private PFN_glXQueryExtensionsString _QueryExtensionsString; 2171 private PFN_glXQueryServerString _QueryServerString; 2172 private PFN_glXGetClientString _GetClientString; 2173 2174 // GLX_VERSION_1_2 2175 private PFN_glXGetCurrentDisplay _GetCurrentDisplay; 2176 2177 // GLX_VERSION_1_3 2178 private PFN_glXGetFBConfigs _GetFBConfigs; 2179 private PFN_glXChooseFBConfig _ChooseFBConfig; 2180 private PFN_glXGetFBConfigAttrib _GetFBConfigAttrib; 2181 private PFN_glXGetVisualFromFBConfig _GetVisualFromFBConfig; 2182 private PFN_glXCreateWindow _CreateWindow; 2183 private PFN_glXDestroyWindow _DestroyWindow; 2184 private PFN_glXCreatePixmap _CreatePixmap; 2185 private PFN_glXDestroyPixmap _DestroyPixmap; 2186 private PFN_glXCreatePbuffer _CreatePbuffer; 2187 private PFN_glXDestroyPbuffer _DestroyPbuffer; 2188 private PFN_glXQueryDrawable _QueryDrawable; 2189 private PFN_glXCreateNewContext _CreateNewContext; 2190 private PFN_glXMakeContextCurrent _MakeContextCurrent; 2191 private PFN_glXGetCurrentReadDrawable _GetCurrentReadDrawable; 2192 private PFN_glXQueryContext _QueryContext; 2193 private PFN_glXSelectEvent _SelectEvent; 2194 private PFN_glXGetSelectedEvent _GetSelectedEvent; 2195 2196 // GLX_VERSION_1_4 2197 private PFN_glXGetProcAddress _GetProcAddress; 2198 2199 // GLX_ARB_create_context, 2200 private PFN_glXCreateContextAttribsARB _CreateContextAttribsARB; 2201 2202 // GLX_ARB_get_proc_address, 2203 private PFN_glXGetProcAddressARB _GetProcAddressARB; 2204 2205 // GLX_AMD_gpu_association, 2206 private PFN_glXGetGPUIDsAMD _GetGPUIDsAMD; 2207 private PFN_glXGetGPUInfoAMD _GetGPUInfoAMD; 2208 private PFN_glXGetContextGPUIDAMD _GetContextGPUIDAMD; 2209 private PFN_glXCreateAssociatedContextAMD _CreateAssociatedContextAMD; 2210 private PFN_glXCreateAssociatedContextAttribsAMD _CreateAssociatedContextAttribsAMD; 2211 private PFN_glXDeleteAssociatedContextAMD _DeleteAssociatedContextAMD; 2212 private PFN_glXMakeAssociatedContextCurrentAMD _MakeAssociatedContextCurrentAMD; 2213 private PFN_glXGetCurrentAssociatedContextAMD _GetCurrentAssociatedContextAMD; 2214 private PFN_glXBlitContextFramebufferAMD _BlitContextFramebufferAMD; 2215 2216 // GLX_EXT_import_context, 2217 private PFN_glXGetCurrentDisplayEXT _GetCurrentDisplayEXT; 2218 private PFN_glXQueryContextInfoEXT _QueryContextInfoEXT; 2219 private PFN_glXGetContextIDEXT _GetContextIDEXT; 2220 private PFN_glXImportContextEXT _ImportContextEXT; 2221 private PFN_glXFreeContextEXT _FreeContextEXT; 2222 2223 // GLX_EXT_swap_control, 2224 private PFN_glXSwapIntervalEXT _SwapIntervalEXT; 2225 2226 // GLX_EXT_texture_from_pixmap, 2227 private PFN_glXBindTexImageEXT _BindTexImageEXT; 2228 private PFN_glXReleaseTexImageEXT _ReleaseTexImageEXT; 2229 2230 // GLX_MESA_agp_offset, 2231 private PFN_glXGetAGPOffsetMESA _GetAGPOffsetMESA; 2232 2233 // GLX_MESA_copy_sub_buffer, 2234 private PFN_glXCopySubBufferMESA _CopySubBufferMESA; 2235 2236 // GLX_MESA_pixmap_colormap, 2237 private PFN_glXCreateGLXPixmapMESA _CreateGLXPixmapMESA; 2238 2239 // GLX_MESA_query_renderer, 2240 private PFN_glXQueryCurrentRendererIntegerMESA _QueryCurrentRendererIntegerMESA; 2241 private PFN_glXQueryCurrentRendererStringMESA _QueryCurrentRendererStringMESA; 2242 private PFN_glXQueryRendererIntegerMESA _QueryRendererIntegerMESA; 2243 private PFN_glXQueryRendererStringMESA _QueryRendererStringMESA; 2244 2245 // GLX_MESA_release_buffers, 2246 private PFN_glXReleaseBuffersMESA _ReleaseBuffersMESA; 2247 2248 // GLX_MESA_set_3dfx_mode, 2249 private PFN_glXSet3DfxModeMESA _Set3DfxModeMESA; 2250 2251 // GLX_MESA_swap_control, 2252 private PFN_glXGetSwapIntervalMESA _GetSwapIntervalMESA; 2253 private PFN_glXSwapIntervalMESA _SwapIntervalMESA; 2254 2255 // GLX_NV_copy_buffer, 2256 private PFN_glXCopyBufferSubDataNV _CopyBufferSubDataNV; 2257 private PFN_glXNamedCopyBufferSubDataNV _NamedCopyBufferSubDataNV; 2258 2259 // GLX_NV_copy_image, 2260 private PFN_glXCopyImageSubDataNV _CopyImageSubDataNV; 2261 2262 // GLX_NV_delay_before_swap, 2263 private PFN_glXDelayBeforeSwapNV _DelayBeforeSwapNV; 2264 2265 // GLX_NV_present_video, 2266 private PFN_glXEnumerateVideoDevicesNV _EnumerateVideoDevicesNV; 2267 private PFN_glXBindVideoDeviceNV _BindVideoDeviceNV; 2268 2269 // GLX_NV_swap_group, 2270 private PFN_glXJoinSwapGroupNV _JoinSwapGroupNV; 2271 private PFN_glXBindSwapBarrierNV _BindSwapBarrierNV; 2272 private PFN_glXQuerySwapGroupNV _QuerySwapGroupNV; 2273 private PFN_glXQueryMaxSwapGroupsNV _QueryMaxSwapGroupsNV; 2274 private PFN_glXQueryFrameCountNV _QueryFrameCountNV; 2275 private PFN_glXResetFrameCountNV _ResetFrameCountNV; 2276 2277 // GLX_NV_video_capture, 2278 private PFN_glXBindVideoCaptureDeviceNV _BindVideoCaptureDeviceNV; 2279 private PFN_glXEnumerateVideoCaptureDevicesNV _EnumerateVideoCaptureDevicesNV; 2280 private PFN_glXLockVideoCaptureDeviceNV _LockVideoCaptureDeviceNV; 2281 private PFN_glXQueryVideoCaptureDeviceNV _QueryVideoCaptureDeviceNV; 2282 private PFN_glXReleaseVideoCaptureDeviceNV _ReleaseVideoCaptureDeviceNV; 2283 2284 // GLX_NV_video_out, 2285 private PFN_glXGetVideoDeviceNV _GetVideoDeviceNV; 2286 private PFN_glXReleaseVideoDeviceNV _ReleaseVideoDeviceNV; 2287 private PFN_glXBindVideoImageNV _BindVideoImageNV; 2288 private PFN_glXReleaseVideoImageNV _ReleaseVideoImageNV; 2289 private PFN_glXSendPbufferToVideoNV _SendPbufferToVideoNV; 2290 private PFN_glXGetVideoInfoNV _GetVideoInfoNV; 2291 2292 // GLX_OML_sync_control, 2293 private PFN_glXGetSyncValuesOML _GetSyncValuesOML; 2294 private PFN_glXGetMscRateOML _GetMscRateOML; 2295 private PFN_glXSwapBuffersMscOML _SwapBuffersMscOML; 2296 private PFN_glXWaitForMscOML _WaitForMscOML; 2297 private PFN_glXWaitForSbcOML _WaitForSbcOML; 2298 2299 // GLX_SGIX_fbconfig, 2300 private PFN_glXGetFBConfigAttribSGIX _GetFBConfigAttribSGIX; 2301 private PFN_glXChooseFBConfigSGIX _ChooseFBConfigSGIX; 2302 private PFN_glXCreateGLXPixmapWithConfigSGIX _CreateGLXPixmapWithConfigSGIX; 2303 private PFN_glXCreateContextWithConfigSGIX _CreateContextWithConfigSGIX; 2304 private PFN_glXGetVisualFromFBConfigSGIX _GetVisualFromFBConfigSGIX; 2305 private PFN_glXGetFBConfigFromVisualSGIX _GetFBConfigFromVisualSGIX; 2306 2307 // GLX_SGIX_hyperpipe, 2308 private PFN_glXQueryHyperpipeNetworkSGIX _QueryHyperpipeNetworkSGIX; 2309 private PFN_glXHyperpipeConfigSGIX _HyperpipeConfigSGIX; 2310 private PFN_glXQueryHyperpipeConfigSGIX _QueryHyperpipeConfigSGIX; 2311 private PFN_glXDestroyHyperpipeConfigSGIX _DestroyHyperpipeConfigSGIX; 2312 private PFN_glXBindHyperpipeSGIX _BindHyperpipeSGIX; 2313 private PFN_glXQueryHyperpipeBestAttribSGIX _QueryHyperpipeBestAttribSGIX; 2314 private PFN_glXHyperpipeAttribSGIX _HyperpipeAttribSGIX; 2315 private PFN_glXQueryHyperpipeAttribSGIX _QueryHyperpipeAttribSGIX; 2316 2317 // GLX_SGIX_pbuffer, 2318 private PFN_glXCreateGLXPbufferSGIX _CreateGLXPbufferSGIX; 2319 private PFN_glXDestroyGLXPbufferSGIX _DestroyGLXPbufferSGIX; 2320 private PFN_glXQueryGLXPbufferSGIX _QueryGLXPbufferSGIX; 2321 private PFN_glXSelectEventSGIX _SelectEventSGIX; 2322 private PFN_glXGetSelectedEventSGIX _GetSelectedEventSGIX; 2323 2324 // GLX_SGIX_swap_barrier, 2325 private PFN_glXBindSwapBarrierSGIX _BindSwapBarrierSGIX; 2326 private PFN_glXQueryMaxSwapBarriersSGIX _QueryMaxSwapBarriersSGIX; 2327 2328 // GLX_SGIX_swap_group, 2329 private PFN_glXJoinSwapGroupSGIX _JoinSwapGroupSGIX; 2330 2331 // GLX_SGIX_video_resize, 2332 private PFN_glXBindChannelToWindowSGIX _BindChannelToWindowSGIX; 2333 private PFN_glXChannelRectSGIX _ChannelRectSGIX; 2334 private PFN_glXQueryChannelRectSGIX _QueryChannelRectSGIX; 2335 private PFN_glXQueryChannelDeltasSGIX _QueryChannelDeltasSGIX; 2336 private PFN_glXChannelRectSyncSGIX _ChannelRectSyncSGIX; 2337 2338 // GLX_SGI_cushion, 2339 private PFN_glXCushionSGI _CushionSGI; 2340 2341 // GLX_SGI_make_current_read, 2342 private PFN_glXMakeCurrentReadSGI _MakeCurrentReadSGI; 2343 private PFN_glXGetCurrentReadDrawableSGI _GetCurrentReadDrawableSGI; 2344 2345 // GLX_SGI_swap_control, 2346 private PFN_glXSwapIntervalSGI _SwapIntervalSGI; 2347 2348 // GLX_SGI_video_sync, 2349 private PFN_glXGetVideoSyncSGI _GetVideoSyncSGI; 2350 private PFN_glXWaitVideoSyncSGI _WaitVideoSyncSGI; 2351 2352 // GLX_SUN_get_transparent_index, 2353 private PFN_glXGetTransparentIndexSUN _GetTransparentIndexSUN; 2354 }