Mercurial > mplayer.hg
annotate libvo/gl_common.h @ 35553:29f2de5e63d6
Don't unconditionally reset playlist to first item after playback.
Only do so if the current item isn't the first one in the list.
This will continue displaying the file's media information.
author | ib |
---|---|
date | Mon, 10 Dec 2012 02:08:43 +0000 |
parents | a87c434ecaa3 |
children | 2ce01f3d3b37 |
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 | 24 #ifndef MPLAYER_GL_COMMON_H |
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 | 30 #include "config.h" |
13843 | 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 | 33 |
30023 | 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 | 38 #ifdef CONFIG_GL_X11 |
13843 | 39 #include <X11/Xlib.h> |
40 #include <GL/glx.h> | |
41 #include "x11_common.h" | |
42 #endif | |
34338 | 43 #ifdef CONFIG_GL_EGL_X11 |
44 #include <EGL/egl.h> | |
45 #include "x11_common.h" | |
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 | 48 #include "osx_common.h" |
35089
a87c434ecaa3
Allow compiling -vo gl with OSX backend even if X11 and SDL are not available.
reimar
parents:
35087
diff
changeset
|
49 #include <OpenGL/OpenGL.h> |
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 | 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 | 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 | 82 #ifndef GL_GENERATE_MIPMAP |
83 #define GL_GENERATE_MIPMAP 0x8191 | |
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 | 88 #ifndef GL_REGISTER_COMBINERS_NV |
89 #define GL_REGISTER_COMBINERS_NV 0x8522 | |
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 | 139 #ifndef GL_FRAGMENT_SHADER_ATI |
140 #define GL_FRAGMENT_SHADER_ATI 0x8920 | |
141 #endif | |
142 #ifndef GL_NUM_FRAGMENT_REGISTERS_ATI | |
143 #define GL_NUM_FRAGMENT_REGISTERS_ATI 0x896E | |
144 #endif | |
145 #ifndef GL_REG_0_ATI | |
146 #define GL_REG_0_ATI 0x8921 | |
147 #endif | |
148 #ifndef GL_REG_1_ATI | |
149 #define GL_REG_1_ATI 0x8922 | |
150 #endif | |
151 #ifndef GL_REG_2_ATI | |
152 #define GL_REG_2_ATI 0x8923 | |
153 #endif | |
154 #ifndef GL_CON_0_ATI | |
155 #define GL_CON_0_ATI 0x8941 | |
156 #endif | |
157 #ifndef GL_CON_1_ATI | |
158 #define GL_CON_1_ATI 0x8942 | |
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 | 166 #ifndef GL_ADD_ATI |
167 #define GL_ADD_ATI 0x8963 | |
168 #endif | |
169 #ifndef GL_MUL_ATI | |
170 #define GL_MUL_ATI 0x8964 | |
171 #endif | |
172 #ifndef GL_MAD_ATI | |
173 #define GL_MAD_ATI 0x8968 | |
174 #endif | |
175 #ifndef GL_SWIZZLE_STR_ATI | |
176 #define GL_SWIZZLE_STR_ATI 0x8976 | |
177 #endif | |
178 #ifndef GL_4X_BIT_ATI | |
179 #define GL_4X_BIT_ATI 2 | |
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 | 184 #ifndef GL_BIAS_BIT_ATI |
185 #define GL_BIAS_BIT_ATI 8 | |
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 | 202 #ifndef GL_TEXTURE_RECTANGLE |
203 #define GL_TEXTURE_RECTANGLE 0x84F5 | |
204 #endif | |
205 #ifndef GL_PIXEL_UNPACK_BUFFER | |
206 #define GL_PIXEL_UNPACK_BUFFER 0x88EC | |
207 #endif | |
208 #ifndef GL_STREAM_DRAW | |
209 #define GL_STREAM_DRAW 0x88E0 | |
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 | 214 #ifndef GL_WRITE_ONLY |
215 #define GL_WRITE_ONLY 0x88B9 | |
216 #endif | |
16117 | 217 #ifndef GL_BGR |
218 #define GL_BGR 0x80E0 | |
219 #endif | |
220 #ifndef GL_BGRA | |
221 #define GL_BGRA 0x80E1 | |
222 #endif | |
223 #ifndef GL_UNSIGNED_BYTE_3_3_2 | |
224 #define GL_UNSIGNED_BYTE_3_3_2 0x8032 | |
225 #endif | |
226 #ifndef GL_UNSIGNED_BYTE_2_3_3_REV | |
227 #define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362 | |
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 | 235 #ifndef GL_UNSIGNED_SHORT_5_6_5 |
236 #define GL_UNSIGNED_SHORT_5_6_5 0x8363 | |
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 | 244 #ifndef GL_UNSIGNED_SHORT_5_6_5_REV |
245 #define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364 | |
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 | 253 #ifndef GL_UNSIGNED_SHORT_5_5_5_1 |
254 #define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 | |
255 #endif | |
256 #ifndef GL_UNSIGNED_SHORT_1_5_5_5_REV | |
257 #define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366 | |
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 | 265 #ifndef GL_YCBCR_422_APPLE |
266 #define GL_YCBCR_422_APPLE 0x85B9 | |
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 | 271 #ifndef GL_RGB32F |
272 #define GL_RGB32F 0x8815 | |
273 #endif | |
274 #ifndef GL_FLOAT_RGB32_NV | |
275 #define GL_FLOAT_RGB32_NV 0x8889 | |
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 | 298 #ifndef GL_TEXTURE_STORAGE_HINT_APPLE |
299 #define GL_TEXTURE_STORAGE_HINT_APPLE 0x85BC | |
300 #endif | |
301 #ifndef GL_STORAGE_CACHED_APPLE | |
302 #define GL_STORAGE_CACHED_APPLE 0x85BE | |
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 | 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 | 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 | 329 int w, int h, unsigned char val); |
16592 | 330 int glCreatePPMTex(GLenum target, GLenum fmt, GLint filter, |
331 FILE *f, int *width, int *height, int *maxval); | |
16117 | 332 void glUploadTex(GLenum target, GLenum format, GLenum type, |
21201 | 333 const void *dataptr, int stride, |
16117 | 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 | 353 //! use ATI specific register combiners ("fragment program") |
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 | 361 //! use higher quality bicubic scaling for textures |
362 #define YUV_SCALER_BICUB 1 | |
22491 | 363 //! use cubic scaling in X and normal linear scaling in Y direction |
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 | 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 | 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 | 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 | 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 | 386 //! returns whether the yuv conversion supports large brightness range etc. |
387 static inline int glYUVLargeRange(int conv) | |
388 { | |
389 switch (conv) | |
390 { | |
391 case YUV_CONVERSION_NONE: | |
392 case YUV_CONVERSION_COMBINERS: | |
393 case YUV_CONVERSION_COMBINERS_ATI: | |
394 case YUV_CONVERSION_FRAGMENT_LOOKUP3D: | |
395 case YUV_CONVERSION_TEXT_FRAGMENT: | |
396 return 0; | |
397 } | |
398 return 1; | |
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 | 418 int texw; |
419 int texh; | |
30097 | 420 int chrom_texw; |
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 | 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 | 425 } gl_conversion_params_t; |
426 | |
30964
a5c6b37b3af6
Factor out the YUV->RGB conversion auto-selection and also
reimar
parents:
30951
diff
changeset
|
427 int glAutodetectYUVConversion(void); |
26835 | 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 | 432 #define GL_3D_SWAP 32 |
31567 | 433 #define GL_3D_RED_CYAN 1 |
434 #define GL_3D_GREEN_MAGENTA 2 | |
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 | 437 |
34983
0034a2bf7b42
Support interleaving the two frame halves from a 3D video
reimar
parents:
34973
diff
changeset
|
438 void glSetupAlphaStippleTex(unsigned pattern); |
31567 | 439 void glEnable3DLeft(int type); |
440 void glEnable3DRight(int type); | |
441 void glDisable3D(int type); | |
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 | 445 //! could not set new window, will continue drawing into the old one. |
446 #define SET_WINDOW_FAILED -1 | |
447 //! new window is set, could even transfer the OpenGL context. | |
448 #define SET_WINDOW_OK 0 | |
449 //! new window is set, but the OpenGL context needs to be reinitialized. | |
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 | 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 | 458 GLTYPE_EGL_X11, |
35087 | 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 | 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 | 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 | 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 | 478 #ifdef CONFIG_GL_EGL_X11 |
479 EGLContext egl; | |
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 | 494 |
34841 | 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 | 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 | 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 | 556 GLenum, GLenum, GLboolean, GLboolean, |
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 | 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 | 564 GLuint, GLuint, GLuint, GLuint, GLuint, |
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 | 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 | 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 | 581 |
26029 | 582 #endif /* MPLAYER_GL_COMMON_H */ |