15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef UI_GL_GL_BINDINGS_H_
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define UI_GL_GL_BINDINGS_H_
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Includes the platform independent and platform dependent GL headers.
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Only include this in cc files. It pulls in system headers, including
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// the X11 headers on linux, which define all kinds of macros that are
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// liable to cause conflicts.
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <GL/gl.h>
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <GL/glext.h>
152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include <EGL/egl.h>
162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include <EGL/eglext.h>
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/logging.h"
19558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch#include "base/threading/thread_local.h"
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "build/build_config.h"
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/gl/gl_export.h"
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// The standard OpenGL native extension headers are also included.
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_WIN)
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <GL/wglext.h>
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#elif defined(OS_MACOSX)
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <OpenGL/OpenGL.h>
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#elif defined(USE_X11)
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <GL/glx.h>
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <GL/glxext.h>
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Undefine some macros defined by X headers. This is why this file should only
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// be included in .cc files.
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#undef Bool
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#undef None
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#undef Status
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// GLES2 defines not part of Desktop GL
412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Shader Precision-Specified Types
422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_LOW_FLOAT                                     0x8DF0
432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_MEDIUM_FLOAT                                  0x8DF1
442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_HIGH_FLOAT                                    0x8DF2
452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_LOW_INT                                       0x8DF3
462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_MEDIUM_INT                                    0x8DF4
472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_HIGH_INT                                      0x8DF5
482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_IMPLEMENTATION_COLOR_READ_TYPE                0x8B9A
492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_IMPLEMENTATION_COLOR_READ_FORMAT              0x8B9B
502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_MAX_FRAGMENT_UNIFORM_VECTORS                  0x8DFD
512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_MAX_VERTEX_UNIFORM_VECTORS                    0x8DFB
522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_MAX_VARYING_VECTORS                           0x8DFC
532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_SHADER_BINARY_FORMATS                         0x8DF8
542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_NUM_SHADER_BINARY_FORMATS                     0x8DF9
552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_SHADER_COMPILER                               0x8DFA
562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_RGB565                                        0x8D62
572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES           0x8B8B
582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_RGB8_OES                                      0x8051
592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_RGBA8_OES                                     0x8058
602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_HALF_FLOAT_OES                                0x8D61
612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// GL_OES_EGL_image_external
632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_TEXTURE_EXTERNAL_OES                          0x8D65
642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_SAMPLER_EXTERNAL_OES                          0x8D66
652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_TEXTURE_BINDING_EXTERNAL_OES                  0x8D67
662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES              0x8D68
672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// GL_ANGLE_translated_shader_source
692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE         0x93A0
702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// GL_CHROMIUM_flipy
722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_UNPACK_FLIP_Y_CHROMIUM                        0x9240
732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM             0x9241
752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_UNPACK_UNPREMULTIPLY_ALPHA_CHROMIUM           0x9242
762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_UNPACK_COLORSPACE_CONVERSION_CHROMIUM         0x9243
77c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch#define GL_BIND_GENERATES_RESOURCE_CHROMIUM              0x9244
782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// GL_CHROMIUM_gpu_memory_manager
802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_TEXTURE_POOL_CHROMIUM                         0x6000
812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_TEXTURE_POOL_MANAGED_CHROMIUM                 0x6001
822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_TEXTURE_POOL_UNMANAGED_CHROMIUM               0x6002
832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// GL_ANGLE_pack_reverse_row_order
852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_PACK_REVERSE_ROW_ORDER_ANGLE                  0x93A4
862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// GL_ANGLE_texture_usage
882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_TEXTURE_USAGE_ANGLE                           0x93A2
892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_FRAMEBUFFER_ATTACHMENT_ANGLE                  0x93A3
902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// GL_EXT_texture_storage
922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_TEXTURE_IMMUTABLE_FORMAT_EXT                  0x912F
932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_ALPHA8_EXT                                    0x803C
942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_LUMINANCE8_EXT                                0x8040
952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_LUMINANCE8_ALPHA8_EXT                         0x8045
962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_RGBA32F_EXT                                   0x8814
972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_RGB32F_EXT                                    0x8815
982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_ALPHA32F_EXT                                  0x8816
992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_LUMINANCE32F_EXT                              0x8818
1002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_LUMINANCE_ALPHA32F_EXT                        0x8819
1012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_RGBA16F_EXT                                   0x881A
1022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_RGB16F_EXT                                    0x881B
1032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_ALPHA16F_EXT                                  0x881C
1042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_LUMINANCE16F_EXT                              0x881E
1052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_LUMINANCE_ALPHA16F_EXT                        0x881F
1062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_BGRA8_EXT                                     0x93A1
1072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// GL_ANGLE_instanced_arrays
1092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE             0x88FE
1102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// GL_EXT_occlusion_query_boolean
1122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_ANY_SAMPLES_PASSED_EXT                        0x8C2F
1132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT           0x8D6A
1142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_CURRENT_QUERY_EXT                             0x8865
1152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_QUERY_RESULT_EXT                              0x8866
1162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_QUERY_RESULT_AVAILABLE_EXT                    0x8867
1172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// GL_CHROMIUM_command_buffer_query
1192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_COMMANDS_ISSUED_CHROMIUM                      0x84F2
1202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* GL_CHROMIUM_get_error_query */
1222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_GET_ERROR_QUERY_CHROMIUM                      0x84F3
1232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* GL_CHROMIUM_command_buffer_latency_query */
1252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_LATENCY_QUERY_CHROMIUM                        0x84F4
1262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* GL_CHROMIUM_async_pixel_transfers */
128424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)#define GL_ASYNC_PIXEL_UNPACK_COMPLETED_CHROMIUM         0x84F5
129424c4d7b64af9d0d8fd9624f381f469654d5e3d2Torne (Richard Coles)#define GL_ASYNC_PIXEL_PACK_COMPLETED_CHROMIUM           0x84F6
1302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1310529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch// GL_CHROMIUM_sync_query
1320529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#define GL_COMMANDS_COMPLETED_CHROMIUM                   0x84F7
1330529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
134010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// GL_CHROMIUM_image
135010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#define GL_IMAGE_ROWBYTES_CHROMIUM                       0x78F0
136010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#define GL_IMAGE_MAP_CHROMIUM                            0x78F1
137010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#define GL_IMAGE_SCANOUT_CHROMIUM                        0x78F2
138010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
139116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// GL_CHROMIUM_schedule_overlay_plane
140116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#define GL_OVERLAY_TRANSFORM_NONE_CHROMIUM               0x9245
141116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#define GL_OVERLAY_TRANSFORM_FLIP_HORIZONTAL_CHROMIUM    0x9246
142116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#define GL_OVERLAY_TRANSFORM_FLIP_VERTICAL_CHROMIUM      0x9247
143116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#define GL_OVERLAY_TRANSFORM_ROTATE_90_CHROMIUM          0x9248
144116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#define GL_OVERLAY_TRANSFORM_ROTATE_180_CHROMIUM         0x9249
145116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#define GL_OVERLAY_TRANSFORM_ROTATE_270_CHROMIUM         0x924A
146116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
1472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// GL_OES_texure_3D
1482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_SAMPLER_3D_OES                                0x8B5F
1492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// GL_OES_depth24
1512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_DEPTH_COMPONENT24_OES                         0x81A6
1522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// GL_OES_depth32
1542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_DEPTH_COMPONENT32_OES                         0x81A7
1552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// GL_OES_packed_depth_stencil
1572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef GL_DEPTH24_STENCIL8_OES
1582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_DEPTH24_STENCIL8_OES                          0x88F0
1592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
1602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef GL_DEPTH24_STENCIL8
1622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_DEPTH24_STENCIL8                              0x88F0
1632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
1642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// GL_OES_compressed_ETC1_RGB8_texture
1662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_ETC1_RGB8_OES                                 0x8D64
1672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1685c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// GL_AMD_compressed_ATC_texture
1695c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#define GL_ATC_RGB_AMD                                   0x8C92
1705c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#define GL_ATC_RGBA_EXPLICIT_ALPHA_AMD                   0x8C93
1715c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#define GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD               0x87EE
1725c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu
1735c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// GL_IMG_texture_compression_pvrtc
1745c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG               0x8C00
1755c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#define GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG               0x8C01
1765c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#define GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG              0x8C02
1775c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#define GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG              0x8C03
1785c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu
1792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// GL_OES_vertex_array_object
1802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_VERTEX_ARRAY_BINDING_OES                      0x85B5
1812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// GL_CHROMIUM_pixel_transfer_buffer_object
1832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_PIXEL_UNPACK_TRANSFER_BUFFER_CHROMIUM         0x78EC
184c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#define GL_PIXEL_PACK_TRANSFER_BUFFER_CHROMIUM           0x78ED
185c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#define GL_PIXEL_PACK_TRANSFER_BUFFER_BINDING_CHROMIUM   0x78EE
1862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_PIXEL_UNPACK_TRANSFER_BUFFER_BINDING_CHROMIUM 0x78EF
1872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/* GL_EXT_discard_framebuffer */
1892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef GL_EXT_discard_framebuffer
1902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_COLOR_EXT                                     0x1800
1912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_DEPTH_EXT                                     0x1801
1922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_STENCIL_EXT                                   0x1802
1932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif
1942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
1952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// GL_ARB_get_program_binary
1962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define PROGRAM_BINARY_RETRIEVABLE_HINT                  0x8257
1972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// GL_OES_get_program_binary
1982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_PROGRAM_BINARY_LENGTH_OES                     0x8741
1992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_NUM_PROGRAM_BINARY_FORMATS_OES                0x87FE
2002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_PROGRAM_BINARY_FORMATS_OES                    0x87FF
2012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
2027dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#ifndef GL_EXT_multisampled_render_to_texture
2037dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define GL_RENDERBUFFER_SAMPLES_EXT                      0x8CAB
2047dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT        0x8D56
2057dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define GL_MAX_SAMPLES_EXT                               0x8D57
2067dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT    0x8D6C
2077dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif
2087dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
2097dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#ifndef GL_IMG_multisampled_render_to_texture
2107dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define GL_RENDERBUFFER_SAMPLES_IMG                      0x9133
2117dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG        0x9134
2127dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define GL_MAX_SAMPLES_IMG                               0x9135
2137dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define GL_TEXTURE_SAMPLES_IMG                           0x9136
2147dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif
2152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
2161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#ifndef GL_CHROMIUM_path_rendering
2171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// These match the corresponding values in NV_path_rendering
2181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci// extension, eg tokens with CHROMIUM replaced with NV.
2191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#define GL_PATH_MODELVIEW_MATRIX_CHROMIUM 0x0BA6
2201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#define GL_PATH_PROJECTION_MATRIX_CHROMIUM 0x0BA7
2211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#define GL_PATH_MODELVIEW_CHROMIUM 0x1700
2221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#define GL_PATH_PROJECTION_CHROMIUM 0x1701
2231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#endif
2241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
2251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#ifndef GL_EXT_disjoint_timer_query
2261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#define GL_EXT_disjoint_timer_query 1
2271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#define GL_QUERY_COUNTER_BITS_EXT         0x8864
2281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#define GL_TIME_ELAPSED_EXT               0x88BF
2291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#define GL_TIMESTAMP_EXT                  0x8E28
2301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#define GL_GPU_DISJOINT_EXT               0x8FBB
2311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#endif
2321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
2332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define GL_GLEXT_PROTOTYPES 1
2342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_WIN)
2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define GL_BINDING_CALL WINAPI
2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define GL_BINDING_CALL
2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
2405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define GL_SERVICE_LOG(args) DLOG(INFO) << args;
2425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(NDEBUG)
2435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  #define GL_SERVICE_LOG_CODE_BLOCK(code)
2445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
2455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  #define GL_SERVICE_LOG_CODE_BLOCK(code) code
2465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
2475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Forward declare OSMesa types.
2495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef struct osmesa_context *OSMesaContext;
2505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef void (*OSMESAproc)();
2515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Forward declare EGL types.
2532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)typedef uint64 EGLuint64CHROMIUM;
2545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "gl_bindings_autogen_gl.h"
2565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "gl_bindings_autogen_osmesa.h"
2575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_WIN)
2595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "gl_bindings_autogen_egl.h"
2605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "gl_bindings_autogen_wgl.h"
2615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#elif defined(USE_X11)
2625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "gl_bindings_autogen_egl.h"
2635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "gl_bindings_autogen_glx.h"
26490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#elif defined(USE_OZONE)
26590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#include "gl_bindings_autogen_egl.h"
2665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#elif defined(OS_ANDROID)
2675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "gl_bindings_autogen_egl.h"
2685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
2695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
2705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace gfx {
2715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
272b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)struct GL_EXPORT DriverGL {
2735d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  void InitializeStaticBindings();
2745d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  void InitializeCustomDynamicBindings(GLContext* context);
275b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)  void InitializeDebugBindings();
2765d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  void InitializeNullDrawBindings();
277a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  // TODO(danakj): Remove this when all test suites are using null-draw.
278a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  bool HasInitializedNullDrawBindings();
279a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  bool SetNullDrawBindingsEnabled(bool enabled);
280b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)  void ClearBindings();
281b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)
282b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)  ProcsGL fn;
283b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)  ProcsGL orig_fn;
284b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)  ProcsGL debug_fn;
285b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)  ExtensionsGL ext;
286a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  bool null_draw_bindings_enabled;
287b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)
288b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) private:
2895d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  void InitializeDynamicBindings(GLContext* context);
290b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)};
291b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)
292b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)struct GL_EXPORT DriverOSMESA {
2935d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  void InitializeStaticBindings();
2945d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  void InitializeDynamicBindings(GLContext* context);
295b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)  void InitializeDebugBindings();
296b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)  void ClearBindings();
297b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)
298b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)  ProcsOSMESA fn;
299b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)  ProcsOSMESA debug_fn;
300b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)  ExtensionsOSMESA ext;
301b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)};
302b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)
303b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)#if defined(OS_WIN)
304b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)struct GL_EXPORT DriverWGL {
3055d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  void InitializeStaticBindings();
3065d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  void InitializeDynamicBindings(GLContext* context);
307b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)  void InitializeDebugBindings();
308b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)  void ClearBindings();
309b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)
310b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)  ProcsWGL fn;
311b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)  ProcsWGL debug_fn;
312b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)  ExtensionsWGL ext;
313b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)};
314b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)#endif
315b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)
31690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#if defined(OS_WIN) || defined(USE_X11) || defined(OS_ANDROID) || defined(USE_OZONE)
317b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)struct GL_EXPORT DriverEGL {
3185d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  void InitializeStaticBindings();
3195d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  void InitializeDynamicBindings(GLContext* context);
320b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)  void InitializeDebugBindings();
321b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)  void ClearBindings();
322b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)
323b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)  ProcsEGL fn;
324b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)  ProcsEGL debug_fn;
325b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)  ExtensionsEGL ext;
326b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)};
327b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)#endif
328b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)
329b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)#if defined(USE_X11)
330b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)struct GL_EXPORT DriverGLX {
3315d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  void InitializeStaticBindings();
3325d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  void InitializeDynamicBindings(GLContext* context);
333b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)  void InitializeDebugBindings();
334b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)  void ClearBindings();
335b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)
336b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)  ProcsGLX fn;
337b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)  ProcsGLX debug_fn;
338b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)  ExtensionsGLX ext;
339b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)};
340b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)#endif
341b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)
342558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch// This #define is here to support autogenerated code.
343558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch#define g_current_gl_context g_current_gl_context_tls->Get()
344558790d6acca3451cf3a6b497803a5f07d0bec58Ben MurdochGL_EXPORT extern base::ThreadLocalPointer<GLApi>* g_current_gl_context_tls;
345558790d6acca3451cf3a6b497803a5f07d0bec58Ben Murdoch
3465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)GL_EXPORT extern OSMESAApi* g_current_osmesa_context;
3475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)GL_EXPORT extern DriverGL g_driver_gl;
3485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)GL_EXPORT extern DriverOSMESA g_driver_osmesa;
3495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_WIN)
3515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)GL_EXPORT extern EGLApi* g_current_egl_context;
3535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)GL_EXPORT extern WGLApi* g_current_wgl_context;
3545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)GL_EXPORT extern DriverEGL g_driver_egl;
3555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)GL_EXPORT extern DriverWGL g_driver_wgl;
3565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#elif defined(USE_X11)
3585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)GL_EXPORT extern EGLApi* g_current_egl_context;
3605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)GL_EXPORT extern GLXApi* g_current_glx_context;
3615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)GL_EXPORT extern DriverEGL g_driver_egl;
3625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)GL_EXPORT extern DriverGLX g_driver_glx;
3635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
36490dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)#elif defined(USE_OZONE)
36590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
36690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)GL_EXPORT extern EGLApi* g_current_egl_context;
36790dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)GL_EXPORT extern DriverEGL g_driver_egl;
36890dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)
3695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#elif defined(OS_ANDROID)
3705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)GL_EXPORT extern EGLApi* g_current_egl_context;
3725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)GL_EXPORT extern DriverEGL g_driver_egl;
3735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
3755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace gfx
3775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif  // UI_GL_GL_BINDINGS_H_
379