Home | History | Annotate | Download | only in GLES2
      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
     14 extern "C" {
     15 #endif
     16 
     17 /* GL_CHROMIUM_iosurface */
     18 #ifndef GL_CHROMIUM_iosurface
     19 #define GL_CHROMIUM_iosurface 1
     20 #ifdef GL_GLEXT_PROTOTYPES
     21 GL_APICALL void GL_APIENTRY glTexImageIOSurface2DCHROMIUM(
     22     GLenum target, GLsizei width, GLsizei height, GLuint ioSurfaceId,
     23     GLuint plane);
     24 #endif
     25 typedef 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
     55 GL_APICALL void GL_APIENTRY glGenMailboxCHROMIUM(GLbyte* mailbox);
     56 GL_APICALL void GL_APIENTRY glProduceTextureCHROMIUM(
     57     GLenum target, const GLbyte* mailbox);
     58 GL_APICALL void GL_APIENTRY glProduceTextureDirectCHROMIUM(
     59     GLuint texture, GLenum target, const GLbyte* mailbox);
     60 GL_APICALL void GL_APIENTRY glConsumeTextureCHROMIUM(
     61     GLenum target, const GLbyte* mailbox);
     62 GL_APICALL GLuint GL_APIENTRY glCreateAndConsumeTextureCHROMIUM(
     63     GLenum target, const GLbyte* mailbox);
     64 #endif
     65 typedef void (GL_APIENTRYP PFNGLGENMAILBOXCHROMIUMPROC) (GLbyte* mailbox);
     66 typedef void (GL_APIENTRYP PFNGLPRODUCETEXTURECHROMIUMPROC) (
     67     GLenum target, const GLbyte* mailbox);
     68 typedef void (GL_APIENTRYP PFNGLPRODUCETEXTUREDIRECTCHROMIUMPROC) (
     69     GLuint texture, GLenum target, const GLbyte* mailbox);
     70 typedef void (GL_APIENTRYP PFNGLCONSUMETEXTURECHROMIUMPROC) (
     71     GLenum target, const GLbyte* mailbox);
     72 typedef 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
     86 GL_APICALL void* GL_APIENTRY glMapBufferCHROMIUM(GLuint target,GLenum access);
     87 GL_APICALL GLboolean GL_APIENTRY glUnmapBufferCHROMIUM(GLuint target);
     88 #endif
     89 typedef void* (GL_APIENTRY PFNGLMAPBUFFERCHROMIUM) (
     90     GLuint target,GLenum access);
     91 typedef 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
    122 GL_APICALL GLuint GL_APIENTRY glCreateImageCHROMIUM(GLsizei width,
    123                                                     GLsizei height,
    124                                                     GLenum internalformat,
    125                                                     GLenum usage);
    126 GL_APICALL void GL_APIENTRY glDestroyImageCHROMIUM(GLuint image_id);
    127 GL_APICALL void GL_APIENTRY glGetImageParameterivCHROMIUM(
    128     GLuint image_id, GLenum pname, GLint* params);
    129 GL_APICALL void* GL_APIENTRY glMapImageCHROMIUM(GLuint image_id);
    130 GL_APICALL void GL_APIENTRY glUnmapImageCHROMIUM(GLuint image_id);
    131 #endif
    132 typedef GLuint(GL_APIENTRYP PFNGLCREATEIMAGECHROMIUMPROC)(
    133     GLsizei width,
    134     GLsizei height,
    135     GLenum internalformat);
    136 typedef void (
    137     GL_APIENTRYP PFNGLDESTROYIMAGECHROMIUMPROC) (GLuint image_id);
    138 typedef void (
    139     GL_APIENTRYP PFNGLGETIMAGEPARAMETERIVCHROMIUMPROC) (
    140     GLuint image_id, GLenum pname, GLint* params);
    141 typedef void* (GL_APIENTRYP PFNGLMAPIMAGECHROMIUMPROC) (
    142     GLuint image_id, GLenum access);
    143 typedef 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
    158 GL_APICALL void* GL_APIENTRY glMapBufferSubDataCHROMIUM(
    159     GLuint target, GLintptr offset, GLsizeiptr size, GLenum access);
    160 GL_APICALL void GL_APIENTRY glUnmapBufferSubDataCHROMIUM(const void* mem);
    161 GL_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);
    164 GL_APICALL void GL_APIENTRY glUnmapTexSubImage2DCHROMIUM(const void* mem);
    165 #endif
    166 typedef void* (GL_APIENTRYP PFNGLMAPBUFFERSUBDATACHROMIUMPROC) (
    167     GLuint target, GLintptr offset, GLsizeiptr size, GLenum access);
    168 typedef void (
    169     GL_APIENTRYP PFNGLUNMAPBUFFERSUBDATACHROMIUMPROC) (const void* mem);
    170 typedef void* (GL_APIENTRYP PFNGLMAPTEXSUBIMAGE2DCHROMIUMPROC) (
    171     GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width,
    172     GLsizei height, GLenum format, GLenum type, GLenum access);
    173 typedef 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
    181 GL_APICALL const GLchar* GL_APIENTRY glGetRequestableExtensionsCHROMIUM();
    182 GL_APICALL void GL_APIENTRY glRequestExtensionCHROMIUM(const char* extension);
    183 #endif
    184 typedef const GLchar* (GL_APIENTRYP PFNGLGETREQUESTABLEEXTENSIONSCHROMIUMPROC) (
    185     );
    186 typedef 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
    204 GL_APICALL void GL_APIENTRY glBindTexImage2DCHROMIUM(
    205     GLenum target, GLint imageId);
    206 GL_APICALL void GL_APIENTRY glReleaseTexImage2DCHROMIUM(
    207     GLenum target, GLint imageId);
    208 #endif
    209 typedef void (GL_APIENTRYP PFNGLBINDTEXIMAGE2DCHROMIUMPROC) (
    210     GLenum target, GLint imageId);
    211 typedef 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
    219 GL_APICALL void GL_APIENTRY glRateLimitOffscreenContextCHROMIUM();
    220 #endif
    221 typedef 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
    228 GL_APICALL void GL_APIENTRY glPostSubBufferCHROMIUM(
    229     GLint x, GLint y, GLint width, GLint height);
    230 #endif
    231 typedef 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
    239 GL_APICALL void GL_APIENTRY glBindUniformLocationCHROMIUM(
    240     GLuint program, GLint location, const char* name);
    241 #endif
    242 typedef 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
    261 GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleCHROMIUM (GLenum, GLsizei, GLenum, GLsizei, GLsizei);
    262 GL_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
    264 typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLECHROMIUMPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
    265 typedef 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
    390 GL_APICALL void GL_APIENTRY glCopyTextureCHROMIUM(
    391     GLenum target, GLenum source_id, GLenum dest_id, GLint level,
    392     GLint internalformat, GLenum dest_type);
    393 #endif
    394 typedef 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
    403 GL_APICALL void GL_APIENTRY glLoseContextCHROMIUM(GLenum current, GLenum other);
    404 #endif
    405 typedef 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
    439 GL_APICALL GLboolean GL_APIENTRY glEnableFeatureCHROMIUM(const char* feature);
    440 #endif
    441 typedef 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
    476 GL_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
    480 typedef 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
    490 GL_APICALL void GL_APIENTRY glDrawBuffersEXT(
    491     GLsizei n, const GLenum* bufs);
    492 #endif
    493 typedef 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
    608 GL_APICALL void GL_APIENTRY glResizeCHROMIUM(
    609     GLuint width, GLuint height, GLfloat scale_factor);
    610 #endif
    611 typedef 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
    619 GL_APICALL void GL_APIENTRY glGetMultipleIntegervCHROMIUM(
    620     const GLenum* pnames, GLuint count, GLint* results, GLsizeiptr size);
    621 GL_APICALL void GL_APIENTRY glGetProgramInfoCHROMIUM(
    622     GLuint program, GLsizei bufsize, GLsizei* size, void* info);
    623 #endif
    624 typedef void (GL_APIENTRYP PFNGLGETMULTIPLEINTEGERVCHROMIUMPROC) (
    625    const GLenum* pnames, GLuint count, GLint* results, GLsizeiptr size);
    626 typedef 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
    634 GL_APICALL GLuint GL_APIENTRY glInsertSyncPointCHROMIUM();
    635 GL_APICALL void GL_APIENTRY glWaitSyncPointCHROMIUM(GLuint sync_point);
    636 #endif
    637 typedef GLuint (GL_APIENTRYP PFNGLINSERTSYNCPOINTCHROMIUMPROC) ();
    638 typedef 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
    684 GL_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
    697 typedef 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
    724 GL_APICALL void GL_APIENTRY
    725     glMatrixLoadfCHROMIUM(GLenum mode, const GLfloat* m);
    726 GL_APICALL void GL_APIENTRY glMatrixLoadIdentityCHROMIUM(GLenum mode);
    727 #endif
    728 
    729 typedef void(GL_APIENTRYP PFNGLMATRIXLOADFCHROMIUMPROC)(GLenum matrixMode,
    730                                                         const GLfloat* m);
    731 typedef 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