annotate libvo/gl_common.h @ 35811:2ce01f3d3b37

Switch from OpenGL.h to gl.h The former seems to miss some needed defines from OSX 10.8 on, and gl.h seems to work without issues at the very least down to 10.5
author reimar
date Sun, 27 Jan 2013 15:33:31 +0000
parents a87c434ecaa3
children 4921bccc0968
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
28446
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 28070
diff changeset
1 /*
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 28070
diff changeset
2 * This file is part of MPlayer.
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 28070
diff changeset
3 *
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 28070
diff changeset
4 * MPlayer is free software; you can redistribute it and/or modify
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 28070
diff changeset
5 * it under the terms of the GNU General Public License as published by
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 28070
diff changeset
6 * the Free Software Foundation; either version 2 of the License, or
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 28070
diff changeset
7 * (at your option) any later version.
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 28070
diff changeset
8 *
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 28070
diff changeset
9 * MPlayer is distributed in the hope that it will be useful,
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 28070
diff changeset
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 28070
diff changeset
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 28070
diff changeset
12 * GNU General Public License for more details.
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 28070
diff changeset
13 *
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 28070
diff changeset
14 * You should have received a copy of the GNU General Public License along
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 28070
diff changeset
15 * with MPlayer; if not, write to the Free Software Foundation, Inc.,
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 28070
diff changeset
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
31309
1a35ec7c45e0 Dual-license gl_common and vo_gl under the LGPL v2.1 or later as
reimar
parents: 31065
diff changeset
17 *
1a35ec7c45e0 Dual-license gl_common and vo_gl under the LGPL v2.1 or later as
reimar
parents: 31065
diff changeset
18 * You can alternatively redistribute this file and/or
1a35ec7c45e0 Dual-license gl_common and vo_gl under the LGPL v2.1 or later as
reimar
parents: 31065
diff changeset
19 * modify it under the terms of the GNU Lesser General Public
1a35ec7c45e0 Dual-license gl_common and vo_gl under the LGPL v2.1 or later as
reimar
parents: 31065
diff changeset
20 * License as published by the Free Software Foundation; either
1a35ec7c45e0 Dual-license gl_common and vo_gl under the LGPL v2.1 or later as
reimar
parents: 31065
diff changeset
21 * version 2.1 of the License, or (at your option) any later version.
28446
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 28070
diff changeset
22 */
7681eab10aea Add standard license headers, unify header formatting.
diego
parents: 28070
diff changeset
23
26029
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25758
diff changeset
24 #ifndef MPLAYER_GL_COMMON_H
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25758
diff changeset
25 #define MPLAYER_GL_COMMON_H
13653
799f81d3cb19 added gl_common for code used by both vo_gl.c and vo_gl2.c.
reimar
parents:
diff changeset
26
26162
0585db9f5b32 Add missing header #includes to fix 'make checkheaders'.
diego
parents: 26029
diff changeset
27 #include <stdio.h>
26163
f3e72d1a2329 This header uses parts of stdint.h, so #include it.
diego
parents: 26162
diff changeset
28 #include <stdint.h>
26162
0585db9f5b32 Add missing header #includes to fix 'make checkheaders'.
diego
parents: 26029
diff changeset
29
26203
0d255d03016f #include config.h before all other headers.
diego
parents: 26163
diff changeset
30 #include "config.h"
13843
3f28d2a56758 fullscreen fixes and GUI support for vo_gl
reimar
parents: 13653
diff changeset
31 #include "video_out.h"
30108
0898adc64a6f Extract functions to generate yuv->rgb matrices and lookup tables into a
reimar
parents: 30107
diff changeset
32 #include "csputils.h"
13843
3f28d2a56758 fullscreen fixes and GUI support for vo_gl
reimar
parents: 13653
diff changeset
33
30023
b7a703cf9178 Rename GL_* defines to CONFIG_GL_*
reimar
parents: 30021
diff changeset
34 #ifdef CONFIG_GL_WIN32
14142
f0c1ee83b216 Improving gl2 under windows, moving some functionality to gl_common
reimar
parents: 14078
diff changeset
35 #include <windows.h>
f0c1ee83b216 Improving gl2 under windows, moving some functionality to gl_common
reimar
parents: 14078
diff changeset
36 #include "w32_common.h"
29938
eb6c70e2cbea Very preliminary code to allow selecting the OpenGL backend at runtime.
reimar
parents: 29263
diff changeset
37 #endif
30023
b7a703cf9178 Rename GL_* defines to CONFIG_GL_*
reimar
parents: 30021
diff changeset
38 #ifdef CONFIG_GL_X11
13843
3f28d2a56758 fullscreen fixes and GUI support for vo_gl
reimar
parents: 13653
diff changeset
39 #include <X11/Xlib.h>
3f28d2a56758 fullscreen fixes and GUI support for vo_gl
reimar
parents: 13653
diff changeset
40 #include <GL/glx.h>
3f28d2a56758 fullscreen fixes and GUI support for vo_gl
reimar
parents: 13653
diff changeset
41 #include "x11_common.h"
3f28d2a56758 fullscreen fixes and GUI support for vo_gl
reimar
parents: 13653
diff changeset
42 #endif
34338
4a507d3a039a Add highly experimental support for OpenGL ES.
reimar
parents: 34337
diff changeset
43 #ifdef CONFIG_GL_EGL_X11
4a507d3a039a Add highly experimental support for OpenGL ES.
reimar
parents: 34337
diff changeset
44 #include <EGL/egl.h>
4a507d3a039a Add highly experimental support for OpenGL ES.
reimar
parents: 34337
diff changeset
45 #include "x11_common.h"
4a507d3a039a Add highly experimental support for OpenGL ES.
reimar
parents: 34337
diff changeset
46 #endif
35089
a87c434ecaa3 Allow compiling -vo gl with OSX backend even if X11 and SDL are not available.
reimar
parents: 35087
diff changeset
47 #ifdef CONFIG_GL_OSX
35087
078a00af881c Use OSX common layer in -vo gl.
reimar
parents: 35005
diff changeset
48 #include "osx_common.h"
35811
2ce01f3d3b37 Switch from OpenGL.h to gl.h
reimar
parents: 35089
diff changeset
49 #include <OpenGL/gl.h>
35089
a87c434ecaa3 Allow compiling -vo gl with OSX backend even if X11 and SDL are not available.
reimar
parents: 35087
diff changeset
50 #else
a87c434ecaa3 Allow compiling -vo gl with OSX backend even if X11 and SDL are not available.
reimar
parents: 35087
diff changeset
51 #include <GL/gl.h>
35087
078a00af881c Use OSX common layer in -vo gl.
reimar
parents: 35005
diff changeset
52 #endif
13653
799f81d3cb19 added gl_common for code used by both vo_gl.c and vo_gl2.c.
reimar
parents:
diff changeset
53
17668
b822575a1140 workaround for gl.h variants that do not define APIENTRY
reimar
parents: 17566
diff changeset
54 // workaround for some gl.h headers
29941
092c1689c9df Prefer GLAPIENTRY over APIENTRY, it is the better name and used more by OpenGL headers.
reimar
parents: 29939
diff changeset
55 #ifndef GLAPIENTRY
092c1689c9df Prefer GLAPIENTRY over APIENTRY, it is the better name and used more by OpenGL headers.
reimar
parents: 29939
diff changeset
56 #ifdef APIENTRY
092c1689c9df Prefer GLAPIENTRY over APIENTRY, it is the better name and used more by OpenGL headers.
reimar
parents: 29939
diff changeset
57 #define GLAPIENTRY APIENTRY
30023
b7a703cf9178 Rename GL_* defines to CONFIG_GL_*
reimar
parents: 30021
diff changeset
58 #elif defined(CONFIG_GL_WIN32)
29941
092c1689c9df Prefer GLAPIENTRY over APIENTRY, it is the better name and used more by OpenGL headers.
reimar
parents: 29939
diff changeset
59 #define GLAPIENTRY __stdcall
17668
b822575a1140 workaround for gl.h variants that do not define APIENTRY
reimar
parents: 17566
diff changeset
60 #else
29941
092c1689c9df Prefer GLAPIENTRY over APIENTRY, it is the better name and used more by OpenGL headers.
reimar
parents: 29939
diff changeset
61 #define GLAPIENTRY
17668
b822575a1140 workaround for gl.h variants that do not define APIENTRY
reimar
parents: 17566
diff changeset
62 #endif
b822575a1140 workaround for gl.h variants that do not define APIENTRY
reimar
parents: 17566
diff changeset
63 #endif
b822575a1140 workaround for gl.h variants that do not define APIENTRY
reimar
parents: 17566
diff changeset
64
16595
b3a9fb41f475 fix/improve code doxumentation. Also group gl_common functions in several
reimar
parents: 16592
diff changeset
65 /**
b3a9fb41f475 fix/improve code doxumentation. Also group gl_common functions in several
reimar
parents: 16592
diff changeset
66 * \defgroup glextdefines OpenGL extension defines
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 28446
diff changeset
67 *
16595
b3a9fb41f475 fix/improve code doxumentation. Also group gl_common functions in several
reimar
parents: 16592
diff changeset
68 * conditionally define all extension defines used.
b3a9fb41f475 fix/improve code doxumentation. Also group gl_common functions in several
reimar
parents: 16592
diff changeset
69 * vendor specific extensions should be marked as such
b3a9fb41f475 fix/improve code doxumentation. Also group gl_common functions in several
reimar
parents: 16592
diff changeset
70 * (e.g. _NV), _ARB is not used to ease readability.
b3a9fb41f475 fix/improve code doxumentation. Also group gl_common functions in several
reimar
parents: 16592
diff changeset
71 * \{
b3a9fb41f475 fix/improve code doxumentation. Also group gl_common functions in several
reimar
parents: 16592
diff changeset
72 */
27845
dedacb09ed45 Change OpenGL support to work on unmodified MinGW64
reimar
parents: 27621
diff changeset
73 #ifndef GL_TEXTURE_3D
dedacb09ed45 Change OpenGL support to work on unmodified MinGW64
reimar
parents: 27621
diff changeset
74 #define GL_TEXTURE_3D 0x806F
dedacb09ed45 Change OpenGL support to work on unmodified MinGW64
reimar
parents: 27621
diff changeset
75 #endif
dedacb09ed45 Change OpenGL support to work on unmodified MinGW64
reimar
parents: 27621
diff changeset
76 #ifndef GL_TEXTURE_WRAP_R
dedacb09ed45 Change OpenGL support to work on unmodified MinGW64
reimar
parents: 27621
diff changeset
77 #define GL_TEXTURE_WRAP_R 0x8072
dedacb09ed45 Change OpenGL support to work on unmodified MinGW64
reimar
parents: 27621
diff changeset
78 #endif
dedacb09ed45 Change OpenGL support to work on unmodified MinGW64
reimar
parents: 27621
diff changeset
79 #ifndef GL_CLAMP_TO_EDGE
dedacb09ed45 Change OpenGL support to work on unmodified MinGW64
reimar
parents: 27621
diff changeset
80 #define GL_CLAMP_TO_EDGE 0x812F
dedacb09ed45 Change OpenGL support to work on unmodified MinGW64
reimar
parents: 27621
diff changeset
81 #endif
30032
ba530eb3b2f7 Define GL_GENERATE_MIPMAP ourselves if necessary.
reimar
parents: 30023
diff changeset
82 #ifndef GL_GENERATE_MIPMAP
ba530eb3b2f7 Define GL_GENERATE_MIPMAP ourselves if necessary.
reimar
parents: 30023
diff changeset
83 #define GL_GENERATE_MIPMAP 0x8191
ba530eb3b2f7 Define GL_GENERATE_MIPMAP ourselves if necessary.
reimar
parents: 30023
diff changeset
84 #endif
30951
e76a4f6bfc8d Implement OpenGL-based YUV to RGB version for Radeon 9200 class
reimar
parents: 30945
diff changeset
85 #ifndef GL_TEXT_FRAGMENT_SHADER_ATI
e76a4f6bfc8d Implement OpenGL-based YUV to RGB version for Radeon 9200 class
reimar
parents: 30945
diff changeset
86 #define GL_TEXT_FRAGMENT_SHADER_ATI 0x8200
e76a4f6bfc8d Implement OpenGL-based YUV to RGB version for Radeon 9200 class
reimar
parents: 30945
diff changeset
87 #endif
16608
efec5fb96a13 Add missing GL_REGISTER_COMBINERS_NV define
reimar
parents: 16595
diff changeset
88 #ifndef GL_REGISTER_COMBINERS_NV
efec5fb96a13 Add missing GL_REGISTER_COMBINERS_NV define
reimar
parents: 16595
diff changeset
89 #define GL_REGISTER_COMBINERS_NV 0x8522
efec5fb96a13 Add missing GL_REGISTER_COMBINERS_NV define
reimar
parents: 16595
diff changeset
90 #endif
16488
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
91 #ifndef GL_MAX_GENERAL_COMBINERS_NV
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
92 #define GL_MAX_GENERAL_COMBINERS_NV 0x854D
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
93 #endif
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
94 #ifndef GL_NUM_GENERAL_COMBINERS_NV
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
95 #define GL_NUM_GENERAL_COMBINERS_NV 0x854E
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
96 #endif
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
97 #ifndef GL_CONSTANT_COLOR0_NV
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
98 #define GL_CONSTANT_COLOR0_NV 0x852A
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
99 #endif
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
100 #ifndef GL_CONSTANT_COLOR1_NV
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
101 #define GL_CONSTANT_COLOR1_NV 0x852B
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
102 #endif
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
103 #ifndef GL_COMBINER0_NV
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
104 #define GL_COMBINER0_NV 0x8550
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
105 #endif
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
106 #ifndef GL_COMBINER1_NV
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
107 #define GL_COMBINER1_NV 0x8551
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
108 #endif
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
109 #ifndef GL_VARIABLE_A_NV
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
110 #define GL_VARIABLE_A_NV 0x8523
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
111 #endif
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
112 #ifndef GL_VARIABLE_B_NV
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
113 #define GL_VARIABLE_B_NV 0x8524
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
114 #endif
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
115 #ifndef GL_VARIABLE_C_NV
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
116 #define GL_VARIABLE_C_NV 0x8525
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
117 #endif
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
118 #ifndef GL_VARIABLE_D_NV
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
119 #define GL_VARIABLE_D_NV 0x8526
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
120 #endif
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
121 #ifndef GL_UNSIGNED_INVERT_NV
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
122 #define GL_UNSIGNED_INVERT_NV 0x8537
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
123 #endif
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
124 #ifndef GL_HALF_BIAS_NORMAL_NV
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
125 #define GL_HALF_BIAS_NORMAL_NV 0x853A
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
126 #endif
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
127 #ifndef GL_SIGNED_IDENTITY_NV
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
128 #define GL_SIGNED_IDENTITY_NV 0x853C
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
129 #endif
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
130 #ifndef GL_SCALE_BY_FOUR_NV
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
131 #define GL_SCALE_BY_FOUR_NV 0x853F
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
132 #endif
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
133 #ifndef GL_DISCARD_NV
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
134 #define GL_DISCARD_NV 0x8530
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
135 #endif
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
136 #ifndef GL_SPARE0_NV
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
137 #define GL_SPARE0_NV 0x852E
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
138 #endif
16625
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
139 #ifndef GL_FRAGMENT_SHADER_ATI
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
140 #define GL_FRAGMENT_SHADER_ATI 0x8920
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
141 #endif
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
142 #ifndef GL_NUM_FRAGMENT_REGISTERS_ATI
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
143 #define GL_NUM_FRAGMENT_REGISTERS_ATI 0x896E
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
144 #endif
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
145 #ifndef GL_REG_0_ATI
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
146 #define GL_REG_0_ATI 0x8921
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
147 #endif
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
148 #ifndef GL_REG_1_ATI
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
149 #define GL_REG_1_ATI 0x8922
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
150 #endif
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
151 #ifndef GL_REG_2_ATI
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
152 #define GL_REG_2_ATI 0x8923
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
153 #endif
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
154 #ifndef GL_CON_0_ATI
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
155 #define GL_CON_0_ATI 0x8941
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
156 #endif
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
157 #ifndef GL_CON_1_ATI
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
158 #define GL_CON_1_ATI 0x8942
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
159 #endif
30985
76e1dd50dccf Add some fallback OpenGL defines to fix compilation on Windows.
reimar
parents: 30964
diff changeset
160 #ifndef GL_CON_2_ATI
76e1dd50dccf Add some fallback OpenGL defines to fix compilation on Windows.
reimar
parents: 30964
diff changeset
161 #define GL_CON_2_ATI 0x8943
76e1dd50dccf Add some fallback OpenGL defines to fix compilation on Windows.
reimar
parents: 30964
diff changeset
162 #endif
76e1dd50dccf Add some fallback OpenGL defines to fix compilation on Windows.
reimar
parents: 30964
diff changeset
163 #ifndef GL_CON_3_ATI
76e1dd50dccf Add some fallback OpenGL defines to fix compilation on Windows.
reimar
parents: 30964
diff changeset
164 #define GL_CON_3_ATI 0x8944
76e1dd50dccf Add some fallback OpenGL defines to fix compilation on Windows.
reimar
parents: 30964
diff changeset
165 #endif
16625
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
166 #ifndef GL_ADD_ATI
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
167 #define GL_ADD_ATI 0x8963
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
168 #endif
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
169 #ifndef GL_MUL_ATI
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
170 #define GL_MUL_ATI 0x8964
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
171 #endif
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
172 #ifndef GL_MAD_ATI
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
173 #define GL_MAD_ATI 0x8968
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
174 #endif
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
175 #ifndef GL_SWIZZLE_STR_ATI
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
176 #define GL_SWIZZLE_STR_ATI 0x8976
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
177 #endif
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
178 #ifndef GL_4X_BIT_ATI
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
179 #define GL_4X_BIT_ATI 2
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
180 #endif
30985
76e1dd50dccf Add some fallback OpenGL defines to fix compilation on Windows.
reimar
parents: 30964
diff changeset
181 #ifndef GL_8X_BIT_ATI
76e1dd50dccf Add some fallback OpenGL defines to fix compilation on Windows.
reimar
parents: 30964
diff changeset
182 #define GL_8X_BIT_ATI 4
76e1dd50dccf Add some fallback OpenGL defines to fix compilation on Windows.
reimar
parents: 30964
diff changeset
183 #endif
16625
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
184 #ifndef GL_BIAS_BIT_ATI
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
185 #define GL_BIAS_BIT_ATI 8
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
186 #endif
16488
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
187 #ifndef GL_MAX_TEXTURE_UNITS
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
188 #define GL_MAX_TEXTURE_UNITS 0x84E2
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
189 #endif
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
190 #ifndef GL_TEXTURE0
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
191 #define GL_TEXTURE0 0x84C0
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
192 #endif
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
193 #ifndef GL_TEXTURE1
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
194 #define GL_TEXTURE1 0x84C1
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
195 #endif
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
196 #ifndef GL_TEXTURE2
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
197 #define GL_TEXTURE2 0x84C2
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
198 #endif
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
199 #ifndef GL_TEXTURE3
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
200 #define GL_TEXTURE3 0x84C3
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
201 #endif
16099
629c54dc7e0d support for rectangular and streaming textures.
reimar
parents: 14142
diff changeset
202 #ifndef GL_TEXTURE_RECTANGLE
629c54dc7e0d support for rectangular and streaming textures.
reimar
parents: 14142
diff changeset
203 #define GL_TEXTURE_RECTANGLE 0x84F5
629c54dc7e0d support for rectangular and streaming textures.
reimar
parents: 14142
diff changeset
204 #endif
629c54dc7e0d support for rectangular and streaming textures.
reimar
parents: 14142
diff changeset
205 #ifndef GL_PIXEL_UNPACK_BUFFER
629c54dc7e0d support for rectangular and streaming textures.
reimar
parents: 14142
diff changeset
206 #define GL_PIXEL_UNPACK_BUFFER 0x88EC
629c54dc7e0d support for rectangular and streaming textures.
reimar
parents: 14142
diff changeset
207 #endif
629c54dc7e0d support for rectangular and streaming textures.
reimar
parents: 14142
diff changeset
208 #ifndef GL_STREAM_DRAW
629c54dc7e0d support for rectangular and streaming textures.
reimar
parents: 14142
diff changeset
209 #define GL_STREAM_DRAW 0x88E0
629c54dc7e0d support for rectangular and streaming textures.
reimar
parents: 14142
diff changeset
210 #endif
16237
b951a75d4f83 Our buffer usage actually fits better to GL_DYNAMIC_DRAW than GL_STREAM_DRAW.
reimar
parents: 16233
diff changeset
211 #ifndef GL_DYNAMIC_DRAW
b951a75d4f83 Our buffer usage actually fits better to GL_DYNAMIC_DRAW than GL_STREAM_DRAW.
reimar
parents: 16233
diff changeset
212 #define GL_DYNAMIC_DRAW 0x88E8
b951a75d4f83 Our buffer usage actually fits better to GL_DYNAMIC_DRAW than GL_STREAM_DRAW.
reimar
parents: 16233
diff changeset
213 #endif
16099
629c54dc7e0d support for rectangular and streaming textures.
reimar
parents: 14142
diff changeset
214 #ifndef GL_WRITE_ONLY
629c54dc7e0d support for rectangular and streaming textures.
reimar
parents: 14142
diff changeset
215 #define GL_WRITE_ONLY 0x88B9
629c54dc7e0d support for rectangular and streaming textures.
reimar
parents: 14142
diff changeset
216 #endif
16117
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
217 #ifndef GL_BGR
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
218 #define GL_BGR 0x80E0
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
219 #endif
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
220 #ifndef GL_BGRA
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
221 #define GL_BGRA 0x80E1
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
222 #endif
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
223 #ifndef GL_UNSIGNED_BYTE_3_3_2
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
224 #define GL_UNSIGNED_BYTE_3_3_2 0x8032
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
225 #endif
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
226 #ifndef GL_UNSIGNED_BYTE_2_3_3_REV
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
227 #define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
228 #endif
27845
dedacb09ed45 Change OpenGL support to work on unmodified MinGW64
reimar
parents: 27621
diff changeset
229 #ifndef GL_UNSIGNED_SHORT_4_4_4_4
dedacb09ed45 Change OpenGL support to work on unmodified MinGW64
reimar
parents: 27621
diff changeset
230 #define GL_UNSIGNED_SHORT_4_4_4_4 0x8033
dedacb09ed45 Change OpenGL support to work on unmodified MinGW64
reimar
parents: 27621
diff changeset
231 #endif
dedacb09ed45 Change OpenGL support to work on unmodified MinGW64
reimar
parents: 27621
diff changeset
232 #ifndef GL_UNSIGNED_SHORT_4_4_4_4_REV
dedacb09ed45 Change OpenGL support to work on unmodified MinGW64
reimar
parents: 27621
diff changeset
233 #define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365
dedacb09ed45 Change OpenGL support to work on unmodified MinGW64
reimar
parents: 27621
diff changeset
234 #endif
16117
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
235 #ifndef GL_UNSIGNED_SHORT_5_6_5
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
236 #define GL_UNSIGNED_SHORT_5_6_5 0x8363
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
237 #endif
27845
dedacb09ed45 Change OpenGL support to work on unmodified MinGW64
reimar
parents: 27621
diff changeset
238 #ifndef GL_UNSIGNED_INT_8_8_8_8
dedacb09ed45 Change OpenGL support to work on unmodified MinGW64
reimar
parents: 27621
diff changeset
239 #define GL_UNSIGNED_INT_8_8_8_8 0x8035
dedacb09ed45 Change OpenGL support to work on unmodified MinGW64
reimar
parents: 27621
diff changeset
240 #endif
dedacb09ed45 Change OpenGL support to work on unmodified MinGW64
reimar
parents: 27621
diff changeset
241 #ifndef GL_UNSIGNED_INT_8_8_8_8_REV
dedacb09ed45 Change OpenGL support to work on unmodified MinGW64
reimar
parents: 27621
diff changeset
242 #define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367
dedacb09ed45 Change OpenGL support to work on unmodified MinGW64
reimar
parents: 27621
diff changeset
243 #endif
16117
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
244 #ifndef GL_UNSIGNED_SHORT_5_6_5_REV
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
245 #define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
246 #endif
27845
dedacb09ed45 Change OpenGL support to work on unmodified MinGW64
reimar
parents: 27621
diff changeset
247 #ifndef GL_UNSIGNED_INT_10_10_10_2
dedacb09ed45 Change OpenGL support to work on unmodified MinGW64
reimar
parents: 27621
diff changeset
248 #define GL_UNSIGNED_INT_10_10_10_2 0x8036
dedacb09ed45 Change OpenGL support to work on unmodified MinGW64
reimar
parents: 27621
diff changeset
249 #endif
dedacb09ed45 Change OpenGL support to work on unmodified MinGW64
reimar
parents: 27621
diff changeset
250 #ifndef GL_UNSIGNED_INT_2_10_10_10_REV
dedacb09ed45 Change OpenGL support to work on unmodified MinGW64
reimar
parents: 27621
diff changeset
251 #define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368
dedacb09ed45 Change OpenGL support to work on unmodified MinGW64
reimar
parents: 27621
diff changeset
252 #endif
16117
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
253 #ifndef GL_UNSIGNED_SHORT_5_5_5_1
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
254 #define GL_UNSIGNED_SHORT_5_5_5_1 0x8034
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
255 #endif
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
256 #ifndef GL_UNSIGNED_SHORT_1_5_5_5_REV
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
257 #define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
258 #endif
28059
8f43ff543dc6 Add support for YCBCR MESA texture format to vo_gl.
reimar
parents: 27865
diff changeset
259 #ifndef GL_UNSIGNED_SHORT_8_8
8f43ff543dc6 Add support for YCBCR MESA texture format to vo_gl.
reimar
parents: 27865
diff changeset
260 #define GL_UNSIGNED_SHORT_8_8 0x85BA
8f43ff543dc6 Add support for YCBCR MESA texture format to vo_gl.
reimar
parents: 27865
diff changeset
261 #endif
8f43ff543dc6 Add support for YCBCR MESA texture format to vo_gl.
reimar
parents: 27865
diff changeset
262 #ifndef GL_UNSIGNED_SHORT_8_8_REV
8f43ff543dc6 Add support for YCBCR MESA texture format to vo_gl.
reimar
parents: 27865
diff changeset
263 #define GL_UNSIGNED_SHORT_8_8_REV 0x85BB
8f43ff543dc6 Add support for YCBCR MESA texture format to vo_gl.
reimar
parents: 27865
diff changeset
264 #endif
35005
b1a1dcae9760 Replace MESA YCBCR support by the Apple variant.
reimar
parents: 34983
diff changeset
265 #ifndef GL_YCBCR_422_APPLE
b1a1dcae9760 Replace MESA YCBCR support by the Apple variant.
reimar
parents: 34983
diff changeset
266 #define GL_YCBCR_422_APPLE 0x85B9
b1a1dcae9760 Replace MESA YCBCR support by the Apple variant.
reimar
parents: 34983
diff changeset
267 #endif
28059
8f43ff543dc6 Add support for YCBCR MESA texture format to vo_gl.
reimar
parents: 27865
diff changeset
268 #ifndef GL_YCBCR_MESA
8f43ff543dc6 Add support for YCBCR MESA texture format to vo_gl.
reimar
parents: 27865
diff changeset
269 #define GL_YCBCR_MESA 0x8757
8f43ff543dc6 Add support for YCBCR MESA texture format to vo_gl.
reimar
parents: 27865
diff changeset
270 #endif
18961
9f1bbc70c773 Support for 16 bit ppms
reimar
parents: 18655
diff changeset
271 #ifndef GL_RGB32F
9f1bbc70c773 Support for 16 bit ppms
reimar
parents: 18655
diff changeset
272 #define GL_RGB32F 0x8815
9f1bbc70c773 Support for 16 bit ppms
reimar
parents: 18655
diff changeset
273 #endif
9f1bbc70c773 Support for 16 bit ppms
reimar
parents: 18655
diff changeset
274 #ifndef GL_FLOAT_RGB32_NV
9f1bbc70c773 Support for 16 bit ppms
reimar
parents: 18655
diff changeset
275 #define GL_FLOAT_RGB32_NV 0x8889
9f1bbc70c773 Support for 16 bit ppms
reimar
parents: 18655
diff changeset
276 #endif
33366
9b1c1b141f04 Request GL_LUMINANCE16 as internal format for > 8 bit YUV formats.
reimar
parents: 31676
diff changeset
277 #ifndef GL_LUMINANCE16
9b1c1b141f04 Request GL_LUMINANCE16 as internal format for > 8 bit YUV formats.
reimar
parents: 31676
diff changeset
278 #define GL_LUMINANCE16 0x8042
9b1c1b141f04 Request GL_LUMINANCE16 as internal format for > 8 bit YUV formats.
reimar
parents: 31676
diff changeset
279 #endif
34969
7974179b9471 Add support for depth textures to simplify some experiments.
reimar
parents: 34841
diff changeset
280 #ifndef GL_DEPTH_COMPONENT
7974179b9471 Add support for depth textures to simplify some experiments.
reimar
parents: 34841
diff changeset
281 #define GL_DEPTH_COMPONENT 0x1902
7974179b9471 Add support for depth textures to simplify some experiments.
reimar
parents: 34841
diff changeset
282 #endif
34972
445009e9ee8d When the LUMINANCE16 format is less than 14 bit try to use
reimar
parents: 34970
diff changeset
283 #ifndef GL_DEPTH_COMPONENT16
445009e9ee8d When the LUMINANCE16 format is less than 14 bit try to use
reimar
parents: 34970
diff changeset
284 #define GL_DEPTH_COMPONENT16 0x81A5
445009e9ee8d When the LUMINANCE16 format is less than 14 bit try to use
reimar
parents: 34970
diff changeset
285 #endif
34973
7a51bcd28fd1 Query correct component to get luminance texture bit depth
reimar
parents: 34972
diff changeset
286 #ifndef GL_TEXTURE_LUMINANCE_SIZE
7a51bcd28fd1 Query correct component to get luminance texture bit depth
reimar
parents: 34972
diff changeset
287 #define GL_TEXTURE_LUMINANCE_SIZE 0x8060
34972
445009e9ee8d When the LUMINANCE16 format is less than 14 bit try to use
reimar
parents: 34970
diff changeset
288 #endif
34970
78bf01276896 Add fallback defines for GL_DEPTH_TEXTURE_MODE and GL_TEXTURE_COMPARE_MODE.
reimar
parents: 34969
diff changeset
289 #ifndef GL_DEPTH_TEXTURE_MODE
78bf01276896 Add fallback defines for GL_DEPTH_TEXTURE_MODE and GL_TEXTURE_COMPARE_MODE.
reimar
parents: 34969
diff changeset
290 #define GL_DEPTH_TEXTURE_MODE 0x884B
78bf01276896 Add fallback defines for GL_DEPTH_TEXTURE_MODE and GL_TEXTURE_COMPARE_MODE.
reimar
parents: 34969
diff changeset
291 #endif
78bf01276896 Add fallback defines for GL_DEPTH_TEXTURE_MODE and GL_TEXTURE_COMPARE_MODE.
reimar
parents: 34969
diff changeset
292 #ifndef GL_TEXTURE_COMPARE_MODE
78bf01276896 Add fallback defines for GL_DEPTH_TEXTURE_MODE and GL_TEXTURE_COMPARE_MODE.
reimar
parents: 34969
diff changeset
293 #define GL_TEXTURE_COMPARE_MODE 0x884C
78bf01276896 Add fallback defines for GL_DEPTH_TEXTURE_MODE and GL_TEXTURE_COMPARE_MODE.
reimar
parents: 34969
diff changeset
294 #endif
28070
9c1fdc6420be 100l, forgot setting GL_UNPACK_CLIENT_STORAGE_APPLE for mesa-buffer mode.
reimar
parents: 28067
diff changeset
295 #ifndef GL_UNPACK_CLIENT_STORAGE_APPLE
9c1fdc6420be 100l, forgot setting GL_UNPACK_CLIENT_STORAGE_APPLE for mesa-buffer mode.
reimar
parents: 28067
diff changeset
296 #define GL_UNPACK_CLIENT_STORAGE_APPLE 0x85B2
9c1fdc6420be 100l, forgot setting GL_UNPACK_CLIENT_STORAGE_APPLE for mesa-buffer mode.
reimar
parents: 28067
diff changeset
297 #endif
35005
b1a1dcae9760 Replace MESA YCBCR support by the Apple variant.
reimar
parents: 34983
diff changeset
298 #ifndef GL_TEXTURE_STORAGE_HINT_APPLE
b1a1dcae9760 Replace MESA YCBCR support by the Apple variant.
reimar
parents: 34983
diff changeset
299 #define GL_TEXTURE_STORAGE_HINT_APPLE 0x85BC
b1a1dcae9760 Replace MESA YCBCR support by the Apple variant.
reimar
parents: 34983
diff changeset
300 #endif
b1a1dcae9760 Replace MESA YCBCR support by the Apple variant.
reimar
parents: 34983
diff changeset
301 #ifndef GL_STORAGE_CACHED_APPLE
b1a1dcae9760 Replace MESA YCBCR support by the Apple variant.
reimar
parents: 34983
diff changeset
302 #define GL_STORAGE_CACHED_APPLE 0x85BE
b1a1dcae9760 Replace MESA YCBCR support by the Apple variant.
reimar
parents: 34983
diff changeset
303 #endif
16488
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
304 #ifndef GL_FRAGMENT_PROGRAM
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
305 #define GL_FRAGMENT_PROGRAM 0x8804
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
306 #endif
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
307 #ifndef GL_PROGRAM_FORMAT_ASCII
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
308 #define GL_PROGRAM_FORMAT_ASCII 0x8875
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
309 #endif
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
310 #ifndef GL_PROGRAM_ERROR_POSITION
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
311 #define GL_PROGRAM_ERROR_POSITION 0x864B
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
312 #endif
27865
428125c9e08e For fragment programs, check GL_MAX_TEXTURE_IMAGE_UNITS instead of GL_MAX_TEXTURE_UNITS.
reimar
parents: 27845
diff changeset
313 #ifndef GL_MAX_TEXTURE_IMAGE_UNITS
428125c9e08e For fragment programs, check GL_MAX_TEXTURE_IMAGE_UNITS instead of GL_MAX_TEXTURE_UNITS.
reimar
parents: 27845
diff changeset
314 #define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872
428125c9e08e For fragment programs, check GL_MAX_TEXTURE_IMAGE_UNITS instead of GL_MAX_TEXTURE_UNITS.
reimar
parents: 27845
diff changeset
315 #endif
18653
5af43a16abc3 loadGPUProgram function to load fragment program with error checking and statistics
reimar
parents: 18622
diff changeset
316 #ifndef GL_PROGRAM_ERROR_STRING
5af43a16abc3 loadGPUProgram function to load fragment program with error checking and statistics
reimar
parents: 18622
diff changeset
317 #define GL_PROGRAM_ERROR_STRING 0x8874
5af43a16abc3 loadGPUProgram function to load fragment program with error checking and statistics
reimar
parents: 18622
diff changeset
318 #endif
16595
b3a9fb41f475 fix/improve code doxumentation. Also group gl_common functions in several
reimar
parents: 16592
diff changeset
319 /** \} */ // end of glextdefines group
16099
629c54dc7e0d support for rectangular and streaming textures.
reimar
parents: 14142
diff changeset
320
13653
799f81d3cb19 added gl_common for code used by both vo_gl.c and vo_gl2.c.
reimar
parents:
diff changeset
321 void glAdjustAlignment(int stride);
799f81d3cb19 added gl_common for code used by both vo_gl.c and vo_gl2.c.
reimar
parents:
diff changeset
322
14078
c4033dcb986f More similar code from gl and gl2 moved to gl_common
reimar
parents: 13921
diff changeset
323 const char *glValName(GLint value);
c4033dcb986f More similar code from gl and gl2 moved to gl_common
reimar
parents: 13921
diff changeset
324
16879
6ea220b10e8e More consistent and sane types. Also avoids some gcc 4 warnings.
reimar
parents: 16625
diff changeset
325 int glFindFormat(uint32_t format, int *bpp, GLint *gl_texfmt,
14078
c4033dcb986f More similar code from gl and gl2 moved to gl_common
reimar
parents: 13921
diff changeset
326 GLenum *gl_format, GLenum *gl_type);
16117
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
327 int glFmt2bpp(GLenum format, GLenum type);
27621
53b5cf466361 Change glCreateClearTex to use the same host data format as later uploads.
reimar
parents: 27306
diff changeset
328 void glCreateClearTex(GLenum target, GLenum fmt, GLenum format, GLenum type, GLint filter,
16460
ec7036dedee4 Fix border color (forgot to divide by 255.0).
reimar
parents: 16303
diff changeset
329 int w, int h, unsigned char val);
16592
1bb2b2696451 support loading a texture from a PPM file
reimar
parents: 16586
diff changeset
330 int glCreatePPMTex(GLenum target, GLenum fmt, GLint filter,
1bb2b2696451 support loading a texture from a PPM file
reimar
parents: 16586
diff changeset
331 FILE *f, int *width, int *height, int *maxval);
16117
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
332 void glUploadTex(GLenum target, GLenum format, GLenum type,
21201
2c1b7fe05973 Avoid void * arithmetic
reimar
parents: 18961
diff changeset
333 const void *dataptr, int stride,
16117
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
334 int x, int y, int w, int h, int slice);
16214
ede5b4afd262 Helper function for drawing texture and general cleanup of vo_gl2.c
reimar
parents: 16117
diff changeset
335 void glDrawTex(GLfloat x, GLfloat y, GLfloat w, GLfloat h,
ede5b4afd262 Helper function for drawing texture and general cleanup of vo_gl2.c
reimar
parents: 16117
diff changeset
336 GLfloat tx, GLfloat ty, GLfloat tw, GLfloat th,
34983
0034a2bf7b42 Support interleaving the two frame halves from a 3D video
reimar
parents: 34973
diff changeset
337 int sx, int sy, int rect_tex, int is_yv12, int flip,
0034a2bf7b42 Support interleaving the two frame halves from a 3D video
reimar
parents: 34973
diff changeset
338 int use_stipple);
18653
5af43a16abc3 loadGPUProgram function to load fragment program with error checking and statistics
reimar
parents: 18622
diff changeset
339 int loadGPUProgram(GLenum target, char *prog);
16488
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
340
16595
b3a9fb41f475 fix/improve code doxumentation. Also group gl_common functions in several
reimar
parents: 16592
diff changeset
341 /** \addtogroup glconversion
b3a9fb41f475 fix/improve code doxumentation. Also group gl_common functions in several
reimar
parents: 16592
diff changeset
342 * \{ */
16488
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
343 //! do not use YUV conversion, this should always stay 0
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
344 #define YUV_CONVERSION_NONE 0
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
345 //! use nVidia specific register combiners for YUV conversion
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
346 #define YUV_CONVERSION_COMBINERS 1
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
347 //! use a fragment program for YUV conversion
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
348 #define YUV_CONVERSION_FRAGMENT 2
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
349 //! use a fragment program for YUV conversion with gamma using POW
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
350 #define YUV_CONVERSION_FRAGMENT_POW 3
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
351 //! use a fragment program with additional table lookup for YUV conversion
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
352 #define YUV_CONVERSION_FRAGMENT_LOOKUP 4
16625
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
353 //! use ATI specific register combiners ("fragment program")
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
354 #define YUV_CONVERSION_COMBINERS_ATI 5
18655
6aa0b26d584b Add yuv to rgb conversion using a 3D lookup texture
reimar
parents: 18653
diff changeset
355 //! use a fragment program with 3D table lookup for YUV conversion
6aa0b26d584b Add yuv to rgb conversion using a 3D lookup texture
reimar
parents: 18653
diff changeset
356 #define YUV_CONVERSION_FRAGMENT_LOOKUP3D 6
30951
e76a4f6bfc8d Implement OpenGL-based YUV to RGB version for Radeon 9200 class
reimar
parents: 30945
diff changeset
357 //! use ATI specific "text" register combiners ("fragment program")
e76a4f6bfc8d Implement OpenGL-based YUV to RGB version for Radeon 9200 class
reimar
parents: 30945
diff changeset
358 #define YUV_CONVERSION_TEXT_FRAGMENT 7
18619
106a0c366002 Reworked YUV2RGB fragment program setup in preparation for upcoming patches
reimar
parents: 18578
diff changeset
359 //! use normal bilinear scaling for textures
106a0c366002 Reworked YUV2RGB fragment program setup in preparation for upcoming patches
reimar
parents: 18578
diff changeset
360 #define YUV_SCALER_BILIN 0
18622
dd9a6e8005f3 Add bicubic texture scaling
reimar
parents: 18619
diff changeset
361 //! use higher quality bicubic scaling for textures
dd9a6e8005f3 Add bicubic texture scaling
reimar
parents: 18619
diff changeset
362 #define YUV_SCALER_BICUB 1
22491
1f873be15855 forgotten lscale=2 part for gl_common.h
reimar
parents: 21201
diff changeset
363 //! use cubic scaling in X and normal linear scaling in Y direction
1f873be15855 forgotten lscale=2 part for gl_common.h
reimar
parents: 21201
diff changeset
364 #define YUV_SCALER_BICUB_X 2
24318
e6e8bf060dae Add a bicubic scaler that needs a lot more instruction but no
reimar
parents: 23689
diff changeset
365 //! use cubic scaling without additional lookup texture
e6e8bf060dae Add a bicubic scaler that needs a lot more instruction but no
reimar
parents: 23689
diff changeset
366 #define YUV_SCALER_BICUB_NOTEX 3
25729
9a96fd14d1c5 Add experimental unsharp-mask OpenGL scaler. Certainly not yet perfect.
reimar
parents: 25535
diff changeset
367 #define YUV_SCALER_UNSHARP 4
25758
2ee33590afe6 Add a fragment program for 5x5 unsharp masking
reimar
parents: 25729
diff changeset
368 #define YUV_SCALER_UNSHARP2 5
18619
106a0c366002 Reworked YUV2RGB fragment program setup in preparation for upcoming patches
reimar
parents: 18578
diff changeset
369 //! mask for conversion type
106a0c366002 Reworked YUV2RGB fragment program setup in preparation for upcoming patches
reimar
parents: 18578
diff changeset
370 #define YUV_CONVERSION_MASK 0xF
106a0c366002 Reworked YUV2RGB fragment program setup in preparation for upcoming patches
reimar
parents: 18578
diff changeset
371 //! mask for scaler type
106a0c366002 Reworked YUV2RGB fragment program setup in preparation for upcoming patches
reimar
parents: 18578
diff changeset
372 #define YUV_SCALER_MASK 0xF
106a0c366002 Reworked YUV2RGB fragment program setup in preparation for upcoming patches
reimar
parents: 18578
diff changeset
373 //! shift value for luminance scaler type
106a0c366002 Reworked YUV2RGB fragment program setup in preparation for upcoming patches
reimar
parents: 18578
diff changeset
374 #define YUV_LUM_SCALER_SHIFT 8
106a0c366002 Reworked YUV2RGB fragment program setup in preparation for upcoming patches
reimar
parents: 18578
diff changeset
375 //! shift value for chrominance scaler type
106a0c366002 Reworked YUV2RGB fragment program setup in preparation for upcoming patches
reimar
parents: 18578
diff changeset
376 #define YUV_CHROM_SCALER_SHIFT 12
106a0c366002 Reworked YUV2RGB fragment program setup in preparation for upcoming patches
reimar
parents: 18578
diff changeset
377 //! extract conversion out of type
31675
a40db79e6672 Add () around macro arguments.
reimar
parents: 31567
diff changeset
378 #define YUV_CONVERSION(t) ((t) & YUV_CONVERSION_MASK)
18619
106a0c366002 Reworked YUV2RGB fragment program setup in preparation for upcoming patches
reimar
parents: 18578
diff changeset
379 //! extract luminance scaler out of type
31675
a40db79e6672 Add () around macro arguments.
reimar
parents: 31567
diff changeset
380 #define YUV_LUM_SCALER(t) (((t) >> YUV_LUM_SCALER_SHIFT) & YUV_SCALER_MASK)
18619
106a0c366002 Reworked YUV2RGB fragment program setup in preparation for upcoming patches
reimar
parents: 18578
diff changeset
381 //! extract chrominance scaler out of type
31675
a40db79e6672 Add () around macro arguments.
reimar
parents: 31567
diff changeset
382 #define YUV_CHROM_SCALER(t) (((t) >> YUV_CHROM_SCALER_SHIFT) & YUV_SCALER_MASK)
31676
a0a48c62bb8c Helper macros to build the yuv conversion type number.
reimar
parents: 31675
diff changeset
383 #define SET_YUV_CONVERSION(c) ((c) & YUV_CONVERSION_MASK)
a0a48c62bb8c Helper macros to build the yuv conversion type number.
reimar
parents: 31675
diff changeset
384 #define SET_YUV_LUM_SCALER(s) (((s) & YUV_SCALER_MASK) << YUV_LUM_SCALER_SHIFT)
a0a48c62bb8c Helper macros to build the yuv conversion type number.
reimar
parents: 31675
diff changeset
385 #define SET_YUV_CHROM_SCALER(s) (((s) & YUV_SCALER_MASK) << YUV_CHROM_SCALER_SHIFT)
33414
9bc9e1851a13 Support 9- and 10-bit YUV input for OpenGL vos.
reimar
parents: 33366
diff changeset
386 //! returns whether the yuv conversion supports large brightness range etc.
9bc9e1851a13 Support 9- and 10-bit YUV input for OpenGL vos.
reimar
parents: 33366
diff changeset
387 static inline int glYUVLargeRange(int conv)
9bc9e1851a13 Support 9- and 10-bit YUV input for OpenGL vos.
reimar
parents: 33366
diff changeset
388 {
9bc9e1851a13 Support 9- and 10-bit YUV input for OpenGL vos.
reimar
parents: 33366
diff changeset
389 switch (conv)
9bc9e1851a13 Support 9- and 10-bit YUV input for OpenGL vos.
reimar
parents: 33366
diff changeset
390 {
9bc9e1851a13 Support 9- and 10-bit YUV input for OpenGL vos.
reimar
parents: 33366
diff changeset
391 case YUV_CONVERSION_NONE:
9bc9e1851a13 Support 9- and 10-bit YUV input for OpenGL vos.
reimar
parents: 33366
diff changeset
392 case YUV_CONVERSION_COMBINERS:
9bc9e1851a13 Support 9- and 10-bit YUV input for OpenGL vos.
reimar
parents: 33366
diff changeset
393 case YUV_CONVERSION_COMBINERS_ATI:
9bc9e1851a13 Support 9- and 10-bit YUV input for OpenGL vos.
reimar
parents: 33366
diff changeset
394 case YUV_CONVERSION_FRAGMENT_LOOKUP3D:
9bc9e1851a13 Support 9- and 10-bit YUV input for OpenGL vos.
reimar
parents: 33366
diff changeset
395 case YUV_CONVERSION_TEXT_FRAGMENT:
9bc9e1851a13 Support 9- and 10-bit YUV input for OpenGL vos.
reimar
parents: 33366
diff changeset
396 return 0;
9bc9e1851a13 Support 9- and 10-bit YUV input for OpenGL vos.
reimar
parents: 33366
diff changeset
397 }
9bc9e1851a13 Support 9- and 10-bit YUV input for OpenGL vos.
reimar
parents: 33366
diff changeset
398 return 1;
9bc9e1851a13 Support 9- and 10-bit YUV input for OpenGL vos.
reimar
parents: 33366
diff changeset
399 }
34983
0034a2bf7b42 Support interleaving the two frame halves from a 3D video
reimar
parents: 34973
diff changeset
400
0034a2bf7b42 Support interleaving the two frame halves from a 3D video
reimar
parents: 34973
diff changeset
401 static inline int glYUVSupportsAlphaTex(int conv)
0034a2bf7b42 Support interleaving the two frame halves from a 3D video
reimar
parents: 34973
diff changeset
402 {
0034a2bf7b42 Support interleaving the two frame halves from a 3D video
reimar
parents: 34973
diff changeset
403 switch (conv)
0034a2bf7b42 Support interleaving the two frame halves from a 3D video
reimar
parents: 34973
diff changeset
404 {
0034a2bf7b42 Support interleaving the two frame halves from a 3D video
reimar
parents: 34973
diff changeset
405 case YUV_CONVERSION_COMBINERS:
0034a2bf7b42 Support interleaving the two frame halves from a 3D video
reimar
parents: 34973
diff changeset
406 case YUV_CONVERSION_COMBINERS_ATI:
0034a2bf7b42 Support interleaving the two frame halves from a 3D video
reimar
parents: 34973
diff changeset
407 case YUV_CONVERSION_TEXT_FRAGMENT:
0034a2bf7b42 Support interleaving the two frame halves from a 3D video
reimar
parents: 34973
diff changeset
408 return 0;
0034a2bf7b42 Support interleaving the two frame halves from a 3D video
reimar
parents: 34973
diff changeset
409 }
0034a2bf7b42 Support interleaving the two frame halves from a 3D video
reimar
parents: 34973
diff changeset
410 return 1;
0034a2bf7b42 Support interleaving the two frame halves from a 3D video
reimar
parents: 34973
diff changeset
411 }
16595
b3a9fb41f475 fix/improve code doxumentation. Also group gl_common functions in several
reimar
parents: 16592
diff changeset
412 /** \} */
30107
11e3ee8cd05e Put the colourspace-related variables into a separate struct to ease
reimar
parents: 30097
diff changeset
413
11e3ee8cd05e Put the colourspace-related variables into a separate struct to ease
reimar
parents: 30097
diff changeset
414 typedef struct {
11e3ee8cd05e Put the colourspace-related variables into a separate struct to ease
reimar
parents: 30097
diff changeset
415 GLenum target;
11e3ee8cd05e Put the colourspace-related variables into a separate struct to ease
reimar
parents: 30097
diff changeset
416 int type;
11e3ee8cd05e Put the colourspace-related variables into a separate struct to ease
reimar
parents: 30097
diff changeset
417 struct mp_csp_params csp_params;
26835
315e911d5762 Forgotten changes to gl_common.h
reimar
parents: 26203
diff changeset
418 int texw;
315e911d5762 Forgotten changes to gl_common.h
reimar
parents: 26203
diff changeset
419 int texh;
30097
9d724e6def3e Support all planar YUV formats in OpenGL vos.
reimar
parents: 30032
diff changeset
420 int chrom_texw;
9d724e6def3e Support all planar YUV formats in OpenGL vos.
reimar
parents: 30032
diff changeset
421 int chrom_texh;
26836
ba086caf1230 Add a filter strength parameter for blurring/sharpening scalers.
reimar
parents: 26835
diff changeset
422 float filter_strength;
33927
9bb97722d8c7 Hook up -vo gl noise support.
reimar
parents: 33414
diff changeset
423 float noise_strength;
34983
0034a2bf7b42 Support interleaving the two frame halves from a 3D video
reimar
parents: 34973
diff changeset
424 int has_alpha_tex;
26835
315e911d5762 Forgotten changes to gl_common.h
reimar
parents: 26203
diff changeset
425 } gl_conversion_params_t;
315e911d5762 Forgotten changes to gl_common.h
reimar
parents: 26203
diff changeset
426
30964
a5c6b37b3af6 Factor out the YUV->RGB conversion auto-selection and also
reimar
parents: 30951
diff changeset
427 int glAutodetectYUVConversion(void);
26835
315e911d5762 Forgotten changes to gl_common.h
reimar
parents: 26203
diff changeset
428 void glSetupYUVConversion(gl_conversion_params_t *params);
18175
01ca8a5fb8a6 minor fixes: get rid of pointless inline attributes and some additional checks
reimar
parents: 17688
diff changeset
429 void glEnableYUVConversion(GLenum target, int type);
01ca8a5fb8a6 minor fixes: get rid of pointless inline attributes and some additional checks
reimar
parents: 17688
diff changeset
430 void glDisableYUVConversion(GLenum target, int type);
14078
c4033dcb986f More similar code from gl and gl2 moved to gl_common
reimar
parents: 13921
diff changeset
431
34375
5b44af093b2a vo_gl stereo: allow swapping left and right view.
reimar
parents: 34350
diff changeset
432 #define GL_3D_SWAP 32
31567
0ffe9f97fc9f Add initial stereo support to -vo gl.
reimar
parents: 31309
diff changeset
433 #define GL_3D_RED_CYAN 1
0ffe9f97fc9f Add initial stereo support to -vo gl.
reimar
parents: 31309
diff changeset
434 #define GL_3D_GREEN_MAGENTA 2
0ffe9f97fc9f Add initial stereo support to -vo gl.
reimar
parents: 31309
diff changeset
435 #define GL_3D_QUADBUFFER 3
34983
0034a2bf7b42 Support interleaving the two frame halves from a 3D video
reimar
parents: 34973
diff changeset
436 #define GL_3D_STIPPLE 4
31567
0ffe9f97fc9f Add initial stereo support to -vo gl.
reimar
parents: 31309
diff changeset
437
34983
0034a2bf7b42 Support interleaving the two frame halves from a 3D video
reimar
parents: 34973
diff changeset
438 void glSetupAlphaStippleTex(unsigned pattern);
31567
0ffe9f97fc9f Add initial stereo support to -vo gl.
reimar
parents: 31309
diff changeset
439 void glEnable3DLeft(int type);
0ffe9f97fc9f Add initial stereo support to -vo gl.
reimar
parents: 31309
diff changeset
440 void glEnable3DRight(int type);
0ffe9f97fc9f Add initial stereo support to -vo gl.
reimar
parents: 31309
diff changeset
441 void glDisable3D(int type);
0ffe9f97fc9f Add initial stereo support to -vo gl.
reimar
parents: 31309
diff changeset
442
16595
b3a9fb41f475 fix/improve code doxumentation. Also group gl_common functions in several
reimar
parents: 16592
diff changeset
443 /** \addtogroup glcontext
b3a9fb41f475 fix/improve code doxumentation. Also group gl_common functions in several
reimar
parents: 16592
diff changeset
444 * \{ */
13843
3f28d2a56758 fullscreen fixes and GUI support for vo_gl
reimar
parents: 13653
diff changeset
445 //! could not set new window, will continue drawing into the old one.
3f28d2a56758 fullscreen fixes and GUI support for vo_gl
reimar
parents: 13653
diff changeset
446 #define SET_WINDOW_FAILED -1
3f28d2a56758 fullscreen fixes and GUI support for vo_gl
reimar
parents: 13653
diff changeset
447 //! new window is set, could even transfer the OpenGL context.
3f28d2a56758 fullscreen fixes and GUI support for vo_gl
reimar
parents: 13653
diff changeset
448 #define SET_WINDOW_OK 0
3f28d2a56758 fullscreen fixes and GUI support for vo_gl
reimar
parents: 13653
diff changeset
449 //! new window is set, but the OpenGL context needs to be reinitialized.
3f28d2a56758 fullscreen fixes and GUI support for vo_gl
reimar
parents: 13653
diff changeset
450 #define SET_WINDOW_REINIT 1
16595
b3a9fb41f475 fix/improve code doxumentation. Also group gl_common functions in several
reimar
parents: 16592
diff changeset
451 /** \} */
13843
3f28d2a56758 fullscreen fixes and GUI support for vo_gl
reimar
parents: 13653
diff changeset
452
29938
eb6c70e2cbea Very preliminary code to allow selecting the OpenGL backend at runtime.
reimar
parents: 29263
diff changeset
453 enum MPGLType {
34350
27dead7f2593 Add a suboption to allow forcing use of e.g. OpenGL ES to -vo gl.
reimar
parents: 34338
diff changeset
454 GLTYPE_AUTO = -1,
29938
eb6c70e2cbea Very preliminary code to allow selecting the OpenGL backend at runtime.
reimar
parents: 29263
diff changeset
455 GLTYPE_W32,
eb6c70e2cbea Very preliminary code to allow selecting the OpenGL backend at runtime.
reimar
parents: 29263
diff changeset
456 GLTYPE_X11,
31020
529614f44431 First steps to support -vo gl with SDL-based Window handling.
reimar
parents: 30985
diff changeset
457 GLTYPE_SDL,
34338
4a507d3a039a Add highly experimental support for OpenGL ES.
reimar
parents: 34337
diff changeset
458 GLTYPE_EGL_X11,
35087
078a00af881c Use OSX common layer in -vo gl.
reimar
parents: 35005
diff changeset
459 GLTYPE_OSX,
34350
27dead7f2593 Add a suboption to allow forcing use of e.g. OpenGL ES to -vo gl.
reimar
parents: 34338
diff changeset
460 GLTYPE_COUNT
29938
eb6c70e2cbea Very preliminary code to allow selecting the OpenGL backend at runtime.
reimar
parents: 29263
diff changeset
461 };
eb6c70e2cbea Very preliminary code to allow selecting the OpenGL backend at runtime.
reimar
parents: 29263
diff changeset
462
eb6c70e2cbea Very preliminary code to allow selecting the OpenGL backend at runtime.
reimar
parents: 29263
diff changeset
463 typedef struct MPGLContext {
eb6c70e2cbea Very preliminary code to allow selecting the OpenGL backend at runtime.
reimar
parents: 29263
diff changeset
464 enum MPGLType type;
eb6c70e2cbea Very preliminary code to allow selecting the OpenGL backend at runtime.
reimar
parents: 29263
diff changeset
465 union {
eb6c70e2cbea Very preliminary code to allow selecting the OpenGL backend at runtime.
reimar
parents: 29263
diff changeset
466 int w32;
30023
b7a703cf9178 Rename GL_* defines to CONFIG_GL_*
reimar
parents: 30021
diff changeset
467 #ifdef CONFIG_GL_X11
29938
eb6c70e2cbea Very preliminary code to allow selecting the OpenGL backend at runtime.
reimar
parents: 29263
diff changeset
468 XVisualInfo *x11;
eb6c70e2cbea Very preliminary code to allow selecting the OpenGL backend at runtime.
reimar
parents: 29263
diff changeset
469 #endif
eb6c70e2cbea Very preliminary code to allow selecting the OpenGL backend at runtime.
reimar
parents: 29263
diff changeset
470 } vinfo;
eb6c70e2cbea Very preliminary code to allow selecting the OpenGL backend at runtime.
reimar
parents: 29263
diff changeset
471 union {
30023
b7a703cf9178 Rename GL_* defines to CONFIG_GL_*
reimar
parents: 30021
diff changeset
472 #ifdef CONFIG_GL_WIN32
29938
eb6c70e2cbea Very preliminary code to allow selecting the OpenGL backend at runtime.
reimar
parents: 29263
diff changeset
473 HGLRC w32;
eb6c70e2cbea Very preliminary code to allow selecting the OpenGL backend at runtime.
reimar
parents: 29263
diff changeset
474 #endif
30023
b7a703cf9178 Rename GL_* defines to CONFIG_GL_*
reimar
parents: 30021
diff changeset
475 #ifdef CONFIG_GL_X11
29938
eb6c70e2cbea Very preliminary code to allow selecting the OpenGL backend at runtime.
reimar
parents: 29263
diff changeset
476 GLXContext x11;
13653
799f81d3cb19 added gl_common for code used by both vo_gl.c and vo_gl2.c.
reimar
parents:
diff changeset
477 #endif
34338
4a507d3a039a Add highly experimental support for OpenGL ES.
reimar
parents: 34337
diff changeset
478 #ifdef CONFIG_GL_EGL_X11
4a507d3a039a Add highly experimental support for OpenGL ES.
reimar
parents: 34337
diff changeset
479 EGLContext egl;
4a507d3a039a Add highly experimental support for OpenGL ES.
reimar
parents: 34337
diff changeset
480 #endif
29938
eb6c70e2cbea Very preliminary code to allow selecting the OpenGL backend at runtime.
reimar
parents: 29263
diff changeset
481 } context;
eb6c70e2cbea Very preliminary code to allow selecting the OpenGL backend at runtime.
reimar
parents: 29263
diff changeset
482 int (*setGlWindow)(struct MPGLContext *);
eb6c70e2cbea Very preliminary code to allow selecting the OpenGL backend at runtime.
reimar
parents: 29263
diff changeset
483 void (*releaseGlContext)(struct MPGLContext *);
eb6c70e2cbea Very preliminary code to allow selecting the OpenGL backend at runtime.
reimar
parents: 29263
diff changeset
484 void (*swapGlBuffers)(struct MPGLContext *);
eb6c70e2cbea Very preliminary code to allow selecting the OpenGL backend at runtime.
reimar
parents: 29263
diff changeset
485 void (*update_xinerama_info)(void);
eb6c70e2cbea Very preliminary code to allow selecting the OpenGL backend at runtime.
reimar
parents: 29263
diff changeset
486 void (*border)(void);
eb6c70e2cbea Very preliminary code to allow selecting the OpenGL backend at runtime.
reimar
parents: 29263
diff changeset
487 int (*check_events)(void);
eb6c70e2cbea Very preliminary code to allow selecting the OpenGL backend at runtime.
reimar
parents: 29263
diff changeset
488 void (*fullscreen)(void);
eb6c70e2cbea Very preliminary code to allow selecting the OpenGL backend at runtime.
reimar
parents: 29263
diff changeset
489 void (*ontop)(void);
eb6c70e2cbea Very preliminary code to allow selecting the OpenGL backend at runtime.
reimar
parents: 29263
diff changeset
490 } MPGLContext;
eb6c70e2cbea Very preliminary code to allow selecting the OpenGL backend at runtime.
reimar
parents: 29263
diff changeset
491
eb6c70e2cbea Very preliminary code to allow selecting the OpenGL backend at runtime.
reimar
parents: 29263
diff changeset
492 int init_mpglcontext(MPGLContext *ctx, enum MPGLType type);
eb6c70e2cbea Very preliminary code to allow selecting the OpenGL backend at runtime.
reimar
parents: 29263
diff changeset
493 void uninit_mpglcontext(MPGLContext *ctx);
13843
3f28d2a56758 fullscreen fixes and GUI support for vo_gl
reimar
parents: 13653
diff changeset
494
34841
4e749c1bbf49 Make a glGetError function pointer available.
reimar
parents: 34375
diff changeset
495 extern GLenum (GLAPIENTRY *mpglGetError)(void);
30945
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
496 extern void (GLAPIENTRY *mpglBegin)(GLenum);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
497 extern void (GLAPIENTRY *mpglEnd)(void);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
498 extern void (GLAPIENTRY *mpglViewport)(GLint, GLint, GLsizei, GLsizei);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
499 extern void (GLAPIENTRY *mpglMatrixMode)(GLenum);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
500 extern void (GLAPIENTRY *mpglLoadIdentity)(void);
34337
f8c523d09e5e Use glLoadMatrixf. This makes it easier to support OpenGL ES.
reimar
parents: 34174
diff changeset
501 extern void (GLAPIENTRY *mpglLoadMatrixf)(float *);
30945
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
502 extern void (GLAPIENTRY *mpglPushMatrix)(void);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
503 extern void (GLAPIENTRY *mpglPopMatrix)(void);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
504 extern void (GLAPIENTRY *mpglClear)(GLbitfield);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
505 extern GLuint (GLAPIENTRY *mpglGenLists)(GLsizei);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
506 extern void (GLAPIENTRY *mpglDeleteLists)(GLuint, GLsizei);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
507 extern void (GLAPIENTRY *mpglNewList)(GLuint, GLenum);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
508 extern void (GLAPIENTRY *mpglEndList)(void);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
509 extern void (GLAPIENTRY *mpglCallList)(GLuint);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
510 extern void (GLAPIENTRY *mpglCallLists)(GLsizei, GLenum, const GLvoid *);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
511 extern void (GLAPIENTRY *mpglGenTextures)(GLsizei, GLuint *);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
512 extern void (GLAPIENTRY *mpglDeleteTextures)(GLsizei, const GLuint *);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
513 extern void (GLAPIENTRY *mpglTexEnvf)(GLenum, GLenum, GLfloat);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
514 extern void (GLAPIENTRY *mpglTexEnvi)(GLenum, GLenum, GLint);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
515 extern void (GLAPIENTRY *mpglColor4ub)(GLubyte, GLubyte, GLubyte, GLubyte);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
516 extern void (GLAPIENTRY *mpglColor4f)(GLfloat, GLfloat, GLfloat, GLfloat);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
517 extern void (GLAPIENTRY *mpglClearColor)(GLclampf, GLclampf, GLclampf, GLclampf);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
518 extern void (GLAPIENTRY *mpglClearDepth)(GLclampd);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
519 extern void (GLAPIENTRY *mpglDepthFunc)(GLenum);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
520 extern void (GLAPIENTRY *mpglEnable)(GLenum);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
521 extern void (GLAPIENTRY *mpglDisable)(GLenum);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
522 extern const GLubyte *(GLAPIENTRY *mpglGetString)(GLenum);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
523 extern void (GLAPIENTRY *mpglDrawBuffer)(GLenum);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
524 extern void (GLAPIENTRY *mpglDepthMask)(GLboolean);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
525 extern void (GLAPIENTRY *mpglBlendFunc)(GLenum, GLenum);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
526 extern void (GLAPIENTRY *mpglFlush)(void);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
527 extern void (GLAPIENTRY *mpglFinish)(void);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
528 extern void (GLAPIENTRY *mpglPixelStorei)(GLenum, GLint);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
529 extern void (GLAPIENTRY *mpglTexImage1D)(GLenum, GLint, GLint, GLsizei, GLint, GLenum, GLenum, const GLvoid *);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
530 extern void (GLAPIENTRY *mpglTexImage2D)(GLenum, GLint, GLint, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
531 extern void (GLAPIENTRY *mpglTexSubImage2D)(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
532 extern void (GLAPIENTRY *mpglTexParameteri)(GLenum, GLenum, GLint);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
533 extern void (GLAPIENTRY *mpglTexParameterf)(GLenum, GLenum, GLfloat);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
534 extern void (GLAPIENTRY *mpglTexParameterfv)(GLenum, GLenum, const GLfloat *);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
535 extern void (GLAPIENTRY *mpglTexCoord2f)(GLfloat, GLfloat);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
536 extern void (GLAPIENTRY *mpglVertex2f)(GLfloat, GLfloat);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
537 extern void (GLAPIENTRY *mpglVertex3f)(GLfloat, GLfloat, GLfloat);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
538 extern void (GLAPIENTRY *mpglNormal3f)(GLfloat, GLfloat, GLfloat);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
539 extern void (GLAPIENTRY *mpglLightfv)(GLenum, GLenum, const GLfloat *);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
540 extern void (GLAPIENTRY *mpglColorMaterial)(GLenum, GLenum);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
541 extern void (GLAPIENTRY *mpglShadeModel)(GLenum);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
542 extern void (GLAPIENTRY *mpglGetIntegerv)(GLenum, GLint *);
31567
0ffe9f97fc9f Add initial stereo support to -vo gl.
reimar
parents: 31309
diff changeset
543 extern void (GLAPIENTRY *mpglColorMask)(GLboolean, GLboolean, GLboolean, GLboolean);
29939
319b62d55feb Pass all OpenGL functions through a function pointer indirection.
reimar
parents: 29938
diff changeset
544
30945
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
545 extern void (GLAPIENTRY *mpglGenBuffers)(GLsizei, GLuint *);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
546 extern void (GLAPIENTRY *mpglDeleteBuffers)(GLsizei, const GLuint *);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
547 extern void (GLAPIENTRY *mpglBindBuffer)(GLenum, GLuint);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
548 extern GLvoid* (GLAPIENTRY *mpglMapBuffer)(GLenum, GLenum);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
549 extern GLboolean (GLAPIENTRY *mpglUnmapBuffer)(GLenum);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
550 extern void (GLAPIENTRY *mpglBufferData)(GLenum, intptr_t, const GLvoid *, GLenum);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
551 extern void (GLAPIENTRY *mpglCombinerParameterfv)(GLenum, const GLfloat *);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
552 extern void (GLAPIENTRY *mpglCombinerParameteri)(GLenum, GLint);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
553 extern void (GLAPIENTRY *mpglCombinerInput)(GLenum, GLenum, GLenum, GLenum, GLenum,
16099
629c54dc7e0d support for rectangular and streaming textures.
reimar
parents: 14142
diff changeset
554 GLenum);
30945
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
555 extern void (GLAPIENTRY *mpglCombinerOutput)(GLenum, GLenum, GLenum, GLenum, GLenum,
16099
629c54dc7e0d support for rectangular and streaming textures.
reimar
parents: 14142
diff changeset
556 GLenum, GLenum, GLboolean, GLboolean,
629c54dc7e0d support for rectangular and streaming textures.
reimar
parents: 14142
diff changeset
557 GLboolean);
30945
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
558 extern void (GLAPIENTRY *mpglBeginFragmentShader)(void);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
559 extern void (GLAPIENTRY *mpglEndFragmentShader)(void);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
560 extern void (GLAPIENTRY *mpglSampleMap)(GLuint, GLuint, GLenum);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
561 extern void (GLAPIENTRY *mpglColorFragmentOp2)(GLenum, GLuint, GLuint, GLuint, GLuint,
16625
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
562 GLuint, GLuint, GLuint, GLuint, GLuint);
30945
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
563 extern void (GLAPIENTRY *mpglColorFragmentOp3)(GLenum, GLuint, GLuint, GLuint, GLuint,
16625
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
564 GLuint, GLuint, GLuint, GLuint, GLuint,
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
565 GLuint, GLuint, GLuint);
30945
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
566 extern void (GLAPIENTRY *mpglSetFragmentShaderConstant)(GLuint, const GLfloat *);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
567 extern void (GLAPIENTRY *mpglActiveTexture)(GLenum);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
568 extern void (GLAPIENTRY *mpglBindTexture)(GLenum, GLuint);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
569 extern void (GLAPIENTRY *mpglMultiTexCoord2f)(GLenum, GLfloat, GLfloat);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
570 extern void (GLAPIENTRY *mpglGenPrograms)(GLsizei, GLuint *);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
571 extern void (GLAPIENTRY *mpglDeletePrograms)(GLsizei, const GLuint *);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
572 extern void (GLAPIENTRY *mpglBindProgram)(GLenum, GLuint);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
573 extern void (GLAPIENTRY *mpglProgramString)(GLenum, GLenum, GLsizei, const GLvoid *);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
574 extern void (GLAPIENTRY *mpglProgramEnvParameter4f)(GLenum, GLuint, GLfloat, GLfloat,
16099
629c54dc7e0d support for rectangular and streaming textures.
reimar
parents: 14142
diff changeset
575 GLfloat, GLfloat);
30945
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
576 extern int (GLAPIENTRY *mpglSwapInterval)(int);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
577 extern void (GLAPIENTRY *mpglTexImage3D)(GLenum, GLint, GLenum, GLsizei, GLsizei,
18578
eef0850d4a4b add (currently unused) lookup for glTexImage3D
reimar
parents: 18175
diff changeset
578 GLsizei, GLint, GLenum, GLenum, const GLvoid *);
30945
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
579 extern void* (GLAPIENTRY *mpglAllocateMemoryMESA)(void *, int, size_t, float, float, float);
55917a674d7d Add mpgl prefix to all OpenGL-related function pointers.
reimar
parents: 30137
diff changeset
580 extern void (GLAPIENTRY *mpglFreeMemoryMESA)(void *, int, void *);
16099
629c54dc7e0d support for rectangular and streaming textures.
reimar
parents: 14142
diff changeset
581
26029
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25758
diff changeset
582 #endif /* MPLAYER_GL_COMMON_H */