1// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5// This file contains Chromium-specific GLES2 extensions declarations.
6
7#ifndef GPU_GLES2_GL2EXTCHROMIUM_H_
8#define GPU_GLES2_GL2EXTCHROMIUM_H_
9
10#include <GLES2/gl2.h>
11#include <GLES2/gl2ext.h>
12
13#ifdef __cplusplus
14extern "C" {
15#endif
16
17/* GL_CHROMIUM_iosurface */
18#ifndef GL_CHROMIUM_iosurface
19#define GL_CHROMIUM_iosurface 1
20#ifdef GL_GLEXT_PROTOTYPES
21GL_APICALL void GL_APIENTRY glTexImageIOSurface2DCHROMIUM(
22    GLenum target, GLsizei width, GLsizei height, GLuint ioSurfaceId,
23    GLuint plane);
24#endif
25typedef void (GL_APIENTRYP PFNGLTEXIMAGEIOSURFACE2DCHROMIUMPROC) (
26    GLenum target, GLsizei width, GLsizei height, GLuint ioSurfaceId,
27    GLuint plane);
28#endif  /* GL_CHROMIUM_iosurface */
29
30/* GL_CHROMIUM_gpu_memory_manager */
31#ifndef GL_CHROMIUM_gpu_memory_manager
32#define GL_CHROMIUM_gpu_memory_manager 1
33
34#ifndef GL_TEXTURE_POOL_UNMANAGED_CHROMIUM
35#define GL_TEXTURE_POOL_UNMANAGED_CHROMIUM 0x6002
36#endif
37
38#ifndef GL_TEXTURE_POOL_CHROMIUM
39#define GL_TEXTURE_POOL_CHROMIUM 0x6000
40#endif
41
42#ifndef GL_TEXTURE_POOL_MANAGED_CHROMIUM
43#define GL_TEXTURE_POOL_MANAGED_CHROMIUM 0x6001
44#endif
45#endif  /* GL_CHROMIUM_gpu_memory_manager */
46
47/* GL_CHROMIUM_texture_mailbox */
48#ifndef GL_CHROMIUM_texture_mailbox
49#define GL_CHROMIUM_texture_mailbox 1
50
51#ifndef GL_MAILBOX_SIZE_CHROMIUM
52#define GL_MAILBOX_SIZE_CHROMIUM 64
53#endif
54#ifdef GL_GLEXT_PROTOTYPES
55GL_APICALL void GL_APIENTRY glGenMailboxCHROMIUM(GLbyte* mailbox);
56GL_APICALL void GL_APIENTRY glProduceTextureCHROMIUM(
57    GLenum target, const GLbyte* mailbox);
58GL_APICALL void GL_APIENTRY glProduceTextureDirectCHROMIUM(
59    GLuint texture, GLenum target, const GLbyte* mailbox);
60GL_APICALL void GL_APIENTRY glConsumeTextureCHROMIUM(
61    GLenum target, const GLbyte* mailbox);
62GL_APICALL GLuint GL_APIENTRY glCreateAndConsumeTextureCHROMIUM(
63    GLenum target, const GLbyte* mailbox);
64#endif
65typedef void (GL_APIENTRYP PFNGLGENMAILBOXCHROMIUMPROC) (GLbyte* mailbox);
66typedef void (GL_APIENTRYP PFNGLPRODUCETEXTURECHROMIUMPROC) (
67    GLenum target, const GLbyte* mailbox);
68typedef void (GL_APIENTRYP PFNGLPRODUCETEXTUREDIRECTCHROMIUMPROC) (
69    GLuint texture, GLenum target, const GLbyte* mailbox);
70typedef void (GL_APIENTRYP PFNGLCONSUMETEXTURECHROMIUMPROC) (
71    GLenum target, const GLbyte* mailbox);
72typedef GLuint (GL_APIENTRYP PFNGLCREATEANDCONSUMETEXTURECHROMIUMPROC) (
73    GLenum target, const GLbyte* mailbox);
74#endif  /* GL_CHROMIUM_texture_mailbox */
75
76/* GL_CHROMIUM_pixel_transfer_buffer_object */
77#ifndef GL_CHROMIUM_pixel_transfer_buffer_object
78#define GL_CHROMIUM_pixel_transfer_buffer_object 1
79
80#ifndef GL_PIXEL_UNPACK_TRANSFER_BUFFER_CHROMIUM
81// TODO(reveman): Get official numbers for this constants.
82#define GL_PIXEL_UNPACK_TRANSFER_BUFFER_CHROMIUM 0x78EC
83#define GL_PIXEL_PACK_TRANSFER_BUFFER_CHROMIUM 0x78ED
84
85#ifdef GL_GLEXT_PROTOTYPES
86GL_APICALL void* GL_APIENTRY glMapBufferCHROMIUM(GLuint target,GLenum access);
87GL_APICALL GLboolean GL_APIENTRY glUnmapBufferCHROMIUM(GLuint target);
88#endif
89typedef void* (GL_APIENTRY PFNGLMAPBUFFERCHROMIUM) (
90    GLuint target,GLenum access);
91typedef GLboolean (GL_APIENTRY PFNGLUNMAPBUFFERCHROMIUM) (GLuint target);
92#endif  /* GL_CHROMIUM_pixel_transfer_buffer_object */
93
94#ifndef GL_PIXEL_UNPACK_TRANSFER_BUFFER_BINDING_CHROMIUM
95// TODO(reveman): Get official numbers for this constants.
96#define GL_PIXEL_UNPACK_TRANSFER_BUFFER_BINDING_CHROMIUM 0x78EF
97#define GL_PIXEL_PACK_TRANSFER_BUFFER_BINDING_CHROMIUM 0x78EE
98#endif
99
100#ifndef GL_STREAM_READ
101#define GL_STREAM_READ 0x88E1
102#endif
103#endif  /* GL_CHROMIUM_pixel_transfer_buffer_object */
104
105/* GL_CHROMIUM_image */
106#ifndef GL_CHROMIUM_map_image
107#define GL_CHROMIUM_map_image 1
108
109#ifndef GL_IMAGE_ROWBYTES_CHROMIUM
110#define GL_IMAGE_ROWBYTES_CHROMIUM 0x78F0
111#endif
112
113#ifndef GL_IMAGE_MAP_CHROMIUM
114#define GL_IMAGE_MAP_CHROMIUM 0x78F1
115#endif
116
117#ifndef GL_IMAGE_SCANOUT_CHROMIUM
118#define GL_IMAGE_SCANOUT_CHROMIUM 0x78F2
119#endif
120
121#ifdef GL_GLEXT_PROTOTYPES
122GL_APICALL GLuint GL_APIENTRY glCreateImageCHROMIUM(GLsizei width,
123                                                    GLsizei height,
124                                                    GLenum internalformat,
125                                                    GLenum usage);
126GL_APICALL void GL_APIENTRY glDestroyImageCHROMIUM(GLuint image_id);
127GL_APICALL void GL_APIENTRY glGetImageParameterivCHROMIUM(
128    GLuint image_id, GLenum pname, GLint* params);
129GL_APICALL void* GL_APIENTRY glMapImageCHROMIUM(GLuint image_id);
130GL_APICALL void GL_APIENTRY glUnmapImageCHROMIUM(GLuint image_id);
131#endif
132typedef GLuint(GL_APIENTRYP PFNGLCREATEIMAGECHROMIUMPROC)(
133    GLsizei width,
134    GLsizei height,
135    GLenum internalformat);
136typedef void (
137    GL_APIENTRYP PFNGLDESTROYIMAGECHROMIUMPROC) (GLuint image_id);
138typedef void (
139    GL_APIENTRYP PFNGLGETIMAGEPARAMETERIVCHROMIUMPROC) (
140    GLuint image_id, GLenum pname, GLint* params);
141typedef void* (GL_APIENTRYP PFNGLMAPIMAGECHROMIUMPROC) (
142    GLuint image_id, GLenum access);
143typedef void (GL_APIENTRYP PFNGLUNMAPIMAGECHROMIUMPROC) (GLuint image_id);
144#endif  /* GL_CHROMIUM_map_image */
145
146/* GL_CHROMIUM_map_sub */
147#ifndef GL_CHROMIUM_map_sub
148#define GL_CHROMIUM_map_sub 1
149
150#ifndef GL_READ_ONLY
151#define GL_READ_ONLY 0x88B8
152#endif
153
154#ifndef GL_WRITE_ONLY
155#define GL_WRITE_ONLY 0x88B9
156#endif
157#ifdef GL_GLEXT_PROTOTYPES
158GL_APICALL void* GL_APIENTRY glMapBufferSubDataCHROMIUM(
159    GLuint target, GLintptr offset, GLsizeiptr size, GLenum access);
160GL_APICALL void GL_APIENTRY glUnmapBufferSubDataCHROMIUM(const void* mem);
161GL_APICALL void* GL_APIENTRY glMapTexSubImage2DCHROMIUM(
162    GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width,
163    GLsizei height, GLenum format, GLenum type, GLenum access);
164GL_APICALL void GL_APIENTRY glUnmapTexSubImage2DCHROMIUM(const void* mem);
165#endif
166typedef void* (GL_APIENTRYP PFNGLMAPBUFFERSUBDATACHROMIUMPROC) (
167    GLuint target, GLintptr offset, GLsizeiptr size, GLenum access);
168typedef void (
169    GL_APIENTRYP PFNGLUNMAPBUFFERSUBDATACHROMIUMPROC) (const void* mem);
170typedef void* (GL_APIENTRYP PFNGLMAPTEXSUBIMAGE2DCHROMIUMPROC) (
171    GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width,
172    GLsizei height, GLenum format, GLenum type, GLenum access);
173typedef void (
174    GL_APIENTRYP PFNGLUNMAPTEXSUBIMAGE2DCHROMIUMPROC) (const void* mem);
175#endif  /* GL_CHROMIUM_map_sub */
176
177/* GL_CHROMIUM_request_extension */
178#ifndef GL_CHROMIUM_request_extension
179#define GL_CHROMIUM_request_extension 1
180#ifdef GL_GLEXT_PROTOTYPES
181GL_APICALL const GLchar* GL_APIENTRY glGetRequestableExtensionsCHROMIUM();
182GL_APICALL void GL_APIENTRY glRequestExtensionCHROMIUM(const char* extension);
183#endif
184typedef const GLchar* (GL_APIENTRYP PFNGLGETREQUESTABLEEXTENSIONSCHROMIUMPROC) (
185    );
186typedef void (GL_APIENTRYP PFNGLREQUESTEXTENSIONCHROMIUMPROC) (
187    const char* extension);
188#endif  /* GL_CHROMIUM_request_extension */
189
190/* GL_CHROMIUM_get_error_query */
191#ifndef GL_CHROMIUM_get_error_query
192#define GL_CHROMIUM_get_error_query 1
193
194#ifndef GL_GET_ERROR_QUERY_CHROMIUM
195// TODO(gman): Get official numbers for this constants.
196#define GL_GET_ERROR_QUERY_CHROMIUM 0x84F3
197#endif
198#endif  /* GL_CHROMIUM_get_error_query */
199
200/* GL_CHROMIUM_texture_from_image */
201#ifndef GL_CHROMIUM_texture_from_image
202#define GL_CHROMIUM_texture_from_image 1
203#ifdef GL_GLEXT_PROTOTYPES
204GL_APICALL void GL_APIENTRY glBindTexImage2DCHROMIUM(
205    GLenum target, GLint imageId);
206GL_APICALL void GL_APIENTRY glReleaseTexImage2DCHROMIUM(
207    GLenum target, GLint imageId);
208#endif
209typedef void (GL_APIENTRYP PFNGLBINDTEXIMAGE2DCHROMIUMPROC) (
210    GLenum target, GLint imageId);
211typedef void (GL_APIENTRYP PFNGLRELEASETEXIMAGE2DCHROMIUMPROC) (
212    GLenum target, GLint imageId);
213#endif  /* GL_CHROMIUM_texture_from_image */
214
215/* GL_CHROMIUM_rate_limit_offscreen_context */
216#ifndef GL_CHROMIUM_rate_limit_offscreen_context
217#define GL_CHROMIUM_rate_limit_offscreen_context 1
218#ifdef GL_GLEXT_PROTOTYPES
219GL_APICALL void GL_APIENTRY glRateLimitOffscreenContextCHROMIUM();
220#endif
221typedef void (GL_APIENTRYP PFNGLRATELIMITOFFSCREENCONTEXTCHROMIUMPROC) ();
222#endif  /* GL_CHROMIUM_rate_limit_offscreen_context */
223
224/* GL_CHROMIUM_post_sub_buffer */
225#ifndef GL_CHROMIUM_post_sub_buffer
226#define GL_CHROMIUM_post_sub_buffer 1
227#ifdef GL_GLEXT_PROTOTYPES
228GL_APICALL void GL_APIENTRY glPostSubBufferCHROMIUM(
229    GLint x, GLint y, GLint width, GLint height);
230#endif
231typedef void (GL_APIENTRYP PFNGLPOSTSUBBUFFERCHROMIUMPROC) (
232    GLint x, GLint y, GLint width, GLint height);
233#endif  /* GL_CHROMIUM_post_sub_buffer */
234
235/* GL_CHROMIUM_bind_uniform_location */
236#ifndef GL_CHROMIUM_bind_uniform_location
237#define GL_CHROMIUM_bind_uniform_location 1
238#ifdef GL_GLEXT_PROTOTYPES
239GL_APICALL void GL_APIENTRY glBindUniformLocationCHROMIUM(
240    GLuint program, GLint location, const char* name);
241#endif
242typedef void (GL_APIENTRYP PFNGLBINDUNIFORMLOCATIONCHROMIUMPROC) (
243    GLuint program, GLint location, const char* name);
244#endif  /* GL_CHROMIUM_bind_uniform_location */
245
246/* GL_CHROMIUM_command_buffer_query */
247#ifndef GL_CHROMIUM_command_buffer_query
248#define GL_CHROMIUM_command_buffer_query 1
249
250#ifndef GL_COMMANDS_ISSUED_CHROMIUM
251// TODO(gman): Get official numbers for this constants.
252#define GL_COMMANDS_ISSUED_CHROMIUM 0x84F2
253#endif
254#endif  /* GL_CHROMIUM_command_buffer_query */
255
256/* GL_CHROMIUM_framebuffer_multisample */
257#ifndef GL_CHROMIUM_framebuffer_multisample
258#define GL_CHROMIUM_framebuffer_multisample 1
259
260#ifdef GL_GLEXT_PROTOTYPES
261GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleCHROMIUM (GLenum, GLsizei, GLenum, GLsizei, GLsizei);
262GL_APICALL void GL_APIENTRY glBlitFramebufferCHROMIUM (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
263#endif
264typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLECHROMIUMPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
265typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFERCHROMIUMPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
266
267#ifndef GL_FRAMEBUFFER_BINDING_EXT
268#define GL_FRAMEBUFFER_BINDING_EXT GL_FRAMEBUFFER_BINDING
269#endif
270
271#ifndef GL_DRAW_FRAMEBUFFER_BINDING_EXT
272#define GL_DRAW_FRAMEBUFFER_BINDING_EXT GL_DRAW_FRAMEBUFFER_BINDING
273#endif
274
275#ifndef GL_RENDERBUFFER_BINDING_EXT
276#define GL_RENDERBUFFER_BINDING_EXT GL_RENDERBUFFER_BINDING
277#endif
278
279#ifndef GL_RENDERBUFFER_SAMPLES
280#define GL_RENDERBUFFER_SAMPLES 0x8CAB
281#endif
282
283#ifndef GL_READ_FRAMEBUFFER_EXT
284#define GL_READ_FRAMEBUFFER_EXT GL_READ_FRAMEBUFFER
285#endif
286
287#ifndef GL_RENDERBUFFER_SAMPLES_EXT
288#define GL_RENDERBUFFER_SAMPLES_EXT GL_RENDERBUFFER_SAMPLES
289#endif
290
291#ifndef GL_RENDERBUFFER_BINDING
292#define GL_RENDERBUFFER_BINDING 0x8CA7
293#endif
294
295#ifndef GL_READ_FRAMEBUFFER_BINDING
296#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA
297#endif
298
299#ifndef GL_MAX_SAMPLES
300#define GL_MAX_SAMPLES 0x8D57
301#endif
302
303#ifndef GL_READ_FRAMEBUFFER_BINDING_EXT
304#define GL_READ_FRAMEBUFFER_BINDING_EXT GL_READ_FRAMEBUFFER_BINDING
305#endif
306
307#ifndef GL_DRAW_FRAMEBUFFER_BINDING
308#define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6
309#endif
310
311#ifndef GL_MAX_SAMPLES_EXT
312#define GL_MAX_SAMPLES_EXT GL_MAX_SAMPLES
313#endif
314
315#ifndef GL_DRAW_FRAMEBUFFER
316#define GL_DRAW_FRAMEBUFFER 0x8CA9
317#endif
318
319#ifndef GL_READ_FRAMEBUFFER
320#define GL_READ_FRAMEBUFFER 0x8CA8
321#endif
322
323#ifndef GL_DRAW_FRAMEBUFFER_EXT
324#define GL_DRAW_FRAMEBUFFER_EXT GL_DRAW_FRAMEBUFFER
325#endif
326
327#ifndef GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE
328#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56
329#endif
330
331#ifndef GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT
332#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE  // NOLINT
333#endif
334
335#ifndef GL_FRAMEBUFFER_BINDING
336#define GL_FRAMEBUFFER_BINDING 0x8CA6
337#endif
338#endif  /* GL_CHROMIUM_framebuffer_multisample */
339
340/* GL_CHROMIUM_texture_compression_dxt3 */
341#ifndef GL_CHROMIUM_texture_compression_dxt3
342#define GL_CHROMIUM_texture_compression_dxt3 1
343
344#ifndef GL_COMPRESSED_RGBA_S3TC_DXT3_EXT
345#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2
346#endif
347#endif  /* GL_CHROMIUM_texture_compression_dxt3 */
348
349/* GL_CHROMIUM_texture_compression_dxt5 */
350#ifndef GL_CHROMIUM_texture_compression_dxt5
351#define GL_CHROMIUM_texture_compression_dxt5 1
352
353#ifndef GL_COMPRESSED_RGBA_S3TC_DXT5_EXT
354#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3
355#endif
356#endif  /* GL_CHROMIUM_texture_compression_dxt5 */
357
358/* GL_CHROMIUM_async_pixel_transfers */
359#ifndef GL_CHROMIUM_async_pixel_transfers
360#define GL_CHROMIUM_async_pixel_transfers 1
361
362#ifndef GL_ASYNC_PIXEL_UNPACK_COMPLETED_CHROMIUM
363#define GL_ASYNC_PIXEL_UNPACK_COMPLETED_CHROMIUM 0x84F5
364#endif
365#ifndef GL_ASYNC_PIXEL_PACK_COMPLETED_CHROMIUM
366#define GL_ASYNC_PIXEL_PACK_COMPLETED_CHROMIUM 0x84F6
367#endif
368#endif  /* GL_CHROMIUM_async_pixel_transfers */
369
370#ifndef GL_BIND_GENERATES_RESOURCE_CHROMIUM
371#define GL_BIND_GENERATES_RESOURCE_CHROMIUM 0x9244
372#endif
373
374/* GL_CHROMIUM_copy_texture */
375#ifndef GL_CHROMIUM_copy_texture
376#define GL_CHROMIUM_copy_texture 1
377
378#ifndef GL_UNPACK_COLORSPACE_CONVERSION_CHROMIUM
379#define GL_UNPACK_COLORSPACE_CONVERSION_CHROMIUM 0x9243
380#endif
381
382#ifndef GL_UNPACK_UNPREMULTIPLY_ALPHA_CHROMIUM
383#define GL_UNPACK_UNPREMULTIPLY_ALPHA_CHROMIUM 0x9242
384#endif
385
386#ifndef GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM
387#define GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM 0x9241
388#endif
389#ifdef GL_GLEXT_PROTOTYPES
390GL_APICALL void GL_APIENTRY glCopyTextureCHROMIUM(
391    GLenum target, GLenum source_id, GLenum dest_id, GLint level,
392    GLint internalformat, GLenum dest_type);
393#endif
394typedef void (GL_APIENTRYP PFNGLCOPYTEXTURECHROMIUMPROC) (
395    GLenum target, GLenum source_id, GLenum dest_id, GLint level,
396    GLint internalformat, GLenum dest_type);
397#endif  /* GL_CHROMIUM_copy_texture */
398
399/* GL_CHROMIUM_lose_context */
400#ifndef GL_CHROMIUM_lose_context
401#define GL_CHROMIUM_lose_context 1
402#ifdef GL_GLEXT_PROTOTYPES
403GL_APICALL void GL_APIENTRY glLoseContextCHROMIUM(GLenum current, GLenum other);
404#endif
405typedef void (GL_APIENTRYP PFNGLLOSECONTEXTCHROMIUMPROC) (
406    GLenum current, GLenum other);
407#endif  /* GL_CHROMIUM_lose_context */
408
409/* GL_CHROMIUM_flipy */
410#ifndef GL_CHROMIUM_flipy
411#define GL_CHROMIUM_flipy 1
412
413#ifndef GL_UNPACK_FLIP_Y_CHROMIUM
414#define GL_UNPACK_FLIP_Y_CHROMIUM 0x9240
415#endif
416#endif  /* GL_CHROMIUM_flipy */
417
418/* GL_ARB_texture_rectangle */
419#ifndef GL_ARB_texture_rectangle
420#define GL_ARB_texture_rectangle 1
421
422#ifndef GL_SAMPLER_2D_RECT_ARB
423#define GL_SAMPLER_2D_RECT_ARB 0x8B63
424#endif
425
426#ifndef GL_TEXTURE_BINDING_RECTANGLE_ARB
427#define GL_TEXTURE_BINDING_RECTANGLE_ARB 0x84F6
428#endif
429
430#ifndef GL_TEXTURE_RECTANGLE_ARB
431#define GL_TEXTURE_RECTANGLE_ARB 0x84F5
432#endif
433#endif  /* GL_ARB_texture_rectangle */
434
435/* GL_CHROMIUM_enable_feature */
436#ifndef GL_CHROMIUM_enable_feature
437#define GL_CHROMIUM_enable_feature 1
438#ifdef GL_GLEXT_PROTOTYPES
439GL_APICALL GLboolean GL_APIENTRY glEnableFeatureCHROMIUM(const char* feature);
440#endif
441typedef GLboolean (GL_APIENTRYP PFNGLENABLEFEATURECHROMIUMPROC) (
442    const char* feature);
443#endif  /* GL_CHROMIUM_enable_feature */
444
445/* GL_CHROMIUM_command_buffer_latency_query */
446#ifndef GL_CHROMIUM_command_buffer_latency_query
447#define GL_CHROMIUM_command_buffer_latency_query 1
448
449#ifndef GL_LATENCY_QUERY_CHROMIUM
450// TODO(gman): Get official numbers for these constants.
451#define GL_LATENCY_QUERY_CHROMIUM 0x84F4
452#endif
453#endif  /* GL_CHROMIUM_command_buffer_latency_query */
454
455/* GL_ARB_robustness */
456#ifndef GL_ARB_robustness
457#define GL_ARB_robustness 1
458
459#ifndef GL_GUILTY_CONTEXT_RESET_ARB
460#define GL_GUILTY_CONTEXT_RESET_ARB 0x8253
461#endif
462
463#ifndef GL_UNKNOWN_CONTEXT_RESET_ARB
464#define GL_UNKNOWN_CONTEXT_RESET_ARB 0x8255
465#endif
466
467#ifndef GL_INNOCENT_CONTEXT_RESET_ARB
468#define GL_INNOCENT_CONTEXT_RESET_ARB 0x8254
469#endif
470#endif  /* GL_ARB_robustness */
471
472/* GL_EXT_framebuffer_blit */
473#ifndef GL_EXT_framebuffer_blit
474#define GL_EXT_framebuffer_blit 1
475#ifdef GL_GLEXT_PROTOTYPES
476GL_APICALL void GL_APIENTRY glBlitFramebufferEXT(
477    GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0,
478    GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
479#endif
480typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFEREXTPROC) (
481    GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0,
482    GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
483#endif  /* GL_EXT_framebuffer_blit */
484
485/* GL_EXT_draw_buffers */
486#ifndef GL_EXT_draw_buffers
487#define GL_EXT_draw_buffers 1
488
489#ifdef GL_GLEXT_PROTOTYPES
490GL_APICALL void GL_APIENTRY glDrawBuffersEXT(
491    GLsizei n, const GLenum* bufs);
492#endif
493typedef void (GL_APIENTRYP PFNGLDRAWBUFFERSEXTPROC) (
494    GLsizei n, const GLenum* bufs);
495
496#ifndef GL_COLOR_ATTACHMENT0_EXT
497#define GL_COLOR_ATTACHMENT0_EXT 0x8CE0
498#endif
499#ifndef GL_COLOR_ATTACHMENT1_EXT
500#define GL_COLOR_ATTACHMENT1_EXT 0x8CE1
501#endif
502#ifndef GL_COLOR_ATTACHMENT2_EXT
503#define GL_COLOR_ATTACHMENT2_EXT 0x8CE2
504#endif
505#ifndef GL_COLOR_ATTACHMENT3_EXT
506#define GL_COLOR_ATTACHMENT3_EXT 0x8CE3
507#endif
508#ifndef GL_COLOR_ATTACHMENT4_EXT
509#define GL_COLOR_ATTACHMENT4_EXT 0x8CE4
510#endif
511#ifndef GL_COLOR_ATTACHMENT5_EXT
512#define GL_COLOR_ATTACHMENT5_EXT 0x8CE5
513#endif
514#ifndef GL_COLOR_ATTACHMENT6_EXT
515#define GL_COLOR_ATTACHMENT6_EXT 0x8CE6
516#endif
517#ifndef GL_COLOR_ATTACHMENT7_EXT
518#define GL_COLOR_ATTACHMENT7_EXT 0x8CE7
519#endif
520#ifndef GL_COLOR_ATTACHMENT8_EXT
521#define GL_COLOR_ATTACHMENT8_EXT 0x8CE8
522#endif
523#ifndef GL_COLOR_ATTACHMENT9_EXT
524#define GL_COLOR_ATTACHMENT9_EXT 0x8CE9
525#endif
526#ifndef GL_COLOR_ATTACHMENT10_EXT
527#define GL_COLOR_ATTACHMENT10_EXT 0x8CEA
528#endif
529#ifndef GL_COLOR_ATTACHMENT11_EXT
530#define GL_COLOR_ATTACHMENT11_EXT 0x8CEB
531#endif
532#ifndef GL_COLOR_ATTACHMENT12_EXT
533#define GL_COLOR_ATTACHMENT12_EXT 0x8CEC
534#endif
535#ifndef GL_COLOR_ATTACHMENT13_EXT
536#define GL_COLOR_ATTACHMENT13_EXT 0x8CED
537#endif
538#ifndef GL_COLOR_ATTACHMENT14_EXT
539#define GL_COLOR_ATTACHMENT14_EXT 0x8CEE
540#endif
541#ifndef GL_COLOR_ATTACHMENT15_EXT
542#define GL_COLOR_ATTACHMENT15_EXT 0x8CEF
543#endif
544
545#ifndef GL_DRAW_BUFFER0_EXT
546#define GL_DRAW_BUFFER0_EXT 0x8825
547#endif
548#ifndef GL_DRAW_BUFFER1_EXT
549#define GL_DRAW_BUFFER1_EXT 0x8826
550#endif
551#ifndef GL_DRAW_BUFFER2_EXT
552#define GL_DRAW_BUFFER2_EXT 0x8827
553#endif
554#ifndef GL_DRAW_BUFFER3_EXT
555#define GL_DRAW_BUFFER3_EXT 0x8828
556#endif
557#ifndef GL_DRAW_BUFFER4_EXT
558#define GL_DRAW_BUFFER4_EXT 0x8829
559#endif
560#ifndef GL_DRAW_BUFFER5_EXT
561#define GL_DRAW_BUFFER5_EXT 0x882A
562#endif
563#ifndef GL_DRAW_BUFFER6_EXT
564#define GL_DRAW_BUFFER6_EXT 0x882B
565#endif
566#ifndef GL_DRAW_BUFFER7_EXT
567#define GL_DRAW_BUFFER7_EXT 0x882C
568#endif
569#ifndef GL_DRAW_BUFFER8_EXT
570#define GL_DRAW_BUFFER8_EXT 0x882D
571#endif
572#ifndef GL_DRAW_BUFFER9_EXT
573#define GL_DRAW_BUFFER9_EXT 0x882E
574#endif
575#ifndef GL_DRAW_BUFFER10_EXT
576#define GL_DRAW_BUFFER10_EXT 0x882F
577#endif
578#ifndef GL_DRAW_BUFFER11_EXT
579#define GL_DRAW_BUFFER11_EXT 0x8830
580#endif
581#ifndef GL_DRAW_BUFFER12_EXT
582#define GL_DRAW_BUFFER12_EXT 0x8831
583#endif
584#ifndef GL_DRAW_BUFFER13_EXT
585#define GL_DRAW_BUFFER13_EXT 0x8832
586#endif
587#ifndef GL_DRAW_BUFFER14_EXT
588#define GL_DRAW_BUFFER14_EXT 0x8833
589#endif
590#ifndef GL_DRAW_BUFFER15_EXT
591#define GL_DRAW_BUFFER15_EXT 0x8834
592#endif
593
594#ifndef GL_MAX_COLOR_ATTACHMENTS_EXT
595#define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF
596#endif
597
598#ifndef GL_MAX_DRAW_BUFFERS_EXT
599#define GL_MAX_DRAW_BUFFERS_EXT 0x8824
600#endif
601
602#endif  /* GL_EXT_draw_buffers */
603
604/* GL_CHROMIUM_resize */
605#ifndef GL_CHROMIUM_resize
606#define GL_CHROMIUM_resize 1
607#ifdef GL_GLEXT_PROTOTYPES
608GL_APICALL void GL_APIENTRY glResizeCHROMIUM(
609    GLuint width, GLuint height, GLfloat scale_factor);
610#endif
611typedef void (GL_APIENTRYP PFNGLRESIZECHROMIUMPROC) (
612    GLuint width, GLuint height);
613#endif  /* GL_CHROMIUM_resize */
614
615/* GL_CHROMIUM_get_multiple */
616#ifndef GL_CHROMIUM_get_multiple
617#define GL_CHROMIUM_get_multiple 1
618#ifdef GL_GLEXT_PROTOTYPES
619GL_APICALL void GL_APIENTRY glGetMultipleIntegervCHROMIUM(
620    const GLenum* pnames, GLuint count, GLint* results, GLsizeiptr size);
621GL_APICALL void GL_APIENTRY glGetProgramInfoCHROMIUM(
622    GLuint program, GLsizei bufsize, GLsizei* size, void* info);
623#endif
624typedef void (GL_APIENTRYP PFNGLGETMULTIPLEINTEGERVCHROMIUMPROC) (
625   const GLenum* pnames, GLuint count, GLint* results, GLsizeiptr size);
626typedef void (GL_APIENTRYP PFNGLGETPROGRAMINFOCHROMIUMPROC) (
627   GLuint program, GLsizei bufsize, GLsizei* size, void* info);
628#endif  /* GL_CHROMIUM_get_multiple */
629
630/* GL_CHROMIUM_sync_point */
631#ifndef GL_CHROMIUM_sync_point
632#define GL_CHROMIUM_sync_point 1
633#ifdef GL_GLEXT_PROTOTYPES
634GL_APICALL GLuint GL_APIENTRY glInsertSyncPointCHROMIUM();
635GL_APICALL void GL_APIENTRY glWaitSyncPointCHROMIUM(GLuint sync_point);
636#endif
637typedef GLuint (GL_APIENTRYP PFNGLINSERTSYNCPOINTCHROMIUMPROC) ();
638typedef void (GL_APIENTRYP PFNGLWAITSYNCPOINTCHROMIUMPROC) (GLuint sync_point);
639#endif  /* GL_CHROMIUM_sync_point */
640
641#ifndef GL_CHROMIUM_color_buffer_float_rgba
642#define GL_CHROMIUM_color_buffer_float_rgba 1
643#ifndef GL_RGBA32F
644#define GL_RGBA32F 0x8814
645#endif
646#endif /* GL_CHROMIUM_color_buffer_float_rgba */
647
648#ifndef GL_CHROMIUM_color_buffer_float_rgb
649#define GL_CHROMIUM_color_buffer_float_rgb 1
650#ifndef GL_RGB32F
651#define GL_RGB32F 0x8815
652#endif
653#endif /* GL_CHROMIUM_color_buffer_float_rgb */
654
655/* GL_CHROMIUM_schedule_overlay_plane */
656#ifndef GL_CHROMIUM_schedule_overlay_plane
657#define GL_CHROMIUM_schedule_overlay_plane 1
658
659#ifndef GL_OVERLAY_TRANSFORM_NONE_CHROMIUM
660#define GL_OVERLAY_TRANSFORM_NONE_CHROMIUM 0x9245
661#endif
662
663#ifndef GL_OVERLAY_TRANSFORM_FLIP_HORIZONTAL_CHROMIUM
664#define GL_OVERLAY_TRANSFORM_FLIP_HORIZONTAL_CHROMIUM 0x9246
665#endif
666
667#ifndef GL_OVERLAY_TRANSFORM_FLIP_VERTICAL_CHROMIUM
668#define GL_OVERLAY_TRANSFORM_FLIP_VERTICAL_CHROMIUM 0x9247
669#endif
670
671#ifndef GL_OVERLAY_TRANSFORM_ROTATE_90_CHROMIUM
672#define GL_OVERLAY_TRANSFORM_ROTATE_90_CHROMIUM 0x9248
673#endif
674
675#ifndef GL_OVERLAY_TRANSFORM_ROTATE_180_CHROMIUM
676#define GL_OVERLAY_TRANSFORM_ROTATE_180_CHROMIUM 0x9249
677#endif
678
679#ifndef GL_OVERLAY_TRANSFORM_ROTATE_270_CHROMIUM
680#define GL_OVERLAY_TRANSFORM_ROTATE_270_CHROMIUM 0x924A
681#endif
682
683#ifdef GL_GLEXT_PROTOTYPES
684GL_APICALL void GL_APIENTRY
685    glScheduleOverlayPlaneCHROMIUM(GLint plane_z_order,
686                                   GLenum plane_transform,
687                                   GLuint overlay_texture_id,
688                                   GLint bounds_x,
689                                   GLint bounds_y,
690                                   GLint bounds_width,
691                                   GLint bounds_height,
692                                   GLfloat uv_x,
693                                   GLfloat uv_y,
694                                   GLfloat uv_width,
695                                   GLfloat uv_height);
696#endif
697typedef void(GL_APIENTRYP PFNGLSCHEDULEOVERLAYPLANECHROMIUMPROC)(
698    GLint plane_z_order,
699    GLenum plane_transform,
700    GLuint overlay_texture_id,
701    GLint bounds_x,
702    GLint bounds_y,
703    GLint bounds_width,
704    GLint bounds_height,
705    GLfloat uv_x,
706    GLfloat uv_y,
707    GLfloat uv_width,
708    GLfloat uv_height);
709#endif /* GL_CHROMIUM_schedule_overlay_plane */
710
711/* GL_CHROMIUM_sync_query */
712#ifndef GL_CHROMIUM_sync_query
713#define GL_CHROMIUM_sync_query 1
714
715#ifndef GL_COMMANDS_COMPLETED_CHROMIUM
716#define GL_COMMANDS_COMPLETED_CHROMIUM 0x84F7
717#endif
718#endif  /* GL_CHROMIUM_sync_query */
719
720#ifndef GL_CHROMIUM_path_rendering
721#define GL_CHROMIUM_path_rendering 1
722
723#ifdef GL_GLEXT_PROTOTYPES
724GL_APICALL void GL_APIENTRY
725    glMatrixLoadfCHROMIUM(GLenum mode, const GLfloat* m);
726GL_APICALL void GL_APIENTRY glMatrixLoadIdentityCHROMIUM(GLenum mode);
727#endif
728
729typedef void(GL_APIENTRYP PFNGLMATRIXLOADFCHROMIUMPROC)(GLenum matrixMode,
730                                                        const GLfloat* m);
731typedef void(GL_APIENTRYP PFNGLMATRIXLOADIDENTITYCHROMIUMPROC)(
732    GLenum matrixMode);
733
734#endif /* GL_CHROMIUM_path_rendering */
735
736#ifdef __cplusplus
737}
738#endif
739
740#endif  // GPU_GLES2_GL2EXTCHROMIUM_H_
741