summaryrefslogtreecommitdiffstats
path: root/src/VBox/GuestHost/OpenGL/include/cr_extstring.h
blob: b2fe4fe977bc834e2c5707f292ab62198e751d7f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
/* Copyright (c) 2001, Stanford University
 * All rights reserved.
 *
 * See the file LICENSE.txt for information on redistributing this software.
 */

#ifndef CR_EXTSTRING_H
#define CR_EXTSTRING_H

#include "cr_version.h"

/*
 * This string is the list of OpenGL extensions which Chromium can understand
 * (in the packer, unpacker, state-tracker, etc).
 * In practice, this string will get intersected with what's reported by the
 * rendering SPUs to reflect what we can really offer to client apps.
 *
 * Yes, we want static declarations here to avoid linking problems.
 */
static const char *crExtensions =
#ifdef CR_EXT_texture_compression_s3tc
    "GL_EXT_texture_compression_s3tc "
#endif
#ifdef CR_EXT_draw_range_elements
    "GL_EXT_draw_range_elements "
#endif
#ifdef CR_EXT_framebuffer_object
    "GL_EXT_framebuffer_object "
#endif
#ifdef CR_EXT_compiled_vertex_array
    "GL_EXT_compiled_vertex_array "
#endif
#ifdef CR_ARB_depth_texture
	"GL_ARB_depth_texture "
#endif
#ifdef CR_ARB_fragment_program
	"GL_ARB_fragment_program "
#endif
#ifdef CR_ARB_imaging
	"GL_ARB_imaging "
#endif
#ifdef CR_ARB_multisample
	"GL_ARB_multisample "
#endif
#ifdef CR_ARB_multitexture
	"GL_ARB_multitexture "
#endif
#ifdef CR_ARB_occlusion_query
	"GL_ARB_occlusion_query "
#endif
#ifdef CR_ARB_point_parameters
	"GL_ARB_point_parameters "
#endif
#ifdef CR_ARB_point_sprite
	"GL_ARB_point_sprite "
#endif
#ifdef CR_ARB_shadow
	"GL_ARB_shadow "
#endif
#ifdef CR_ARB_shadow_ambient
	"GL_ARB_shadow_ambient "
#endif
#ifdef CR_ARB_texture_border_clamp
	"GL_ARB_texture_border_clamp "
#endif
#ifdef CR_ARB_texture_compression
	"GL_ARB_texture_compression "
#endif
#ifdef CR_ARB_texture_cube_map
	"GL_ARB_texture_cube_map "
#endif
#ifdef CR_ARB_texture_env_add
	"GL_ARB_texture_env_add "
#endif
#ifdef CR_ARB_texture_env_combine
	"GL_ARB_texture_env_combine GL_EXT_texture_env_combine "
#endif
#ifdef CR_ARB_texture_env_crossbar
	"GL_ARB_texture_env_crossbar "
#endif
#ifdef CR_ARB_texture_env_dot3
	"GL_ARB_texture_env_dot3 GL_EXT_texture_env_dot3 "
#endif
#ifdef CR_ARB_texture_mirrored_repeat
	"GL_ARB_texture_mirrored_repeat GL_IBM_texture_mirrored_repeat "
#endif
#ifdef CR_ATI_texture_mirror_once
	"GL_ATI_texture_mirror_once "
#endif
#ifdef CR_ARB_texture_non_power_of_two
	"GL_ARB_texture_non_power_of_two "
#endif
#ifdef CR_ARB_transpose_matrix
	"GL_ARB_transpose_matrix "
#endif
#ifdef CR_ARB_vertex_buffer_object
	"GL_ARB_vertex_buffer_object "
#endif
#ifdef CR_ARB_pixel_buffer_object
    "GL_ARB_pixel_buffer_object "
#endif
#ifdef CR_ARB_vertex_program
	"GL_ARB_vertex_program "
#endif
#ifdef CR_ARB_window_pos
	"GL_ARB_window_pos "
#endif
#ifdef CR_EXT_blend_color
	"GL_EXT_blend_color "
#endif
#ifdef CR_EXT_blend_minmax
	"GL_EXT_blend_minmax "
#endif
#ifdef CR_EXT_blend_func_separate
	"GL_EXT_blend_func_separate "
#endif
#ifdef CR_EXT_clip_volume_hint
	"GL_EXT_clip_volume_hint "
#endif
#ifdef CR_EXT_blend_logic_op
	"GL_EXT_blend_logic_op "
#endif
#ifdef CR_EXT_blend_subtract
	"GL_EXT_blend_subtract "
#endif
#ifdef CR_EXT_texture_env_add
	"GL_EXT_texture_env_add "
#endif
#ifdef CR_EXT_fog_coord
	"GL_EXT_fog_coord "
#endif
#ifdef CR_EXT_multi_draw_arrays
	"GL_EXT_multi_draw_arrays "
#endif
#ifdef CR_EXT_secondary_color
	"GL_EXT_secondary_color "
#endif
#ifdef CR_EXT_separate_specular_color
	"GL_EXT_separate_specular_color "
#endif
#ifdef CR_EXT_shadow_funcs
	"GL_EXT_shadow_funcs "
#endif
#ifdef CR_EXT_stencil_wrap
	"GL_EXT_stencil_wrap "
#endif
#ifdef CR_EXT_texture_cube_map
	"GL_EXT_texture_cube_map "
#endif
#ifdef CR_EXT_texture_edge_clamp
	"GL_EXT_texture_edge_clamp "
