Commit 9c7d54287d5cf5878ae64634cab29f06343e5029

Authored by dg
1 parent 627179a0

add GLEW

add new shaders
shaders work


git-svn-id: http://svn.net-core.org/repos/t-engine4@749 51575b47-30f0-44d4-a5cc-537603b46e54
... ... @@ -171,16 +171,16 @@ function _M:makeMapObject(tiles)
171 171 if tiles.use_images and self.textures then
172 172 for i = 1, #self.textures do
173 173 local t = self.textures[i]
174   - if type(t) == "function" then self._mo:texture(i, t(self, tiles))
  174 + if type(t) == "function" then local tex, is3d = t(self, tiles); self._mo:texture(i, tex, is3d) tiles.texture_store[tex] = true
175 175 elseif type(t) == "table" then
176   - if t[1] == "image" then self._mo:texture(i, tiles:get('', 0, 0, 0, 0, 0, 0, t[2]))
  176 + if t[1] == "image" then local tex = tiles:get('', 0, 0, 0, 0, 0, 0, t[2]); self._mo:texture(i, tex, false) tiles.texture_store[tex] = true
177 177 end
178 178 end
179 179 end
180 180 end
181 181
182 182 -- Setup shader
183   - if tiles.use_images and self.shader then
  183 + if tiles.use_images and core.shader.active() and self.shader then
184 184 self._mo:shader(Shader.new(self.shader, self.shader_args).shad)
185 185 end
186 186
... ...
... ... @@ -32,7 +32,7 @@ function _M:init(name, args)
32 32 self.args = args or {}
33 33 self.name = name
34 34
35   - self:loaded()
  35 + if core.shader.active() then self:loaded() end
36 36 end
37 37
38 38 --- Serialization
... ... @@ -102,6 +102,15 @@ function _M:loaded()
102 102 if v.texture then
103 103 print("[SHADER] setting texture param", k, v.texture)
104 104 _M.progs[self.name]:paramTexture(k, v.texture, v.is3d)
  105 + elseif #v == 2 then
  106 + print("[SHADER] setting vec2 param", k, v[1], v[2])
  107 + _M.progs[self.name]:paramNumber2(k, v[1], v[2])
  108 + elseif #v == 3 then
  109 + print("[SHADER] setting vec3 param", k, v[1], v[2], v[3])
  110 + _M.progs[self.name]:paramNumber3(k, v[1], v[2], v[3])
  111 + elseif #v == 4 then
  112 + print("[SHADER] setting vec4 param", k, v[1], v[2], v[3], v[4])
  113 + _M.progs[self.name]:paramNumber4(k, v[1], v[2], v[3], v[4])
105 114 end
106 115 end
107 116 end
... ...
... ... @@ -32,6 +32,7 @@ function _M:init(w, h, fontname, fontsize, texture, allow_backcolor)
32 32 self.w, self.h = w, h
33 33 self.font = core.display.newFont(fontname or "/data/font/VeraMoBd.ttf", fontsize or 14)
34 34 self.repo = {}
  35 + self.texture_store = {}
35 36 end
36 37
37 38 function _M:get(char, fr, fg, fb, br, bg, bb, image, alpha)
... ... @@ -86,4 +87,5 @@ end
86 87
87 88 function _M:clean()
88 89 self.repo = {}
  90 + self.texture_store = {}
