annotate libvo/gl_common.h @ 25893:638493dc056e

Check that index is still within bounds of samples array. Previous check is not enough and the code is not performance critical so do it the easy way.
author reimar
date Tue, 29 Jan 2008 22:14:00 +0000
parents 2ee33590afe6
children 4129c8cfa742
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
23689
3f0d00abc073 Do not use leading underscores in multiple inclusion guards, they are reserved.
diego
parents: 22491
diff changeset
1 #ifndef GL_COMMON_H
3f0d00abc073 Do not use leading underscores in multiple inclusion guards, they are reserved.
diego
parents: 22491
diff changeset
2 #define GL_COMMON_H
13653
799f81d3cb19 added gl_common for code used by both vo_gl.c and vo_gl2.c.
reimar
parents:
diff changeset
3
13843
3f28d2a56758 fullscreen fixes and GUI support for vo_gl
reimar
parents: 13653
diff changeset
4 #include "mp_msg.h"
3f28d2a56758 fullscreen fixes and GUI support for vo_gl
reimar
parents: 13653
diff changeset
5 #include "config.h"
3f28d2a56758 fullscreen fixes and GUI support for vo_gl
reimar
parents: 13653
diff changeset
6
13653
799f81d3cb19 added gl_common for code used by both vo_gl.c and vo_gl2.c.
reimar
parents:
diff changeset
7 #include <GL/gl.h>
13843
3f28d2a56758 fullscreen fixes and GUI support for vo_gl
reimar
parents: 13653
diff changeset
8 #include "video_out.h"
3f28d2a56758 fullscreen fixes and GUI support for vo_gl
reimar
parents: 13653
diff changeset
9
14142
f0c1ee83b216 Improving gl2 under windows, moving some functionality to gl_common
reimar
parents: 14078
diff changeset
10 #ifdef GL_WIN32
f0c1ee83b216 Improving gl2 under windows, moving some functionality to gl_common
reimar
parents: 14078
diff changeset
11 #include <windows.h>
f0c1ee83b216 Improving gl2 under windows, moving some functionality to gl_common
reimar
parents: 14078
diff changeset
12 #include <GL/glext.h>
f0c1ee83b216 Improving gl2 under windows, moving some functionality to gl_common
reimar
parents: 14078
diff changeset
13 #include "w32_common.h"
f0c1ee83b216 Improving gl2 under windows, moving some functionality to gl_common
reimar
parents: 14078
diff changeset
14 #else
13843
3f28d2a56758 fullscreen fixes and GUI support for vo_gl
reimar
parents: 13653
diff changeset
15 #include <X11/Xlib.h>
3f28d2a56758 fullscreen fixes and GUI support for vo_gl
reimar
parents: 13653
diff changeset
16 #include <GL/glx.h>
3f28d2a56758 fullscreen fixes and GUI support for vo_gl
reimar
parents: 13653
diff changeset
17 #include "x11_common.h"
3f28d2a56758 fullscreen fixes and GUI support for vo_gl
reimar
parents: 13653
diff changeset
18 #endif
13653
799f81d3cb19 added gl_common for code used by both vo_gl.c and vo_gl2.c.
reimar
parents:
diff changeset
19
17668
b822575a1140 workaround for gl.h variants that do not define APIENTRY
reimar
parents: 17566
diff changeset
20 // workaround for some gl.h headers
b822575a1140 workaround for gl.h variants that do not define APIENTRY
reimar
parents: 17566
diff changeset
21 #ifndef APIENTRY
b822575a1140 workaround for gl.h variants that do not define APIENTRY
reimar
parents: 17566
diff changeset
22 #ifdef GLAPIENTRY
b822575a1140 workaround for gl.h variants that do not define APIENTRY
reimar
parents: 17566
diff changeset
23 #define APIENTRY GLAPIENTRY
17688
e8dca2bbd796 Better fallback for APIENTRY when compiling for Windows
reimar
parents: 17668
diff changeset
24 #elif defined(GL_WIN32)
e8dca2bbd796 Better fallback for APIENTRY when compiling for Windows
reimar
parents: 17668
diff changeset
25 #define APIENTRY __stdcall
17668
b822575a1140 workaround for gl.h variants that do not define APIENTRY
reimar
parents: 17566
diff changeset
26 #else
b822575a1140 workaround for gl.h variants that do not define APIENTRY
reimar
parents: 17566
diff changeset
27 #define APIENTRY
b822575a1140 workaround for gl.h variants that do not define APIENTRY
reimar
parents: 17566
diff changeset
28 #endif
b822575a1140 workaround for gl.h variants that do not define APIENTRY
reimar
parents: 17566
diff changeset
29 #endif
b822575a1140 workaround for gl.h variants that do not define APIENTRY
reimar
parents: 17566
diff changeset
30
16595
b3a9fb41f475 fix/improve code doxumentation. Also group gl_common functions in several
reimar
parents: 16592
diff changeset
31 /**
b3a9fb41f475 fix/improve code doxumentation. Also group gl_common functions in several
reimar
parents: 16592
diff changeset
32 * \defgroup glextdefines OpenGL extension defines
b3a9fb41f475 fix/improve code doxumentation. Also group gl_common functions in several
reimar
parents: 16592
diff changeset
33 *
b3a9fb41f475 fix/improve code doxumentation. Also group gl_common functions in several
reimar
parents: 16592
diff changeset
34 * conditionally define all extension defines used.
b3a9fb41f475 fix/improve code doxumentation. Also group gl_common functions in several
reimar
parents: 16592
diff changeset
35 * 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
36 * (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
37 * \{
b3a9fb41f475 fix/improve code doxumentation. Also group gl_common functions in several
reimar
parents: 16592
diff changeset
38 */
16608
efec5fb96a13 Add missing GL_REGISTER_COMBINERS_NV define
reimar
parents: 16595
diff changeset
39 #ifndef GL_REGISTER_COMBINERS_NV
efec5fb96a13 Add missing GL_REGISTER_COMBINERS_NV define
reimar
parents: 16595
diff changeset
40 #define GL_REGISTER_COMBINERS_NV 0x8522
efec5fb96a13 Add missing GL_REGISTER_COMBINERS_NV define
reimar
parents: 16595
diff changeset
41 #endif
16488
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
42 #ifndef GL_MAX_GENERAL_COMBINERS_NV
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
43 #define GL_MAX_GENERAL_COMBINERS_NV 0x854D
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
44 #endif
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
45 #ifndef GL_NUM_GENERAL_COMBINERS_NV
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
46 #define GL_NUM_GENERAL_COMBINERS_NV 0x854E
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
47 #endif
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
48 #ifndef GL_CONSTANT_COLOR0_NV
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
49 #define GL_CONSTANT_COLOR0_NV 0x852A
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
50 #endif
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
51 #ifndef GL_CONSTANT_COLOR1_NV
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
52 #define GL_CONSTANT_COLOR1_NV 0x852B
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
53 #endif
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
54 #ifndef GL_COMBINER0_NV
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
55 #define GL_COMBINER0_NV 0x8550
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
56 #endif
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
57 #ifndef GL_COMBINER1_NV
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
58 #define GL_COMBINER1_NV 0x8551
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
59 #endif
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
60 #ifndef GL_VARIABLE_A_NV
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
61 #define GL_VARIABLE_A_NV 0x8523
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
62 #endif
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
63 #ifndef GL_VARIABLE_B_NV
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
64 #define GL_VARIABLE_B_NV 0x8524
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
65 #endif
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
66 #ifndef GL_VARIABLE_C_NV
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
67 #define GL_VARIABLE_C_NV 0x8525
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
68 #endif
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
69 #ifndef GL_VARIABLE_D_NV
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
70 #define GL_VARIABLE_D_NV 0x8526
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
71 #endif
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
72 #ifndef GL_UNSIGNED_INVERT_NV
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
73 #define GL_UNSIGNED_INVERT_NV 0x8537
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
74 #endif
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
75 #ifndef GL_HALF_BIAS_NORMAL_NV
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
76 #define GL_HALF_BIAS_NORMAL_NV 0x853A
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
77 #endif
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
78 #ifndef GL_SIGNED_IDENTITY_NV
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
79 #define GL_SIGNED_IDENTITY_NV 0x853C
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
80 #endif
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
81 #ifndef GL_SCALE_BY_FOUR_NV
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
82 #define GL_SCALE_BY_FOUR_NV 0x853F
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
83 #endif
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
84 #ifndef GL_DISCARD_NV
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
85 #define GL_DISCARD_NV 0x8530
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
86 #endif
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
87 #ifndef GL_SPARE0_NV
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
88 #define GL_SPARE0_NV 0x852E
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
89 #endif
16625
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
90 #ifndef GL_FRAGMENT_SHADER_ATI
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
91 #define GL_FRAGMENT_SHADER_ATI 0x8920
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
92 #endif
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
93 #ifndef GL_NUM_FRAGMENT_REGISTERS_ATI
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
94 #define GL_NUM_FRAGMENT_REGISTERS_ATI 0x896E
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
95 #endif
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
96 #ifndef GL_REG_0_ATI
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
97 #define GL_REG_0_ATI 0x8921
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
98 #endif
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
99 #ifndef GL_REG_1_ATI
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
100 #define GL_REG_1_ATI 0x8922
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
101 #endif
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
102 #ifndef GL_REG_2_ATI
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
103 #define GL_REG_2_ATI 0x8923
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
104 #endif
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
105 #ifndef GL_CON_0_ATI
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
106 #define GL_CON_0_ATI 0x8941
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
107 #endif
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
108 #ifndef GL_CON_1_ATI
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
109 #define GL_CON_1_ATI 0x8942
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
110 #endif
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
111 #ifndef GL_ADD_ATI
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
112 #define GL_ADD_ATI 0x8963
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
113 #endif
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
114 #ifndef GL_MUL_ATI
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
115 #define GL_MUL_ATI 0x8964
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
116 #endif
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
117 #ifndef GL_MAD_ATI
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
118 #define GL_MAD_ATI 0x8968
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
119 #endif
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
120 #ifndef GL_SWIZZLE_STR_ATI
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
121 #define GL_SWIZZLE_STR_ATI 0x8976
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
122 #endif
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
123 #ifndef GL_4X_BIT_ATI
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
124 #define GL_4X_BIT_ATI 2
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
125 #endif
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
126 #ifndef GL_BIAS_BIT_ATI
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
127 #define GL_BIAS_BIT_ATI 8
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
128 #endif
16488
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
129 #ifndef GL_MAX_TEXTURE_UNITS
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
130 #define GL_MAX_TEXTURE_UNITS 0x84E2
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
131 #endif
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
132 #ifndef GL_TEXTURE0
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
133 #define GL_TEXTURE0 0x84C0
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
134 #endif
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
135 #ifndef GL_TEXTURE1
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
136 #define GL_TEXTURE1 0x84C1
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
137 #endif
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
138 #ifndef GL_TEXTURE2
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
139 #define GL_TEXTURE2 0x84C2
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
140 #endif
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
141 #ifndef GL_TEXTURE3
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
142 #define GL_TEXTURE3 0x84C3
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
143 #endif
16099
629c54dc7e0d support for rectangular and streaming textures.
reimar
parents: 14142
diff changeset
144 #ifndef GL_TEXTURE_RECTANGLE
629c54dc7e0d support for rectangular and streaming textures.
reimar
parents: 14142
diff changeset
145 #define GL_TEXTURE_RECTANGLE 0x84F5
629c54dc7e0d support for rectangular and streaming textures.
reimar
parents: 14142
diff changeset
146 #endif
629c54dc7e0d support for rectangular and streaming textures.
reimar
parents: 14142
diff changeset
147 #ifndef GL_PIXEL_UNPACK_BUFFER
629c54dc7e0d support for rectangular and streaming textures.
reimar
parents: 14142
diff changeset
148 #define GL_PIXEL_UNPACK_BUFFER 0x88EC
629c54dc7e0d support for rectangular and streaming textures.
reimar
parents: 14142
diff changeset
149 #endif
629c54dc7e0d support for rectangular and streaming textures.
reimar
parents: 14142
diff changeset
150 #ifndef GL_STREAM_DRAW
629c54dc7e0d support for rectangular and streaming textures.
reimar
parents: 14142
diff changeset
151 #define GL_STREAM_DRAW 0x88E0
629c54dc7e0d support for rectangular and streaming textures.
reimar
parents: 14142
diff changeset
152 #endif
16237
b951a75d4f83 Our buffer usage actually fits better to GL_DYNAMIC_DRAW than GL_STREAM_DRAW.
reimar
parents: 16233
diff changeset
153 #ifndef GL_DYNAMIC_DRAW
b951a75d4f83 Our buffer usage actually fits better to GL_DYNAMIC_DRAW than GL_STREAM_DRAW.
reimar
parents: 16233
diff changeset
154 #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
155 #endif
16099
629c54dc7e0d support for rectangular and streaming textures.
reimar
parents: 14142
diff changeset
156 #ifndef GL_WRITE_ONLY
629c54dc7e0d support for rectangular and streaming textures.
reimar
parents: 14142
diff changeset
157 #define GL_WRITE_ONLY 0x88B9
629c54dc7e0d support for rectangular and streaming textures.
reimar
parents: 14142
diff changeset
158 #endif
16117
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
159 #ifndef GL_BGR
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
160 #define GL_BGR 0x80E0
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
161 #endif
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
162 #ifndef GL_BGRA
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
163 #define GL_BGRA 0x80E1
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
164 #endif
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
165 #ifndef GL_UNSIGNED_BYTE_3_3_2
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
166 #define GL_UNSIGNED_BYTE_3_3_2 0x8032
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
167 #endif
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
168 #ifndef GL_UNSIGNED_BYTE_2_3_3_REV
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
169 #define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
170 #endif
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
171 #ifndef GL_UNSIGNED_SHORT_5_6_5
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
172 #define GL_UNSIGNED_SHORT_5_6_5 0x8363
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
173 #endif
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
174 #ifndef GL_UNSIGNED_SHORT_5_6_5_REV
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
175 #define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
176 #endif
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
177 #ifndef GL_UNSIGNED_SHORT_5_5_5_1
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
178 #define GL_UNSIGNED_SHORT_5_5_5_1 0x8034
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
179 #endif
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
180 #ifndef GL_UNSIGNED_SHORT_1_5_5_5_REV
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
181 #define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
182 #endif
18961
9f1bbc70c773 Support for 16 bit ppms
reimar
parents: 18655
diff changeset
183 #ifndef GL_RGB32F
9f1bbc70c773 Support for 16 bit ppms
reimar
parents: 18655
diff changeset
184 #define GL_RGB32F 0x8815
9f1bbc70c773 Support for 16 bit ppms
reimar
parents: 18655
diff changeset
185 #endif
9f1bbc70c773 Support for 16 bit ppms
reimar
parents: 18655
diff changeset
186 #ifndef GL_FLOAT_RGB32_NV
9f1bbc70c773 Support for 16 bit ppms
reimar
parents: 18655
diff changeset
187 #define GL_FLOAT_RGB32_NV 0x8889
9f1bbc70c773 Support for 16 bit ppms
reimar
parents: 18655
diff changeset
188 #endif
16488
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
189 #ifndef GL_FRAGMENT_PROGRAM
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
190 #define GL_FRAGMENT_PROGRAM 0x8804
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
191 #endif
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
192 #ifndef GL_PROGRAM_FORMAT_ASCII
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
193 #define GL_PROGRAM_FORMAT_ASCII 0x8875
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
194 #endif
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
195 #ifndef GL_PROGRAM_ERROR_POSITION
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
196 #define GL_PROGRAM_ERROR_POSITION 0x864B
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
197 #endif
18653
5af43a16abc3 loadGPUProgram function to load fragment program with error checking and statistics
reimar
parents: 18622
diff changeset
198 #ifndef GL_PROGRAM_ERROR_STRING
5af43a16abc3 loadGPUProgram function to load fragment program with error checking and statistics
reimar
parents: 18622
diff changeset
199 #define GL_PROGRAM_ERROR_STRING 0x8874
5af43a16abc3 loadGPUProgram function to load fragment program with error checking and statistics
reimar
parents: 18622
diff changeset
200 #endif
16595
b3a9fb41f475 fix/improve code doxumentation. Also group gl_common functions in several
reimar
parents: 16592
diff changeset
201 /** \} */ // end of glextdefines group
16099
629c54dc7e0d support for rectangular and streaming textures.
reimar
parents: 14142
diff changeset
202
13653
799f81d3cb19 added gl_common for code used by both vo_gl.c and vo_gl2.c.
reimar
parents:
diff changeset
203 void glAdjustAlignment(int stride);
799f81d3cb19 added gl_common for code used by both vo_gl.c and vo_gl2.c.
reimar
parents:
diff changeset
204
14078
c4033dcb986f More similar code from gl and gl2 moved to gl_common
reimar
parents: 13921
diff changeset
205 const char *glValName(GLint value);
c4033dcb986f More similar code from gl and gl2 moved to gl_common
reimar
parents: 13921
diff changeset
206
16879
6ea220b10e8e More consistent and sane types. Also avoids some gcc 4 warnings.
reimar
parents: 16625
diff changeset
207 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
208 GLenum *gl_format, GLenum *gl_type);
16117
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
209 int glFmt2bpp(GLenum format, GLenum type);
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
210 void glCreateClearTex(GLenum target, GLenum fmt, GLint filter,
16460
ec7036dedee4 Fix border color (forgot to divide by 255.0).
reimar
parents: 16303
diff changeset
211 int w, int h, unsigned char val);
16592
1bb2b2696451 support loading a texture from a PPM file
reimar
parents: 16586
diff changeset
212 int glCreatePPMTex(GLenum target, GLenum fmt, GLint filter,
1bb2b2696451 support loading a texture from a PPM file
reimar
parents: 16586
diff changeset
213 FILE *f, int *width, int *height, int *maxval);
16117
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
214 void glUploadTex(GLenum target, GLenum format, GLenum type,
21201
2c1b7fe05973 Avoid void * arithmetic
reimar
parents: 18961
diff changeset
215 const void *dataptr, int stride,
16117
d280ec2b9e63 More helper functions/defines and bugfixes
reimar
parents: 16109
diff changeset
216 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
217 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
218 GLfloat tx, GLfloat ty, GLfloat tw, GLfloat th,
17220
a27e52b838e3 support negative stride (flipping) in vo_gl.
reimar
parents: 17116
diff changeset
219 int sx, int sy, int rect_tex, int is_yv12, int flip);
18653
5af43a16abc3 loadGPUProgram function to load fragment program with error checking and statistics
reimar
parents: 18622
diff changeset
220 int loadGPUProgram(GLenum target, char *prog);
16488
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
221
16595
b3a9fb41f475 fix/improve code doxumentation. Also group gl_common functions in several
reimar
parents: 16592
diff changeset
222 /** \addtogroup glconversion
b3a9fb41f475 fix/improve code doxumentation. Also group gl_common functions in several
reimar
parents: 16592
diff changeset
223 * \{ */
16488
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
224 //! 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
225 #define YUV_CONVERSION_NONE 0
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
226 //! use nVidia specific register combiners for YUV conversion
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
227 #define YUV_CONVERSION_COMBINERS 1
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
228 //! use a fragment program for YUV conversion
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
229 #define YUV_CONVERSION_FRAGMENT 2
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
230 //! 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
231 #define YUV_CONVERSION_FRAGMENT_POW 3
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
232 //! 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
233 #define YUV_CONVERSION_FRAGMENT_LOOKUP 4
16625
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
234 //! use ATI specific register combiners ("fragment program")
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
235 #define YUV_CONVERSION_COMBINERS_ATI 5
18655
6aa0b26d584b Add yuv to rgb conversion using a 3D lookup texture
reimar
parents: 18653
diff changeset
236 //! 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
237 #define YUV_CONVERSION_FRAGMENT_LOOKUP3D 6
18619
106a0c366002 Reworked YUV2RGB fragment program setup in preparation for upcoming patches
reimar
parents: 18578
diff changeset
238 //! use normal bilinear scaling for textures
106a0c366002 Reworked YUV2RGB fragment program setup in preparation for upcoming patches
reimar
parents: 18578
diff changeset
239 #define YUV_SCALER_BILIN 0
18622
dd9a6e8005f3 Add bicubic texture scaling
reimar
parents: 18619
diff changeset
240 //! use higher quality bicubic scaling for textures
dd9a6e8005f3 Add bicubic texture scaling
reimar
parents: 18619
diff changeset
241 #define YUV_SCALER_BICUB 1
22491
1f873be15855 forgotten lscale=2 part for gl_common.h
reimar
parents: 21201
diff changeset
242 //! 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
243 #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
244 //! 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
245 #define YUV_SCALER_BICUB_NOTEX 3
25729
9a96fd14d1c5 Add experimental unsharp-mask OpenGL scaler. Certainly not yet perfect.
reimar
parents: 25535
diff changeset
246 #define YUV_SCALER_UNSHARP 4
25758
2ee33590afe6 Add a fragment program for 5x5 unsharp masking
reimar
parents: 25729
diff changeset
247 #define YUV_SCALER_UNSHARP2 5
18619
106a0c366002 Reworked YUV2RGB fragment program setup in preparation for upcoming patches
reimar
parents: 18578
diff changeset
248 //! mask for conversion type
106a0c366002 Reworked YUV2RGB fragment program setup in preparation for upcoming patches
reimar
parents: 18578
diff changeset
249 #define YUV_CONVERSION_MASK 0xF
106a0c366002 Reworked YUV2RGB fragment program setup in preparation for upcoming patches
reimar
parents: 18578
diff changeset
250 //! mask for scaler type
106a0c366002 Reworked YUV2RGB fragment program setup in preparation for upcoming patches
reimar
parents: 18578
diff changeset
251 #define YUV_SCALER_MASK 0xF
106a0c366002 Reworked YUV2RGB fragment program setup in preparation for upcoming patches
reimar
parents: 18578
diff changeset
252 //! shift value for luminance scaler type
106a0c366002 Reworked YUV2RGB fragment program setup in preparation for upcoming patches
reimar
parents: 18578
diff changeset
253 #define YUV_LUM_SCALER_SHIFT 8
106a0c366002 Reworked YUV2RGB fragment program setup in preparation for upcoming patches
reimar
parents: 18578
diff changeset
254 //! shift value for chrominance scaler type
106a0c366002 Reworked YUV2RGB fragment program setup in preparation for upcoming patches
reimar
parents: 18578
diff changeset
255 #define YUV_CHROM_SCALER_SHIFT 12
106a0c366002 Reworked YUV2RGB fragment program setup in preparation for upcoming patches
reimar
parents: 18578
diff changeset
256 //! extract conversion out of type
106a0c366002 Reworked YUV2RGB fragment program setup in preparation for upcoming patches
reimar
parents: 18578
diff changeset
257 #define YUV_CONVERSION(t) (t & YUV_CONVERSION_MASK)
106a0c366002 Reworked YUV2RGB fragment program setup in preparation for upcoming patches
reimar
parents: 18578
diff changeset
258 //! extract luminance scaler out of type
106a0c366002 Reworked YUV2RGB fragment program setup in preparation for upcoming patches
reimar
parents: 18578
diff changeset
259 #define YUV_LUM_SCALER(t) ((t >> YUV_LUM_SCALER_SHIFT) & YUV_SCALER_MASK)
106a0c366002 Reworked YUV2RGB fragment program setup in preparation for upcoming patches
reimar
parents: 18578
diff changeset
260 //! extract chrominance scaler out of type
106a0c366002 Reworked YUV2RGB fragment program setup in preparation for upcoming patches
reimar
parents: 18578
diff changeset
261 #define YUV_CHROM_SCALER(t) ((t >> YUV_CHROM_SCALER_SHIFT) & YUV_SCALER_MASK)
16595
b3a9fb41f475 fix/improve code doxumentation. Also group gl_common functions in several
reimar
parents: 16592
diff changeset
262 /** \} */
16586
26b156d7a68d Support rectangular texture in fragment programs
reimar
parents: 16488
diff changeset
263 void glSetupYUVConversion(GLenum target, int type,
26b156d7a68d Support rectangular texture in fragment programs
reimar
parents: 16488
diff changeset
264 float brightness, float contrast,
16488
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
265 float hue, float saturation,
18619
106a0c366002 Reworked YUV2RGB fragment program setup in preparation for upcoming patches
reimar
parents: 18578
diff changeset
266 float rgamma, float ggamma, float bgamma,
106a0c366002 Reworked YUV2RGB fragment program setup in preparation for upcoming patches
reimar
parents: 18578
diff changeset
267 int texw, int texh);
18175
01ca8a5fb8a6 minor fixes: get rid of pointless inline attributes and some additional checks
reimar
parents: 17688
diff changeset
268 void glEnableYUVConversion(GLenum target, int type);
01ca8a5fb8a6 minor fixes: get rid of pointless inline attributes and some additional checks
reimar
parents: 17688
diff changeset
269 void glDisableYUVConversion(GLenum target, int type);
14078
c4033dcb986f More similar code from gl and gl2 moved to gl_common
reimar
parents: 13921
diff changeset
270
16595
b3a9fb41f475 fix/improve code doxumentation. Also group gl_common functions in several
reimar
parents: 16592
diff changeset
271 /** \addtogroup glcontext
b3a9fb41f475 fix/improve code doxumentation. Also group gl_common functions in several
reimar
parents: 16592
diff changeset
272 * \{ */
13843
3f28d2a56758 fullscreen fixes and GUI support for vo_gl
reimar
parents: 13653
diff changeset
273 //! 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
274 #define SET_WINDOW_FAILED -1
3f28d2a56758 fullscreen fixes and GUI support for vo_gl
reimar
parents: 13653
diff changeset
275 //! new window is set, could even transfer the OpenGL context.
3f28d2a56758 fullscreen fixes and GUI support for vo_gl
reimar
parents: 13653
diff changeset
276 #define SET_WINDOW_OK 0
3f28d2a56758 fullscreen fixes and GUI support for vo_gl
reimar
parents: 13653
diff changeset
277 //! 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
278 #define SET_WINDOW_REINIT 1
16595
b3a9fb41f475 fix/improve code doxumentation. Also group gl_common functions in several
reimar
parents: 16592
diff changeset
279 /** \} */
13843
3f28d2a56758 fullscreen fixes and GUI support for vo_gl
reimar
parents: 13653
diff changeset
280
14142
f0c1ee83b216 Improving gl2 under windows, moving some functionality to gl_common
reimar
parents: 14078
diff changeset
281 #ifdef GL_WIN32
17116
724353364790 Get rid of most #ifdefs
reimar
parents: 16879
diff changeset
282 #define vo_check_events() vo_w32_check_events()
724353364790 Get rid of most #ifdefs
reimar
parents: 16879
diff changeset
283 #define vo_fullscreen() vo_w32_fullscreen()
724353364790 Get rid of most #ifdefs
reimar
parents: 16879
diff changeset
284 #define vo_ontop() vo_w32_ontop()
724353364790 Get rid of most #ifdefs
reimar
parents: 16879
diff changeset
285 #define vo_uninit() vo_w32_uninit()
14142
f0c1ee83b216 Improving gl2 under windows, moving some functionality to gl_common
reimar
parents: 14078
diff changeset
286 int setGlWindow(int *vinfo, HGLRC *context, HWND win);
f0c1ee83b216 Improving gl2 under windows, moving some functionality to gl_common
reimar
parents: 14078
diff changeset
287 void releaseGlContext(int *vinfo, HGLRC *context);
f0c1ee83b216 Improving gl2 under windows, moving some functionality to gl_common
reimar
parents: 14078
diff changeset
288 #else
17116
724353364790 Get rid of most #ifdefs
reimar
parents: 16879
diff changeset
289 #define vo_check_events() vo_x11_check_events(mDisplay)
724353364790 Get rid of most #ifdefs
reimar
parents: 16879
diff changeset
290 #define vo_fullscreen() vo_x11_fullscreen()
724353364790 Get rid of most #ifdefs
reimar
parents: 16879
diff changeset
291 #define vo_ontop() vo_x11_ontop()
724353364790 Get rid of most #ifdefs
reimar
parents: 16879
diff changeset
292 #define vo_uninit() vo_x11_uninit()
13843
3f28d2a56758 fullscreen fixes and GUI support for vo_gl
reimar
parents: 13653
diff changeset
293 int setGlWindow(XVisualInfo **vinfo, GLXContext *context, Window win);
13921
ae1dfa5bc2e1 added missing declaration of releaseGlContext
reimar
parents: 13843
diff changeset
294 void releaseGlContext(XVisualInfo **vinfo, GLXContext *context);
13653
799f81d3cb19 added gl_common for code used by both vo_gl.c and vo_gl2.c.
reimar
parents:
diff changeset
295 #endif
17566
f580a7755ac5 Patch by Stefan Huehner / stefan % huehner ! org \
rathann
parents: 17220
diff changeset
296 void swapGlBuffers(void);
13843
3f28d2a56758 fullscreen fixes and GUI support for vo_gl
reimar
parents: 13653
diff changeset
297
16233
f00a2826ee11 use GenBuffers to get a buffer number instead of hardcoding 1.
reimar
parents: 16214
diff changeset
298 extern void (APIENTRY *GenBuffers)(GLsizei, GLuint *);
f00a2826ee11 use GenBuffers to get a buffer number instead of hardcoding 1.
reimar
parents: 16214
diff changeset
299 extern void (APIENTRY *DeleteBuffers)(GLsizei, const GLuint *);
16099
629c54dc7e0d support for rectangular and streaming textures.
reimar
parents: 14142
diff changeset
300 extern void (APIENTRY *BindBuffer)(GLenum, GLuint);
629c54dc7e0d support for rectangular and streaming textures.
reimar
parents: 14142
diff changeset
301 extern GLvoid* (APIENTRY *MapBuffer)(GLenum, GLenum);
629c54dc7e0d support for rectangular and streaming textures.
reimar
parents: 14142
diff changeset
302 extern GLboolean (APIENTRY *UnmapBuffer)(GLenum);
16109
519a307e3ccf OpenGL fixes for windows and vo_gl.c ported to windows.
reimar
parents: 16099
diff changeset
303 extern void (APIENTRY *BufferData)(GLenum, intptr_t, const GLvoid *, GLenum);
16099
629c54dc7e0d support for rectangular and streaming textures.
reimar
parents: 14142
diff changeset
304 extern void (APIENTRY *CombinerParameterfv)(GLenum, const GLfloat *);
629c54dc7e0d support for rectangular and streaming textures.
reimar
parents: 14142
diff changeset
305 extern void (APIENTRY *CombinerParameteri)(GLenum, GLint);
629c54dc7e0d support for rectangular and streaming textures.
reimar
parents: 14142
diff changeset
306 extern void (APIENTRY *CombinerInput)(GLenum, GLenum, GLenum, GLenum, GLenum,
629c54dc7e0d support for rectangular and streaming textures.
reimar
parents: 14142
diff changeset
307 GLenum);
629c54dc7e0d support for rectangular and streaming textures.
reimar
parents: 14142
diff changeset
308 extern void (APIENTRY *CombinerOutput)(GLenum, GLenum, GLenum, GLenum, GLenum,
629c54dc7e0d support for rectangular and streaming textures.
reimar
parents: 14142
diff changeset
309 GLenum, GLenum, GLboolean, GLboolean,
629c54dc7e0d support for rectangular and streaming textures.
reimar
parents: 14142
diff changeset
310 GLboolean);
16625
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
311 extern void (APIENTRY *BeginFragmentShader)(void);
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
312 extern void (APIENTRY *EndFragmentShader)(void);
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
313 extern void (APIENTRY *SampleMap)(GLuint, GLuint, GLenum);
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
314 extern void (APIENTRY *ColorFragmentOp2)(GLenum, GLuint, GLuint, GLuint, GLuint,
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
315 GLuint, GLuint, GLuint, GLuint, GLuint);
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
316 extern void (APIENTRY *ColorFragmentOp3)(GLenum, GLuint, GLuint, GLuint, GLuint,
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
317 GLuint, GLuint, GLuint, GLuint, GLuint,
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
318 GLuint, GLuint, GLuint);
6b0dc40bf961 Support for ATI specific YUV->RGB conversion.
reimar
parents: 16608
diff changeset
319 extern void (APIENTRY *SetFragmentShaderConstant)(GLuint, const GLfloat *);
16099
629c54dc7e0d support for rectangular and streaming textures.
reimar
parents: 14142
diff changeset
320 extern void (APIENTRY *ActiveTexture)(GLenum);
629c54dc7e0d support for rectangular and streaming textures.
reimar
parents: 14142
diff changeset
321 extern void (APIENTRY *BindTexture)(GLenum, GLuint);
629c54dc7e0d support for rectangular and streaming textures.
reimar
parents: 14142
diff changeset
322 extern void (APIENTRY *MultiTexCoord2f)(GLenum, GLfloat, GLfloat);
16488
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
323 extern void (APIENTRY *GenPrograms)(GLsizei, GLuint *);
3191dcb27a12 hardware color-space conversion for vo_gl and vo_gl2
reimar
parents: 16460
diff changeset
324 extern void (APIENTRY *DeletePrograms)(GLsizei, const GLuint *);
16099
629c54dc7e0d support for rectangular and streaming textures.
reimar
parents: 14142
diff changeset
325 extern void (APIENTRY *BindProgram)(GLenum, GLuint);
629c54dc7e0d support for rectangular and streaming textures.
reimar
parents: 14142
diff changeset
326 extern void (APIENTRY *ProgramString)(GLenum, GLenum, GLsizei, const GLvoid *);
629c54dc7e0d support for rectangular and streaming textures.
reimar
parents: 14142
diff changeset
327 extern void (APIENTRY *ProgramEnvParameter4f)(GLenum, GLuint, GLfloat, GLfloat,
629c54dc7e0d support for rectangular and streaming textures.
reimar
parents: 14142
diff changeset
328 GLfloat, GLfloat);
16270
d5374d07492a Fix crash in windows
reimar
parents: 16268
diff changeset
329 extern int (APIENTRY *SwapInterval)(int);
18578
eef0850d4a4b add (currently unused) lookup for glTexImage3D
reimar
parents: 18175
diff changeset
330 extern void (APIENTRY *TexImage3D)(GLenum, GLint, GLenum, GLsizei, GLsizei,
eef0850d4a4b add (currently unused) lookup for glTexImage3D
reimar
parents: 18175
diff changeset
331 GLsizei, GLint, GLenum, GLenum, const GLvoid *);
16099
629c54dc7e0d support for rectangular and streaming textures.
reimar
parents: 14142
diff changeset
332
25535
3baf6a2283da Add explanatory comments to the #endif part of multiple inclusion guards.
diego
parents: 24318
diff changeset
333 #endif /* GL_COMMON_H */