1afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg/* 2afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg * Mesa 3-D graphics library 33e9c099088424c149931dcf546ae0a4d9ac2ae76Brian Paul * Version: 6.5 4afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg * 59305cba6a7dfe539e5c3b01f7b16fcf60cf20900Brian Paul * Copyright (C) 1999-2006 Brian Paul All Rights Reserved. 6afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg * 7afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg * Permission is hereby granted, free of charge, to any person obtaining a 8afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg * copy of this software and associated documentation files (the "Software"), 9afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg * to deal in the Software without restriction, including without limitation 10afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg * the rights to use, copy, modify, merge, publish, distribute, sublicense, 11afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg * and/or sell copies of the Software, and to permit persons to whom the 12afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg * Software is furnished to do so, subject to the following conditions: 13afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg * 14afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg * The above copyright notice and this permission notice shall be included 15afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg * in all copies or substantial portions of the Software. 16afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg * 17afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 18afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 20afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 21afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 22afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg */ 24afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 25afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 26afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg#ifndef GLX_H 27afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg#define GLX_H 28afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 29afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 303f600e47cf36080abbc00a1f08c7e80fd5137a67Jouk Jansen#ifdef __VMS 31b5b5c52034840dbfcd3f76a9e7cde8b379e7d517Jouk Jansen#include <GL/vms_x_fix.h> 323f600e47cf36080abbc00a1f08c7e80fd5137a67Jouk Jansen# ifdef __cplusplus 333f600e47cf36080abbc00a1f08c7e80fd5137a67Jouk Jansen/* VMS Xlib.h gives problems with C++. 343f600e47cf36080abbc00a1f08c7e80fd5137a67Jouk Jansen * this avoids a bunch of trivial warnings */ 353f600e47cf36080abbc00a1f08c7e80fd5137a67Jouk Jansen#pragma message disable nosimpint 363f600e47cf36080abbc00a1f08c7e80fd5137a67Jouk Jansen#endif 373f600e47cf36080abbc00a1f08c7e80fd5137a67Jouk Jansen#endif 38afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg#include <X11/Xlib.h> 39afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg#include <X11/Xutil.h> 403f600e47cf36080abbc00a1f08c7e80fd5137a67Jouk Jansen#ifdef __VMS 413f600e47cf36080abbc00a1f08c7e80fd5137a67Jouk Jansen# ifdef __cplusplus 423f600e47cf36080abbc00a1f08c7e80fd5137a67Jouk Jansen#pragma message enable nosimpint 433f600e47cf36080abbc00a1f08c7e80fd5137a67Jouk Jansen#endif 443f600e47cf36080abbc00a1f08c7e80fd5137a67Jouk Jansen#endif 4523b1503d79bc148521f8cff3c7b5f5faa146d1acBrian Paul#include <GL/gl.h> 46afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 47afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 48afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg#if defined(USE_MGL_NAMESPACE) 494f1e3709de54c3a511d6eb0bb7670956fb8f8d2cBrian Paul#include "glx_mangle.h" 50afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg#endif 51afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 52afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 53afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg#ifdef __cplusplus 54afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtgextern "C" { 55afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg#endif 56afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 57afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 58afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg#define GLX_VERSION_1_1 1 59bf3f9bdaae9f17de8ac82ec7789e4e689a6f67f2Brian Paul#define GLX_VERSION_1_2 1 6007b220ad46d5f30218210b5512c9037214a7ff89Brian Paul#define GLX_VERSION_1_3 1 61ba57e5297d60eef37e43dd4d7f10d1e62f5e97ceBrian Paul#define GLX_VERSION_1_4 1 62afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 63fbd8f212c3866ec98c1d8c9d3db3ddb7e7c479a5Brian Paul#define GLX_EXTENSION_NAME "GLX" 64fbd8f212c3866ec98c1d8c9d3db3ddb7e7c479a5Brian Paul 65fbd8f212c3866ec98c1d8c9d3db3ddb7e7c479a5Brian Paul 66afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 67afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg/* 68afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg * Tokens for glXChooseVisual and glXGetConfig: 69afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg */ 70fbd8f212c3866ec98c1d8c9d3db3ddb7e7c479a5Brian Paul#define GLX_USE_GL 1 71fbd8f212c3866ec98c1d8c9d3db3ddb7e7c479a5Brian Paul#define GLX_BUFFER_SIZE 2 72fbd8f212c3866ec98c1d8c9d3db3ddb7e7c479a5Brian Paul#define GLX_LEVEL 3 73fbd8f212c3866ec98c1d8c9d3db3ddb7e7c479a5Brian Paul#define GLX_RGBA 4 74fbd8f212c3866ec98c1d8c9d3db3ddb7e7c479a5Brian Paul#define GLX_DOUBLEBUFFER 5 75fbd8f212c3866ec98c1d8c9d3db3ddb7e7c479a5Brian Paul#define GLX_STEREO 6 76fbd8f212c3866ec98c1d8c9d3db3ddb7e7c479a5Brian Paul#define GLX_AUX_BUFFERS 7 77fbd8f212c3866ec98c1d8c9d3db3ddb7e7c479a5Brian Paul#define GLX_RED_SIZE 8 78fbd8f212c3866ec98c1d8c9d3db3ddb7e7c479a5Brian Paul#define GLX_GREEN_SIZE 9 79fbd8f212c3866ec98c1d8c9d3db3ddb7e7c479a5Brian Paul#define GLX_BLUE_SIZE 10 80fbd8f212c3866ec98c1d8c9d3db3ddb7e7c479a5Brian Paul#define GLX_ALPHA_SIZE 11 81fbd8f212c3866ec98c1d8c9d3db3ddb7e7c479a5Brian Paul#define GLX_DEPTH_SIZE 12 82fbd8f212c3866ec98c1d8c9d3db3ddb7e7c479a5Brian Paul#define GLX_STENCIL_SIZE 13 83fbd8f212c3866ec98c1d8c9d3db3ddb7e7c479a5Brian Paul#define GLX_ACCUM_RED_SIZE 14 84fbd8f212c3866ec98c1d8c9d3db3ddb7e7c479a5Brian Paul#define GLX_ACCUM_GREEN_SIZE 15 85fbd8f212c3866ec98c1d8c9d3db3ddb7e7c479a5Brian Paul#define GLX_ACCUM_BLUE_SIZE 16 86fbd8f212c3866ec98c1d8c9d3db3ddb7e7c479a5Brian Paul#define GLX_ACCUM_ALPHA_SIZE 17 87fbd8f212c3866ec98c1d8c9d3db3ddb7e7c479a5Brian Paul 88fbd8f212c3866ec98c1d8c9d3db3ddb7e7c479a5Brian Paul 89afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg/* 90afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg * Error codes returned by glXGetConfig: 91afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg */ 92afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg#define GLX_BAD_SCREEN 1 93afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg#define GLX_BAD_ATTRIBUTE 2 94afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg#define GLX_NO_EXTENSION 3 95afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg#define GLX_BAD_VISUAL 4 96afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg#define GLX_BAD_CONTEXT 5 97afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg#define GLX_BAD_VALUE 6 98afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg#define GLX_BAD_ENUM 7 99afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 100afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 101afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg/* 102afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg * GLX 1.1 and later: 103afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg */ 104afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg#define GLX_VENDOR 1 105afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg#define GLX_VERSION 2 106afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg#define GLX_EXTENSIONS 3 107afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 108afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 109afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg/* 110664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paul * GLX 1.3 and later: 111664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paul */ 11247e719fa44c784d60480a4096d35f9b14b70cc1fBrian Paul#define GLX_CONFIG_CAVEAT 0x20 11347e719fa44c784d60480a4096d35f9b14b70cc1fBrian Paul#define GLX_DONT_CARE 0xFFFFFFFF 114664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paul#define GLX_X_VISUAL_TYPE 0x22 115664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paul#define GLX_TRANSPARENT_TYPE 0x23 116664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paul#define GLX_TRANSPARENT_INDEX_VALUE 0x24 117664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paul#define GLX_TRANSPARENT_RED_VALUE 0x25 118664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paul#define GLX_TRANSPARENT_GREEN_VALUE 0x26 119664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paul#define GLX_TRANSPARENT_BLUE_VALUE 0x27 120664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paul#define GLX_TRANSPARENT_ALPHA_VALUE 0x28 12147e719fa44c784d60480a4096d35f9b14b70cc1fBrian Paul#define GLX_WINDOW_BIT 0x00000001 12247e719fa44c784d60480a4096d35f9b14b70cc1fBrian Paul#define GLX_PIXMAP_BIT 0x00000002 12347e719fa44c784d60480a4096d35f9b14b70cc1fBrian Paul#define GLX_PBUFFER_BIT 0x00000004 12447e719fa44c784d60480a4096d35f9b14b70cc1fBrian Paul#define GLX_AUX_BUFFERS_BIT 0x00000010 12547e719fa44c784d60480a4096d35f9b14b70cc1fBrian Paul#define GLX_FRONT_LEFT_BUFFER_BIT 0x00000001 12647e719fa44c784d60480a4096d35f9b14b70cc1fBrian Paul#define GLX_FRONT_RIGHT_BUFFER_BIT 0x00000002 12747e719fa44c784d60480a4096d35f9b14b70cc1fBrian Paul#define GLX_BACK_LEFT_BUFFER_BIT 0x00000004 12847e719fa44c784d60480a4096d35f9b14b70cc1fBrian Paul#define GLX_BACK_RIGHT_BUFFER_BIT 0x00000008 12947e719fa44c784d60480a4096d35f9b14b70cc1fBrian Paul#define GLX_DEPTH_BUFFER_BIT 0x00000020 13047e719fa44c784d60480a4096d35f9b14b70cc1fBrian Paul#define GLX_STENCIL_BUFFER_BIT 0x00000040 13147e719fa44c784d60480a4096d35f9b14b70cc1fBrian Paul#define GLX_ACCUM_BUFFER_BIT 0x00000080 132664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paul#define GLX_NONE 0x8000 13327eb8fa35a76c7c9d79130d1fb9138dbeb455182Brian Paul#define GLX_SLOW_CONFIG 0x8001 134664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paul#define GLX_TRUE_COLOR 0x8002 135664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paul#define GLX_DIRECT_COLOR 0x8003 136664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paul#define GLX_PSEUDO_COLOR 0x8004 137664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paul#define GLX_STATIC_COLOR 0x8005 138664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paul#define GLX_GRAY_SCALE 0x8006 139664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paul#define GLX_STATIC_GRAY 0x8007 140cb4253a546ce65d22c277ba34acebb49f301b0beBrian Paul#define GLX_TRANSPARENT_RGB 0x8008 141664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paul#define GLX_TRANSPARENT_INDEX 0x8009 14227eb8fa35a76c7c9d79130d1fb9138dbeb455182Brian Paul#define GLX_VISUAL_ID 0x800B 14327eb8fa35a76c7c9d79130d1fb9138dbeb455182Brian Paul#define GLX_SCREEN 0x800C 14427eb8fa35a76c7c9d79130d1fb9138dbeb455182Brian Paul#define GLX_NON_CONFORMANT_CONFIG 0x800D 14527eb8fa35a76c7c9d79130d1fb9138dbeb455182Brian Paul#define GLX_DRAWABLE_TYPE 0x8010 14627eb8fa35a76c7c9d79130d1fb9138dbeb455182Brian Paul#define GLX_RENDER_TYPE 0x8011 14727eb8fa35a76c7c9d79130d1fb9138dbeb455182Brian Paul#define GLX_X_RENDERABLE 0x8012 14827eb8fa35a76c7c9d79130d1fb9138dbeb455182Brian Paul#define GLX_FBCONFIG_ID 0x8013 1497e975ba3aa103df12c2069264e755b73e2fabf05Brian Paul#define GLX_RGBA_TYPE 0x8014 15047e719fa44c784d60480a4096d35f9b14b70cc1fBrian Paul#define GLX_COLOR_INDEX_TYPE 0x8015 15127eb8fa35a76c7c9d79130d1fb9138dbeb455182Brian Paul#define GLX_MAX_PBUFFER_WIDTH 0x8016 15227eb8fa35a76c7c9d79130d1fb9138dbeb455182Brian Paul#define GLX_MAX_PBUFFER_HEIGHT 0x8017 15327eb8fa35a76c7c9d79130d1fb9138dbeb455182Brian Paul#define GLX_MAX_PBUFFER_PIXELS 0x8018 15427eb8fa35a76c7c9d79130d1fb9138dbeb455182Brian Paul#define GLX_PRESERVED_CONTENTS 0x801B 15527eb8fa35a76c7c9d79130d1fb9138dbeb455182Brian Paul#define GLX_LARGEST_PBUFFER 0x801C 15627eb8fa35a76c7c9d79130d1fb9138dbeb455182Brian Paul#define GLX_WIDTH 0x801D 15727eb8fa35a76c7c9d79130d1fb9138dbeb455182Brian Paul#define GLX_HEIGHT 0x801E 15827eb8fa35a76c7c9d79130d1fb9138dbeb455182Brian Paul#define GLX_EVENT_MASK 0x801F 15947e719fa44c784d60480a4096d35f9b14b70cc1fBrian Paul#define GLX_DAMAGED 0x8020 16047e719fa44c784d60480a4096d35f9b14b70cc1fBrian Paul#define GLX_SAVED 0x8021 16147e719fa44c784d60480a4096d35f9b14b70cc1fBrian Paul#define GLX_WINDOW 0x8022 16268656667b2f63c285ccd75fb16a17a8a04a9f552Brian Paul#define GLX_PBUFFER 0x8023 163657323bf03a575bf40cff83119f201a9dcd1478eBrian Paul#define GLX_PBUFFER_HEIGHT 0x8040 164657323bf03a575bf40cff83119f201a9dcd1478eBrian Paul#define GLX_PBUFFER_WIDTH 0x8041 16527eb8fa35a76c7c9d79130d1fb9138dbeb455182Brian Paul#define GLX_RGBA_BIT 0x00000001 16627eb8fa35a76c7c9d79130d1fb9138dbeb455182Brian Paul#define GLX_COLOR_INDEX_BIT 0x00000002 16727eb8fa35a76c7c9d79130d1fb9138dbeb455182Brian Paul#define GLX_PBUFFER_CLOBBER_MASK 0x08000000 168664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paul 169664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paul 170ba57e5297d60eef37e43dd4d7f10d1e62f5e97ceBrian Paul/* 171ba57e5297d60eef37e43dd4d7f10d1e62f5e97ceBrian Paul * GLX 1.4 and later: 172ba57e5297d60eef37e43dd4d7f10d1e62f5e97ceBrian Paul */ 173b70f5c21e713d9df0a1fcd4c6871f80caabdaaceBrian Paul#define GLX_SAMPLE_BUFFERS 0x186a0 /*100000*/ 174eaf0eac7d327468a617a64820e1f41279eef1a8dBrian Paul#define GLX_SAMPLES 0x186a1 /*100001*/ 175ba57e5297d60eef37e43dd4d7f10d1e62f5e97ceBrian Paul 176ba57e5297d60eef37e43dd4d7f10d1e62f5e97ceBrian Paul 177353479fa8a63aebc21825ad614115b7b5434fe0dBrian Paul 178e203c9cdd8ef0b0b053923e630e291f5671a9ab4Brian Paultypedef struct __GLXcontextRec *GLXContext; 17907b220ad46d5f30218210b5512c9037214a7ff89Brian Paultypedef XID GLXPixmap; 18007b220ad46d5f30218210b5512c9037214a7ff89Brian Paultypedef XID GLXDrawable; 18107b220ad46d5f30218210b5512c9037214a7ff89Brian Paul/* GLX 1.3 and later */ 182e203c9cdd8ef0b0b053923e630e291f5671a9ab4Brian Paultypedef struct __GLXFBConfigRec *GLXFBConfig; 18307b220ad46d5f30218210b5512c9037214a7ff89Brian Paultypedef XID GLXFBConfigID; 184afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtgtypedef XID GLXContextID; 18507b220ad46d5f30218210b5512c9037214a7ff89Brian Paultypedef XID GLXWindow; 18607b220ad46d5f30218210b5512c9037214a7ff89Brian Paultypedef XID GLXPbuffer; 187afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 188afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 1897f170573ea486f2f2dd474c2590346f1a0110773Jesse Barnes/* 1907f170573ea486f2f2dd474c2590346f1a0110773Jesse Barnes** Events. 1917f170573ea486f2f2dd474c2590346f1a0110773Jesse Barnes** __GLX_NUMBER_EVENTS is set to 17 to account for the BufferClobberSGIX 1927f170573ea486f2f2dd474c2590346f1a0110773Jesse Barnes** event - this helps initialization if the server supports the pbuffer 1937f170573ea486f2f2dd474c2590346f1a0110773Jesse Barnes** extension and the client doesn't. 1947f170573ea486f2f2dd474c2590346f1a0110773Jesse Barnes*/ 1957f170573ea486f2f2dd474c2590346f1a0110773Jesse Barnes#define GLX_PbufferClobber 0 1967f170573ea486f2f2dd474c2590346f1a0110773Jesse Barnes#define GLX_BufferSwapComplete 1 1977f170573ea486f2f2dd474c2590346f1a0110773Jesse Barnes 1987f170573ea486f2f2dd474c2590346f1a0110773Jesse Barnes#define __GLX_NUMBER_EVENTS 17 199afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 200afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtgextern XVisualInfo* glXChooseVisual( Display *dpy, int screen, 201afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg int *attribList ); 202afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 203afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtgextern GLXContext glXCreateContext( Display *dpy, XVisualInfo *vis, 204afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg GLXContext shareList, Bool direct ); 205afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 206afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtgextern void glXDestroyContext( Display *dpy, GLXContext ctx ); 207afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 208afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtgextern Bool glXMakeCurrent( Display *dpy, GLXDrawable drawable, 209afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg GLXContext ctx); 210afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 211afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtgextern void glXCopyContext( Display *dpy, GLXContext src, GLXContext dst, 2123994b77bab8c62a4c1a4dffdfba233ef46662b99Brian Paul unsigned long mask ); 213afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 214afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtgextern void glXSwapBuffers( Display *dpy, GLXDrawable drawable ); 215afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 216afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtgextern GLXPixmap glXCreateGLXPixmap( Display *dpy, XVisualInfo *visual, 217afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg Pixmap pixmap ); 218afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 219afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtgextern void glXDestroyGLXPixmap( Display *dpy, GLXPixmap pixmap ); 220afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 221afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtgextern Bool glXQueryExtension( Display *dpy, int *errorb, int *event ); 222afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 223afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtgextern Bool glXQueryVersion( Display *dpy, int *maj, int *min ); 224afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 225afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtgextern Bool glXIsDirect( Display *dpy, GLXContext ctx ); 226afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 227afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtgextern int glXGetConfig( Display *dpy, XVisualInfo *visual, 228afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg int attrib, int *value ); 229afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 230afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtgextern GLXContext glXGetCurrentContext( void ); 231afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 232afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtgextern GLXDrawable glXGetCurrentDrawable( void ); 233afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 234afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtgextern void glXWaitGL( void ); 235afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 236afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtgextern void glXWaitX( void ); 237afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 238afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtgextern void glXUseXFont( Font font, int first, int count, int list ); 239afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 240afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 241afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 242afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg/* GLX 1.1 and later */ 243afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtgextern const char *glXQueryExtensionsString( Display *dpy, int screen ); 244afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 245afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtgextern const char *glXQueryServerString( Display *dpy, int screen, int name ); 246afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 247afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtgextern const char *glXGetClientString( Display *dpy, int name ); 248afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 249afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 250bf3f9bdaae9f17de8ac82ec7789e4e689a6f67f2Brian Paul/* GLX 1.2 and later */ 251bf3f9bdaae9f17de8ac82ec7789e4e689a6f67f2Brian Paulextern Display *glXGetCurrentDisplay( void ); 252bf3f9bdaae9f17de8ac82ec7789e4e689a6f67f2Brian Paul 253bf3f9bdaae9f17de8ac82ec7789e4e689a6f67f2Brian Paul 254664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paul/* GLX 1.3 and later */ 25547e719fa44c784d60480a4096d35f9b14b70cc1fBrian Paulextern GLXFBConfig *glXChooseFBConfig( Display *dpy, int screen, 25647e719fa44c784d60480a4096d35f9b14b70cc1fBrian Paul const int *attribList, int *nitems ); 257664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paul 258664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paulextern int glXGetFBConfigAttrib( Display *dpy, GLXFBConfig config, 259664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paul int attribute, int *value ); 260664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paul 26147e719fa44c784d60480a4096d35f9b14b70cc1fBrian Paulextern GLXFBConfig *glXGetFBConfigs( Display *dpy, int screen, 26247e719fa44c784d60480a4096d35f9b14b70cc1fBrian Paul int *nelements ); 26347e719fa44c784d60480a4096d35f9b14b70cc1fBrian Paul 264664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paulextern XVisualInfo *glXGetVisualFromFBConfig( Display *dpy, 265664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paul GLXFBConfig config ); 266664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paul 267664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paulextern GLXWindow glXCreateWindow( Display *dpy, GLXFBConfig config, 268664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paul Window win, const int *attribList ); 269664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paul 270664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paulextern void glXDestroyWindow( Display *dpy, GLXWindow window ); 271664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paul 272664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paulextern GLXPixmap glXCreatePixmap( Display *dpy, GLXFBConfig config, 273664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paul Pixmap pixmap, const int *attribList ); 274664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paul 275664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paulextern void glXDestroyPixmap( Display *dpy, GLXPixmap pixmap ); 276664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paul 277664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paulextern GLXPbuffer glXCreatePbuffer( Display *dpy, GLXFBConfig config, 278664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paul const int *attribList ); 279664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paul 280664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paulextern void glXDestroyPbuffer( Display *dpy, GLXPbuffer pbuf ); 281664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paul 282664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paulextern void glXQueryDrawable( Display *dpy, GLXDrawable draw, int attribute, 283664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paul unsigned int *value ); 284664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paul 285664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paulextern GLXContext glXCreateNewContext( Display *dpy, GLXFBConfig config, 286664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paul int renderType, GLXContext shareList, 287664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paul Bool direct ); 288664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paul 289664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paulextern Bool glXMakeContextCurrent( Display *dpy, GLXDrawable draw, 290664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paul GLXDrawable read, GLXContext ctx ); 291664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paul 292664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paulextern GLXDrawable glXGetCurrentReadDrawable( void ); 293664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paul 294664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paulextern int glXQueryContext( Display *dpy, GLXContext ctx, int attribute, 295664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paul int *value ); 296664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paul 297664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paulextern void glXSelectEvent( Display *dpy, GLXDrawable drawable, 298664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paul unsigned long mask ); 299664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paul 300664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paulextern void glXGetSelectedEvent( Display *dpy, GLXDrawable drawable, 301664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paul unsigned long *mask ); 302664a1f88f2e39fa52eccd7217a1f7aaa4c48f5afBrian Paul 303239ce2240af37e768e855680777872f6f4e7b71dBrian Paul/* GLX 1.3 function pointer typedefs */ 304239ce2240af37e768e855680777872f6f4e7b71dBrian Paultypedef GLXFBConfig * (* PFNGLXGETFBCONFIGSPROC) (Display *dpy, int screen, int *nelements); 305239ce2240af37e768e855680777872f6f4e7b71dBrian Paultypedef GLXFBConfig * (* PFNGLXCHOOSEFBCONFIGPROC) (Display *dpy, int screen, const int *attrib_list, int *nelements); 306239ce2240af37e768e855680777872f6f4e7b71dBrian Paultypedef int (* PFNGLXGETFBCONFIGATTRIBPROC) (Display *dpy, GLXFBConfig config, int attribute, int *value); 307239ce2240af37e768e855680777872f6f4e7b71dBrian Paultypedef XVisualInfo * (* PFNGLXGETVISUALFROMFBCONFIGPROC) (Display *dpy, GLXFBConfig config); 308239ce2240af37e768e855680777872f6f4e7b71dBrian Paultypedef GLXWindow (* PFNGLXCREATEWINDOWPROC) (Display *dpy, GLXFBConfig config, Window win, const int *attrib_list); 309239ce2240af37e768e855680777872f6f4e7b71dBrian Paultypedef void (* PFNGLXDESTROYWINDOWPROC) (Display *dpy, GLXWindow win); 310239ce2240af37e768e855680777872f6f4e7b71dBrian Paultypedef GLXPixmap (* PFNGLXCREATEPIXMAPPROC) (Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list); 311239ce2240af37e768e855680777872f6f4e7b71dBrian Paultypedef void (* PFNGLXDESTROYPIXMAPPROC) (Display *dpy, GLXPixmap pixmap); 312239ce2240af37e768e855680777872f6f4e7b71dBrian Paultypedef GLXPbuffer (* PFNGLXCREATEPBUFFERPROC) (Display *dpy, GLXFBConfig config, const int *attrib_list); 313239ce2240af37e768e855680777872f6f4e7b71dBrian Paultypedef void (* PFNGLXDESTROYPBUFFERPROC) (Display *dpy, GLXPbuffer pbuf); 314239ce2240af37e768e855680777872f6f4e7b71dBrian Paultypedef void (* PFNGLXQUERYDRAWABLEPROC) (Display *dpy, GLXDrawable draw, int attribute, unsigned int *value); 315239ce2240af37e768e855680777872f6f4e7b71dBrian Paultypedef GLXContext (* PFNGLXCREATENEWCONTEXTPROC) (Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct); 316239ce2240af37e768e855680777872f6f4e7b71dBrian Paultypedef Bool (* PFNGLXMAKECONTEXTCURRENTPROC) (Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx); 317239ce2240af37e768e855680777872f6f4e7b71dBrian Paultypedef GLXDrawable (* PFNGLXGETCURRENTREADDRAWABLEPROC) (void); 318239ce2240af37e768e855680777872f6f4e7b71dBrian Paultypedef Display * (* PFNGLXGETCURRENTDISPLAYPROC) (void); 319239ce2240af37e768e855680777872f6f4e7b71dBrian Paultypedef int (* PFNGLXQUERYCONTEXTPROC) (Display *dpy, GLXContext ctx, int attribute, int *value); 320239ce2240af37e768e855680777872f6f4e7b71dBrian Paultypedef void (* PFNGLXSELECTEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long event_mask); 321239ce2240af37e768e855680777872f6f4e7b71dBrian Paultypedef void (* PFNGLXGETSELECTEDEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long *event_mask); 32243c9c2cfae458cf0d7618af5f25d57c0a5ebae08Brian Paul 32307b220ad46d5f30218210b5512c9037214a7ff89Brian Paul 32407b220ad46d5f30218210b5512c9037214a7ff89Brian Paul/* 325401fc936f1c368a34e285075efe4070017054a7fBrian Paul * ARB 2. GLX_ARB_get_proc_address 32607b220ad46d5f30218210b5512c9037214a7ff89Brian Paul */ 327401fc936f1c368a34e285075efe4070017054a7fBrian Paul#ifndef GLX_ARB_get_proc_address 328401fc936f1c368a34e285075efe4070017054a7fBrian Paul#define GLX_ARB_get_proc_address 1 32907b220ad46d5f30218210b5512c9037214a7ff89Brian Paul 3303e9c099088424c149931dcf546ae0a4d9ac2ae76Brian Paultypedef void (*__GLXextFuncPtr)(void); 3313e9c099088424c149931dcf546ae0a4d9ac2ae76Brian Paulextern __GLXextFuncPtr glXGetProcAddressARB (const GLubyte *); 33207b220ad46d5f30218210b5512c9037214a7ff89Brian Paul 333401fc936f1c368a34e285075efe4070017054a7fBrian Paul#endif /* GLX_ARB_get_proc_address */ 33407b220ad46d5f30218210b5512c9037214a7ff89Brian Paul 33507b220ad46d5f30218210b5512c9037214a7ff89Brian Paul 33607b220ad46d5f30218210b5512c9037214a7ff89Brian Paul 337239ce2240af37e768e855680777872f6f4e7b71dBrian Paul/* GLX 1.4 and later */ 338239ce2240af37e768e855680777872f6f4e7b71dBrian Paulextern void (*glXGetProcAddress(const GLubyte *procname))( void ); 339239ce2240af37e768e855680777872f6f4e7b71dBrian Paul 340239ce2240af37e768e855680777872f6f4e7b71dBrian Paul/* GLX 1.4 function pointer typedefs */ 341239ce2240af37e768e855680777872f6f4e7b71dBrian Paultypedef __GLXextFuncPtr (* PFNGLXGETPROCADDRESSPROC) (const GLubyte *procName); 342239ce2240af37e768e855680777872f6f4e7b71dBrian Paul 343239ce2240af37e768e855680777872f6f4e7b71dBrian Paul 344239ce2240af37e768e855680777872f6f4e7b71dBrian Paul#ifndef GLX_GLXEXT_LEGACY 345239ce2240af37e768e855680777872f6f4e7b71dBrian Paul 346239ce2240af37e768e855680777872f6f4e7b71dBrian Paul#include <GL/glxext.h> 347239ce2240af37e768e855680777872f6f4e7b71dBrian Paul 34823b1503d79bc148521f8cff3c7b5f5faa146d1acBrian Paul#endif /* GLX_GLXEXT_LEGACY */ 34907b220ad46d5f30218210b5512c9037214a7ff89Brian Paul 350ff06c837b5c743d2fe6cec4ca3474245861b699cBrian Paul 3518455203bc7231f4ad4ee517faef3df024bf38070Brian Paul/** 3528455203bc7231f4ad4ee517faef3df024bf38070Brian Paul ** The following aren't in glxext.h yet. 3538455203bc7231f4ad4ee517faef3df024bf38070Brian Paul **/ 3548455203bc7231f4ad4ee517faef3df024bf38070Brian Paul 3558455203bc7231f4ad4ee517faef3df024bf38070Brian Paul 3568455203bc7231f4ad4ee517faef3df024bf38070Brian Paul/* 3578455203bc7231f4ad4ee517faef3df024bf38070Brian Paul * ???. GLX_NV_vertex_array_range 3588455203bc7231f4ad4ee517faef3df024bf38070Brian Paul */ 3598455203bc7231f4ad4ee517faef3df024bf38070Brian Paul#ifndef GLX_NV_vertex_array_range 3608455203bc7231f4ad4ee517faef3df024bf38070Brian Paul#define GLX_NV_vertex_array_range 3618455203bc7231f4ad4ee517faef3df024bf38070Brian Paul 3628455203bc7231f4ad4ee517faef3df024bf38070Brian Paulextern void *glXAllocateMemoryNV(GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority); 3638455203bc7231f4ad4ee517faef3df024bf38070Brian Paulextern void glXFreeMemoryNV(GLvoid *pointer); 3648455203bc7231f4ad4ee517faef3df024bf38070Brian Paultypedef void * ( * PFNGLXALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority); 3658455203bc7231f4ad4ee517faef3df024bf38070Brian Paultypedef void ( * PFNGLXFREEMEMORYNVPROC) (GLvoid *pointer); 3668455203bc7231f4ad4ee517faef3df024bf38070Brian Paul 3678455203bc7231f4ad4ee517faef3df024bf38070Brian Paul#endif /* GLX_NV_vertex_array_range */ 3688455203bc7231f4ad4ee517faef3df024bf38070Brian Paul 3698455203bc7231f4ad4ee517faef3df024bf38070Brian Paul 370e58286ccb6e47a91ea5bc06e7dc54a17b674c9c3Brian Paul/* 371e58286ccb6e47a91ea5bc06e7dc54a17b674c9c3Brian Paul * ARB ?. GLX_ARB_render_texture 3723e9c099088424c149931dcf546ae0a4d9ac2ae76Brian Paul * XXX This was never finalized! 373e58286ccb6e47a91ea5bc06e7dc54a17b674c9c3Brian Paul */ 374e58286ccb6e47a91ea5bc06e7dc54a17b674c9c3Brian Paul#ifndef GLX_ARB_render_texture 375e58286ccb6e47a91ea5bc06e7dc54a17b674c9c3Brian Paul#define GLX_ARB_render_texture 1 376e58286ccb6e47a91ea5bc06e7dc54a17b674c9c3Brian Paul 377e58286ccb6e47a91ea5bc06e7dc54a17b674c9c3Brian Paulextern Bool glXBindTexImageARB(Display *dpy, GLXPbuffer pbuffer, int buffer); 378e58286ccb6e47a91ea5bc06e7dc54a17b674c9c3Brian Paulextern Bool glXReleaseTexImageARB(Display *dpy, GLXPbuffer pbuffer, int buffer); 379e58286ccb6e47a91ea5bc06e7dc54a17b674c9c3Brian Paulextern Bool glXDrawableAttribARB(Display *dpy, GLXDrawable draw, const int *attribList); 380e58286ccb6e47a91ea5bc06e7dc54a17b674c9c3Brian Paul 381e58286ccb6e47a91ea5bc06e7dc54a17b674c9c3Brian Paul#endif /* GLX_ARB_render_texture */ 382e58286ccb6e47a91ea5bc06e7dc54a17b674c9c3Brian Paul 383e58286ccb6e47a91ea5bc06e7dc54a17b674c9c3Brian Paul 38485edffd5fff0328f96c73615d6bf98c4516b4ee4Brian Paul/* 38585edffd5fff0328f96c73615d6bf98c4516b4ee4Brian Paul * Remove this when glxext.h is updated. 38685edffd5fff0328f96c73615d6bf98c4516b4ee4Brian Paul */ 38785edffd5fff0328f96c73615d6bf98c4516b4ee4Brian Paul#ifndef GLX_NV_float_buffer 38885edffd5fff0328f96c73615d6bf98c4516b4ee4Brian Paul#define GLX_NV_float_buffer 1 38985edffd5fff0328f96c73615d6bf98c4516b4ee4Brian Paul 39085edffd5fff0328f96c73615d6bf98c4516b4ee4Brian Paul#define GLX_FLOAT_COMPONENTS_NV 0x20B0 39185edffd5fff0328f96c73615d6bf98c4516b4ee4Brian Paul 39285edffd5fff0328f96c73615d6bf98c4516b4ee4Brian Paul#endif /* GLX_NV_float_buffer */ 39385edffd5fff0328f96c73615d6bf98c4516b4ee4Brian Paul 39485edffd5fff0328f96c73615d6bf98c4516b4ee4Brian Paul 3959c32af5bb24d531d7140590085e229b7381747f8Brian Paul 3969c32af5bb24d531d7140590085e229b7381747f8Brian Paul/* 3979c32af5bb24d531d7140590085e229b7381747f8Brian Paul * #?. GLX_MESA_swap_frame_usage 3989c32af5bb24d531d7140590085e229b7381747f8Brian Paul */ 3999c32af5bb24d531d7140590085e229b7381747f8Brian Paul#ifndef GLX_MESA_swap_frame_usage 4009c32af5bb24d531d7140590085e229b7381747f8Brian Paul#define GLX_MESA_swap_frame_usage 1 4019c32af5bb24d531d7140590085e229b7381747f8Brian Paul 4029c32af5bb24d531d7140590085e229b7381747f8Brian Paulextern int glXGetFrameUsageMESA(Display *dpy, GLXDrawable drawable, float *usage); 4039c32af5bb24d531d7140590085e229b7381747f8Brian Paulextern int glXBeginFrameTrackingMESA(Display *dpy, GLXDrawable drawable); 4049c32af5bb24d531d7140590085e229b7381747f8Brian Paulextern int glXEndFrameTrackingMESA(Display *dpy, GLXDrawable drawable); 4059c32af5bb24d531d7140590085e229b7381747f8Brian Paulextern int glXQueryFrameTrackingMESA(Display *dpy, GLXDrawable drawable, int64_t *swapCount, int64_t *missedFrames, float *lastMissedUsage); 4069c32af5bb24d531d7140590085e229b7381747f8Brian Paul 4079c32af5bb24d531d7140590085e229b7381747f8Brian Paultypedef int (*PFNGLXGETFRAMEUSAGEMESAPROC) (Display *dpy, GLXDrawable drawable, float *usage); 4084cbd16ed3ffecd743b4921fab3a65f8510d151c9Brian Paultypedef int (*PFNGLXBEGINFRAMETRACKINGMESAPROC)(Display *dpy, GLXDrawable drawable); 4094cbd16ed3ffecd743b4921fab3a65f8510d151c9Brian Paultypedef int (*PFNGLXENDFRAMETRACKINGMESAPROC)(Display *dpy, GLXDrawable drawable); 4104cbd16ed3ffecd743b4921fab3a65f8510d151c9Brian Paultypedef int (*PFNGLXQUERYFRAMETRACKINGMESAPROC)(Display *dpy, GLXDrawable drawable, int64_t *swapCount, int64_t *missedFrames, float *lastMissedUsage); 4119c32af5bb24d531d7140590085e229b7381747f8Brian Paul 4129c32af5bb24d531d7140590085e229b7381747f8Brian Paul#endif /* GLX_MESA_swap_frame_usage */ 4139c32af5bb24d531d7140590085e229b7381747f8Brian Paul 4149c32af5bb24d531d7140590085e229b7381747f8Brian Paul 4159c32af5bb24d531d7140590085e229b7381747f8Brian Paul 4169c32af5bb24d531d7140590085e229b7381747f8Brian Paul/* 4179c32af5bb24d531d7140590085e229b7381747f8Brian Paul * #?. GLX_MESA_swap_control 4189c32af5bb24d531d7140590085e229b7381747f8Brian Paul */ 4199c32af5bb24d531d7140590085e229b7381747f8Brian Paul#ifndef GLX_MESA_swap_control 4209c32af5bb24d531d7140590085e229b7381747f8Brian Paul#define GLX_MESA_swap_control 1 4219c32af5bb24d531d7140590085e229b7381747f8Brian Paul 4229c32af5bb24d531d7140590085e229b7381747f8Brian Paulextern int glXSwapIntervalMESA(unsigned int interval); 4239c32af5bb24d531d7140590085e229b7381747f8Brian Paulextern int glXGetSwapIntervalMESA(void); 4249c32af5bb24d531d7140590085e229b7381747f8Brian Paul 4254cbd16ed3ffecd743b4921fab3a65f8510d151c9Brian Paultypedef int (*PFNGLXSWAPINTERVALMESAPROC)(unsigned int interval); 4264cbd16ed3ffecd743b4921fab3a65f8510d151c9Brian Paultypedef int (*PFNGLXGETSWAPINTERVALMESAPROC)(void); 4279c32af5bb24d531d7140590085e229b7381747f8Brian Paul 4289c32af5bb24d531d7140590085e229b7381747f8Brian Paul#endif /* GLX_MESA_swap_control */ 4299c32af5bb24d531d7140590085e229b7381747f8Brian Paul 4309c32af5bb24d531d7140590085e229b7381747f8Brian Paul 4319c32af5bb24d531d7140590085e229b7381747f8Brian Paul 4329c32af5bb24d531d7140590085e229b7381747f8Brian Paul/* 4339c32af5bb24d531d7140590085e229b7381747f8Brian Paul * #?. GLX_EXT_texture_from_pixmap 4349c32af5bb24d531d7140590085e229b7381747f8Brian Paul * XXX not finished? 4359c32af5bb24d531d7140590085e229b7381747f8Brian Paul */ 4369c32af5bb24d531d7140590085e229b7381747f8Brian Paul#ifndef GLX_EXT_texture_from_pixmap 4379c32af5bb24d531d7140590085e229b7381747f8Brian Paul#define GLX_EXT_texture_from_pixmap 1 4389c32af5bb24d531d7140590085e229b7381747f8Brian Paul 439efbf170cfbb0ad8ad8a480a0be581b0908b53138Brian Paul#define GLX_BIND_TO_TEXTURE_RGB_EXT 0x20D0 440efbf170cfbb0ad8ad8a480a0be581b0908b53138Brian Paul#define GLX_BIND_TO_TEXTURE_RGBA_EXT 0x20D1 441efbf170cfbb0ad8ad8a480a0be581b0908b53138Brian Paul#define GLX_BIND_TO_MIPMAP_TEXTURE_EXT 0x20D2 442efbf170cfbb0ad8ad8a480a0be581b0908b53138Brian Paul#define GLX_BIND_TO_TEXTURE_TARGETS_EXT 0x20D3 443efbf170cfbb0ad8ad8a480a0be581b0908b53138Brian Paul#define GLX_Y_INVERTED_EXT 0x20D4 444efbf170cfbb0ad8ad8a480a0be581b0908b53138Brian Paul 445efbf170cfbb0ad8ad8a480a0be581b0908b53138Brian Paul#define GLX_TEXTURE_FORMAT_EXT 0x20D5 446efbf170cfbb0ad8ad8a480a0be581b0908b53138Brian Paul#define GLX_TEXTURE_TARGET_EXT 0x20D6 447efbf170cfbb0ad8ad8a480a0be581b0908b53138Brian Paul#define GLX_MIPMAP_TEXTURE_EXT 0x20D7 448efbf170cfbb0ad8ad8a480a0be581b0908b53138Brian Paul 449efbf170cfbb0ad8ad8a480a0be581b0908b53138Brian Paul#define GLX_TEXTURE_FORMAT_NONE_EXT 0x20D8 450efbf170cfbb0ad8ad8a480a0be581b0908b53138Brian Paul#define GLX_TEXTURE_FORMAT_RGB_EXT 0x20D9 451efbf170cfbb0ad8ad8a480a0be581b0908b53138Brian Paul#define GLX_TEXTURE_FORMAT_RGBA_EXT 0x20DA 452efbf170cfbb0ad8ad8a480a0be581b0908b53138Brian Paul 453efbf170cfbb0ad8ad8a480a0be581b0908b53138Brian Paul#define GLX_TEXTURE_1D_BIT_EXT 0x00000001 454efbf170cfbb0ad8ad8a480a0be581b0908b53138Brian Paul#define GLX_TEXTURE_2D_BIT_EXT 0x00000002 455efbf170cfbb0ad8ad8a480a0be581b0908b53138Brian Paul#define GLX_TEXTURE_RECTANGLE_BIT_EXT 0x00000004 456efbf170cfbb0ad8ad8a480a0be581b0908b53138Brian Paul 457efbf170cfbb0ad8ad8a480a0be581b0908b53138Brian Paul#define GLX_TEXTURE_1D_EXT 0x20DB 458efbf170cfbb0ad8ad8a480a0be581b0908b53138Brian Paul#define GLX_TEXTURE_2D_EXT 0x20DC 459efbf170cfbb0ad8ad8a480a0be581b0908b53138Brian Paul#define GLX_TEXTURE_RECTANGLE_EXT 0x20DD 460efbf170cfbb0ad8ad8a480a0be581b0908b53138Brian Paul 461efbf170cfbb0ad8ad8a480a0be581b0908b53138Brian Paul#define GLX_FRONT_LEFT_EXT 0x20DE 462efbf170cfbb0ad8ad8a480a0be581b0908b53138Brian Paul#define GLX_FRONT_RIGHT_EXT 0x20DF 463efbf170cfbb0ad8ad8a480a0be581b0908b53138Brian Paul#define GLX_BACK_LEFT_EXT 0x20E0 464efbf170cfbb0ad8ad8a480a0be581b0908b53138Brian Paul#define GLX_BACK_RIGHT_EXT 0x20E1 465efbf170cfbb0ad8ad8a480a0be581b0908b53138Brian Paul#define GLX_FRONT_EXT GLX_FRONT_LEFT_EXT 466efbf170cfbb0ad8ad8a480a0be581b0908b53138Brian Paul#define GLX_BACK_EXT GLX_BACK_LEFT_EXT 467efbf170cfbb0ad8ad8a480a0be581b0908b53138Brian Paul#define GLX_AUX0_EXT 0x20E2 468efbf170cfbb0ad8ad8a480a0be581b0908b53138Brian Paul#define GLX_AUX1_EXT 0x20E3 469efbf170cfbb0ad8ad8a480a0be581b0908b53138Brian Paul#define GLX_AUX2_EXT 0x20E4 470efbf170cfbb0ad8ad8a480a0be581b0908b53138Brian Paul#define GLX_AUX3_EXT 0x20E5 471efbf170cfbb0ad8ad8a480a0be581b0908b53138Brian Paul#define GLX_AUX4_EXT 0x20E6 472efbf170cfbb0ad8ad8a480a0be581b0908b53138Brian Paul#define GLX_AUX5_EXT 0x20E7 473efbf170cfbb0ad8ad8a480a0be581b0908b53138Brian Paul#define GLX_AUX6_EXT 0x20E8 474efbf170cfbb0ad8ad8a480a0be581b0908b53138Brian Paul#define GLX_AUX7_EXT 0x20E9 475efbf170cfbb0ad8ad8a480a0be581b0908b53138Brian Paul#define GLX_AUX8_EXT 0x20EA 476efbf170cfbb0ad8ad8a480a0be581b0908b53138Brian Paul#define GLX_AUX9_EXT 0x20EB 4779c32af5bb24d531d7140590085e229b7381747f8Brian Paul 478015762455764e3b467f0df769d51d0ed0ea3ee2cAdam Jacksonextern void glXBindTexImageEXT(Display *dpy, GLXDrawable drawable, int buffer, const int *attrib_list); 479015762455764e3b467f0df769d51d0ed0ea3ee2cAdam Jacksonextern void glXReleaseTexImageEXT(Display *dpy, GLXDrawable drawable, int buffer); 4809c32af5bb24d531d7140590085e229b7381747f8Brian Paul 4819c32af5bb24d531d7140590085e229b7381747f8Brian Paul#endif /* GLX_EXT_texture_from_pixmap */ 4829c32af5bb24d531d7140590085e229b7381747f8Brian Paul 4839c32af5bb24d531d7140590085e229b7381747f8Brian Paul 4849c32af5bb24d531d7140590085e229b7381747f8Brian Paul 4859c32af5bb24d531d7140590085e229b7381747f8Brian Paul 4869bfd9582d418c7e73f7b66f050fac80bd3e04115Dave Airlie/*** Should these go here, or in another header? */ 4879bfd9582d418c7e73f7b66f050fac80bd3e04115Dave Airlie/* 4889bfd9582d418c7e73f7b66f050fac80bd3e04115Dave Airlie** GLX Events 4899bfd9582d418c7e73f7b66f050fac80bd3e04115Dave Airlie*/ 4909bfd9582d418c7e73f7b66f050fac80bd3e04115Dave Airlietypedef struct { 4919bfd9582d418c7e73f7b66f050fac80bd3e04115Dave Airlie int event_type; /* GLX_DAMAGED or GLX_SAVED */ 4929bfd9582d418c7e73f7b66f050fac80bd3e04115Dave Airlie int draw_type; /* GLX_WINDOW or GLX_PBUFFER */ 4939bfd9582d418c7e73f7b66f050fac80bd3e04115Dave Airlie unsigned long serial; /* # of last request processed by server */ 4949bfd9582d418c7e73f7b66f050fac80bd3e04115Dave Airlie Bool send_event; /* true if this came for SendEvent request */ 4959bfd9582d418c7e73f7b66f050fac80bd3e04115Dave Airlie Display *display; /* display the event was read from */ 4969bfd9582d418c7e73f7b66f050fac80bd3e04115Dave Airlie GLXDrawable drawable; /* XID of Drawable */ 4979bfd9582d418c7e73f7b66f050fac80bd3e04115Dave Airlie unsigned int buffer_mask; /* mask indicating which buffers are affected */ 4989bfd9582d418c7e73f7b66f050fac80bd3e04115Dave Airlie unsigned int aux_buffer; /* which aux buffer was affected */ 4999bfd9582d418c7e73f7b66f050fac80bd3e04115Dave Airlie int x, y; 5009bfd9582d418c7e73f7b66f050fac80bd3e04115Dave Airlie int width, height; 5019bfd9582d418c7e73f7b66f050fac80bd3e04115Dave Airlie int count; /* if nonzero, at least this many more */ 5029bfd9582d418c7e73f7b66f050fac80bd3e04115Dave Airlie} GLXPbufferClobberEvent; 5039bfd9582d418c7e73f7b66f050fac80bd3e04115Dave Airlie 5047f170573ea486f2f2dd474c2590346f1a0110773Jesse Barnestypedef struct { 5057a9329ba99fe1242c07fbf4fd04e7a4dbeba2e72Robert Bragg int type; 5067a9329ba99fe1242c07fbf4fd04e7a4dbeba2e72Robert Bragg unsigned long serial; /* # of last request processed by server */ 5077a9329ba99fe1242c07fbf4fd04e7a4dbeba2e72Robert Bragg Bool send_event; /* true if this came from a SendEvent request */ 5087a9329ba99fe1242c07fbf4fd04e7a4dbeba2e72Robert Bragg Display *display; /* Display the event was read from */ 5097a9329ba99fe1242c07fbf4fd04e7a4dbeba2e72Robert Bragg GLXDrawable drawable; /* drawable on which event was requested in event mask */ 5107f170573ea486f2f2dd474c2590346f1a0110773Jesse Barnes int event_type; 5117f170573ea486f2f2dd474c2590346f1a0110773Jesse Barnes int64_t ust; 5127f170573ea486f2f2dd474c2590346f1a0110773Jesse Barnes int64_t msc; 5137f170573ea486f2f2dd474c2590346f1a0110773Jesse Barnes int64_t sbc; 5147f170573ea486f2f2dd474c2590346f1a0110773Jesse Barnes} GLXBufferSwapComplete; 5157f170573ea486f2f2dd474c2590346f1a0110773Jesse Barnes 5169bfd9582d418c7e73f7b66f050fac80bd3e04115Dave Airlietypedef union __GLXEvent { 5179bfd9582d418c7e73f7b66f050fac80bd3e04115Dave Airlie GLXPbufferClobberEvent glxpbufferclobber; 5187f170573ea486f2f2dd474c2590346f1a0110773Jesse Barnes GLXBufferSwapComplete glxbufferswapcomplete; 5199bfd9582d418c7e73f7b66f050fac80bd3e04115Dave Airlie long pad[24]; 5209bfd9582d418c7e73f7b66f050fac80bd3e04115Dave Airlie} GLXEvent; 521afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 522afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg#ifdef __cplusplus 523afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg} 524afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg#endif 525afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg 526afb833d4e89c312460a4ab9ed6a7a8ca4ebbfe1cjtg#endif 527