89 91 end
... ...
... ... @@ -43,7 +43,7 @@ newBirthDescriptor{
43 43 },
44 44 },
45 45 copy = {
46   - faction = "players",
  46 + faction = "undead",
47 47 undead = 1,
48 48 }
49 49 }
... ...
... ... @@ -19,21 +19,21 @@
19 19
20 20 -- CSV export
21 21 local src = [[
22   -,Enemies,,Reunited Kingdom,Shire,Lonely Mountain,Eryn Lasgalen,Angolwen,Tol Falas,,Water lair|H,Assassin lair|H,,Sunwall|H,Orc Pride,,Sandworm Burrowers
  22 +,Enemies,Undead,Reunited Kingdom,Shire,Lonely Mountain,Eryn Lasgalen,Angolwen,Tol Falas,,Water lair|H,Assassin lair|H,,Sunwall|H,Orc Pride,,Sandworm Burrowers
23 23 Enemies,,,,,,,,,,,,,,,,
24   -,,,,,,,,,,,,,,,,
  24 +Undead,-1,,,,,,,,,,,,,,,
25 25 Reunited Kingdom,-1,,,,,,,,,,,,,,,
26 26 Shire,-1,,1,,,,,,,,,,,,,
27 27 Lonely Mountain,-1,,0.5,1,,,,,,,,,,,,
28 28 Eryn Lasgalen,-1,,0.5,1,0.3,,,,,,,,,,,
29 29 Angolwen,-1,,,,,,,,,,,,,,,
30   -Tol Falas,,,-1,-1,-1,-1,-1,,,,,,,,,
  30 +Tol Falas,,-1,-1,-1,-1,-1,-1,,,,,,,,,
31 31 ,,,,,,,,,,,,,,,,
32 32 Water lair|H,-1,,,,,,,,,,,,,,,
33 33 Assassin lair|H,,,,,,,,,,,,,,,,
34 34 ,,,,,,,,,,,,,,,,
35 35 Sunwall|H,-1,,,,,,0,-1,,,-1,,,,,
36   -Orc Pride,,,-1,-1,-1,-1,-1,-1,,,,,-1,,,
  36 +Orc Pride,,-1,-1,-1,-1,-1,-1,-1,,,,,-1,,,
37 37 ,,,,,,,,,,,,,,,,
38 38 Sandworm Burrowers,,,,,,,,,,,,,,,,
39 39 ]]
... ...
... ... @@ -62,7 +62,6 @@ newEntity{
62 62
63 63 newEntity{
64 64 define_as = "WALL",
65   --- shader = "water", textures = { function() return core.noise.new(3):makeTexture3D("simplex", 128, 128, 128, 4, 0, 0, 0) end },
66 65 name = "wall", image = "terrain/granite_wall1.png",
67 66 display = '#', color_r=255, color_g=255, color_b=255, back_color=colors.GREY,
68 67 always_remember = true,
... ...
... ... @@ -20,6 +20,7 @@
20 20 newEntity{
21 21 define_as = "WATER_FLOOR",
22 22 name = "underwater", image = "terrain/water_floor.png",
  23 +-- shader = "water", textures = { function() return core.noise.new(3):makeTexture3D("simplex", 128, 128, 128, 4, 0, 0, 0), true end },
23 24 display = '.', color=colors.LIGHT_BLUE, back_color=colors.DARK_BLUE,
24 25 air_level = -5, air_condition="water",
25 26 }
... ... @@ -27,6 +28,7 @@ newEntity{
27 28 newEntity{
28 29 define_as = "WATER_WALL",
29 30 name = "wall", image = "terrain/water_wall.png",
  31 +-- shader = "water", textures = { function() return core.noise.new(3):makeTexture3D("simplex", 128, 128, 128, 4, 0, 0, 0), true end },
30 32 display = '#', color=colors.AQUAMARINE, back_color=colors.DARK_BLUE,
31 33 always_remember = true,
32 34 can_pass = {pass_wall=1},
... ... @@ -38,6 +40,7 @@ newEntity{
38 40 newEntity{
39 41 define_as = "SHALLOW_WATER",
40 42 name = "shallow water", image = "terrain/water_floor.png",
  43 +-- shader = "water", textures = { function() return core.noise.new(3):makeTexture3D("simplex", 128, 128, 128, 4, 0, 0, 0), true end },
41 44 display = '~', color=colors.LIGHT_BLUE, back_color=colors.DARK_BLUE,
42 45 always_remember = true,
43 46 }
... ... @@ -45,6 +48,7 @@ newEntity{
45 48 newEntity{
46 49 define_as = "DEEP_WATER",
47 50 name = "deep water", image = "terrain/water_floor.png",
  51 +-- shader = "water", textures = { function() return core.noise.new(3):makeTexture3D("simplex", 128, 128, 128, 4, 0, 0, 0), true end },
48 52 display = '~', color=colors.AQUAMARINE, back_color=colors.DARK_BLUE,
49 53 always_remember = true,
50 54 air_level = -5, air_condition="water",
... ...
... ... @@ -25,7 +25,7 @@ newEntity{
25 25 display = "S", color=colors.WHITE,
26 26 desc = [[Arachnophobia...]],
27 27
28   - combat = { dam=resolvers.rngavg(9,11), atk=16, apr=9, damtype=DamageType.NATURE, dammod={dex=1.2} },
  28 + combat = { dam=resolvers.rngavg(20,25), atk=16, apr=9, damtype=DamageType.NATURE, dammod={dex=1.2} },
29 29
30 30 body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1 },
31 31
... ...
  1 +uniform sampler2D tex;
  2 +uniform float tick;
  3 +uniform vec4 color1;
  4 +uniform vec4 color2;
  5 +
  6 +void main(void)
  7 +{
  8 + float fTime0_X = tick / 1000;
  9 + //gl_FragColor = mix(color1, color2, smoothstep(0.3,0.7,mod(fTime0_X/2.0,1.0)));
  10 + //gl_FragColor = mix(color1, color2, sin(fTime0_X*2.0));
  11 + gl_FragColor = mix(color1, color2, smoothstep(0.3,0.7,abs(mod(fTime0_X,2.0)-1.0)));
  12 + gl_FragColor *= texture2D(tex, gl_TexCoord[0].xy);
  13 +}
... ...
  1 +-- ToME - Tales of Middle-Earth
  2 +-- Copyright (C) 2009, 2010 Nicolas Casalini
  3 +--
  4 +-- This program is free software: you can redistribute it and/or modify
  5 +-- it under the terms of the GNU General Public License as published by
  6 +-- the Free Software Foundation, either version 3 of the License, or
  7 +-- (at your option) any later version.
  8 +--
  9 +-- This program is distributed in the hope that it will be useful,
  10 +-- but WITHOUT ANY WARRANTY; without even the implied warranty of
  11 +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12 +-- GNU General Public License for more details.
  13 +--
  14 +-- You should have received a copy of the GNU General Public License
  15 +-- along with this program. If not, see <http://www.gnu.org/licenses/>.
  16 +--
  17 +-- Nicolas Casalini "DarkGod"
  18 +-- darkgod@te4.org
  19 +
  20 +return {
  21 + frag = "dual_hue",
  22 + vert = nil,
  23 + args = {
  24 + color1 = hue_color1 or {1,0,0,1},
  25 + color2 = hue_color2 or {0,1,0,1},
  26 + },
  27 + clone = false,
  28 +}
... ...
  1 +uniform sampler2D tex;
  2 +uniform float tick;
  3 +uniform vec4 color1;
  4 +uniform vec4 color2;
  5 +uniform vec4 color3;
  6 +uniform vec4 color4;
  7 +
  8 +const float PI = 3.14159265;
  9 +
  10 +void main()
  11 +{
  12 + float fTime0_X = tick / 1000;
  13 + float count = fTime0_X/2.0;
  14 + vec4 col1;
  15 + vec4 col2;
  16 + if(mod(count,4.0)<2.0)
  17 + {
  18 + if(mod(count,2.0)<1.0)
  19 + {
  20 + col1 = color1;
  21 + col2 = color2;
  22 + }
  23 + else
  24 + {
  25 + col1 = color2;
  26 + col2 = color3;
  27 + }
  28 + }
  29 + else
  30 + {
  31 + if(mod(count,2.0)<1.0)
  32 + {
  33 + col1 = color3;
  34 + col2 = color4;
  35 + }
  36 + else
  37 + {
  38 + col1 = color4;
  39 + col2 = color1;
  40 + }
  41 +
  42 + }
  43 +
  44 + gl_FragColor = mix(col1, col2, smoothstep(0.3,0.7,mod(fTime0_X/2.0,1.0)));
  45 + gl_FragColor *= texture2D(tex, gl_TexCoord[0].xy);
  46 +}
... ...
  1 +-- ToME - Tales of Middle-Earth
  2 +-- Copyright (C) 2009, 2010 Nicolas Casalini
  3 +--
  4 +-- This program is free software: you can redistribute it and/or modify
  5 +-- it under the terms of the GNU General Public License as published by
  6 +-- the Free Software Foundation, either version 3 of the License, or
  7 +-- (at your option) any later version.
  8 +--
  9 +-- This program is distributed in the hope that it will be useful,
  10 +-- but WITHOUT ANY WARRANTY; without even the implied warranty of
  11 +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12 +-- GNU General Public License for more details.
  13 +--
  14 +-- You should have received a copy of the GNU General Public License
  15 +-- along with this program. If not, see <http://www.gnu.org/licenses/>.
  16 +--
  17 +-- Nicolas Casalini "DarkGod"
  18 +-- darkgod@te4.org
  19 +
  20 +return {
  21 + frag = "quad_hue",
  22 + vert = nil,
  23 + args = {
  24 + color1 = hue_color1 or {1,0,0,1},
  25 + color2 = hue_color2 or {0,1,0,1},
  26 + color3 = hue_color3 or {0,0,1,1},
  27 + color4 = hue_color4 or {0,1,1,1},
  28 + },
  29 + clone = false,
  30 +}
... ...
1   -/*
2 1 uniform float tick;
3   -uniform float alpha;
4 2 uniform sampler3D noisevol;
  3 +uniform vec2 mapCoord;
  4 +uniform sampler2D tex;
  5 +uniform int mapx;
  6 +uniform int mapy;
5 7
6 8 void main(void)
7 9 {
8 10 float fTime0_X = tick / 10000;
9   - vec4 noisy = texture3D(noisevol,vec3(gl_TexCoord[0].xy,fTime0_X));
10   - vec3 bump = 2.0 * noisy.xyz - 1.1;
11   - gl_FragColor.xyz = (1.0-bump.xyz)*vec3(0.3,0.3,1.0)+(bump.xyz)*vec3(0.0,0.0,0.0);
12   - gl_FragColor.a = 1;
13   -}
14   -*/
15   -uniform float tick;
16   -uniform sampler3D noisevol;
17   -uniform ivec2 mapCoord;
  11 + vec2 coord = mapCoord+gl_TexCoord[0].xy;
  12 + float noisy = texture3D(noisevol,vec3(coord*0.11,fTime0_X)).r;
  13 + float noisy2 = texture3D(noisevol,vec3(coord*0.47,fTime0_X)).r;
  14 + float noisy3 = texture3D(noisevol,vec3(coord*0.67,fTime0_X)).r;
  15 + float noise = (noisy+noisy2+noisy3)/3.0;
18 16
19   -void main(void)
20   -{
21   - float fTime0_X = tick / 10000;
22   - vec4 noisy = texture3D(noisevol,vec3(gl_TexCoord[0].xy*0.3,fTime0_X));
23   - vec4 noisy2 = texture3D(noisevol,vec3((mapCoord/50.0),fTime0_X));
24   - vec3 bump = 2.0 * (noisy.xyz+noisy2.xyz)/2.0 - 1.1;
25   - gl_FragColor.xyz = (1.0-bump.xyz)*vec3(0.3,0.3,1.0)+(bump.xyz)*vec3(0.0,0.0,0.0);
26   - gl_FragColor.a = 1;
  17 + float bump = abs((1.0 * noise)-1.3);
  18 + gl_FragColor = mix(gl_Color, texture2D(tex, gl_TexCoord[0].xy), bump);
27 19 }
... ...
... ... @@ -17,16 +17,11 @@
17 17 -- Nicolas Casalini "DarkGod"
18 18 -- darkgod@te4.org
19 19
20   -local noise = core.noise.new(2)
21   -local tex = noise:makeTexture2D("simplex", 128, 128, 4, 0, 0)
22   -tex = core.display.loadImage("/data/gfx/terrain/tree.png"):glTexture()
23   -
24 20 return {
25 21 frag = "water",
26 22 vert = nil,
27 23 args = {
28   --- noise2d = { texture = tex },
29   - noisevol = { texture = tex, is3d=true },
  24 + noisevol = { texture = 1 },
30 25 },
31 26 clone = false,
32 27 }
... ...
... ... @@ -29,7 +29,7 @@ quickEntity('t', {show_tooltip=true, name='forest', display='#', color=colors.LI
29 29 quickEntity('l', {show_tooltip=true, name='Lorien', display='#', color=colors.GOLD, back_color=colors.DARK_GREEN, image="terrain/lorien.png", block_move=true})
30 30 quickEntity('v', {show_tooltip=true, name='old forest', display='#', color=colors.GREEN, back_color=colors.DARK_GREEN, image="terrain/tree_dark1.png", block_move=true})
31 31 quickEntity('i', {show_tooltip=true, name='iron mountains', display='^', color=colors.SLATE, back_color=colors.UMBER, image="terrain/mountain.png", block_move=true})
32   -quickEntity('=', {show_tooltip=true, name='the great sea', display='~', color=colors.DARK_BLUE, back_color=colors.BLUE, image="terrain/river.png", block_move=true})
  32 +quickEntity('=', {show_tooltip=true, name='the great sea', display='~', color=colors.DARK_BLUE, back_color=colors.BLUE, image="terrain/river.png", block_move=true, shader = "water", textures = { function() return core.noise.new(3):makeTexture3D("simplex", 128, 128, 128, 4, 0, 0, 0), true end },}) --
33 33 quickEntity('.', {show_tooltip=true, name='plains', display='.', color=colors.LIGHT_GREEN, back_color=colors.DARK_GREEN, image="terrain/grass.png", can_encounter=true, equilibrium_level=-10})
34 34 quickEntity('g', {show_tooltip=true, name='Forodwaith, the cold lands', display='.', color=colors.LIGHT_BLUE, back_color=colors.BLUE, can_encounter=true, equilibrium_level=-10})
35 35 quickEntity('q', {show_tooltip=true, name='Icebay of Forochel', display=';', color=colors.LIGHT_BLUE, back_color=colors.BLUE, can_encounter=true, equilibrium_level=-10})
... ...
No preview for this file type
... ... @@ -13,6 +13,7 @@ _OPTIONS.lua = _OPTIONS.lua or "default"
13 13 solution "TEngine"
14 14 configurations { "Debug", "Release" }
15 15 objdir "obj"
  16 + defines {"GLEW_STATIC"}
16 17
17 18 includedirs {
18 19 "src",
... ...
... ... @@ -22,6 +22,7 @@
22 22 #define DISPLAY_SDL_H
23 23
24 24 #include "tSDL.h"
  25 +#include "glew.h"
25 26 #include "tgl.h"
26 27
27 28 #ifdef __cplusplus
... ...
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
  1 +/*
  2 +** The OpenGL Extension Wrangler Library
  3 +** Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
  4 +** Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
  5 +** Copyright (C) 2002, Lev Povalahev
  6 +** All rights reserved.
  7 +**
  8 +** Redistribution and use in source and binary forms, with or without
  9 +** modification, are permitted provided that the following conditions are met:
  10 +**
  11 +** * Redistributions of source code must retain the above copyright notice,
  12 +** this list of conditions and the following disclaimer.
  13 +** * Redistributions in binary form must reproduce the above copyright notice,
  14 +** this list of conditions and the following disclaimer in the documentation
  15 +** and/or other materials provided with the distribution.
  16 +** * The name of the author may be used to endorse or promote products
  17 +** derived from this software without specific prior written permission.
  18 +**
  19 +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  20 +** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  21 +** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  22 +** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
  23 +** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  24 +** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  25 +** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  26 +** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  27 +** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  28 +** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
  29 +** THE POSSIBILITY OF SUCH DAMAGE.
  30 +*/
  31 +
  32 +/*
  33 + * Mesa 3-D graphics library
  34 + * Version: 7.0
  35 + *
  36 + * Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
  37 + *
  38 + * Permission is hereby granted, free of charge, to any person obtaining a
  39 + * copy of this software and associated documentation files (the "Software"),
  40 + * to deal in the Software without restriction, including without limitation
  41 + * the rights to use, copy, modify, merge, publish, distribute, sublicense,
  42 + * and/or sell copies of the Software, and to permit persons to whom the
  43 + * Software is furnished to do so, subject to the following conditions:
  44 + *
  45 + * The above copyright notice and this permission notice shall be included
  46 + * in all copies or substantial portions of the Software.
  47 + *
  48 + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  49 + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  50 + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
  51 + * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
  52 + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  53 + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  54 + */
  55 +
  56 +/*
  57 +** Copyright (c) 2007 The Khronos Group Inc.
  58 +**
  59 +** Permission is hereby granted, free of charge, to any person obtaining a
  60 +** copy of this software and/or associated documentation files (the
  61 +** "Materials"), to deal in the Materials without restriction, including
  62 +** without limitation the rights to use, copy, modify, merge, publish,
  63 +** distribute, sublicense, and/or sell copies of the Materials, and to
  64 +** permit persons to whom the Materials are furnished to do so, subject to
  65 +** the following conditions:
  66 +**
  67 +** The above copyright notice and this permission notice shall be included
  68 +** in all copies or substantial portions of the Materials.
  69 +**
  70 +** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  71 +** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  72 +** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
  73 +** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
  74 +** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
  75 +** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
  76 +** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
  77 +*/
  78 +
  79 +#ifndef __glxew_h__
  80 +#define __glxew_h__
  81 +#define __GLXEW_H__
  82 +
  83 +#ifdef __glxext_h_
  84 +#error glxext.h included before glxew.h
  85 +#endif
  86 +
  87 +#if defined(GLX_H) || defined(__GLX_glx_h__) || defined(__glx_h__)
  88 +#error glx.h included before glxew.h
  89 +#endif
  90 +
  91 +#define __glxext_h_
  92 +
  93 +#define GLX_H
  94 +#define __GLX_glx_h__
  95 +#define __glx_h__
  96 +
  97 +#include <X11/Xlib.h>
  98 +#include <X11/Xutil.h>
  99 +#include <X11/Xmd.h>
  100 +#include <GL/glew.h>
  101 +
  102 +#ifdef __cplusplus
  103 +extern "C" {
  104 +#endif
  105 +
  106 +/* ---------------------------- GLX_VERSION_1_0 --------------------------- */
  107 +
  108 +#ifndef GLX_VERSION_1_0
  109 +#define GLX_VERSION_1_0 1
  110 +
  111 +#define GLX_USE_GL 1
  112 +#define GLX_BUFFER_SIZE 2
  113 +#define GLX_LEVEL 3
  114 +#define GLX_RGBA 4
  115 +#define GLX_DOUBLEBUFFER 5
  116 +#define GLX_STEREO 6
  117 +#define GLX_AUX_BUFFERS 7
  118 +#define GLX_RED_SIZE 8
  119 +#define GLX_GREEN_SIZE 9
  120 +#define GLX_BLUE_SIZE 10
  121 +#define GLX_ALPHA_SIZE 11
  122 +#define GLX_DEPTH_SIZE 12
  123 +#define GLX_STENCIL_SIZE 13
  124 +#define GLX_ACCUM_RED_SIZE 14
  125 +#define GLX_ACCUM_GREEN_SIZE 15
  126 +#define GLX_ACCUM_BLUE_SIZE 16
  127 +#define GLX_ACCUM_ALPHA_SIZE 17
  128 +#define GLX_BAD_SCREEN 1
  129 +#define GLX_BAD_ATTRIBUTE 2
  130 +#define GLX_NO_EXTENSION 3
  131 +#define GLX_BAD_VISUAL 4
  132 +#define GLX_BAD_CONTEXT 5
  133 +#define GLX_BAD_VALUE 6
  134 +#define GLX_BAD_ENUM 7
  135 +
  136 +typedef XID GLXDrawable;
  137 +typedef XID GLXPixmap;
  138 +#ifdef __sun
  139 +typedef struct __glXContextRec *GLXContext;
  140 +#else
  141 +typedef struct __GLXcontextRec *GLXContext;
  142 +#endif
  143 +
  144 +typedef unsigned int GLXVideoDeviceNV;
  145 +
  146 +extern Bool glXQueryExtension (Display *dpy, int *errorBase, int *eventBase);
  147 +extern Bool glXQueryVersion (Display *dpy, int *major, int *minor);
  148 +extern int glXGetConfig (Display *dpy, XVisualInfo *vis, int attrib, int *value);
  149 +extern XVisualInfo* glXChooseVisual (Display *dpy, int screen, int *attribList);
  150 +extern GLXPixmap glXCreateGLXPixmap (Display *dpy, XVisualInfo *vis, Pixmap pixmap);
  151 +extern void glXDestroyGLXPixmap (Display *dpy, GLXPixmap pix);
  152 +extern GLXContext glXCreateContext (Display *dpy, XVisualInfo *vis, GLXContext shareList, Bool direct);
  153 +extern void glXDestroyContext (Display *dpy, GLXContext ctx);
  154 +extern Bool glXIsDirect (Display *dpy, GLXContext ctx);
  155 +extern void glXCopyContext (Display *dpy, GLXContext src, GLXContext dst, GLulong mask);
  156 +extern Bool glXMakeCurrent (Display *dpy, GLXDrawable drawable, GLXContext ctx);
  157 +extern GLXContext glXGetCurrentContext (void);
  158 +extern GLXDrawable glXGetCurrentDrawable (void);
  159 +extern void glXWaitGL (void);
  160 +extern void glXWaitX (void);
  161 +extern void glXSwapBuffers (Display *dpy, GLXDrawable drawable);
  162 +extern void glXUseXFont (Font font, int first, int count, int listBase);
  163 +
  164 +#define GLXEW_VERSION_1_0 GLXEW_GET_VAR(__GLXEW_VERSION_1_0)
  165 +
  166 +#endif /* GLX_VERSION_1_0 */
  167 +
  168 +/* ---------------------------- GLX_VERSION_1_1 --------------------------- */
  169 +
  170 +#ifndef GLX_VERSION_1_1
  171 +#define GLX_VERSION_1_1
  172 +
  173 +#define GLX_VENDOR 0x1
  174 +#define GLX_VERSION 0x2
  175 +#define GLX_EXTENSIONS 0x3
  176 +
  177 +extern const char* glXQueryExtensionsString (Display *dpy, int screen);
  178 +extern const char* glXGetClientString (Display *dpy, int name);
  179 +extern const char* glXQueryServerString (Display *dpy, int screen, int name);
  180 +
  181 +#define GLXEW_VERSION_1_1 GLXEW_GET_VAR(__GLXEW_VERSION_1_1)
  182 +
  183 +#endif /* GLX_VERSION_1_1 */
  184 +
  185 +/* ---------------------------- GLX_VERSION_1_2 ---------------------------- */
  186 +
  187 +#ifndef GLX_VERSION_1_2
  188 +#define GLX_VERSION_1_2 1
  189 +
  190 +typedef Display* ( * PFNGLXGETCURRENTDISPLAYPROC) (void);
  191 +
  192 +#define glXGetCurrentDisplay GLXEW_GET_FUN(__glewXGetCurrentDisplay)
  193 +
  194 +#define GLXEW_VERSION_1_2 GLXEW_GET_VAR(__GLXEW_VERSION_1_2)
  195 +
  196 +#endif /* GLX_VERSION_1_2 */
  197 +
  198 +/* ---------------------------- GLX_VERSION_1_3 ---------------------------- */
  199 +
  200 +#ifndef GLX_VERSION_1_3
  201 +#define GLX_VERSION_1_3 1
  202 +
  203 +#define GLX_RGBA_BIT 0x00000001
  204 +#define GLX_FRONT_LEFT_BUFFER_BIT 0x00000001
  205 +#define GLX_WINDOW_BIT 0x00000001
  206 +#define GLX_COLOR_INDEX_BIT 0x00000002
  207 +#define GLX_PIXMAP_BIT 0x00000002
  208 +#define GLX_FRONT_RIGHT_BUFFER_BIT 0x00000002
  209 +#define GLX_BACK_LEFT_BUFFER_BIT 0x00000004
  210 +#define GLX_PBUFFER_BIT 0x00000004
  211 +#define GLX_BACK_RIGHT_BUFFER_BIT 0x00000008
  212 +#define GLX_AUX_BUFFERS_BIT 0x00000010
  213 +#define GLX_CONFIG_CAVEAT 0x20
  214 +#define GLX_DEPTH_BUFFER_BIT 0x00000020
  215 +#define GLX_X_VISUAL_TYPE 0x22
  216 +#define GLX_TRANSPARENT_TYPE 0x23
  217 +#define GLX_TRANSPARENT_INDEX_VALUE 0x24
  218 +#define GLX_TRANSPARENT_RED_VALUE 0x25
  219 +#define GLX_TRANSPARENT_GREEN_VALUE 0x26
  220 +#define GLX_TRANSPARENT_BLUE_VALUE 0x27
  221 +#define GLX_TRANSPARENT_ALPHA_VALUE 0x28
  222 +#define GLX_STENCIL_BUFFER_BIT 0x00000040
  223 +#define GLX_ACCUM_BUFFER_BIT 0x00000080
  224 +#define GLX_NONE 0x8000
  225 +#define GLX_SLOW_CONFIG 0x8001
  226 +#define GLX_TRUE_COLOR 0x8002
  227 +#define GLX_DIRECT_COLOR 0x8003
  228 +#define GLX_PSEUDO_COLOR 0x8004
  229 +#define GLX_STATIC_COLOR 0x8005
  230 +#define GLX_GRAY_SCALE 0x8006
  231 +#define GLX_STATIC_GRAY 0x8007
  232 +#define GLX_TRANSPARENT_RGB 0x8008
  233 +#define GLX_TRANSPARENT_INDEX 0x8009
  234 +#define GLX_VISUAL_ID 0x800B
  235 +#define GLX_SCREEN 0x800C
  236 +#define GLX_NON_CONFORMANT_CONFIG 0x800D
  237 +#define GLX_DRAWABLE_TYPE 0x8010
  238 +#define GLX_RENDER_TYPE 0x8011
  239 +#define GLX_X_RENDERABLE 0x8012
  240 +#define GLX_FBCONFIG_ID 0x8013
  241 +#define GLX_RGBA_TYPE 0x8014
  242 +#define GLX_COLOR_INDEX_TYPE 0x8015
  243 +#define GLX_MAX_PBUFFER_WIDTH 0x8016
  244 +#define GLX_MAX_PBUFFER_HEIGHT 0x8017
  245 +#define GLX_MAX_PBUFFER_PIXELS 0x8018
  246 +#define GLX_PRESERVED_CONTENTS 0x801B
  247 +#define GLX_LARGEST_PBUFFER 0x801C
  248 +#define GLX_WIDTH 0x801D
  249 +#define GLX_HEIGHT 0x801E
  250 +#define GLX_EVENT_MASK 0x801F
  251 +#define GLX_DAMAGED 0x8020
  252 +#define GLX_SAVED 0x8021
  253 +#define GLX_WINDOW 0x8022
  254 +#define GLX_PBUFFER 0x8023
  255 +#define GLX_PBUFFER_HEIGHT 0x8040
  256 +#define GLX_PBUFFER_WIDTH 0x8041
  257 +#define GLX_PBUFFER_CLOBBER_MASK 0x08000000
  258 +#define GLX_DONT_CARE 0xFFFFFFFF
  259 +
  260 +typedef XID GLXFBConfigID;
  261 +typedef XID GLXWindow;
  262 +typedef XID GLXPbuffer;
  263 +typedef struct __GLXFBConfigRec *GLXFBConfig;
  264 +
  265 +typedef struct {
  266 + int event_type;
  267 + int draw_type;
  268 + unsigned long serial;
  269 + Bool send_event;
  270 + Display *display;
  271 + GLXDrawable drawable;
  272 + unsigned int buffer_mask;
  273 + unsigned int aux_buffer;
  274 + int x, y;
  275 + int width, height;
  276 + int count;
  277 +} GLXPbufferClobberEvent;
  278 +typedef union __GLXEvent {
  279 + GLXPbufferClobberEvent glxpbufferclobber;
  280 + long pad[24];
  281 +} GLXEvent;
  282 +
  283 +typedef GLXFBConfig* ( * PFNGLXCHOOSEFBCONFIGPROC) (Display *dpy, int screen, const int *attrib_list, int *nelements);
  284 +typedef GLXContext ( * PFNGLXCREATENEWCONTEXTPROC) (Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct);
  285 +typedef GLXPbuffer ( * PFNGLXCREATEPBUFFERPROC) (Display *dpy, GLXFBConfig config, const int *attrib_list);
  286 +typedef GLXPixmap ( * PFNGLXCREATEPIXMAPPROC) (Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list);
  287 +typedef GLXWindow ( * PFNGLXCREATEWINDOWPROC) (Display *dpy, GLXFBConfig config, Window win, const int *attrib_list);
  288 +typedef void ( * PFNGLXDESTROYPBUFFERPROC) (Display *dpy, GLXPbuffer pbuf);
  289 +typedef void ( * PFNGLXDESTROYPIXMAPPROC) (Display *dpy, GLXPixmap pixmap);
  290 +typedef void ( * PFNGLXDESTROYWINDOWPROC) (Display *dpy, GLXWindow win);
  291 +typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLEPROC) (void);
  292 +typedef int ( * PFNGLXGETFBCONFIGATTRIBPROC) (Display *dpy, GLXFBConfig config, int attribute, int *value);
  293 +typedef GLXFBConfig* ( * PFNGLXGETFBCONFIGSPROC) (Display *dpy, int screen, int *nelements);
  294 +typedef void ( * PFNGLXGETSELECTEDEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long *event_mask);
  295 +typedef XVisualInfo* ( * PFNGLXGETVISUALFROMFBCONFIGPROC) (Display *dpy, GLXFBConfig config);
  296 +typedef Bool ( * PFNGLXMAKECONTEXTCURRENTPROC) (Display *display, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
  297 +typedef int ( * PFNGLXQUERYCONTEXTPROC) (Display *dpy, GLXContext ctx, int attribute, int *value);
  298 +typedef void ( * PFNGLXQUERYDRAWABLEPROC) (Display *dpy, GLXDrawable draw, int attribute, unsigned int *value);
  299 +typedef void ( * PFNGLXSELECTEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long event_mask);
  300 +
  301 +#define glXChooseFBConfig GLXEW_GET_FUN(__glewXChooseFBConfig)
  302 +#define glXCreateNewContext GLXEW_GET_FUN(__glewXCreateNewContext)
  303 +#define glXCreatePbuffer GLXEW_GET_FUN(__glewXCreatePbuffer)
  304 +#define glXCreatePixmap GLXEW_GET_FUN(__glewXCreatePixmap)
  305 +#define glXCreateWindow GLXEW_GET_FUN(__glewXCreateWindow)
  306 +#define glXDestroyPbuffer GLXEW_GET_FUN(__glewXDestroyPbuffer)
  307 +#define glXDestroyPixmap GLXEW_GET_FUN(__glewXDestroyPixmap)
  308 +#define glXDestroyWindow GLXEW_GET_FUN(__glewXDestroyWindow)
  309 +#define glXGetCurrentReadDrawable GLXEW_GET_FUN(__glewXGetCurrentReadDrawable)
  310 +#define glXGetFBConfigAttrib GLXEW_GET_FUN(__glewXGetFBConfigAttrib)
  311 +#define glXGetFBConfigs GLXEW_GET_FUN(__glewXGetFBConfigs)
  312 +#define glXGetSelectedEvent GLXEW_GET_FUN(__glewXGetSelectedEvent)
  313 +#define glXGetVisualFromFBConfig GLXEW_GET_FUN(__glewXGetVisualFromFBConfig)
  314 +#define glXMakeContextCurrent GLXEW_GET_FUN(__glewXMakeContextCurrent)
  315 +#define glXQueryContext GLXEW_GET_FUN(__glewXQueryContext)
  316 +#define glXQueryDrawable GLXEW_GET_FUN(__glewXQueryDrawable)
  317 +#define glXSelectEvent GLXEW_GET_FUN(__glewXSelectEvent)
  318 +
  319 +#define GLXEW_VERSION_1_3 GLXEW_GET_VAR(__GLXEW_VERSION_1_3)
  320 +
  321 +#endif /* GLX_VERSION_1_3 */
  322 +
  323 +/* ---------------------------- GLX_VERSION_1_4 ---------------------------- */
  324 +
  325 +#ifndef GLX_VERSION_1_4
  326 +#define GLX_VERSION_1_4 1
  327 +
  328 +#define GLX_SAMPLE_BUFFERS 100000
  329 +#define GLX_SAMPLES 100001
  330 +
  331 +extern void ( * glXGetProcAddress (const GLubyte *procName)) (void);
  332 +
  333 +#define GLXEW_VERSION_1_4 GLXEW_GET_VAR(__GLXEW_VERSION_1_4)
  334 +
  335 +#endif /* GLX_VERSION_1_4 */
  336 +
  337 +/* -------------------------- GLX_3DFX_multisample ------------------------- */
  338 +
  339 +#ifndef GLX_3DFX_multisample
  340 +#define GLX_3DFX_multisample 1
  341 +
  342 +#define GLX_SAMPLE_BUFFERS_3DFX 0x8050
  343 +#define GLX_SAMPLES_3DFX 0x8051
  344 +
  345 +#define GLXEW_3DFX_multisample GLXEW_GET_VAR(__GLXEW_3DFX_multisample)
  346 +
  347 +#endif /* GLX_3DFX_multisample */
  348 +
  349 +/* ------------------------- GLX_ARB_create_context ------------------------ */
  350 +
  351 +#ifndef GLX_ARB_create_context
  352 +#define GLX_ARB_create_context 1
  353 +
  354 +#define GLX_CONTEXT_DEBUG_BIT_ARB 0x0001
  355 +#define GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x0002
  356 +#define GLX_CONTEXT_MAJOR_VERSION_ARB 0x2091
  357 +#define GLX_CONTEXT_MINOR_VERSION_ARB 0x2092
  358 +#define GLX_CONTEXT_FLAGS_ARB 0x2094
  359 +
  360 +typedef GLXContext ( * PFNGLXCREATECONTEXTATTRIBSARBPROC) (Display* dpy, GLXFBConfig config, GLXContext share_context, Bool direct, const int *attrib_list);
  361 +
  362 +#define glXCreateContextAttribsARB GLXEW_GET_FUN(__glewXCreateContextAttribsARB)
  363 +
  364 +#define GLXEW_ARB_create_context GLXEW_GET_VAR(__GLXEW_ARB_create_context)
  365 +
  366 +#endif /* GLX_ARB_create_context */
  367 +
  368 +/* --------------------- GLX_ARB_create_context_profile -------------------- */
  369 +
  370 +#ifndef GLX_ARB_create_context_profile
  371 +#define GLX_ARB_create_context_profile 1
  372 +
  373 +#define GLX_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001
  374 +#define GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002
  375 +#define GLX_CONTEXT_PROFILE_MASK_ARB 0x9126
  376 +
  377 +#define GLXEW_ARB_create_context_profile GLXEW_GET_VAR(__GLXEW_ARB_create_context_profile)
  378 +
  379 +#endif /* GLX_ARB_create_context_profile */
  380 +
  381 +/* ------------------------- GLX_ARB_fbconfig_float ------------------------ */
  382 +
  383 +#ifndef GLX_ARB_fbconfig_float
  384 +#define GLX_ARB_fbconfig_float 1
  385 +
  386 +#define GLX_RGBA_FLOAT_BIT 0x00000004
  387 +#define GLX_RGBA_FLOAT_TYPE 0x20B9
  388 +
  389 +#define GLXEW_ARB_fbconfig_float GLXEW_GET_VAR(__GLXEW_ARB_fbconfig_float)
  390 +
  391 +#endif /* GLX_ARB_fbconfig_float */
  392 +
  393 +/* ------------------------ GLX_ARB_framebuffer_sRGB ----------------------- */
  394 +
  395 +#ifndef GLX_ARB_framebuffer_sRGB
  396 +#define GLX_ARB_framebuffer_sRGB 1
  397 +
  398 +#define GLX_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20B2
  399 +
  400 +#define GLXEW_ARB_framebuffer_sRGB GLXEW_GET_VAR(__GLXEW_ARB_framebuffer_sRGB)
  401 +
  402 +#endif /* GLX_ARB_framebuffer_sRGB */
  403 +
  404 +/* ------------------------ GLX_ARB_get_proc_address ----------------------- */
  405 +
  406 +#ifndef GLX_ARB_get_proc_address
  407 +#define GLX_ARB_get_proc_address 1
  408 +
  409 +extern void ( * glXGetProcAddressARB (const GLubyte *procName)) (void);
  410 +
  411 +#define GLXEW_ARB_get_proc_address GLXEW_GET_VAR(__GLXEW_ARB_get_proc_address)
  412 +
  413 +#endif /* GLX_ARB_get_proc_address */
  414 +
  415 +/* -------------------------- GLX_ARB_multisample -------------------------- */
  416 +
  417 +#ifndef GLX_ARB_multisample
  418 +#define GLX_ARB_multisample 1
  419 +
  420 +#define GLX_SAMPLE_BUFFERS_ARB 100000
  421 +#define GLX_SAMPLES_ARB 100001
  422 +
  423 +#define GLXEW_ARB_multisample GLXEW_GET_VAR(__GLXEW_ARB_multisample)
  424 +
  425 +#endif /* GLX_ARB_multisample */
  426 +
  427 +/* ---------------------- GLX_ARB_vertex_buffer_object --------------------- */
  428 +
  429 +#ifndef GLX_ARB_vertex_buffer_object
  430 +#define GLX_ARB_vertex_buffer_object 1
  431 +
  432 +#define GLX_CONTEXT_ALLOW_BUFFER_BYTE_ORDER_MISMATCH_ARB 0x2095
  433 +
  434 +#define GLXEW_ARB_vertex_buffer_object GLXEW_GET_VAR(__GLXEW_ARB_vertex_buffer_object)
  435 +
  436 +#endif /* GLX_ARB_vertex_buffer_object */
  437 +
  438 +/* ----------------------- GLX_ATI_pixel_format_float ---------------------- */
  439 +
  440 +#ifndef GLX_ATI_pixel_format_float
  441 +#define GLX_ATI_pixel_format_float 1
  442 +
  443 +#define GLX_RGBA_FLOAT_ATI_BIT 0x00000100
  444 +
  445 +#define GLXEW_ATI_pixel_format_float GLXEW_GET_VAR(__GLXEW_ATI_pixel_format_float)
  446 +
  447 +#endif /* GLX_ATI_pixel_format_float */
  448 +
  449 +/* ------------------------- GLX_ATI_render_texture ------------------------ */
  450 +
  451 +#ifndef GLX_ATI_render_texture
  452 +#define GLX_ATI_render_texture 1
  453 +
  454 +#define GLX_BIND_TO_TEXTURE_RGB_ATI 0x9800
  455 +#define GLX_BIND_TO_TEXTURE_RGBA_ATI 0x9801
  456 +#define GLX_TEXTURE_FORMAT_ATI 0x9802
  457 +#define GLX_TEXTURE_TARGET_ATI 0x9803
  458 +#define GLX_MIPMAP_TEXTURE_ATI 0x9804
  459 +#define GLX_TEXTURE_RGB_ATI 0x9805
  460 +#define GLX_TEXTURE_RGBA_ATI 0x9806
  461 +#define GLX_NO_TEXTURE_ATI 0x9807
  462 +#define GLX_TEXTURE_CUBE_MAP_ATI 0x9808
  463 +#define GLX_TEXTURE_1D_ATI 0x9809
  464 +#define GLX_TEXTURE_2D_ATI 0x980A
  465 +#define GLX_MIPMAP_LEVEL_ATI 0x980B
  466 +#define GLX_CUBE_MAP_FACE_ATI 0x980C
  467 +#define GLX_TEXTURE_CUBE_MAP_POSITIVE_X_ATI 0x980D
  468 +#define GLX_TEXTURE_CUBE_MAP_NEGATIVE_X_ATI 0x980E
  469 +#define GLX_TEXTURE_CUBE_MAP_POSITIVE_Y_ATI 0x980F
  470 +#define GLX_TEXTURE_CUBE_MAP_NEGATIVE_Y_ATI 0x9810
  471 +#define GLX_TEXTURE_CUBE_MAP_POSITIVE_Z_ATI 0x9811
  472 +#define GLX_TEXTURE_CUBE_MAP_NEGATIVE_Z_ATI 0x9812
  473 +#define GLX_FRONT_LEFT_ATI 0x9813
  474 +#define GLX_FRONT_RIGHT_ATI 0x9814
  475 +#define GLX_BACK_LEFT_ATI 0x9815
  476 +#define GLX_BACK_RIGHT_ATI 0x9816
  477 +#define GLX_AUX0_ATI 0x9817
  478 +#define GLX_AUX1_ATI 0x9818
  479 +#define GLX_AUX2_ATI 0x9819
  480 +#define GLX_AUX3_ATI 0x981A
  481 +#define GLX_AUX4_ATI 0x981B
  482 +#define GLX_AUX5_ATI 0x981C
  483 +#define GLX_AUX6_ATI 0x981D
  484 +#define GLX_AUX7_ATI 0x981E
  485 +#define GLX_AUX8_ATI 0x981F
  486 +#define GLX_AUX9_ATI 0x9820
  487 +#define GLX_BIND_TO_TEXTURE_LUMINANCE_ATI 0x9821
  488 +#define GLX_BIND_TO_TEXTURE_INTENSITY_ATI 0x9822
  489 +
  490 +typedef void ( * PFNGLXBINDTEXIMAGEATIPROC) (Display *dpy, GLXPbuffer pbuf, int buffer);
  491 +typedef void ( * PFNGLXDRAWABLEATTRIBATIPROC) (Display *dpy, GLXDrawable draw, const int *attrib_list);
  492 +typedef void ( * PFNGLXRELEASETEXIMAGEATIPROC) (Display *dpy, GLXPbuffer pbuf, int buffer);
  493 +
  494 +#define glXBindTexImageATI GLXEW_GET_FUN(__glewXBindTexImageATI)
  495 +#define glXDrawableAttribATI GLXEW_GET_FUN(__glewXDrawableAttribATI)
  496 +#define glXReleaseTexImageATI GLXEW_GET_FUN(__glewXReleaseTexImageATI)
  497 +
  498 +#define GLXEW_ATI_render_texture GLXEW_GET_VAR(__GLXEW_ATI_render_texture)
  499 +
  500 +#endif /* GLX_ATI_render_texture */
  501 +
  502 +/* --------------------- GLX_EXT_fbconfig_packed_float --------------------- */
  503 +
  504 +#ifndef GLX_EXT_fbconfig_packed_float
  505 +#define GLX_EXT_fbconfig_packed_float 1
  506 +
  507 +#define GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT 0x00000008
  508 +#define GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT 0x20B1
  509 +
  510 +#define GLXEW_EXT_fbconfig_packed_float GLXEW_GET_VAR(__GLXEW_EXT_fbconfig_packed_float)
  511 +
  512 +#endif /* GLX_EXT_fbconfig_packed_float */
  513 +
  514 +/* ------------------------ GLX_EXT_framebuffer_sRGB ----------------------- */
  515 +
  516 +#ifndef GLX_EXT_framebuffer_sRGB
  517 +#define GLX_EXT_framebuffer_sRGB 1
  518 +
  519 +#define GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20B2
  520 +
  521 +#define GLXEW_EXT_framebuffer_sRGB GLXEW_GET_VAR(__GLXEW_EXT_framebuffer_sRGB)
  522 +
  523 +#endif /* GLX_EXT_framebuffer_sRGB */
  524 +
  525 +/* ------------------------- GLX_EXT_import_context ------------------------ */
  526 +
  527 +#ifndef GLX_EXT_import_context
  528 +#define GLX_EXT_import_context 1
  529 +
  530 +#define GLX_SHARE_CONTEXT_EXT 0x800A
  531 +#define GLX_VISUAL_ID_EXT 0x800B
  532 +#define GLX_SCREEN_EXT 0x800C
  533 +
  534 +typedef XID GLXContextID;
  535 +
  536 +typedef void ( * PFNGLXFREECONTEXTEXTPROC) (Display* dpy, GLXContext context);
  537 +typedef GLXContextID ( * PFNGLXGETCONTEXTIDEXTPROC) (const GLXContext context);
  538 +typedef GLXContext ( * PFNGLXIMPORTCONTEXTEXTPROC) (Display* dpy, GLXContextID contextID);
  539 +typedef int ( * PFNGLXQUERYCONTEXTINFOEXTPROC) (Display* dpy, GLXContext context, int attribute,int *value);
  540 +
  541 +#define glXFreeContextEXT GLXEW_GET_FUN(__glewXFreeContextEXT)
  542 +#define glXGetContextIDEXT GLXEW_GET_FUN(__glewXGetContextIDEXT)
  543 +#define glXImportContextEXT GLXEW_GET_FUN(__glewXImportContextEXT)
  544 +#define glXQueryContextInfoEXT GLXEW_GET_FUN(__glewXQueryContextInfoEXT)
  545 +
  546 +#define GLXEW_EXT_import_context GLXEW_GET_VAR(__GLXEW_EXT_import_context)
  547 +
  548 +#endif /* GLX_EXT_import_context */
  549 +
  550 +/* -------------------------- GLX_EXT_scene_marker ------------------------- */
  551 +
  552 +#ifndef GLX_EXT_scene_marker
  553 +#define GLX_EXT_scene_marker 1
  554 +
  555 +#define GLXEW_EXT_scene_marker GLXEW_GET_VAR(__GLXEW_EXT_scene_marker)
  556 +
  557 +#endif /* GLX_EXT_scene_marker */
  558 +
  559 +/* -------------------------- GLX_EXT_swap_control ------------------------- */
  560 +
  561 +#ifndef GLX_EXT_swap_control
  562 +#define GLX_EXT_swap_control 1
  563 +
  564 +#define GLX_SWAP_INTERVAL_EXT 0x20F1
  565 +#define GLX_MAX_SWAP_INTERVAL_EXT 0x20F2
  566 +
  567 +typedef void ( * PFNGLXSWAPINTERVALEXTPROC) (Display* dpy, GLXDrawable drawable, int interval);
  568 +
  569 +#define glXSwapIntervalEXT GLXEW_GET_FUN(__glewXSwapIntervalEXT)
  570 +
  571 +#define GLXEW_EXT_swap_control GLXEW_GET_VAR(__GLXEW_EXT_swap_control)
  572 +
  573 +#endif /* GLX_EXT_swap_control */
  574 +
  575 +/* ---------------------- GLX_EXT_texture_from_pixmap ---------------------- */
  576 +
  577 +#ifndef GLX_EXT_texture_from_pixmap
  578 +#define GLX_EXT_texture_from_pixmap 1
  579 +
  580 +#define GLX_TEXTURE_1D_BIT_EXT 0x00000001
  581 +#define GLX_TEXTURE_2D_BIT_EXT 0x00000002
  582 +#define GLX_TEXTURE_RECTANGLE_BIT_EXT 0x00000004
  583 +#define GLX_BIND_TO_TEXTURE_RGB_EXT 0x20D0
  584 +#define GLX_BIND_TO_TEXTURE_RGBA_EXT 0x20D1
  585 +#define GLX_BIND_TO_MIPMAP_TEXTURE_EXT 0x20D2
  586 +#define GLX_BIND_TO_TEXTURE_TARGETS_EXT 0x20D3
  587 +#define GLX_Y_INVERTED_EXT 0x20D4
  588 +#define GLX_TEXTURE_FORMAT_EXT 0x20D5
  589 +#define GLX_TEXTURE_TARGET_EXT 0x20D6
  590 +#define GLX_MIPMAP_TEXTURE_EXT 0x20D7
  591 +#define GLX_TEXTURE_FORMAT_NONE_EXT 0x20D8
  592 +#define GLX_TEXTURE_FORMAT_RGB_EXT 0x20D9
  593 +#define GLX_TEXTURE_FORMAT_RGBA_EXT 0x20DA
  594 +#define GLX_TEXTURE_1D_EXT 0x20DB
  595 +#define GLX_TEXTURE_2D_EXT 0x20DC
  596 +#define GLX_TEXTURE_RECTANGLE_EXT 0x20DD
  597 +#define GLX_FRONT_LEFT_EXT 0x20DE
  598 +#define GLX_FRONT_RIGHT_EXT 0x20DF
  599 +#define GLX_BACK_LEFT_EXT 0x20E0
  600 +#define GLX_BACK_RIGHT_EXT 0x20E1
  601 +#define GLX_AUX0_EXT 0x20E2
  602 +#define GLX_AUX1_EXT 0x20E3
  603 +#define GLX_AUX2_EXT 0x20E4
  604 +#define GLX_AUX3_EXT 0x20E5
  605 +#define GLX_AUX4_EXT 0x20E6
  606 +#define GLX_AUX5_EXT 0x20E7
  607 +#define GLX_AUX6_EXT 0x20E8
  608 +#define GLX_AUX7_EXT 0x20E9
  609 +#define GLX_AUX8_EXT 0x20EA
  610 +#define GLX_AUX9_EXT 0x20EB
  611 +
  612 +typedef void ( * PFNGLXBINDTEXIMAGEEXTPROC) (Display* display, GLXDrawable drawable, int buffer, const int *attrib_list);
  613 +typedef void ( * PFNGLXRELEASETEXIMAGEEXTPROC) (Display* display, GLXDrawable drawable, int buffer);
  614 +
  615 +#define glXBindTexImageEXT GLXEW_GET_FUN(__glewXBindTexImageEXT)
  616 +#define glXReleaseTexImageEXT GLXEW_GET_FUN(__glewXReleaseTexImageEXT)
  617 +
  618 +#define GLXEW_EXT_texture_from_pixmap GLXEW_GET_VAR(__GLXEW_EXT_texture_from_pixmap)
  619 +
  620 +#endif /* GLX_EXT_texture_from_pixmap */
  621 +
  622 +/* -------------------------- GLX_EXT_visual_info -------------------------- */
  623 +
  624 +#ifndef GLX_EXT_visual_info
  625 +#define GLX_EXT_visual_info 1
  626 +
  627 +#define GLX_X_VISUAL_TYPE_EXT 0x22
  628 +#define GLX_TRANSPARENT_TYPE_EXT 0x23
  629 +#define GLX_TRANSPARENT_INDEX_VALUE_EXT 0x24
  630 +#define GLX_TRANSPARENT_RED_VALUE_EXT 0x25
  631 +#define GLX_TRANSPARENT_GREEN_VALUE_EXT 0x26
  632 +#define GLX_TRANSPARENT_BLUE_VALUE_EXT 0x27
  633 +#define GLX_TRANSPARENT_ALPHA_VALUE_EXT 0x28
  634 +#define GLX_NONE_EXT 0x8000
  635 +#define GLX_TRUE_COLOR_EXT 0x8002
  636 +#define GLX_DIRECT_COLOR_EXT 0x8003
  637 +#define GLX_PSEUDO_COLOR_EXT 0x8004
  638 +#define GLX_STATIC_COLOR_EXT 0x8005
  639 +#define GLX_GRAY_SCALE_EXT 0x8006
  640 +#define GLX_STATIC_GRAY_EXT 0x8007
  641 +#define GLX_TRANSPARENT_RGB_EXT 0x8008
  642 +#define GLX_TRANSPARENT_INDEX_EXT 0x8009
  643 +
  644 +#define GLXEW_EXT_visual_info GLXEW_GET_VAR(__GLXEW_EXT_visual_info)
  645 +
  646 +#endif /* GLX_EXT_visual_info */
  647 +
  648 +/* ------------------------- GLX_EXT_visual_rating ------------------------- */
  649 +
  650 +#ifndef GLX_EXT_visual_rating
  651 +#define GLX_EXT_visual_rating 1
  652 +
  653 +#define GLX_VISUAL_CAVEAT_EXT 0x20
  654 +#define GLX_SLOW_VISUAL_EXT 0x8001
  655 +#define GLX_NON_CONFORMANT_VISUAL_EXT 0x800D
  656 +
  657 +#define GLXEW_EXT_visual_rating GLXEW_GET_VAR(__GLXEW_EXT_visual_rating)
  658 +
  659 +#endif /* GLX_EXT_visual_rating */
  660 +
  661 +/* -------------------------- GLX_INTEL_swap_event ------------------------- */
  662 +
  663 +#ifndef GLX_INTEL_swap_event
  664 +#define GLX_INTEL_swap_event 1
  665 +
  666 +#define GLX_EXCHANGE_COMPLETE_INTEL 0x8180
  667 +#define GLX_COPY_COMPLETE_INTEL 0x8181
  668 +#define GLX_FLIP_COMPLETE_INTEL 0x8182
  669 +#define GLX_BUFFER_SWAP_COMPLETE_INTEL_MASK 0x04000000
  670 +
  671 +#define GLXEW_INTEL_swap_event GLXEW_GET_VAR(__GLXEW_INTEL_swap_event)
  672 +
  673 +#endif /* GLX_INTEL_swap_event */
  674 +
  675 +/* -------------------------- GLX_MESA_agp_offset -------------------------- */
  676 +
  677 +#ifndef GLX_MESA_agp_offset
  678 +#define GLX_MESA_agp_offset 1
  679 +
  680 +typedef unsigned int ( * PFNGLXGETAGPOFFSETMESAPROC) (const void* pointer);
  681 +
  682 +#define glXGetAGPOffsetMESA GLXEW_GET_FUN(__glewXGetAGPOffsetMESA)
  683 +
  684 +#define GLXEW_MESA_agp_offset GLXEW_GET_VAR(__GLXEW_MESA_agp_offset)
  685 +
  686 +#endif /* GLX_MESA_agp_offset */
  687 +
  688 +/* ------------------------ GLX_MESA_copy_sub_buffer ----------------------- */
  689 +
  690 +#ifndef GLX_MESA_copy_sub_buffer
  691 +#define GLX_MESA_copy_sub_buffer 1
  692 +
  693 +typedef void ( * PFNGLXCOPYSUBBUFFERMESAPROC) (Display* dpy, GLXDrawable drawable, int x, int y, int width, int height);
  694 +
  695 +#define glXCopySubBufferMESA GLXEW_GET_FUN(__glewXCopySubBufferMESA)
  696 +
  697 +#define GLXEW_MESA_copy_sub_buffer GLXEW_GET_VAR(__GLXEW_MESA_copy_sub_buffer)
  698 +
  699 +#endif /* GLX_MESA_copy_sub_buffer */
  700 +
  701 +/* ------------------------ GLX_MESA_pixmap_colormap ----------------------- */
  702 +
  703 +#ifndef GLX_MESA_pixmap_colormap
  704 +#define GLX_MESA_pixmap_colormap 1
  705 +
  706 +typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPMESAPROC) (Display* dpy, XVisualInfo *visual, Pixmap pixmap, Colormap cmap);
  707 +
  708 +#define glXCreateGLXPixmapMESA GLXEW_GET_FUN(__glewXCreateGLXPixmapMESA)
  709 +
  710 +#define GLXEW_MESA_pixmap_colormap GLXEW_GET_VAR(__GLXEW_MESA_pixmap_colormap)
  711 +
  712 +#endif /* GLX_MESA_pixmap_colormap */
  713 +
  714 +/* ------------------------ GLX_MESA_release_buffers ----------------------- */
  715 +
  716 +#ifndef GLX_MESA_release_buffers
  717 +#define GLX_MESA_release_buffers 1
  718 +
  719 +typedef Bool ( * PFNGLXRELEASEBUFFERSMESAPROC) (Display* dpy, GLXDrawable d);
  720 +
  721 +#define glXReleaseBuffersMESA GLXEW_GET_FUN(__glewXReleaseBuffersMESA)
  722 +
  723 +#define GLXEW_MESA_release_buffers GLXEW_GET_VAR(__GLXEW_MESA_release_buffers)
  724 +
  725 +#endif /* GLX_MESA_release_buffers */
  726 +
  727 +/* ------------------------- GLX_MESA_set_3dfx_mode ------------------------ */
  728 +
  729 +#ifndef GLX_MESA_set_3dfx_mode
  730 +#define GLX_MESA_set_3dfx_mode 1
  731 +
  732 +#define GLX_3DFX_WINDOW_MODE_MESA 0x1
  733 +#define GLX_3DFX_FULLSCREEN_MODE_MESA 0x2
  734 +
  735 +typedef GLboolean ( * PFNGLXSET3DFXMODEMESAPROC) (GLint mode);
  736 +
  737 +#define glXSet3DfxModeMESA GLXEW_GET_FUN(__glewXSet3DfxModeMESA)
  738 +
  739 +#define GLXEW_MESA_set_3dfx_mode GLXEW_GET_VAR(__GLXEW_MESA_set_3dfx_mode)
  740 +
  741 +#endif /* GLX_MESA_set_3dfx_mode */
  742 +
  743 +/* --------------------------- GLX_NV_copy_image --------------------------- */
  744 +
  745 +#ifndef GLX_NV_copy_image
  746 +#define GLX_NV_copy_image 1
  747 +
  748 +typedef void ( * PFNGLXCOPYIMAGESUBDATANVPROC) (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);
  749 +
  750 +#define glXCopyImageSubDataNV GLXEW_GET_FUN(__glewXCopyImageSubDataNV)
  751 +
  752 +#define GLXEW_NV_copy_image GLXEW_GET_VAR(__GLXEW_NV_copy_image)
  753 +
  754 +#endif /* GLX_NV_copy_image */
  755 +
  756 +/* -------------------------- GLX_NV_float_buffer -------------------------- */
  757 +
  758 +#ifndef GLX_NV_float_buffer
  759 +#define GLX_NV_float_buffer 1
  760 +
  761 +#define GLX_FLOAT_COMPONENTS_NV 0x20B0
  762 +
  763 +#define GLXEW_NV_float_buffer GLXEW_GET_VAR(__GLXEW_NV_float_buffer)
  764 +
  765 +#endif /* GLX_NV_float_buffer */
  766 +
  767 +/* -------------------------- GLX_NV_present_video ------------------------- */
  768 +
  769 +#ifndef GLX_NV_present_video
  770 +#define GLX_NV_present_video 1
  771 +
  772 +#define GLX_NUM_VIDEO_SLOTS_NV 0x20F0
  773 +
  774 +typedef int ( * PFNGLXBINDVIDEODEVICENVPROC) (Display* dpy, unsigned int video_slot, unsigned int video_device, const int *attrib_list);
  775 +typedef unsigned int* ( * PFNGLXENUMERATEVIDEODEVICESNVPROC) (Display *dpy, int screen, int *nelements);
  776 +
  777 +#define glXBindVideoDeviceNV GLXEW_GET_FUN(__glewXBindVideoDeviceNV)
  778 +#define glXEnumerateVideoDevicesNV GLXEW_GET_FUN(__glewXEnumerateVideoDevicesNV)
  779 +
  780 +#define GLXEW_NV_present_video GLXEW_GET_VAR(__GLXEW_NV_present_video)
  781 +
  782 +#endif /* GLX_NV_present_video */
  783 +
  784 +/* --------------------------- GLX_NV_swap_group --------------------------- */
  785 +
  786 +#ifndef GLX_NV_swap_group
  787 +#define GLX_NV_swap_group 1
  788 +
  789 +typedef Bool ( * PFNGLXBINDSWAPBARRIERNVPROC) (Display* dpy, GLuint group, GLuint barrier);
  790 +typedef Bool ( * PFNGLXJOINSWAPGROUPNVPROC) (Display* dpy, GLXDrawable drawable, GLuint group);
  791 +typedef Bool ( * PFNGLXQUERYFRAMECOUNTNVPROC) (Display* dpy, int screen, GLuint *count);
  792 +typedef Bool ( * PFNGLXQUERYMAXSWAPGROUPSNVPROC) (Display* dpy, int screen, GLuint *maxGroups, GLuint *maxBarriers);
  793 +typedef Bool ( * PFNGLXQUERYSWAPGROUPNVPROC) (Display* dpy, GLXDrawable drawable, GLuint *group, GLuint *barrier);
  794 +typedef Bool ( * PFNGLXRESETFRAMECOUNTNVPROC) (Display* dpy, int screen);
  795 +
  796 +#define glXBindSwapBarrierNV GLXEW_GET_FUN(__glewXBindSwapBarrierNV)
  797 +#define glXJoinSwapGroupNV GLXEW_GET_FUN(__glewXJoinSwapGroupNV)
  798 +#define glXQueryFrameCountNV GLXEW_GET_FUN(__glewXQueryFrameCountNV)
  799 +#define glXQueryMaxSwapGroupsNV GLXEW_GET_FUN(__glewXQueryMaxSwapGroupsNV)
  800 +#define glXQuerySwapGroupNV GLXEW_GET_FUN(__glewXQuerySwapGroupNV)
  801 +#define glXResetFrameCountNV GLXEW_GET_FUN(__glewXResetFrameCountNV)
  802 +
  803 +#define GLXEW_NV_swap_group GLXEW_GET_VAR(__GLXEW_NV_swap_group)
  804 +
  805 +#endif /* GLX_NV_swap_group */
  806 +
  807 +/* ----------------------- GLX_NV_vertex_array_range ----------------------- */
  808 +
  809 +#ifndef GLX_NV_vertex_array_range
  810 +#define GLX_NV_vertex_array_range 1
  811 +
  812 +typedef void * ( * PFNGLXALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readFrequency, GLfloat writeFrequency, GLfloat priority);
  813 +typedef void ( * PFNGLXFREEMEMORYNVPROC) (void *pointer);
  814 +
  815 +#define glXAllocateMemoryNV GLXEW_GET_FUN(__glewXAllocateMemoryNV)
  816 +#define glXFreeMemoryNV GLXEW_GET_FUN(__glewXFreeMemoryNV)
  817 +
  818 +#define GLXEW_NV_vertex_array_range GLXEW_GET_VAR(__GLXEW_NV_vertex_array_range)
  819 +
  820 +#endif /* GLX_NV_vertex_array_range */
  821 +
  822 +/* -------------------------- GLX_NV_video_output -------------------------- */
  823 +
  824 +#ifndef GLX_NV_video_output
  825 +#define GLX_NV_video_output 1
  826 +
  827 +#define GLX_VIDEO_OUT_COLOR_NV 0x20C3
  828 +#define GLX_VIDEO_OUT_ALPHA_NV 0x20C4
  829 +#define GLX_VIDEO_OUT_DEPTH_NV 0x20C5
  830 +#define GLX_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6
  831 +#define GLX_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7
  832 +#define GLX_VIDEO_OUT_FRAME_NV 0x20C8
  833 +#define GLX_VIDEO_OUT_FIELD_1_NV 0x20C9
  834 +#define GLX_VIDEO_OUT_FIELD_2_NV 0x20CA
  835 +#define GLX_VIDEO_OUT_STACKED_FIELDS_1_2_NV 0x20CB
  836 +#define GLX_VIDEO_OUT_STACKED_FIELDS_2_1_NV 0x20CC
  837 +
  838 +typedef int ( * PFNGLXBINDVIDEOIMAGENVPROC) (Display* dpy, GLXVideoDeviceNV VideoDevice, GLXPbuffer pbuf, int iVideoBuffer);
  839 +typedef int ( * PFNGLXGETVIDEODEVICENVPROC) (Display* dpy, int screen, int numVideoDevices, GLXVideoDeviceNV *pVideoDevice);
  840 +typedef int ( * PFNGLXGETVIDEOINFONVPROC) (Display* dpy, int screen, GLXVideoDeviceNV VideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo);
  841 +typedef int ( * PFNGLXRELEASEVIDEODEVICENVPROC) (Display* dpy, int screen, GLXVideoDeviceNV VideoDevice);
  842 +typedef int ( * PFNGLXRELEASEVIDEOIMAGENVPROC) (Display* dpy, GLXPbuffer pbuf);
  843 +typedef int ( * PFNGLXSENDPBUFFERTOVIDEONVPROC) (Display* dpy, GLXPbuffer pbuf, int iBufferType, unsigned long *pulCounterPbuffer, GLboolean bBlock);
  844 +
  845 +#define glXBindVideoImageNV GLXEW_GET_FUN(__glewXBindVideoImageNV)
  846 +#define glXGetVideoDeviceNV GLXEW_GET_FUN(__glewXGetVideoDeviceNV)
  847 +#define glXGetVideoInfoNV GLXEW_GET_FUN(__glewXGetVideoInfoNV)
  848 +#define glXReleaseVideoDeviceNV GLXEW_GET_FUN(__glewXReleaseVideoDeviceNV)
  849 +#define glXReleaseVideoImageNV GLXEW_GET_FUN(__glewXReleaseVideoImageNV)
  850 +#define glXSendPbufferToVideoNV GLXEW_GET_FUN(__glewXSendPbufferToVideoNV)
  851 +
  852 +#define GLXEW_NV_video_output GLXEW_GET_VAR(__GLXEW_NV_video_output)
  853 +
  854 +#endif /* GLX_NV_video_output */
  855 +
  856 +/* -------------------------- GLX_OML_swap_method -------------------------- */
  857 +
  858 +#ifndef GLX_OML_swap_method
  859 +#define GLX_OML_swap_method 1
  860 +
  861 +#define GLX_SWAP_METHOD_OML 0x8060
  862 +#define GLX_SWAP_EXCHANGE_OML 0x8061
  863 +#define GLX_SWAP_COPY_OML 0x8062
  864 +#define GLX_SWAP_UNDEFINED_OML 0x8063
  865 +
  866 +#define GLXEW_OML_swap_method GLXEW_GET_VAR(__GLXEW_OML_swap_method)
  867 +
  868 +#endif /* GLX_OML_swap_method */
  869 +
  870 +/* -------------------------- GLX_OML_sync_control ------------------------- */
  871 +
  872 +#if !defined(GLX_OML_sync_control) && defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)
  873 +#include <inttypes.h>
  874 +#define GLX_OML_sync_control 1
  875 +
  876 +typedef Bool ( * PFNGLXGETMSCRATEOMLPROC) (Display* dpy, GLXDrawable drawable, int32_t* numerator, int32_t* denominator);
  877 +typedef Bool ( * PFNGLXGETSYNCVALUESOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t* ust, int64_t* msc, int64_t* sbc);
  878 +typedef int64_t ( * PFNGLXSWAPBUFFERSMSCOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder);
  879 +typedef Bool ( * PFNGLXWAITFORMSCOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder, int64_t* ust, int64_t* msc, int64_t* sbc);
  880 +typedef Bool ( * PFNGLXWAITFORSBCOMLPROC) (Display* dpy, GLXDrawable drawable, int64_t target_sbc, int64_t* ust, int64_t* msc, int64_t* sbc);
  881 +
  882 +#define glXGetMscRateOML GLXEW_GET_FUN(__glewXGetMscRateOML)
  883 +#define glXGetSyncValuesOML GLXEW_GET_FUN(__glewXGetSyncValuesOML)
  884 +#define glXSwapBuffersMscOML GLXEW_GET_FUN(__glewXSwapBuffersMscOML)
  885 +#define glXWaitForMscOML GLXEW_GET_FUN(__glewXWaitForMscOML)
  886 +#define glXWaitForSbcOML GLXEW_GET_FUN(__glewXWaitForSbcOML)
  887 +
  888 +#define GLXEW_OML_sync_control GLXEW_GET_VAR(__GLXEW_OML_sync_control)
  889 +
  890 +#endif /* GLX_OML_sync_control */
  891 +
  892 +/* ------------------------ GLX_SGIS_blended_overlay ----------------------- */
  893 +
  894 +#ifndef GLX_SGIS_blended_overlay
  895 +#define GLX_SGIS_blended_overlay 1
  896 +
  897 +#define GLX_BLENDED_RGBA_SGIS 0x8025
  898 +
  899 +#define GLXEW_SGIS_blended_overlay GLXEW_GET_VAR(__GLXEW_SGIS_blended_overlay)
  900 +
  901 +#endif /* GLX_SGIS_blended_overlay */
  902 +
  903 +/* -------------------------- GLX_SGIS_color_range ------------------------- */
  904 +
  905 +#ifndef GLX_SGIS_color_range
  906 +#define GLX_SGIS_color_range 1
  907 +
  908 +#define GLX_MIN_RED_SGIS 0
  909 +#define GLX_MAX_GREEN_SGIS 0
  910 +#define GLX_MIN_BLUE_SGIS 0
  911 +#define GLX_MAX_ALPHA_SGIS 0
  912 +#define GLX_MIN_GREEN_SGIS 0
  913 +#define GLX_MIN_ALPHA_SGIS 0
  914 +#define GLX_MAX_RED_SGIS 0
  915 +#define GLX_EXTENDED_RANGE_SGIS 0
  916 +#define GLX_MAX_BLUE_SGIS 0
  917 +
  918 +#define GLXEW_SGIS_color_range GLXEW_GET_VAR(__GLXEW_SGIS_color_range)
  919 +
  920 +#endif /* GLX_SGIS_color_range */
  921 +
  922 +/* -------------------------- GLX_SGIS_multisample ------------------------- */
  923 +
  924 +#ifndef GLX_SGIS_multisample
  925 +#define GLX_SGIS_multisample 1
  926 +
  927 +#define GLX_SAMPLE_BUFFERS_SGIS 100000
  928 +#define GLX_SAMPLES_SGIS 100001
  929 +
  930 +#define GLXEW_SGIS_multisample GLXEW_GET_VAR(__GLXEW_SGIS_multisample)
  931 +
  932 +#endif /* GLX_SGIS_multisample */
  933 +
  934 +/* ---------------------- GLX_SGIS_shared_multisample ---------------------- */
  935 +
  936 +#ifndef GLX_SGIS_shared_multisample
  937 +#define GLX_SGIS_shared_multisample 1
  938 +
  939 +#define GLX_MULTISAMPLE_SUB_RECT_WIDTH_SGIS 0x8026
  940 +#define GLX_MULTISAMPLE_SUB_RECT_HEIGHT_SGIS 0x8027
  941 +
  942 +#define GLXEW_SGIS_shared_multisample GLXEW_GET_VAR(__GLXEW_SGIS_shared_multisample)
  943 +
  944 +#endif /* GLX_SGIS_shared_multisample */
  945 +
  946 +/* --------------------------- GLX_SGIX_fbconfig --------------------------- */
  947 +
  948 +#ifndef GLX_SGIX_fbconfig
  949 +#define GLX_SGIX_fbconfig 1
  950 +
  951 +#define GLX_WINDOW_BIT_SGIX 0x00000001
  952 +#define GLX_RGBA_BIT_SGIX 0x00000001
  953 +#define GLX_PIXMAP_BIT_SGIX 0x00000002
  954 +#define GLX_COLOR_INDEX_BIT_SGIX 0x00000002
  955 +#define GLX_SCREEN_EXT 0x800C
  956 +#define GLX_DRAWABLE_TYPE_SGIX 0x8010
  957 +#define GLX_RENDER_TYPE_SGIX 0x8011
  958 +#define GLX_X_RENDERABLE_SGIX 0x8012
  959 +#define GLX_FBCONFIG_ID_SGIX 0x8013
  960 +#define GLX_RGBA_TYPE_SGIX 0x8014
  961 +#define GLX_COLOR_INDEX_TYPE_SGIX 0x8015
  962 +
  963 +typedef XID GLXFBConfigIDSGIX;
  964 +typedef struct __GLXFBConfigRec *GLXFBConfigSGIX;
  965 +
  966 +typedef GLXFBConfigSGIX* ( * PFNGLXCHOOSEFBCONFIGSGIXPROC) (Display *dpy, int screen, const int *attrib_list, int *nelements);
  967 +typedef GLXContext ( * PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC) (Display* dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct);
  968 +typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC) (Display* dpy, GLXFBConfig config, Pixmap pixmap);
  969 +typedef int ( * PFNGLXGETFBCONFIGATTRIBSGIXPROC) (Display* dpy, GLXFBConfigSGIX config, int attribute, int *value);
  970 +typedef GLXFBConfigSGIX ( * PFNGLXGETFBCONFIGFROMVISUALSGIXPROC) (Display* dpy, XVisualInfo *vis);
  971 +typedef XVisualInfo* ( * PFNGLXGETVISUALFROMFBCONFIGSGIXPROC) (Display *dpy, GLXFBConfig config);
  972 +
  973 +#define glXChooseFBConfigSGIX GLXEW_GET_FUN(__glewXChooseFBConfigSGIX)
  974 +#define glXCreateContextWithConfigSGIX GLXEW_GET_FUN(__glewXCreateContextWithConfigSGIX)
  975 +#define glXCreateGLXPixmapWithConfigSGIX GLXEW_GET_FUN(__glewXCreateGLXPixmapWithConfigSGIX)
  976 +#define glXGetFBConfigAttribSGIX GLXEW_GET_FUN(__glewXGetFBConfigAttribSGIX)
  977 +#define glXGetFBConfigFromVisualSGIX GLXEW_GET_FUN(__glewXGetFBConfigFromVisualSGIX)
  978 +#define glXGetVisualFromFBConfigSGIX GLXEW_GET_FUN(__glewXGetVisualFromFBConfigSGIX)
  979 +
  980 +#define GLXEW_SGIX_fbconfig GLXEW_GET_VAR(__GLXEW_SGIX_fbconfig)
  981 +
  982 +#endif /* GLX_SGIX_fbconfig */
  983 +
  984 +/* --------------------------- GLX_SGIX_hyperpipe -------------------------- */
  985 +
  986 +#ifndef GLX_SGIX_hyperpipe
  987 +#define GLX_SGIX_hyperpipe 1
  988 +
  989 +#define GLX_HYPERPIPE_DISPLAY_PIPE_SGIX 0x00000001
  990 +#define GLX_PIPE_RECT_SGIX 0x00000001
  991 +#define GLX_PIPE_RECT_LIMITS_SGIX 0x00000002
  992 +#define GLX_HYPERPIPE_RENDER_PIPE_SGIX 0x00000002
  993 +#define GLX_HYPERPIPE_STEREO_SGIX 0x00000003
  994 +#define GLX_HYPERPIPE_PIXEL_AVERAGE_SGIX 0x00000004
  995 +#define GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX 80
  996 +#define GLX_BAD_HYPERPIPE_CONFIG_SGIX 91
  997 +#define GLX_BAD_HYPERPIPE_SGIX 92
  998 +#define GLX_HYPERPIPE_ID_SGIX 0x8030
  999 +
  1000 +typedef struct {
  1001 + char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX];
  1002 + int networkId;
  1003 +} GLXHyperpipeNetworkSGIX;
  1004