#endif
#ifdef CR_EXT_texture_filter_anisotropic
	"GL_EXT_texture_filter_anisotropic "
#endif
#ifdef CR_EXT_texture_lod_bias
	"GL_EXT_texture_lod_bias "
#endif
#ifdef CR_EXT_texture_object
	"GL_EXT_texture_object "
#endif
#ifdef CR_EXT_texture3D
	"GL_EXT_texture3D "
#endif
#ifdef CR_IBM_rasterpos_clip
	"GL_IBM_rasterpos_clip "
#endif
#ifdef CR_NV_fog_distance
	"GL_NV_fog_distance "
#endif
#ifdef CR_NV_fragment_program
	"GL_NV_fragment_program "
#endif
#ifdef CR_NV_fragment_program_option
    "GL_NV_fragment_program_option "
#endif
#ifdef CR_NV_fragment_program2
    "GL_NV_fragment_program2 "
#endif
#ifdef CR_NV_register_combiners
	"GL_NV_register_combiners "
#endif
#ifdef CR_NV_register_combiners2
	"GL_NV_register_combiners2 "
#endif
#ifdef CR_NV_texgen_reflection
	"GL_NV_texgen_reflection "
#endif
#ifdef CR_NV_texture_rectangle
	"GL_NV_texture_rectangle GL_EXT_texture_rectangle GL_ARB_texture_rectangle "
#endif
#ifdef CR_NV_vertex_program
	"GL_NV_vertex_program "
#endif
#ifdef CR_NV_vertex_program1_1
	"GL_NV_vertex_program1_1 "
#endif
#ifdef CR_NV_vertex_program2
	"GL_NV_vertex_program2 "
#endif
#ifdef CR_NV_vertex_program2_option
    "GL_NV_vertex_program2_option "
#endif
#ifdef CR_NV_vertex_program3
    "GL_NV_vertex_program3 "
#endif
#ifdef CR_SGIS_generate_mipmap
	"GL_SGIS_generate_mipmap "
#endif
#ifdef CR_SGIS_texture_border_clamp
	"GL_SGIS_texture_border_clamp "
#endif
#ifdef CR_SGIS_texture_edge_clamp
	"GL_SGIS_texture_edge_clamp "
#endif
#ifdef CR_ARB_shading_language_100
    "GL_ARB_shading_language_100 "
#endif
#ifdef CR_ARB_shader_objects
    "GL_ARB_shader_objects "
#endif
#ifdef CR_ARB_vertex_shader
    "GL_ARB_vertex_shader "
#endif
#ifdef CR_ARB_fragment_shader
    "GL_ARB_fragment_shader "
#endif
#ifdef CR_EXT_texture_sRGB
    "GL_EXT_texture_sRGB "
#endif
#ifdef CR_EXT_framebuffer_blit
    "GL_EXT_framebuffer_blit "
#endif
#ifdef CR_EXT_blend_equation_separate
    "GL_EXT_blend_equation_separate "
#endif
#ifdef CR_EXT_stencil_two_side
    "GL_EXT_stencil_two_side "
#endif
#ifdef CR_GREMEDY_string_marker
    "GL_GREMEDY_string_marker "
#endif
#ifdef CR_ARB_texture_float
    "GL_ARB_texture_float "
#endif
#ifdef CR_ARB_draw_buffers
    "GL_ARB_draw_buffers "
#endif
#ifdef CR_ARB_shader_texture_lod
    "GL_ARB_shader_texture_lod "
#endif

	"";

/*
 * Extensions which are only supported if the render/readback SPU is
 * on the app node (no packing/unpacking/state-tracking support).
 */
static const char *crAppOnlyExtensions =
  "GL_NV_fence " \
  "GL_NV_texture_env_combine4 " \
  "GL_NV_texture_shader " \
  "GL_NV_vertex_array_range "
;


/*
 * Special extensions which are unique to Chromium.
 * We typically append this to the result of glGetString(GL_EXTENSIONS).
 */
static const char *crChromiumExtensions =
#ifdef GL_CR_state_parameter
	"GL_CR_state_parameter "
#endif
#ifdef GL_CR_cursor_position
	"GL_CR_cursor_position "
#endif
#ifdef GL_CR_bounding_box
	"GL_CR_bounding_box "
#endif
#ifdef GL_CR_print_string
	"GL_CR_print_string "
#endif
#ifdef GL_CR_tilesort_info
	"GL_CR_tilesort_info "
#endif
#ifdef GL_CR_client_clear_control
	"GL_CR_client_clear_control "
#endif
#ifdef GL_CR_synchronization
	"GL_CR_synchronization "
#endif
#ifdef GL_CR_head_spu_name
	"GL_CR_head_spu_name "
#endif
#ifdef GL_CR_performance_info
	"GL_CR_performance_info "
#endif
#ifdef GL_CR_window_size
	"GL_CR_window_size "
#endif
#ifdef GL_CR_tile_info
	"GL_CR_tile_info "
#endif
#ifdef GL_CR_saveframe
	"GL_CR_saveframe "
#endif
#ifdef GL_CR_readback_barrier_size
	"GL_CR_readback_barrier_size "
#endif
#ifdef GL_CR_server_id_sharing
	"GL_CR_server_id_sharing "
#endif
#ifdef GL_CR_server_matrix
	"GL_CR_server_matrix "
#endif
#ifdef USE_DMX
	"GL_CR_dmx "
#endif
	"";

#endif /* CR_EXTSTRING_H */