diff options
author | Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | 2015-10-13 13:24:50 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> | 2015-10-14 10:57:25 +0000 |
commit | af3d4809763ef308f08ced947a73b624729ac7ea (patch) | |
tree | 4402b911e30383f6c6dace1e8cf3b8e85355db3a /chromium/ui/gl | |
parent | 0e8ff63a407fe323e215bb1a2c423c09a4747c8a (diff) | |
download | qtwebengine-chromium-af3d4809763ef308f08ced947a73b624729ac7ea.tar.gz |
BASELINE: Update Chromium to 47.0.2526.14
Also adding in sources needed for spellchecking.
Change-Id: Idd44170fa1616f26315188970a8d5ba7d472b18a
Reviewed-by: Michael BrĂ¼ning <michael.bruning@theqtcompany.com>
Diffstat (limited to 'chromium/ui/gl')
80 files changed, 4711 insertions, 3900 deletions
diff --git a/chromium/ui/gl/BUILD.gn b/chromium/ui/gl/BUILD.gn index f5f4134290b..c63b290d2a2 100644 --- a/chromium/ui/gl/BUILD.gn +++ b/chromium/ui/gl/BUILD.gn @@ -96,14 +96,19 @@ component("gl") { "gpu_switching_manager.h", "gpu_timing.cc", "gpu_timing.h", + "scoped_api.cc", + "scoped_api.h", "scoped_binders.cc", "scoped_binders.h", "scoped_make_current.cc", "scoped_make_current.h", "sync_control_vsync_provider.cc", "sync_control_vsync_provider.h", + "trace_util.cc", + "trace_util.h", ] + configs += [ "//build/config:precompiled_headers" ] defines = [ "GL_IMPLEMENTATION" ] include_dirs = [ @@ -151,10 +156,6 @@ component("gl") { } if (is_linux) { deps += [ "//third_party/libevent" ] - sources += [ - "gl_image_linux_dma_buffer.cc", - "gl_image_linux_dma_buffer.h", - ] } if (use_x11) { sources += [ @@ -214,8 +215,8 @@ component("gl") { "gl_context_cgl.h", "gl_fence_apple.cc", "gl_fence_apple.h", - "gl_image_io_surface.cc", "gl_image_io_surface.h", + "gl_image_io_surface.mm", "scoped_cgl.cc", "scoped_cgl.h", ] @@ -223,6 +224,7 @@ component("gl") { libs = [ "IOSurface.framework", "OpenGL.framework", + "Quartz.framework", ] } if (is_android) { @@ -250,6 +252,8 @@ component("gl") { "gl_context_ozone.cc", "gl_egl_api_implementation.cc", "gl_egl_api_implementation.h", + "gl_image_ozone_native_pixmap.cc", + "gl_image_ozone_native_pixmap.h", "gl_implementation_ozone.cc", "gl_surface_ozone.cc", ] @@ -280,6 +284,36 @@ source_set("gl_unittest_utils") { ] } +source_set("test_support") { + sources = [ + "test/gl_surface_test_support.cc", + "test/gl_surface_test_support.h", + ] + + configs += [ "//third_party/khronos:khronos_headers" ] + + deps = [ + ":gl", + ] + + if (use_x11) { + configs += [ "//build/config/linux:x11" ] + deps += [ + "//ui/gfx/x", + "//ui/platform_window/x11", + ] + } +} + +# TODO(GYP): Delete this after we've converted everything to GN. +# The _run targets exist only for compatibility w/ GYP. +group("gl_unittests_run") { + testonly = true + deps = [ + ":gl_unittests", + ] +} + test("gl_unittests") { sources = [ "gl_api_unittest.cc", @@ -294,11 +328,16 @@ test("gl_unittests") { ] } + if (use_x11) { + sources += [ "glx_api_unittest.cc" ] + } + include_dirs = [ "//third_party/khronos" ] deps = [ ":gl", ":gl_unittest_utils", + ":test_support", "//base", "//base/test:test_support", "//testing/gmock", @@ -313,13 +352,13 @@ if (is_android) { } generate_jni("gl_jni_headers") { - deps = [ - ":surface_jni_headers", - ] sources = [ "../android/java/src/org/chromium/ui/gl/SurfaceTextureListener.java", "../android/java/src/org/chromium/ui/gl/SurfaceTexturePlatformWrapper.java", ] + public_deps = [ + ":surface_jni_headers", + ] jni_package = "ui/gl" } } diff --git a/chromium/ui/gl/android/scoped_java_surface.h b/chromium/ui/gl/android/scoped_java_surface.h index 54ed2a45190..641df64a506 100644 --- a/chromium/ui/gl/android/scoped_java_surface.h +++ b/chromium/ui/gl/android/scoped_java_surface.h @@ -42,10 +42,10 @@ class GL_EXPORT ScopedJavaSurface { ~ScopedJavaSurface(); - // Check whether the surface is an empty one. + // Checks whether the surface is an empty one. bool IsEmpty() const; - // Check whether the surface is hardware protected so that no readback is + // Checks whether the surface is hardware protected so that no readback is // possible. bool is_protected() const { return is_protected_; } diff --git a/chromium/ui/gl/angle_platform_impl.cc b/chromium/ui/gl/angle_platform_impl.cc index f534e98e32d..1f1085b5a45 100644 --- a/chromium/ui/gl/angle_platform_impl.cc +++ b/chromium/ui/gl/angle_platform_impl.cc @@ -29,6 +29,18 @@ const unsigned char* ANGLEPlatformImpl::getTraceCategoryEnabledFlag( return TRACE_EVENT_API_GET_CATEGORY_GROUP_ENABLED(category_group); } +void ANGLEPlatformImpl::logError(const char* errorMessage) { + LOG(ERROR) << errorMessage; +} + +void ANGLEPlatformImpl::logWarning(const char* warningMessage) { + LOG(WARNING) << warningMessage; +} + +void ANGLEPlatformImpl::logInfo(const char* infoMessage) { + LOG(INFO) << infoMessage; +} + angle::Platform::TraceEventHandle ANGLEPlatformImpl::addTraceEvent( char phase, const unsigned char* category_group_enabled, @@ -44,7 +56,7 @@ angle::Platform::TraceEventHandle ANGLEPlatformImpl::addTraceEvent( base::TraceTicks() + base::TimeDelta::FromSecondsD(timestamp); base::trace_event::TraceEventHandle handle = TRACE_EVENT_API_ADD_TRACE_EVENT_WITH_THREAD_ID_AND_TIMESTAMP( - phase, category_group_enabled, name, id, + phase, category_group_enabled, name, id, trace_event_internal::kNoId, base::PlatformThread::CurrentId(), timestamp_tt, num_args, arg_names, arg_types, arg_values, nullptr, flags); angle::Platform::TraceEventHandle result; diff --git a/chromium/ui/gl/angle_platform_impl.h b/chromium/ui/gl/angle_platform_impl.h index 0549e7f511c..61dd0fb1385 100644 --- a/chromium/ui/gl/angle_platform_impl.h +++ b/chromium/ui/gl/angle_platform_impl.h @@ -22,6 +22,9 @@ class ANGLEPlatformImpl : public angle::Platform { // angle::Platform: double currentTime() override; double monotonicallyIncreasingTime() override; + void logError(const char* errorMessage) override; + void logWarning(const char* warningMessage) override; + void logInfo(const char* infoMessage) override; const unsigned char* getTraceCategoryEnabledFlag( const char* category_group) override; TraceEventHandle addTraceEvent(char phase, diff --git a/chromium/ui/gl/generate_bindings.py b/chromium/ui/gl/generate_bindings.py index 2667b24eee0..3cb87b073e8 100755 --- a/chromium/ui/gl/generate_bindings.py +++ b/chromium/ui/gl/generate_bindings.py @@ -36,15 +36,24 @@ array instead of the names array. Each version has the following keys: extensions: Extra Extensions for which the function is bound. Only needed in some cases where the extension cannot be parsed from the headers. - + is_optional: True if the GetProcAddress can return NULL for the + function. This may happen for example when functions + are added to a new version of an extension, but the + extension string is not modified. By default, the function gets its name from the first name in its names or versions array. This can be overridden by supplying a 'known_as' key. + """ GL_FUNCTIONS = [ { 'return_type': 'void', 'names': ['glActiveTexture'], 'arguments': 'GLenum texture', }, { 'return_type': 'void', + 'known_as': 'glApplyFramebufferAttachmentCMAAINTEL', + 'versions': [{ 'name': 'glApplyFramebufferAttachmentCMAAINTEL', + 'extensions': ['GL_INTEL_framebuffer_CMAA'] }], + 'arguments': 'void', }, +{ 'return_type': 'void', 'names': ['glAttachShader'], 'arguments': 'GLuint program, GLuint shader', }, { 'return_type': 'void', @@ -235,6 +244,12 @@ GL_FUNCTIONS = [ 'arguments': 'GLenum target, GLint level, GLint xoffset, GLint yoffset, ' 'GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height', }, +{ 'return_type': 'void', + 'names': ['glCoverFillPathNV'], + 'arguments': 'GLuint path, GLenum coverMode' }, +{ 'return_type': 'void', + 'names': ['glCoverStrokePathNV'], + 'arguments': 'GLuint name, GLenum coverMode' }, { 'return_type': 'GLuint', 'names': ['glCreateProgram'], 'arguments': 'void', }, @@ -260,6 +275,9 @@ GL_FUNCTIONS = [ 'names': ['glDeleteFramebuffersEXT', 'glDeleteFramebuffers'], 'arguments': 'GLsizei n, const GLuint* framebuffers', }, { 'return_type': 'void', + 'names': ['glDeletePathsNV'], + 'arguments': 'GLuint path, GLsizei range' }, +{ 'return_type': 'void', 'names': ['glDeleteProgram'], 'arguments': 'GLuint program', }, { 'return_type': 'void', @@ -438,6 +456,9 @@ GL_FUNCTIONS = [ { 'return_type': 'void', 'names': ['glGenFramebuffersEXT', 'glGenFramebuffers'], 'arguments': 'GLsizei n, GLuint* framebuffers', }, +{ 'return_type': 'GLuint', + 'names': ['glGenPathsNV'], + 'arguments': 'GLsizei range' }, { 'return_type': 'void', 'versions': [{ 'name': 'glGenQueries' }, { 'name': 'glGenQueriesARB', }, @@ -705,6 +726,9 @@ GL_FUNCTIONS = [ 'names': ['glIsFramebufferEXT', 'glIsFramebuffer'], 'arguments': 'GLuint framebuffer', }, { 'return_type': 'GLboolean', + 'names': ['glIsPathNV'], + 'arguments': 'GLuint path' }, +{ 'return_type': 'GLboolean', 'names': ['glIsProgram'], 'arguments': 'GLuint program', }, { 'return_type': 'GLboolean', @@ -771,6 +795,19 @@ GL_FUNCTIONS = [ 'GL_NV_path_rendering'] },], 'arguments': 'GLenum matrixMode' }, { 'return_type': 'void', + 'names': ['glPathCommandsNV'], + 'arguments': 'GLuint path, GLsizei numCommands, const GLubyte* commands, ' + 'GLsizei numCoords, GLenum coordType, const GLvoid* coords' }, +{ 'return_type': 'void', + 'names': ['glPathParameterfNV'], + 'arguments': 'GLuint path, GLenum pname, GLfloat value' }, +{ 'return_type': 'void', + 'names': ['glPathParameteriNV'], + 'arguments': 'GLuint path, GLenum pname, GLint value' }, +{ 'return_type': 'void', + 'names': ['glPathStencilFuncNV'], + 'arguments': 'GLenum func, GLint ref, GLuint mask' }, +{ 'return_type': 'void', 'versions': [{ 'name': 'glPauseTransformFeedback' }], 'arguments': 'void', }, { 'return_type': 'void', @@ -889,6 +926,9 @@ GL_FUNCTIONS = [ }); """, }, { 'return_type': 'void', + 'names': ['glStencilFillPathNV'], + 'arguments': 'GLuint path, GLenum fillMode, GLuint mask' }, +{ 'return_type': 'void', 'names': ['glStencilFunc'], 'arguments': 'GLenum func, GLint ref, GLuint mask', }, { 'return_type': 'void', @@ -906,6 +946,17 @@ GL_FUNCTIONS = [ { 'return_type': 'void', 'names': ['glStencilOpSeparate'], 'arguments': 'GLenum face, GLenum fail, GLenum zfail, GLenum zpass', }, +{ 'return_type': 'void', + 'names': ['glStencilStrokePathNV'], + 'arguments': 'GLuint path, GLint reference, GLuint mask' }, +{ 'return_type': 'void', + 'names': ['glStencilThenCoverFillPathNV'], + 'arguments': 'GLuint path, GLenum fillMode, GLuint mask, GLenum coverMode', + 'is_optional': True, }, +{ 'return_type': 'void', + 'names': ['glStencilThenCoverStrokePathNV'], + 'arguments': 'GLuint path, GLint reference, GLuint mask, GLenum coverMode', + 'is_optional': True, }, { 'return_type': 'GLboolean', 'known_as': 'glTestFenceAPPLE', 'versions': [{ 'name': 'glTestFenceAPPLE', @@ -1905,7 +1956,8 @@ namespace gfx { file.write(' else if (%s) {\n ' % (cond)) WriteFuncBinding(file, known_as, version['name']) - file.write('DCHECK(fn.%sFn);\n' % known_as) + if not 'is_optional' in func or not func['is_optional']: + file.write('DCHECK(fn.%sFn);\n' % known_as) file.write('}\n') i += 1 first_version = False diff --git a/chromium/ui/gl/gl.gyp b/chromium/ui/gl/gl.gyp index 6d4d1f9fc63..f0f026a1ffe 100644 --- a/chromium/ui/gl/gl.gyp +++ b/chromium/ui/gl/gl.gyp @@ -115,12 +115,16 @@ 'gpu_switching_observer.h', 'gpu_timing.cc', 'gpu_timing.h', + 'scoped_api.cc', + 'scoped_api.h', 'scoped_binders.cc', 'scoped_binders.h', 'scoped_make_current.cc', 'scoped_make_current.h', 'sync_control_vsync_provider.cc', 'sync_control_vsync_provider.h', + 'trace_util.cc', + 'trace_util.h', ], 'conditions': [ ['OS in ("win", "android", "linux")', { @@ -150,12 +154,6 @@ 'gl_implementation_osmesa.h', ], }], - ['OS=="linux"', { - 'sources': [ - 'gl_image_linux_dma_buffer.cc', - 'gl_image_linux_dma_buffer.h', - ], - }], ['use_x11 == 1', { 'sources': [ 'gl_bindings_autogen_glx.cc', @@ -225,7 +223,7 @@ 'gl_context_cgl.h', 'gl_fence_apple.cc', 'gl_fence_apple.h', - 'gl_image_io_surface.cc', + 'gl_image_io_surface.mm', 'gl_image_io_surface.h', 'scoped_cgl.cc', 'scoped_cgl.h', @@ -234,6 +232,7 @@ 'libraries': [ '$(SDKROOT)/System/Library/Frameworks/IOSurface.framework', '$(SDKROOT)/System/Library/Frameworks/OpenGL.framework', + '$(SDKROOT)/System/Library/Frameworks/Quartz.framework', ], }, }], @@ -263,6 +262,10 @@ 'sources/': [ ['exclude', '^android/'] ], }], ['use_ozone==1', { + 'sources': [ + 'gl_image_ozone_native_pixmap.cc', + 'gl_image_ozone_native_pixmap.h', + ], 'dependencies': [ '../ozone/ozone.gyp:ozone', '../ozone/ozone.gyp:ozone_base', @@ -291,6 +294,30 @@ 'gpu_timing_fake.h', ], }, + { + 'target_name': 'gl_test_support', + 'type': 'static_library', + 'dependencies': [ + '../../third_party/khronos/khronos.gyp:khronos_headers', + 'gl', + ], + 'include_dirs': [ + '../..', + ], + 'sources': [ + 'test/gl_surface_test_support.cc', + 'test/gl_surface_test_support.h', + ], + 'conditions': [ + ['use_x11==1', { + 'dependencies': [ + '../../build/linux/system.gyp:x11', + '../gfx/x/gfx_x11.gyp:gfx_x11', + '../platform_window/x11/x11_window.gyp:x11_window', + ], + }], + ], + }, ], 'conditions': [ ['OS=="android"' , { diff --git a/chromium/ui/gl/gl.isolate b/chromium/ui/gl/gl.isolate new file mode 100644 index 00000000000..1ca7ef5a86c --- /dev/null +++ b/chromium/ui/gl/gl.isolate @@ -0,0 +1,21 @@ +# Copyright 2015 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +# This isolate expresses the dependency on the default behavior of +# Chromium's OpenGL binding layer. Many targets (in particular test +# targets) that use graphics rely on this layer either implicitly or +# explicitly, but not all of them need a direct dependency on ANGLE, +# especially as ANGLE is being brought up on more platforms. This +# isolate allows these targets to continue to use Chromium's default +# graphics code path, while others can depend directly on ANGLE on +# non-Windows platforms. +{ + # If includes were supported in conditions, we'd prefer to + # conditionally include angle.isolate here only on Windows, rather + # than introducing another isolate for ANGLE on multiple + # platforms. https://github.com/luci/luci-py/issues/230 + 'includes': [ + '../../third_party/angle/angle.isolate', + ], +} diff --git a/chromium/ui/gl/gl_api_unittest.cc b/chromium/ui/gl/gl_api_unittest.cc index d2c9d9db2cb..66c938021c6 100644 --- a/chromium/ui/gl/gl_api_unittest.cc +++ b/chromium/ui/gl/gl_api_unittest.cc @@ -19,7 +19,6 @@ class GLContextFake : public GLContext { GpuPreference gpu_preference) override { return true; } - void Destroy() override {} bool MakeCurrent(GLSurface* surface) override { return true; } void ReleaseCurrent(GLSurface* surface) override {} bool IsCurrent(GLSurface* surface) override { return true; } @@ -37,16 +36,11 @@ class GLApiTest : public testing::Test { public: void SetUp() override { fake_extension_string_ = ""; + fake_version_string_ = ""; num_fake_extension_strings_ = 0; fake_extension_strings_ = nullptr; g_current_gl_context_tls = new base::ThreadLocalPointer<GLApi>; - api_.reset(new RealGLApi()); - - g_driver_gl.ClearBindings(); - g_driver_gl.fn.glGetStringFn = &FakeGetString; - g_driver_gl.fn.glGetStringiFn = &FakeGetStringi; - g_driver_gl.fn.glGetIntegervFn = &FakeGetIntegervFn; SetGLGetProcAddressProc( static_cast<GLGetProcAddressProc>(&FakeGLGetProcAddress)); @@ -62,6 +56,7 @@ class GLApiTest : public testing::Test { SetGLImplementation(kGLImplementationNone); fake_extension_string_ = ""; + fake_version_string_ = ""; num_fake_extension_strings_ = 0; fake_extension_strings_ = nullptr; } @@ -70,6 +65,11 @@ class GLApiTest : public testing::Test { api_.reset(new RealGLApi()); g_current_gl_context_tls->Set(api_.get()); + g_driver_gl.ClearBindings(); + g_driver_gl.fn.glGetStringFn = &FakeGetString; + g_driver_gl.fn.glGetStringiFn = &FakeGetStringi; + g_driver_gl.fn.glGetIntegervFn = &FakeGetIntegervFn; + fake_context_ = new GLContextFake(); if (command_line) api_->InitializeWithCommandLine(&g_driver_gl, command_line); @@ -82,15 +82,19 @@ class GLApiTest : public testing::Test { void SetFakeExtensionString(const char* fake_string) { SetGLImplementation(kGLImplementationDesktopGL); fake_extension_string_ = fake_string; + fake_version_string_ = "2.1"; } void SetFakeExtensionStrings(const char** fake_strings, uint32_t count) { - SetGLImplementation(kGLImplementationDesktopGLCoreProfile); + SetGLImplementation(kGLImplementationDesktopGL); num_fake_extension_strings_ = count; fake_extension_strings_ = fake_strings; + fake_version_string_ = "3.0"; } static const GLubyte* GL_BINDING_CALL FakeGetString(GLenum name) { + if (name == GL_VERSION) + return reinterpret_cast<const GLubyte*>(fake_version_string_); return reinterpret_cast<const GLubyte*>(fake_extension_string_); } @@ -122,6 +126,7 @@ class GLApiTest : public testing::Test { protected: static const char* fake_extension_string_; + static const char* fake_version_string_; static uint32_t num_fake_extension_strings_; static const char** fake_extension_strings_; @@ -132,6 +137,7 @@ class GLApiTest : public testing::Test { }; const char* GLApiTest::fake_extension_string_ = ""; +const char* GLApiTest::fake_version_string_ = ""; uint32_t GLApiTest::num_fake_extension_strings_ = 0; const char** GLApiTest::fake_extension_strings_ = nullptr; diff --git a/chromium/ui/gl/gl_bindings.h b/chromium/ui/gl/gl_bindings.h index 878e7767440..09725985b28 100644 --- a/chromium/ui/gl/gl_bindings.h +++ b/chromium/ui/gl/gl_bindings.h @@ -126,7 +126,6 @@ #define GL_LATENCY_QUERY_CHROMIUM 0x6007 /* GL_CHROMIUM_async_pixel_transfers */ -#define GL_ASYNC_PIXEL_UNPACK_COMPLETED_CHROMIUM 0x6005 #define GL_ASYNC_PIXEL_PACK_COMPLETED_CHROMIUM 0x6006 // GL_CHROMIUM_sync_query @@ -139,6 +138,9 @@ // GL_CHROMIUM_yuv_420_image #define GL_RGB_YUV_420_CHROMIUM 0x78FA +// GL_CHROMIUM_ycbcr_422_image +#define GL_RGB_YCBCR_422_CHROMIUM 0x78FB + // GL_CHROMIUM_schedule_overlay_plane #define GL_OVERLAY_TRANSFORM_NONE_CHROMIUM 0x9245 #define GL_OVERLAY_TRANSFORM_FLIP_HORIZONTAL_CHROMIUM 0x9246 @@ -224,12 +226,36 @@ #endif #ifndef GL_CHROMIUM_path_rendering +#define GL_CHROMIUM_path_rendering 1 // These match the corresponding values in NV_path_rendering // extension, eg tokens with CHROMIUM replaced with NV. #define GL_PATH_MODELVIEW_MATRIX_CHROMIUM 0x0BA6 #define GL_PATH_PROJECTION_MATRIX_CHROMIUM 0x0BA7 #define GL_PATH_MODELVIEW_CHROMIUM 0x1700 #define GL_PATH_PROJECTION_CHROMIUM 0x1701 +#define GL_FLAT_CHROMIUM 0x1D00 +#define GL_CLOSE_PATH_CHROMIUM 0x00 +#define GL_MOVE_TO_CHROMIUM 0x02 +#define GL_LINE_TO_CHROMIUM 0x04 +#define GL_QUADRATIC_CURVE_TO_CHROMIUM 0x0A +#define GL_CUBIC_CURVE_TO_CHROMIUM 0x0C +#define GL_CONIC_CURVE_TO_CHROMIUM 0x1A +#define GL_PATH_STROKE_WIDTH_CHROMIUM 0x9075 +#define GL_PATH_END_CAPS_CHROMIUM 0x9076 +#define GL_PATH_JOIN_STYLE_CHROMIUM 0x9079 +#define GL_PATH_MITER_LIMIT_CHROMIUM 0x907a +#define GL_PATH_STROKE_BOUND_CHROMIUM 0x9086 +#define GL_COUNT_UP_CHROMIUM 0x9088 +#define GL_COUNT_DOWN_CHROMIUM 0x9089 +#define GL_CONVEX_HULL_CHROMIUM 0x908B +#define GL_BOUNDING_BOX_CHROMIUM 0x908D +#define GL_SQUARE_CHROMIUM 0x90a3 +#define GL_ROUND_CHROMIUM 0x90a4 +#define GL_BEVEL_CHROMIUM 0x90a6 +#define GL_MITER_REVERT_CHROMIUM 0x90a7 +#define GL_PATH_STENCIL_FUNC_CHROMIUM 0x90B7 +#define GL_PATH_STENCIL_REF_CHROMIUM 0x90B8 +#define GL_PATH_STENCIL_VALUE_MASK_CHROMIUM 0x90B9 #endif #ifndef GL_KHR_blend_equation_advanced diff --git a/chromium/ui/gl/gl_bindings_api_autogen_gl.h b/chromium/ui/gl/gl_bindings_api_autogen_gl.h index 81160fc250c..aabf919edf1 100644 --- a/chromium/ui/gl/gl_bindings_api_autogen_gl.h +++ b/chromium/ui/gl/gl_bindings_api_autogen_gl.h @@ -9,6 +9,7 @@ // DO NOT EDIT! void glActiveTextureFn(GLenum texture) override; +void glApplyFramebufferAttachmentCMAAINTELFn(void) override; void glAttachShaderFn(GLuint program, GLuint shader) override; void glBeginQueryFn(GLenum target, GLuint id) override; void glBeginTransformFeedbackFn(GLenum primitiveMode) override; @@ -182,6 +183,8 @@ void glCopyTexSubImage3DFn(GLenum target, GLint y, GLsizei width, GLsizei height) override; +void glCoverFillPathNVFn(GLuint path, GLenum coverMode) override; +void glCoverStrokePathNVFn(GLuint name, GLenum coverMode) override; GLuint glCreateProgramFn(void) override; GLuint glCreateShaderFn(GLenum type) override; void glCullFaceFn(GLenum mode) override; @@ -189,6 +192,7 @@ void glDeleteBuffersARBFn(GLsizei n, const GLuint* buffers) override; void glDeleteFencesAPPLEFn(GLsizei n, const GLuint* fences) override; void glDeleteFencesNVFn(GLsizei n, const GLuint* fences) override; void glDeleteFramebuffersEXTFn(GLsizei n, const GLuint* framebuffers) override; +void glDeletePathsNVFn(GLuint path, GLsizei range) override; void glDeleteProgramFn(GLuint program) override; void glDeleteQueriesFn(GLsizei n, const GLuint* ids) override; void glDeleteRenderbuffersEXTFn(GLsizei n, @@ -279,6 +283,7 @@ void glGenerateMipmapEXTFn(GLenum target) override; void glGenFencesAPPLEFn(GLsizei n, GLuint* fences) override; void glGenFencesNVFn(GLsizei n, GLuint* fences) override; void glGenFramebuffersEXTFn(GLsizei n, GLuint* framebuffers) override; +GLuint glGenPathsNVFn(GLsizei range) override; void glGenQueriesFn(GLsizei n, GLuint* ids) override; void glGenRenderbuffersEXTFn(GLsizei n, GLuint* renderbuffers) override; void glGenSamplersFn(GLsizei n, GLuint* samplers) override; @@ -446,6 +451,7 @@ GLboolean glIsEnabledFn(GLenum cap) override; GLboolean glIsFenceAPPLEFn(GLuint fence) override; GLboolean glIsFenceNVFn(GLuint fence) override; GLboolean glIsFramebufferEXTFn(GLuint framebuffer) override; +GLboolean glIsPathNVFn(GLuint path) override; GLboolean glIsProgramFn(GLuint program) override; GLboolean glIsQueryFn(GLuint query) override; GLboolean glIsRenderbufferEXTFn(GLuint renderbuffer) override; @@ -464,6 +470,15 @@ void* glMapBufferRangeFn(GLenum target, GLbitfield access) override; void glMatrixLoadfEXTFn(GLenum matrixMode, const GLfloat* m) override; void glMatrixLoadIdentityEXTFn(GLenum matrixMode) override; +void glPathCommandsNVFn(GLuint path, + GLsizei numCommands, + const GLubyte* commands, + GLsizei numCoords, + GLenum coordType, + const GLvoid* coords) override; +void glPathParameterfNVFn(GLuint path, GLenum pname, GLfloat value) override; +void glPathParameteriNVFn(GLuint path, GLenum pname, GLint value) override; +void glPathStencilFuncNVFn(GLenum func, GLint ref, GLuint mask) override; void glPauseTransformFeedbackFn(void) override; void glPixelStoreiFn(GLenum pname, GLint param) override; void glPointParameteriFn(GLenum pname, GLint param) override; @@ -533,6 +548,7 @@ void glShaderSourceFn(GLuint shader, GLsizei count, const char* const* str, const GLint* length) override; +void glStencilFillPathNVFn(GLuint path, GLenum fillMode, GLuint mask) override; void glStencilFuncFn(GLenum func, GLint ref, GLuint mask) override; void glStencilFuncSeparateFn(GLenum face, GLenum func, @@ -545,6 +561,17 @@ void glStencilOpSeparateFn(GLenum face, GLenum fail, GLenum zfail, GLenum zpass) override; +void glStencilStrokePathNVFn(GLuint path, + GLint reference, + GLuint mask) override; +void glStencilThenCoverFillPathNVFn(GLuint path, + GLenum fillMode, + GLuint mask, + GLenum coverMode) override; +void glStencilThenCoverStrokePathNVFn(GLuint path, + GLint reference, + GLuint mask, + GLenum coverMode) override; GLboolean glTestFenceAPPLEFn(GLuint fence) override; GLboolean glTestFenceNVFn(GLuint fence) override; void glTexImage2DFn(GLenum target, diff --git a/chromium/ui/gl/gl_bindings_autogen_egl.cc b/chromium/ui/gl/gl_bindings_autogen_egl.cc index 981dc8fa7b7..f0f5443bb7c 100644 --- a/chromium/ui/gl/gl_bindings_autogen_egl.cc +++ b/chromium/ui/gl/gl_bindings_autogen_egl.cc @@ -215,8 +215,9 @@ static EGLBoolean GL_BINDING_CALL Debug_eglBindAPI(EGLenum api) { return result; } -static EGLBoolean GL_BINDING_CALL -Debug_eglBindTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer) { +static EGLBoolean GL_BINDING_CALL Debug_eglBindTexImage(EGLDisplay dpy, + EGLSurface surface, + EGLint buffer) { GL_SERVICE_LOG("eglBindTexImage" << "(" << dpy << ", " << surface << ", " << buffer << ")"); EGLBoolean result = @@ -367,8 +368,8 @@ Debug_eglCreateWindowSurface(EGLDisplay dpy, return result; } -static EGLBoolean GL_BINDING_CALL -Debug_eglDestroyContext(EGLDisplay dpy, EGLContext ctx) { +static EGLBoolean GL_BINDING_CALL Debug_eglDestroyContext(EGLDisplay dpy, + EGLContext ctx) { GL_SERVICE_LOG("eglDestroyContext" << "(" << dpy << ", " << ctx << ")"); EGLBoolean result = g_driver_egl.debug_fn.eglDestroyContextFn(dpy, ctx); @@ -376,8 +377,8 @@ Debug_eglDestroyContext(EGLDisplay dpy, EGLContext ctx) { return result; } -static EGLBoolean GL_BINDING_CALL -Debug_eglDestroyImageKHR(EGLDisplay dpy, EGLImageKHR image) { +static EGLBoolean GL_BINDING_CALL Debug_eglDestroyImageKHR(EGLDisplay dpy, + EGLImageKHR image) { GL_SERVICE_LOG("eglDestroyImageKHR" << "(" << dpy << ", " << image << ")"); EGLBoolean result = g_driver_egl.debug_fn.eglDestroyImageKHRFn(dpy, image); @@ -385,8 +386,8 @@ Debug_eglDestroyImageKHR(EGLDisplay dpy, EGLImageKHR image) { return result; } -static EGLBoolean GL_BINDING_CALL -Debug_eglDestroySurface(EGLDisplay dpy, EGLSurface surface) { +static EGLBoolean GL_BINDING_CALL Debug_eglDestroySurface(EGLDisplay dpy, + EGLSurface surface) { GL_SERVICE_LOG("eglDestroySurface" << "(" << dpy << ", " << surface << ")"); EGLBoolean result = g_driver_egl.debug_fn.eglDestroySurfaceFn(dpy, surface); @@ -394,8 +395,8 @@ Debug_eglDestroySurface(EGLDisplay dpy, EGLSurface surface) { return result; } -static EGLBoolean GL_BINDING_CALL -Debug_eglDestroySyncKHR(EGLDisplay dpy, EGLSyncKHR sync) { +static EGLBoolean GL_BINDING_CALL Debug_eglDestroySyncKHR(EGLDisplay dpy, + EGLSyncKHR sync) { GL_SERVICE_LOG("eglDestroySyncKHR" << "(" << dpy << ", " << sync << ")"); EGLBoolean result = g_driver_egl.debug_fn.eglDestroySyncKHRFn(dpy, sync); @@ -528,8 +529,9 @@ Debug_eglGetSyncValuesCHROMIUM(EGLDisplay dpy, return result; } -static EGLBoolean GL_BINDING_CALL -Debug_eglInitialize(EGLDisplay dpy, EGLint* major, EGLint* minor) { +static EGLBoolean GL_BINDING_CALL Debug_eglInitialize(EGLDisplay dpy, + EGLint* major, + EGLint* minor) { GL_SERVICE_LOG("eglInitialize" << "(" << dpy << ", " << static_cast<const void*>(major) << ", " << static_cast<const void*>(minor) << ")"); @@ -588,8 +590,8 @@ static EGLBoolean GL_BINDING_CALL Debug_eglQueryContext(EGLDisplay dpy, return result; } -static const char* GL_BINDING_CALL -Debug_eglQueryString(EGLDisplay dpy, EGLint name) { +static const char* GL_BINDING_CALL Debug_eglQueryString(EGLDisplay dpy, + EGLint name) { GL_SERVICE_LOG("eglQueryString" << "(" << dpy << ", " << name << ")"); const char* result = g_driver_egl.debug_fn.eglQueryStringFn(dpy, name); @@ -624,8 +626,9 @@ Debug_eglQuerySurfacePointerANGLE(EGLDisplay dpy, return result; } -static EGLBoolean GL_BINDING_CALL -Debug_eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer) { +static EGLBoolean GL_BINDING_CALL Debug_eglReleaseTexImage(EGLDisplay dpy, + EGLSurface surface, + EGLint buffer) { GL_SERVICE_LOG("eglReleaseTexImage" << "(" << dpy << ", " << surface << ", " << buffer << ")"); EGLBoolean result = @@ -656,8 +659,8 @@ static EGLBoolean GL_BINDING_CALL Debug_eglSurfaceAttrib(EGLDisplay dpy, return result; } -static EGLBoolean GL_BINDING_CALL -Debug_eglSwapBuffers(EGLDisplay dpy, EGLSurface surface) { +static EGLBoolean GL_BINDING_CALL Debug_eglSwapBuffers(EGLDisplay dpy, + EGLSurface surface) { GL_SERVICE_LOG("eglSwapBuffers" << "(" << dpy << ", " << surface << ")"); EGLBoolean result = g_driver_egl.debug_fn.eglSwapBuffersFn(dpy, surface); @@ -665,8 +668,8 @@ Debug_eglSwapBuffers(EGLDisplay dpy, EGLSurface surface) { return result; } -static EGLBoolean GL_BINDING_CALL -Debug_eglSwapInterval(EGLDisplay dpy, EGLint interval) { +static EGLBoolean GL_BINDING_CALL Debug_eglSwapInterval(EGLDisplay dpy, + EGLint interval) { GL_SERVICE_LOG("eglSwapInterval" << "(" << dpy << ", " << interval << ")"); EGLBoolean result = g_driver_egl.debug_fn.eglSwapIntervalFn(dpy, interval); @@ -708,8 +711,9 @@ static EGLBoolean GL_BINDING_CALL Debug_eglWaitNative(EGLint engine) { return result; } -static EGLint GL_BINDING_CALL -Debug_eglWaitSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags) { +static EGLint GL_BINDING_CALL Debug_eglWaitSyncKHR(EGLDisplay dpy, + EGLSyncKHR sync, + EGLint flags) { GL_SERVICE_LOG("eglWaitSyncKHR" << "(" << dpy << ", " << sync << ", " << flags << ")"); EGLint result = g_driver_egl.debug_fn.eglWaitSyncKHRFn(dpy, sync, flags); diff --git a/chromium/ui/gl/gl_bindings_autogen_gl.cc b/chromium/ui/gl/gl_bindings_autogen_gl.cc index 391fe6f8929..2917d993b96 100644 --- a/chromium/ui/gl/gl_bindings_autogen_gl.cc +++ b/chromium/ui/gl/gl_bindings_autogen_gl.cc @@ -26,6 +26,7 @@ DriverGL g_driver_gl; void DriverGL::InitializeStaticBindings() { fn.glActiveTextureFn = reinterpret_cast<glActiveTextureProc>( GetGLProcAddress("glActiveTexture")); + fn.glApplyFramebufferAttachmentCMAAINTELFn = 0; fn.glAttachShaderFn = reinterpret_cast<glAttachShaderProc>(GetGLProcAddress("glAttachShader")); fn.glBeginQueryFn = 0; @@ -94,6 +95,8 @@ void DriverGL::InitializeStaticBindings() { fn.glCopyTexSubImage2DFn = reinterpret_cast<glCopyTexSubImage2DProc>( GetGLProcAddress("glCopyTexSubImage2D")); fn.glCopyTexSubImage3DFn = 0; + fn.glCoverFillPathNVFn = 0; + fn.glCoverStrokePathNVFn = 0; fn.glCreateProgramFn = reinterpret_cast<glCreateProgramProc>( GetGLProcAddress("glCreateProgram")); fn.glCreateShaderFn = @@ -105,6 +108,7 @@ void DriverGL::InitializeStaticBindings() { fn.glDeleteFencesAPPLEFn = 0; fn.glDeleteFencesNVFn = 0; fn.glDeleteFramebuffersEXTFn = 0; + fn.glDeletePathsNVFn = 0; fn.glDeleteProgramFn = reinterpret_cast<glDeleteProgramProc>( GetGLProcAddress("glDeleteProgram")); fn.glDeleteQueriesFn = 0; @@ -168,6 +172,7 @@ void DriverGL::InitializeStaticBindings() { fn.glGenFencesAPPLEFn = 0; fn.glGenFencesNVFn = 0; fn.glGenFramebuffersEXTFn = 0; + fn.glGenPathsNVFn = 0; fn.glGenQueriesFn = 0; fn.glGenRenderbuffersEXTFn = 0; fn.glGenSamplersFn = 0; @@ -265,6 +270,7 @@ void DriverGL::InitializeStaticBindings() { fn.glIsFenceAPPLEFn = 0; fn.glIsFenceNVFn = 0; fn.glIsFramebufferEXTFn = 0; + fn.glIsPathNVFn = 0; fn.glIsProgramFn = reinterpret_cast<glIsProgramProc>(GetGLProcAddress("glIsProgram")); fn.glIsQueryFn = 0; @@ -285,6 +291,10 @@ void DriverGL::InitializeStaticBindings() { fn.glMapBufferRangeFn = 0; fn.glMatrixLoadfEXTFn = 0; fn.glMatrixLoadIdentityEXTFn = 0; + fn.glPathCommandsNVFn = 0; + fn.glPathParameterfNVFn = 0; + fn.glPathParameteriNVFn = 0; + fn.glPathStencilFuncNVFn = 0; fn.glPauseTransformFeedbackFn = 0; fn.glPixelStoreiFn = reinterpret_cast<glPixelStoreiProc>(GetGLProcAddress("glPixelStorei")); @@ -319,6 +329,7 @@ void DriverGL::InitializeStaticBindings() { fn.glShaderBinaryFn = 0; fn.glShaderSourceFn = reinterpret_cast<glShaderSourceProc>(GetGLProcAddress("glShaderSource")); + fn.glStencilFillPathNVFn = 0; fn.glStencilFuncFn = reinterpret_cast<glStencilFuncProc>(GetGLProcAddress("glStencilFunc")); fn.glStencilFuncSeparateFn = reinterpret_cast<glStencilFuncSeparateProc>( @@ -331,6 +342,9 @@ void DriverGL::InitializeStaticBindings() { reinterpret_cast<glStencilOpProc>(GetGLProcAddress("glStencilOp")); fn.glStencilOpSeparateFn = reinterpret_cast<glStencilOpSeparateProc>( GetGLProcAddress("glStencilOpSeparate")); + fn.glStencilStrokePathNVFn = 0; + fn.glStencilThenCoverFillPathNVFn = 0; + fn.glStencilThenCoverStrokePathNVFn = 0; fn.glTestFenceAPPLEFn = 0; fn.glTestFenceNVFn = 0; fn.glTexImage2DFn = @@ -515,6 +529,8 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) { ext.b_GL_IMG_multisampled_render_to_texture = extensions.find("GL_IMG_multisampled_render_to_texture ") != std::string::npos; + ext.b_GL_INTEL_framebuffer_CMAA = + extensions.find("GL_INTEL_framebuffer_CMAA ") != std::string::npos; ext.b_GL_KHR_blend_equation_advanced = extensions.find("GL_KHR_blend_equation_advanced ") != std::string::npos; ext.b_GL_KHR_robustness = @@ -533,6 +549,14 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) { ext.b_GL_OES_vertex_array_object = extensions.find("GL_OES_vertex_array_object ") != std::string::npos; + debug_fn.glApplyFramebufferAttachmentCMAAINTELFn = 0; + if (ext.b_GL_INTEL_framebuffer_CMAA) { + fn.glApplyFramebufferAttachmentCMAAINTELFn = + reinterpret_cast<glApplyFramebufferAttachmentCMAAINTELProc>( + GetGLProcAddress("glApplyFramebufferAttachmentCMAAINTEL")); + DCHECK(fn.glApplyFramebufferAttachmentCMAAINTELFn); + } + debug_fn.glBeginQueryFn = 0; if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) { fn.glBeginQueryFn = @@ -764,6 +788,20 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) { DCHECK(fn.glCopyTexSubImage3DFn); } + debug_fn.glCoverFillPathNVFn = 0; + if (ext.b_GL_NV_path_rendering) { + fn.glCoverFillPathNVFn = reinterpret_cast<glCoverFillPathNVProc>( + GetGLProcAddress("glCoverFillPathNV")); + DCHECK(fn.glCoverFillPathNVFn); + } + + debug_fn.glCoverStrokePathNVFn = 0; + if (ext.b_GL_NV_path_rendering) { + fn.glCoverStrokePathNVFn = reinterpret_cast<glCoverStrokePathNVProc>( + GetGLProcAddress("glCoverStrokePathNV")); + DCHECK(fn.glCoverStrokePathNVFn); + } + debug_fn.glDeleteFencesAPPLEFn = 0; if (ext.b_GL_APPLE_fence) { fn.glDeleteFencesAPPLEFn = reinterpret_cast<glDeleteFencesAPPLEProc>( @@ -791,6 +829,13 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) { DCHECK(fn.glDeleteFramebuffersEXTFn); } + debug_fn.glDeletePathsNVFn = 0; + if (ext.b_GL_NV_path_rendering) { + fn.glDeletePathsNVFn = reinterpret_cast<glDeletePathsNVProc>( + GetGLProcAddress("glDeletePathsNV")); + DCHECK(fn.glDeletePathsNVFn); + } + debug_fn.glDeleteQueriesFn = 0; if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) { fn.glDeleteQueriesFn = reinterpret_cast<glDeleteQueriesProc>( @@ -1097,6 +1142,13 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) { DCHECK(fn.glGenFramebuffersEXTFn); } + debug_fn.glGenPathsNVFn = 0; + if (ext.b_GL_NV_path_rendering) { + fn.glGenPathsNVFn = + reinterpret_cast<glGenPathsNVProc>(GetGLProcAddress("glGenPathsNV")); + DCHECK(fn.glGenPathsNVFn); + } + debug_fn.glGenQueriesFn = 0; if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) { fn.glGenQueriesFn = @@ -1491,6 +1543,13 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) { DCHECK(fn.glIsFramebufferEXTFn); } + debug_fn.glIsPathNVFn = 0; + if (ext.b_GL_NV_path_rendering) { + fn.glIsPathNVFn = + reinterpret_cast<glIsPathNVProc>(GetGLProcAddress("glIsPathNV")); + DCHECK(fn.glIsPathNVFn); + } + debug_fn.glIsQueryFn = 0; if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) { fn.glIsQueryFn = @@ -1594,6 +1653,34 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) { DCHECK(fn.glMatrixLoadIdentityEXTFn); } + debug_fn.glPathCommandsNVFn = 0; + if (ext.b_GL_NV_path_rendering) { + fn.glPathCommandsNVFn = reinterpret_cast<glPathCommandsNVProc>( + GetGLProcAddress("glPathCommandsNV")); + DCHECK(fn.glPathCommandsNVFn); + } + + debug_fn.glPathParameterfNVFn = 0; + if (ext.b_GL_NV_path_rendering) { + fn.glPathParameterfNVFn = reinterpret_cast<glPathParameterfNVProc>( + GetGLProcAddress("glPathParameterfNV")); + DCHECK(fn.glPathParameterfNVFn); + } + + debug_fn.glPathParameteriNVFn = 0; + if (ext.b_GL_NV_path_rendering) { + fn.glPathParameteriNVFn = reinterpret_cast<glPathParameteriNVProc>( + GetGLProcAddress("glPathParameteriNV")); + DCHECK(fn.glPathParameteriNVFn); + } + + debug_fn.glPathStencilFuncNVFn = 0; + if (ext.b_GL_NV_path_rendering) { + fn.glPathStencilFuncNVFn = reinterpret_cast<glPathStencilFuncNVProc>( + GetGLProcAddress("glPathStencilFuncNV")); + DCHECK(fn.glPathStencilFuncNVFn); + } + debug_fn.glPauseTransformFeedbackFn = 0; if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(4u, 0u)) { fn.glPauseTransformFeedbackFn = @@ -1772,6 +1859,34 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) { DCHECK(fn.glShaderBinaryFn); } + debug_fn.glStencilFillPathNVFn = 0; + if (ext.b_GL_NV_path_rendering) { + fn.glStencilFillPathNVFn = reinterpret_cast<glStencilFillPathNVProc>( + GetGLProcAddress("glStencilFillPathNV")); + DCHECK(fn.glStencilFillPathNVFn); + } + + debug_fn.glStencilStrokePathNVFn = 0; + if (ext.b_GL_NV_path_rendering) { + fn.glStencilStrokePathNVFn = reinterpret_cast<glStencilStrokePathNVProc>( + GetGLProcAddress("glStencilStrokePathNV")); + DCHECK(fn.glStencilStrokePathNVFn); + } + + debug_fn.glStencilThenCoverFillPathNVFn = 0; + if (ext.b_GL_NV_path_rendering) { + fn.glStencilThenCoverFillPathNVFn = + reinterpret_cast<glStencilThenCoverFillPathNVProc>( + GetGLProcAddress("glStencilThenCoverFillPathNV")); + } + + debug_fn.glStencilThenCoverStrokePathNVFn = 0; + if (ext.b_GL_NV_path_rendering) { + fn.glStencilThenCoverStrokePathNVFn = + reinterpret_cast<glStencilThenCoverStrokePathNVProc>( + GetGLProcAddress("glStencilThenCoverStrokePathNV")); + } + debug_fn.glTestFenceAPPLEFn = 0; if (ext.b_GL_APPLE_fence) { fn.glTestFenceAPPLEFn = reinterpret_cast<glTestFenceAPPLEProc>( @@ -2016,8 +2131,15 @@ static void GL_BINDING_CALL Debug_glActiveTexture(GLenum texture) { g_driver_gl.debug_fn.glActiveTextureFn(texture); } -static void GL_BINDING_CALL -Debug_glAttachShader(GLuint program, GLuint shader) { +static void GL_BINDING_CALL Debug_glApplyFramebufferAttachmentCMAAINTEL(void) { + GL_SERVICE_LOG("glApplyFramebufferAttachmentCMAAINTEL" + << "(" + << ")"); + g_driver_gl.debug_fn.glApplyFramebufferAttachmentCMAAINTELFn(); +} + +static void GL_BINDING_CALL Debug_glAttachShader(GLuint program, + GLuint shader) { GL_SERVICE_LOG("glAttachShader" << "(" << program << ", " << shader << ")"); g_driver_gl.debug_fn.glAttachShaderFn(program, shader); @@ -2036,8 +2158,9 @@ Debug_glBeginTransformFeedback(GLenum primitiveMode) { g_driver_gl.debug_fn.glBeginTransformFeedbackFn(primitiveMode); } -static void GL_BINDING_CALL -Debug_glBindAttribLocation(GLuint program, GLuint index, const char* name) { +static void GL_BINDING_CALL Debug_glBindAttribLocation(GLuint program, + GLuint index, + const char* name) { GL_SERVICE_LOG("glBindAttribLocation" << "(" << program << ", " << index << ", " << name << ")"); g_driver_gl.debug_fn.glBindAttribLocationFn(program, index, name); @@ -2050,8 +2173,9 @@ static void GL_BINDING_CALL Debug_glBindBuffer(GLenum target, GLuint buffer) { g_driver_gl.debug_fn.glBindBufferFn(target, buffer); } -static void GL_BINDING_CALL -Debug_glBindBufferBase(GLenum target, GLuint index, GLuint buffer) { +static void GL_BINDING_CALL Debug_glBindBufferBase(GLenum target, + GLuint index, + GLuint buffer) { GL_SERVICE_LOG("glBindBufferBase" << "(" << GLEnums::GetStringEnum(target) << ", " << index << ", " << buffer << ")"); @@ -2090,16 +2214,16 @@ Debug_glBindFragDataLocationIndexed(GLuint program, index, name); } -static void GL_BINDING_CALL -Debug_glBindFramebufferEXT(GLenum target, GLuint framebuffer) { +static void GL_BINDING_CALL Debug_glBindFramebufferEXT(GLenum target, + GLuint framebuffer) { GL_SERVICE_LOG("glBindFramebufferEXT" << "(" << GLEnums::GetStringEnum(target) << ", " << framebuffer << ")"); g_driver_gl.debug_fn.glBindFramebufferEXTFn(target, framebuffer); } -static void GL_BINDING_CALL -Debug_glBindRenderbufferEXT(GLenum target, GLuint renderbuffer) { +static void GL_BINDING_CALL Debug_glBindRenderbufferEXT(GLenum target, + GLuint renderbuffer) { GL_SERVICE_LOG("glBindRenderbufferEXT" << "(" << GLEnums::GetStringEnum(target) << ", " << renderbuffer << ")"); @@ -2119,8 +2243,8 @@ static void GL_BINDING_CALL Debug_glBindTexture(GLenum target, GLuint texture) { g_driver_gl.debug_fn.glBindTextureFn(target, texture); } -static void GL_BINDING_CALL -Debug_glBindTransformFeedback(GLenum target, GLuint id) { +static void GL_BINDING_CALL Debug_glBindTransformFeedback(GLenum target, + GLuint id) { GL_SERVICE_LOG("glBindTransformFeedback" << "(" << GLEnums::GetStringEnum(target) << ", " << id << ")"); g_driver_gl.debug_fn.glBindTransformFeedbackFn(target, id); @@ -2155,8 +2279,8 @@ static void GL_BINDING_CALL Debug_glBlendEquation(GLenum mode) { g_driver_gl.debug_fn.glBlendEquationFn(mode); } -static void GL_BINDING_CALL -Debug_glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha) { +static void GL_BINDING_CALL Debug_glBlendEquationSeparate(GLenum modeRGB, + GLenum modeAlpha) { GL_SERVICE_LOG("glBlendEquationSeparate" << "(" << GLEnums::GetStringEnum(modeRGB) << ", " << GLEnums::GetStringEnum(modeAlpha) << ")"); @@ -2288,24 +2412,27 @@ static void GL_BINDING_CALL Debug_glClearBufferfi(GLenum buffer, g_driver_gl.debug_fn.glClearBufferfiFn(buffer, drawbuffer, depth, stencil); } -static void GL_BINDING_CALL -Debug_glClearBufferfv(GLenum buffer, GLint drawbuffer, const GLfloat* value) { +static void GL_BINDING_CALL Debug_glClearBufferfv(GLenum buffer, + GLint drawbuffer, + const GLfloat* value) { GL_SERVICE_LOG("glClearBufferfv" << "(" << GLEnums::GetStringEnum(buffer) << ", " << drawbuffer << ", " << static_cast<const void*>(value) << ")"); g_driver_gl.debug_fn.glClearBufferfvFn(buffer, drawbuffer, value); } -static void GL_BINDING_CALL -Debug_glClearBufferiv(GLenum buffer, GLint drawbuffer, const GLint* value) { +static void GL_BINDING_CALL Debug_glClearBufferiv(GLenum buffer, + GLint drawbuffer, + const GLint* value) { GL_SERVICE_LOG("glClearBufferiv" << "(" << GLEnums::GetStringEnum(buffer) << ", " << drawbuffer << ", " << static_cast<const void*>(value) << ")"); g_driver_gl.debug_fn.glClearBufferivFn(buffer, drawbuffer, value); } -static void GL_BINDING_CALL -Debug_glClearBufferuiv(GLenum buffer, GLint drawbuffer, const GLuint* value) { +static void GL_BINDING_CALL Debug_glClearBufferuiv(GLenum buffer, + GLint drawbuffer, + const GLuint* value) { GL_SERVICE_LOG("glClearBufferuiv" << "(" << GLEnums::GetStringEnum(buffer) << ", " << drawbuffer << ", " << static_cast<const void*>(value) << ")"); @@ -2340,8 +2467,9 @@ static void GL_BINDING_CALL Debug_glClearStencil(GLint s) { g_driver_gl.debug_fn.glClearStencilFn(s); } -static GLenum GL_BINDING_CALL -Debug_glClientWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout) { +static GLenum GL_BINDING_CALL Debug_glClientWaitSync(GLsync sync, + GLbitfield flags, + GLuint64 timeout) { GL_SERVICE_LOG("glClientWaitSync" << "(" << sync << ", " << flags << ", " << timeout << ")"); GLenum result = g_driver_gl.debug_fn.glClientWaitSyncFn(sync, flags, timeout); @@ -2508,6 +2636,22 @@ static void GL_BINDING_CALL Debug_glCopyTexSubImage3D(GLenum target, zoffset, x, y, width, height); } +static void GL_BINDING_CALL Debug_glCoverFillPathNV(GLuint path, + GLenum coverMode) { + GL_SERVICE_LOG("glCoverFillPathNV" + << "(" << path << ", " << GLEnums::GetStringEnum(coverMode) + << ")"); + g_driver_gl.debug_fn.glCoverFillPathNVFn(path, coverMode); +} + +static void GL_BINDING_CALL Debug_glCoverStrokePathNV(GLuint name, + GLenum coverMode) { + GL_SERVICE_LOG("glCoverStrokePathNV" + << "(" << name << ", " << GLEnums::GetStringEnum(coverMode) + << ")"); + g_driver_gl.debug_fn.glCoverStrokePathNVFn(name, coverMode); +} + static GLuint GL_BINDING_CALL Debug_glCreateProgram(void) { GL_SERVICE_LOG("glCreateProgram" << "(" @@ -2531,24 +2675,24 @@ static void GL_BINDING_CALL Debug_glCullFace(GLenum mode) { g_driver_gl.debug_fn.glCullFaceFn(mode); } -static void GL_BINDING_CALL -Debug_glDeleteBuffersARB(GLsizei n, const GLuint* buffers) { +static void GL_BINDING_CALL Debug_glDeleteBuffersARB(GLsizei n, + const GLuint* buffers) { GL_SERVICE_LOG("glDeleteBuffersARB" << "(" << n << ", " << static_cast<const void*>(buffers) << ")"); g_driver_gl.debug_fn.glDeleteBuffersARBFn(n, buffers); } -static void GL_BINDING_CALL -Debug_glDeleteFencesAPPLE(GLsizei n, const GLuint* fences) { +static void GL_BINDING_CALL Debug_glDeleteFencesAPPLE(GLsizei n, + const GLuint* fences) { GL_SERVICE_LOG("glDeleteFencesAPPLE" << "(" << n << ", " << static_cast<const void*>(fences) << ")"); g_driver_gl.debug_fn.glDeleteFencesAPPLEFn(n, fences); } -static void GL_BINDING_CALL -Debug_glDeleteFencesNV(GLsizei n, const GLuint* fences) { +static void GL_BINDING_CALL Debug_glDeleteFencesNV(GLsizei n, + const GLuint* fences) { GL_SERVICE_LOG("glDeleteFencesNV" << "(" << n << ", " << static_cast<const void*>(fences) << ")"); @@ -2563,14 +2707,20 @@ Debug_glDeleteFramebuffersEXT(GLsizei n, const GLuint* framebuffers) { g_driver_gl.debug_fn.glDeleteFramebuffersEXTFn(n, framebuffers); } +static void GL_BINDING_CALL Debug_glDeletePathsNV(GLuint path, GLsizei range) { + GL_SERVICE_LOG("glDeletePathsNV" + << "(" << path << ", " << range << ")"); + g_driver_gl.debug_fn.glDeletePathsNVFn(path, range); +} + static void GL_BINDING_CALL Debug_glDeleteProgram(GLuint program) { GL_SERVICE_LOG("glDeleteProgram" << "(" << program << ")"); g_driver_gl.debug_fn.glDeleteProgramFn(program); } -static void GL_BINDING_CALL -Debug_glDeleteQueries(GLsizei n, const GLuint* ids) { +static void GL_BINDING_CALL Debug_glDeleteQueries(GLsizei n, + const GLuint* ids) { GL_SERVICE_LOG("glDeleteQueries" << "(" << n << ", " << static_cast<const void*>(ids) << ")"); g_driver_gl.debug_fn.glDeleteQueriesFn(n, ids); @@ -2584,8 +2734,8 @@ Debug_glDeleteRenderbuffersEXT(GLsizei n, const GLuint* renderbuffers) { g_driver_gl.debug_fn.glDeleteRenderbuffersEXTFn(n, renderbuffers); } -static void GL_BINDING_CALL -Debug_glDeleteSamplers(GLsizei n, const GLuint* samplers) { +static void GL_BINDING_CALL Debug_glDeleteSamplers(GLsizei n, + const GLuint* samplers) { GL_SERVICE_LOG("glDeleteSamplers" << "(" << n << ", " << static_cast<const void*>(samplers) << ")"); @@ -2604,8 +2754,8 @@ static void GL_BINDING_CALL Debug_glDeleteSync(GLsync sync) { g_driver_gl.debug_fn.glDeleteSyncFn(sync); } -static void GL_BINDING_CALL -Debug_glDeleteTextures(GLsizei n, const GLuint* textures) { +static void GL_BINDING_CALL Debug_glDeleteTextures(GLsizei n, + const GLuint* textures) { GL_SERVICE_LOG("glDeleteTextures" << "(" << n << ", " << static_cast<const void*>(textures) << ")"); @@ -2651,8 +2801,8 @@ static void GL_BINDING_CALL Debug_glDepthRangef(GLclampf zNear, GLclampf zFar) { g_driver_gl.debug_fn.glDepthRangefFn(zNear, zFar); } -static void GL_BINDING_CALL -Debug_glDetachShader(GLuint program, GLuint shader) { +static void GL_BINDING_CALL Debug_glDetachShader(GLuint program, + GLuint shader) { GL_SERVICE_LOG("glDetachShader" << "(" << program << ", " << shader << ")"); g_driver_gl.debug_fn.glDetachShaderFn(program, shader); @@ -2682,8 +2832,9 @@ Debug_glDiscardFramebufferEXT(GLenum target, attachments); } -static void GL_BINDING_CALL -Debug_glDrawArrays(GLenum mode, GLint first, GLsizei count) { +static void GL_BINDING_CALL Debug_glDrawArrays(GLenum mode, + GLint first, + GLsizei count) { GL_SERVICE_LOG("glDrawArrays" << "(" << GLEnums::GetStringEnum(mode) << ", " << first << ", " << count << ")"); @@ -2708,8 +2859,8 @@ static void GL_BINDING_CALL Debug_glDrawBuffer(GLenum mode) { g_driver_gl.debug_fn.glDrawBufferFn(mode); } -static void GL_BINDING_CALL -Debug_glDrawBuffersARB(GLsizei n, const GLenum* bufs) { +static void GL_BINDING_CALL Debug_glDrawBuffersARB(GLsizei n, + const GLenum* bufs) { GL_SERVICE_LOG("glDrawBuffersARB" << "(" << n << ", " << static_cast<const void*>(bufs) << ")"); g_driver_gl.debug_fn.glDrawBuffersARBFn(n, bufs); @@ -2797,8 +2948,8 @@ static void GL_BINDING_CALL Debug_glEndTransformFeedback(void) { g_driver_gl.debug_fn.glEndTransformFeedbackFn(); } -static GLsync GL_BINDING_CALL -Debug_glFenceSync(GLenum condition, GLbitfield flags) { +static GLsync GL_BINDING_CALL Debug_glFenceSync(GLenum condition, + GLbitfield flags) { GL_SERVICE_LOG("glFenceSync" << "(" << GLEnums::GetStringEnum(condition) << ", " << flags << ")"); @@ -2948,22 +3099,30 @@ static void GL_BINDING_CALL Debug_glGenFencesNV(GLsizei n, GLuint* fences) { g_driver_gl.debug_fn.glGenFencesNVFn(n, fences); } -static void GL_BINDING_CALL -Debug_glGenFramebuffersEXT(GLsizei n, GLuint* framebuffers) { +static void GL_BINDING_CALL Debug_glGenFramebuffersEXT(GLsizei n, + GLuint* framebuffers) { GL_SERVICE_LOG("glGenFramebuffersEXT" << "(" << n << ", " << static_cast<const void*>(framebuffers) << ")"); g_driver_gl.debug_fn.glGenFramebuffersEXTFn(n, framebuffers); } +static GLuint GL_BINDING_CALL Debug_glGenPathsNV(GLsizei range) { + GL_SERVICE_LOG("glGenPathsNV" + << "(" << range << ")"); + GLuint result = g_driver_gl.debug_fn.glGenPathsNVFn(range); + GL_SERVICE_LOG("GL_RESULT: " << result); + return result; +} + static void GL_BINDING_CALL Debug_glGenQueries(GLsizei n, GLuint* ids) { GL_SERVICE_LOG("glGenQueries" << "(" << n << ", " << static_cast<const void*>(ids) << ")"); g_driver_gl.debug_fn.glGenQueriesFn(n, ids); } -static void GL_BINDING_CALL -Debug_glGenRenderbuffersEXT(GLsizei n, GLuint* renderbuffers) { +static void GL_BINDING_CALL Debug_glGenRenderbuffersEXT(GLsizei n, + GLuint* renderbuffers) { GL_SERVICE_LOG("glGenRenderbuffersEXT" << "(" << n << ", " << static_cast<const void*>(renderbuffers) << ")"); @@ -2984,15 +3143,15 @@ static void GL_BINDING_CALL Debug_glGenTextures(GLsizei n, GLuint* textures) { g_driver_gl.debug_fn.glGenTexturesFn(n, textures); } -static void GL_BINDING_CALL -Debug_glGenTransformFeedbacks(GLsizei n, GLuint* ids) { +static void GL_BINDING_CALL Debug_glGenTransformFeedbacks(GLsizei n, + GLuint* ids) { GL_SERVICE_LOG("glGenTransformFeedbacks" << "(" << n << ", " << static_cast<const void*>(ids) << ")"); g_driver_gl.debug_fn.glGenTransformFeedbacksFn(n, ids); } -static void GL_BINDING_CALL -Debug_glGenVertexArraysOES(GLsizei n, GLuint* arrays) { +static void GL_BINDING_CALL Debug_glGenVertexArraysOES(GLsizei n, + GLuint* arrays) { GL_SERVICE_LOG("glGenVertexArraysOES" << "(" << n << ", " << static_cast<const void*>(arrays) << ")"); @@ -3087,8 +3246,8 @@ static void GL_BINDING_CALL Debug_glGetAttachedShaders(GLuint program, shaders); } -static GLint GL_BINDING_CALL -Debug_glGetAttribLocation(GLuint program, const char* name) { +static GLint GL_BINDING_CALL Debug_glGetAttribLocation(GLuint program, + const char* name) { GL_SERVICE_LOG("glGetAttribLocation" << "(" << program << ", " << name << ")"); GLint result = g_driver_gl.debug_fn.glGetAttribLocationFn(program, name); @@ -3096,16 +3255,17 @@ Debug_glGetAttribLocation(GLuint program, const char* name) { return result; } -static void GL_BINDING_CALL -Debug_glGetBooleanv(GLenum pname, GLboolean* params) { +static void GL_BINDING_CALL Debug_glGetBooleanv(GLenum pname, + GLboolean* params) { GL_SERVICE_LOG("glGetBooleanv" << "(" << GLEnums::GetStringEnum(pname) << ", " << static_cast<const void*>(params) << ")"); g_driver_gl.debug_fn.glGetBooleanvFn(pname, params); } -static void GL_BINDING_CALL -Debug_glGetBufferParameteriv(GLenum target, GLenum pname, GLint* params) { +static void GL_BINDING_CALL Debug_glGetBufferParameteriv(GLenum target, + GLenum pname, + GLint* params) { GL_SERVICE_LOG("glGetBufferParameteriv" << "(" << GLEnums::GetStringEnum(target) << ", " << GLEnums::GetStringEnum(pname) << ", " @@ -3124,8 +3284,9 @@ static GLenum GL_BINDING_CALL Debug_glGetError(void) { return result; } -static void GL_BINDING_CALL -Debug_glGetFenceivNV(GLuint fence, GLenum pname, GLint* params) { +static void GL_BINDING_CALL Debug_glGetFenceivNV(GLuint fence, + GLenum pname, + GLint* params) { GL_SERVICE_LOG("glGetFenceivNV" << "(" << fence << ", " << GLEnums::GetStringEnum(pname) << ", " << static_cast<const void*>(params) << ")"); @@ -3139,8 +3300,8 @@ static void GL_BINDING_CALL Debug_glGetFloatv(GLenum pname, GLfloat* params) { g_driver_gl.debug_fn.glGetFloatvFn(pname, params); } -static GLint GL_BINDING_CALL -Debug_glGetFragDataLocation(GLuint program, const char* name) { +static GLint GL_BINDING_CALL Debug_glGetFragDataLocation(GLuint program, + const char* name) { GL_SERVICE_LOG("glGetFragDataLocation" << "(" << program << ", " << name << ")"); GLint result = g_driver_gl.debug_fn.glGetFragDataLocationFn(program, name); @@ -3171,24 +3332,26 @@ static GLenum GL_BINDING_CALL Debug_glGetGraphicsResetStatusARB(void) { return result; } -static void GL_BINDING_CALL -Debug_glGetInteger64i_v(GLenum target, GLuint index, GLint64* data) { +static void GL_BINDING_CALL Debug_glGetInteger64i_v(GLenum target, + GLuint index, + GLint64* data) { GL_SERVICE_LOG("glGetInteger64i_v" << "(" << GLEnums::GetStringEnum(target) << ", " << index << ", " << static_cast<const void*>(data) << ")"); g_driver_gl.debug_fn.glGetInteger64i_vFn(target, index, data); } -static void GL_BINDING_CALL -Debug_glGetInteger64v(GLenum pname, GLint64* params) { +static void GL_BINDING_CALL Debug_glGetInteger64v(GLenum pname, + GLint64* params) { GL_SERVICE_LOG("glGetInteger64v" << "(" << GLEnums::GetStringEnum(pname) << ", " << static_cast<const void*>(params) << ")"); g_driver_gl.debug_fn.glGetInteger64vFn(pname, params); } -static void GL_BINDING_CALL -Debug_glGetIntegeri_v(GLenum target, GLuint index, GLint* data) { +static void GL_BINDING_CALL Debug_glGetIntegeri_v(GLenum target, + GLuint index, + GLint* data) { GL_SERVICE_LOG("glGetIntegeri_v" << "(" << GLEnums::GetStringEnum(target) << ", " << index << ", " << static_cast<const void*>(data) << ")"); @@ -3241,8 +3404,9 @@ static void GL_BINDING_CALL Debug_glGetProgramInfoLog(GLuint program, g_driver_gl.debug_fn.glGetProgramInfoLogFn(program, bufsize, length, infolog); } -static void GL_BINDING_CALL -Debug_glGetProgramiv(GLuint program, GLenum pname, GLint* params) { +static void GL_BINDING_CALL Debug_glGetProgramiv(GLuint program, + GLenum pname, + GLint* params) { GL_SERVICE_LOG("glGetProgramiv" << "(" << program << ", " << GLEnums::GetStringEnum(pname) << ", " << static_cast<const void*>(params) << ")"); @@ -3263,8 +3427,9 @@ Debug_glGetProgramResourceLocation(GLuint program, return result; } -static void GL_BINDING_CALL -Debug_glGetQueryiv(GLenum target, GLenum pname, GLint* params) { +static void GL_BINDING_CALL Debug_glGetQueryiv(GLenum target, + GLenum pname, + GLint* params) { GL_SERVICE_LOG("glGetQueryiv" << "(" << GLEnums::GetStringEnum(target) << ", " << GLEnums::GetStringEnum(pname) << ", " @@ -3272,32 +3437,36 @@ Debug_glGetQueryiv(GLenum target, GLenum pname, GLint* params) { g_driver_gl.debug_fn.glGetQueryivFn(target, pname, params); } -static void GL_BINDING_CALL -Debug_glGetQueryObjecti64v(GLuint id, GLenum pname, GLint64* params) { +static void GL_BINDING_CALL Debug_glGetQueryObjecti64v(GLuint id, + GLenum pname, + GLint64* params) { GL_SERVICE_LOG("glGetQueryObjecti64v" << "(" << id << ", " << GLEnums::GetStringEnum(pname) << ", " << static_cast<const void*>(params) << ")"); g_driver_gl.debug_fn.glGetQueryObjecti64vFn(id, pname, params); } -static void GL_BINDING_CALL -Debug_glGetQueryObjectiv(GLuint id, GLenum pname, GLint* params) { +static void GL_BINDING_CALL Debug_glGetQueryObjectiv(GLuint id, + GLenum pname, + GLint* params) { GL_SERVICE_LOG("glGetQueryObjectiv" << "(" << id << ", " << GLEnums::GetStringEnum(pname) << ", " << static_cast<const void*>(params) << ")"); g_driver_gl.debug_fn.glGetQueryObjectivFn(id, pname, params); } -static void GL_BINDING_CALL -Debug_glGetQueryObjectui64v(GLuint id, GLenum pname, GLuint64* params) { +static void GL_BINDING_CALL Debug_glGetQueryObjectui64v(GLuint id, + GLenum pname, + GLuint64* params) { GL_SERVICE_LOG("glGetQueryObjectui64v" << "(" << id << ", " << GLEnums::GetStringEnum(pname) << ", " << static_cast<const void*>(params) << ")"); g_driver_gl.debug_fn.glGetQueryObjectui64vFn(id, pname, params); } -static void GL_BINDING_CALL -Debug_glGetQueryObjectuiv(GLuint id, GLenum pname, GLuint* params) { +static void GL_BINDING_CALL Debug_glGetQueryObjectuiv(GLuint id, + GLenum pname, + GLuint* params) { GL_SERVICE_LOG("glGetQueryObjectuiv" << "(" << id << ", " << GLEnums::GetStringEnum(pname) << ", " << static_cast<const void*>(params) << ")"); @@ -3315,16 +3484,18 @@ Debug_glGetRenderbufferParameterivEXT(GLenum target, g_driver_gl.debug_fn.glGetRenderbufferParameterivEXTFn(target, pname, params); } -static void GL_BINDING_CALL -Debug_glGetSamplerParameterfv(GLuint sampler, GLenum pname, GLfloat* params) { +static void GL_BINDING_CALL Debug_glGetSamplerParameterfv(GLuint sampler, + GLenum pname, + GLfloat* params) { GL_SERVICE_LOG("glGetSamplerParameterfv" << "(" << sampler << ", " << GLEnums::GetStringEnum(pname) << ", " << static_cast<const void*>(params) << ")"); g_driver_gl.debug_fn.glGetSamplerParameterfvFn(sampler, pname, params); } -static void GL_BINDING_CALL -Debug_glGetSamplerParameteriv(GLuint sampler, GLenum pname, GLint* params) { +static void GL_BINDING_CALL Debug_glGetSamplerParameteriv(GLuint sampler, + GLenum pname, + GLint* params) { GL_SERVICE_LOG("glGetSamplerParameteriv" << "(" << sampler << ", " << GLEnums::GetStringEnum(pname) << ", " << static_cast<const void*>(params) << ")"); @@ -3342,8 +3513,9 @@ static void GL_BINDING_CALL Debug_glGetShaderInfoLog(GLuint shader, g_driver_gl.debug_fn.glGetShaderInfoLogFn(shader, bufsize, length, infolog); } -static void GL_BINDING_CALL -Debug_glGetShaderiv(GLuint shader, GLenum pname, GLint* params) { +static void GL_BINDING_CALL Debug_glGetShaderiv(GLuint shader, + GLenum pname, + GLint* params) { GL_SERVICE_LOG("glGetShaderiv" << "(" << shader << ", " << GLEnums::GetStringEnum(pname) << ", " << static_cast<const void*>(params) << ")"); @@ -3383,8 +3555,8 @@ static const GLubyte* GL_BINDING_CALL Debug_glGetString(GLenum name) { return result; } -static const GLubyte* GL_BINDING_CALL -Debug_glGetStringi(GLenum name, GLuint index) { +static const GLubyte* GL_BINDING_CALL Debug_glGetStringi(GLenum name, + GLuint index) { GL_SERVICE_LOG("glGetStringi" << "(" << GLEnums::GetStringEnum(name) << ", " << index << ")"); @@ -3427,8 +3599,9 @@ static void GL_BINDING_CALL Debug_glGetTexLevelParameteriv(GLenum target, g_driver_gl.debug_fn.glGetTexLevelParameterivFn(target, level, pname, params); } -static void GL_BINDING_CALL -Debug_glGetTexParameterfv(GLenum target, GLenum pname, GLfloat* params) { +static void GL_BINDING_CALL Debug_glGetTexParameterfv(GLenum target, + GLenum pname, + GLfloat* params) { GL_SERVICE_LOG("glGetTexParameterfv" << "(" << GLEnums::GetStringEnum(target) << ", " << GLEnums::GetStringEnum(pname) << ", " @@ -3436,8 +3609,9 @@ Debug_glGetTexParameterfv(GLenum target, GLenum pname, GLfloat* params) { g_driver_gl.debug_fn.glGetTexParameterfvFn(target, pname, params); } -static void GL_BINDING_CALL -Debug_glGetTexParameteriv(GLenum target, GLenum pname, GLint* params) { +static void GL_BINDING_CALL Debug_glGetTexParameteriv(GLenum target, + GLenum pname, + GLint* params) { GL_SERVICE_LOG("glGetTexParameteriv" << "(" << GLEnums::GetStringEnum(target) << ", " << GLEnums::GetStringEnum(pname) << ", " @@ -3485,8 +3659,9 @@ Debug_glGetUniformBlockIndex(GLuint program, const char* uniformBlockName) { return result; } -static void GL_BINDING_CALL -Debug_glGetUniformfv(GLuint program, GLint location, GLfloat* params) { +static void GL_BINDING_CALL Debug_glGetUniformfv(GLuint program, + GLint location, + GLfloat* params) { GL_SERVICE_LOG("glGetUniformfv" << "(" << program << ", " << location << ", " << static_cast<const void*>(params) << ")"); @@ -3506,16 +3681,17 @@ Debug_glGetUniformIndices(GLuint program, uniformNames, uniformIndices); } -static void GL_BINDING_CALL -Debug_glGetUniformiv(GLuint program, GLint location, GLint* params) { +static void GL_BINDING_CALL Debug_glGetUniformiv(GLuint program, + GLint location, + GLint* params) { GL_SERVICE_LOG("glGetUniformiv" << "(" << program << ", " << location << ", " << static_cast<const void*>(params) << ")"); g_driver_gl.debug_fn.glGetUniformivFn(program, location, params); } -static GLint GL_BINDING_CALL -Debug_glGetUniformLocation(GLuint program, const char* name) { +static GLint GL_BINDING_CALL Debug_glGetUniformLocation(GLuint program, + const char* name) { GL_SERVICE_LOG("glGetUniformLocation" << "(" << program << ", " << name << ")"); GLint result = g_driver_gl.debug_fn.glGetUniformLocationFn(program, name); @@ -3523,32 +3699,36 @@ Debug_glGetUniformLocation(GLuint program, const char* name) { return result; } -static void GL_BINDING_CALL -Debug_glGetUniformuiv(GLuint program, GLint location, GLuint* params) { +static void GL_BINDING_CALL Debug_glGetUniformuiv(GLuint program, + GLint location, + GLuint* params) { GL_SERVICE_LOG("glGetUniformuiv" << "(" << program << ", " << location << ", " << static_cast<const void*>(params) << ")"); g_driver_gl.debug_fn.glGetUniformuivFn(program, location, params); } -static void GL_BINDING_CALL -Debug_glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat* params) { +static void GL_BINDING_CALL Debug_glGetVertexAttribfv(GLuint index, + GLenum pname, + GLfloat* params) { GL_SERVICE_LOG("glGetVertexAttribfv" << "(" << index << ", " << GLEnums::GetStringEnum(pname) << ", " << static_cast<const void*>(params) << ")"); g_driver_gl.debug_fn.glGetVertexAttribfvFn(index, pname, params); } -static void GL_BINDING_CALL -Debug_glGetVertexAttribiv(GLuint index, GLenum pname, GLint* params) { +static void GL_BINDING_CALL Debug_glGetVertexAttribiv(GLuint index, + GLenum pname, + GLint* params) { GL_SERVICE_LOG("glGetVertexAttribiv" << "(" << index << ", " << GLEnums::GetStringEnum(pname) << ", " << static_cast<const void*>(params) << ")"); g_driver_gl.debug_fn.glGetVertexAttribivFn(index, pname, params); } -static void GL_BINDING_CALL -Debug_glGetVertexAttribPointerv(GLuint index, GLenum pname, void** pointer) { +static void GL_BINDING_CALL Debug_glGetVertexAttribPointerv(GLuint index, + GLenum pname, + void** pointer) { GL_SERVICE_LOG("glGetVertexAttribPointerv" << "(" << index << ", " << GLEnums::GetStringEnum(pname) << ", " << pointer << ")"); @@ -3562,8 +3742,8 @@ static void GL_BINDING_CALL Debug_glHint(GLenum target, GLenum mode) { g_driver_gl.debug_fn.glHintFn(target, mode); } -static void GL_BINDING_CALL -Debug_glInsertEventMarkerEXT(GLsizei length, const char* marker) { +static void GL_BINDING_CALL Debug_glInsertEventMarkerEXT(GLsizei length, + const char* marker) { GL_SERVICE_LOG("glInsertEventMarkerEXT" << "(" << length << ", " << marker << ")"); g_driver_gl.debug_fn.glInsertEventMarkerEXTFn(length, marker); @@ -3638,6 +3818,14 @@ static GLboolean GL_BINDING_CALL Debug_glIsFramebufferEXT(GLuint framebuffer) { return result; } +static GLboolean GL_BINDING_CALL Debug_glIsPathNV(GLuint path) { + GL_SERVICE_LOG("glIsPathNV" + << "(" << path << ")"); + GLboolean result = g_driver_gl.debug_fn.glIsPathNVFn(path); + GL_SERVICE_LOG("GL_RESULT: " << result); + return result; +} + static GLboolean GL_BINDING_CALL Debug_glIsProgram(GLuint program) { GL_SERVICE_LOG("glIsProgram" << "(" << program << ")"); @@ -3745,8 +3933,8 @@ static void* GL_BINDING_CALL Debug_glMapBufferRange(GLenum target, return result; } -static void GL_BINDING_CALL -Debug_glMatrixLoadfEXT(GLenum matrixMode, const GLfloat* m) { +static void GL_BINDING_CALL Debug_glMatrixLoadfEXT(GLenum matrixMode, + const GLfloat* m) { GL_SERVICE_LOG("glMatrixLoadfEXT" << "(" << GLEnums::GetStringEnum(matrixMode) << ", " << static_cast<const void*>(m) << ")"); @@ -3759,6 +3947,48 @@ static void GL_BINDING_CALL Debug_glMatrixLoadIdentityEXT(GLenum matrixMode) { g_driver_gl.debug_fn.glMatrixLoadIdentityEXTFn(matrixMode); } +static void GL_BINDING_CALL Debug_glPathCommandsNV(GLuint path, + GLsizei numCommands, + const GLubyte* commands, + GLsizei numCoords, + GLenum coordType, + const GLvoid* coords) { + GL_SERVICE_LOG("glPathCommandsNV" + << "(" << path << ", " << numCommands << ", " + << static_cast<const void*>(commands) << ", " << numCoords + << ", " << GLEnums::GetStringEnum(coordType) << ", " + << static_cast<const void*>(coords) << ")"); + g_driver_gl.debug_fn.glPathCommandsNVFn(path, numCommands, commands, + numCoords, coordType, coords); +} + +static void GL_BINDING_CALL Debug_glPathParameterfNV(GLuint path, + GLenum pname, + GLfloat value) { + GL_SERVICE_LOG("glPathParameterfNV" + << "(" << path << ", " << GLEnums::GetStringEnum(pname) << ", " + << value << ")"); + g_driver_gl.debug_fn.glPathParameterfNVFn(path, pname, value); +} + +static void GL_BINDING_CALL Debug_glPathParameteriNV(GLuint path, + GLenum pname, + GLint value) { + GL_SERVICE_LOG("glPathParameteriNV" + << "(" << path << ", " << GLEnums::GetStringEnum(pname) << ", " + << value << ")"); + g_driver_gl.debug_fn.glPathParameteriNVFn(path, pname, value); +} + +static void GL_BINDING_CALL Debug_glPathStencilFuncNV(GLenum func, + GLint ref, + GLuint mask) { + GL_SERVICE_LOG("glPathStencilFuncNV" + << "(" << GLEnums::GetStringEnum(func) << ", " << ref << ", " + << mask << ")"); + g_driver_gl.debug_fn.glPathStencilFuncNVFn(func, ref, mask); +} + static void GL_BINDING_CALL Debug_glPauseTransformFeedback(void) { GL_SERVICE_LOG("glPauseTransformFeedback" << "(" @@ -3780,8 +4010,8 @@ static void GL_BINDING_CALL Debug_glPointParameteri(GLenum pname, GLint param) { g_driver_gl.debug_fn.glPointParameteriFn(pname, param); } -static void GL_BINDING_CALL -Debug_glPolygonOffset(GLfloat factor, GLfloat units) { +static void GL_BINDING_CALL Debug_glPolygonOffset(GLfloat factor, + GLfloat units) { GL_SERVICE_LOG("glPolygonOffset" << "(" << factor << ", " << units << ")"); g_driver_gl.debug_fn.glPolygonOffsetFn(factor, units); @@ -3805,16 +4035,17 @@ static void GL_BINDING_CALL Debug_glProgramBinary(GLuint program, g_driver_gl.debug_fn.glProgramBinaryFn(program, binaryFormat, binary, length); } -static void GL_BINDING_CALL -Debug_glProgramParameteri(GLuint program, GLenum pname, GLint value) { +static void GL_BINDING_CALL Debug_glProgramParameteri(GLuint program, + GLenum pname, + GLint value) { GL_SERVICE_LOG("glProgramParameteri" << "(" << program << ", " << GLEnums::GetStringEnum(pname) << ", " << value << ")"); g_driver_gl.debug_fn.glProgramParameteriFn(program, pname, value); } -static void GL_BINDING_CALL -Debug_glPushGroupMarkerEXT(GLsizei length, const char* marker) { +static void GL_BINDING_CALL Debug_glPushGroupMarkerEXT(GLsizei length, + const char* marker) { GL_SERVICE_LOG("glPushGroupMarkerEXT" << "(" << length << ", " << marker << ")"); g_driver_gl.debug_fn.glPushGroupMarkerEXTFn(length, marker); @@ -3931,16 +4162,17 @@ static void GL_BINDING_CALL Debug_glResumeTransformFeedback(void) { g_driver_gl.debug_fn.glResumeTransformFeedbackFn(); } -static void GL_BINDING_CALL -Debug_glSampleCoverage(GLclampf value, GLboolean invert) { +static void GL_BINDING_CALL Debug_glSampleCoverage(GLclampf value, + GLboolean invert) { GL_SERVICE_LOG("glSampleCoverage" << "(" << value << ", " << GLEnums::GetStringBool(invert) << ")"); g_driver_gl.debug_fn.glSampleCoverageFn(value, invert); } -static void GL_BINDING_CALL -Debug_glSamplerParameterf(GLuint sampler, GLenum pname, GLfloat param) { +static void GL_BINDING_CALL Debug_glSamplerParameterf(GLuint sampler, + GLenum pname, + GLfloat param) { GL_SERVICE_LOG("glSamplerParameterf" << "(" << sampler << ", " << GLEnums::GetStringEnum(pname) << ", " << param << ")"); @@ -3956,24 +4188,28 @@ static void GL_BINDING_CALL Debug_glSamplerParameterfv(GLuint sampler, g_driver_gl.debug_fn.glSamplerParameterfvFn(sampler, pname, params); } -static void GL_BINDING_CALL -Debug_glSamplerParameteri(GLuint sampler, GLenum pname, GLint param) { +static void GL_BINDING_CALL Debug_glSamplerParameteri(GLuint sampler, + GLenum pname, + GLint param) { GL_SERVICE_LOG("glSamplerParameteri" << "(" << sampler << ", " << GLEnums::GetStringEnum(pname) << ", " << param << ")"); g_driver_gl.debug_fn.glSamplerParameteriFn(sampler, pname, param); } -static void GL_BINDING_CALL -Debug_glSamplerParameteriv(GLuint sampler, GLenum pname, const GLint* params) { +static void GL_BINDING_CALL Debug_glSamplerParameteriv(GLuint sampler, + GLenum pname, + const GLint* params) { GL_SERVICE_LOG("glSamplerParameteriv" << "(" << sampler << ", " << GLEnums::GetStringEnum(pname) << ", " << static_cast<const void*>(params) << ")"); g_driver_gl.debug_fn.glSamplerParameterivFn(sampler, pname, params); } -static void GL_BINDING_CALL -Debug_glScissor(GLint x, GLint y, GLsizei width, GLsizei height) { +static void GL_BINDING_CALL Debug_glScissor(GLint x, + GLint y, + GLsizei width, + GLsizei height) { GL_SERVICE_LOG("glScissor" << "(" << x << ", " << y << ", " << width << ", " << height << ")"); @@ -4032,16 +4268,28 @@ static void GL_BINDING_CALL Debug_glShaderSource(GLuint shader, }); } -static void GL_BINDING_CALL -Debug_glStencilFunc(GLenum func, GLint ref, GLuint mask) { +static void GL_BINDING_CALL Debug_glStencilFillPathNV(GLuint path, + GLenum fillMode, + GLuint mask) { + GL_SERVICE_LOG("glStencilFillPathNV" + << "(" << path << ", " << GLEnums::GetStringEnum(fillMode) + << ", " << mask << ")"); + g_driver_gl.debug_fn.glStencilFillPathNVFn(path, fillMode, mask); +} + +static void GL_BINDING_CALL Debug_glStencilFunc(GLenum func, + GLint ref, + GLuint mask) { GL_SERVICE_LOG("glStencilFunc" << "(" << GLEnums::GetStringEnum(func) << ", " << ref << ", " << mask << ")"); g_driver_gl.debug_fn.glStencilFuncFn(func, ref, mask); } -static void GL_BINDING_CALL -Debug_glStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask) { +static void GL_BINDING_CALL Debug_glStencilFuncSeparate(GLenum face, + GLenum func, + GLint ref, + GLuint mask) { GL_SERVICE_LOG("glStencilFuncSeparate" << "(" << GLEnums::GetStringEnum(face) << ", " << GLEnums::GetStringEnum(func) << ", " << ref << ", " << mask @@ -4055,15 +4303,16 @@ static void GL_BINDING_CALL Debug_glStencilMask(GLuint mask) { g_driver_gl.debug_fn.glStencilMaskFn(mask); } -static void GL_BINDING_CALL -Debug_glStencilMaskSeparate(GLenum face, GLuint mask) { +static void GL_BINDING_CALL Debug_glStencilMaskSeparate(GLenum face, + GLuint mask) { GL_SERVICE_LOG("glStencilMaskSeparate" << "(" << GLEnums::GetStringEnum(face) << ", " << mask << ")"); g_driver_gl.debug_fn.glStencilMaskSeparateFn(face, mask); } -static void GL_BINDING_CALL -Debug_glStencilOp(GLenum fail, GLenum zfail, GLenum zpass) { +static void GL_BINDING_CALL Debug_glStencilOp(GLenum fail, + GLenum zfail, + GLenum zpass) { GL_SERVICE_LOG("glStencilOp" << "(" << GLEnums::GetStringEnum(fail) << ", " << GLEnums::GetStringEnum(zfail) << ", " @@ -4083,6 +4332,39 @@ static void GL_BINDING_CALL Debug_glStencilOpSeparate(GLenum face, g_driver_gl.debug_fn.glStencilOpSeparateFn(face, fail, zfail, zpass); } +static void GL_BINDING_CALL Debug_glStencilStrokePathNV(GLuint path, + GLint reference, + GLuint mask) { + GL_SERVICE_LOG("glStencilStrokePathNV" + << "(" << path << ", " << reference << ", " << mask << ")"); + g_driver_gl.debug_fn.glStencilStrokePathNVFn(path, reference, mask); +} + +static void GL_BINDING_CALL +Debug_glStencilThenCoverFillPathNV(GLuint path, + GLenum fillMode, + GLuint mask, + GLenum coverMode) { + GL_SERVICE_LOG("glStencilThenCoverFillPathNV" + << "(" << path << ", " << GLEnums::GetStringEnum(fillMode) + << ", " << mask << ", " << GLEnums::GetStringEnum(coverMode) + << ")"); + g_driver_gl.debug_fn.glStencilThenCoverFillPathNVFn(path, fillMode, mask, + coverMode); +} + +static void GL_BINDING_CALL +Debug_glStencilThenCoverStrokePathNV(GLuint path, + GLint reference, + GLuint mask, + GLenum coverMode) { + GL_SERVICE_LOG("glStencilThenCoverStrokePathNV" + << "(" << path << ", " << reference << ", " << mask << ", " + << GLEnums::GetStringEnum(coverMode) << ")"); + g_driver_gl.debug_fn.glStencilThenCoverStrokePathNVFn(path, reference, mask, + coverMode); +} + static GLboolean GL_BINDING_CALL Debug_glTestFenceAPPLE(GLuint fence) { GL_SERVICE_LOG("glTestFenceAPPLE" << "(" << fence << ")"); @@ -4140,16 +4422,18 @@ static void GL_BINDING_CALL Debug_glTexImage3D(GLenum target, pixels); } -static void GL_BINDING_CALL -Debug_glTexParameterf(GLenum target, GLenum pname, GLfloat param) { +static void GL_BINDING_CALL Debug_glTexParameterf(GLenum target, + GLenum pname, + GLfloat param) { GL_SERVICE_LOG("glTexParameterf" << "(" << GLEnums::GetStringEnum(target) << ", " << GLEnums::GetStringEnum(pname) << ", " << param << ")"); g_driver_gl.debug_fn.glTexParameterfFn(target, pname, param); } -static void GL_BINDING_CALL -Debug_glTexParameterfv(GLenum target, GLenum pname, const GLfloat* params) { +static void GL_BINDING_CALL Debug_glTexParameterfv(GLenum target, + GLenum pname, + const GLfloat* params) { GL_SERVICE_LOG("glTexParameterfv" << "(" << GLEnums::GetStringEnum(target) << ", " << GLEnums::GetStringEnum(pname) << ", " @@ -4157,16 +4441,18 @@ Debug_glTexParameterfv(GLenum target, GLenum pname, const GLfloat* params) { g_driver_gl.debug_fn.glTexParameterfvFn(target, pname, params); } -static void GL_BINDING_CALL -Debug_glTexParameteri(GLenum target, GLenum pname, GLint param) { +static void GL_BINDING_CALL Debug_glTexParameteri(GLenum target, + GLenum pname, + GLint param) { GL_SERVICE_LOG("glTexParameteri" << "(" << GLEnums::GetStringEnum(target) << ", " << GLEnums::GetStringEnum(pname) << ", " << param << ")"); g_driver_gl.debug_fn.glTexParameteriFn(target, pname, param); } -static void GL_BINDING_CALL -Debug_glTexParameteriv(GLenum target, GLenum pname, const GLint* params) { +static void GL_BINDING_CALL Debug_glTexParameteriv(GLenum target, + GLenum pname, + const GLint* params) { GL_SERVICE_LOG("glTexParameteriv" << "(" << GLEnums::GetStringEnum(target) << ", " << GLEnums::GetStringEnum(pname) << ", " @@ -4262,8 +4548,9 @@ static void GL_BINDING_CALL Debug_glUniform1f(GLint location, GLfloat x) { g_driver_gl.debug_fn.glUniform1fFn(location, x); } -static void GL_BINDING_CALL -Debug_glUniform1fv(GLint location, GLsizei count, const GLfloat* v) { +static void GL_BINDING_CALL Debug_glUniform1fv(GLint location, + GLsizei count, + const GLfloat* v) { GL_SERVICE_LOG("glUniform1fv" << "(" << location << ", " << count << ", " << static_cast<const void*>(v) << ")"); @@ -4276,8 +4563,9 @@ static void GL_BINDING_CALL Debug_glUniform1i(GLint location, GLint x) { g_driver_gl.debug_fn.glUniform1iFn(location, x); } -static void GL_BINDING_CALL -Debug_glUniform1iv(GLint location, GLsizei count, const GLint* v) { +static void GL_BINDING_CALL Debug_glUniform1iv(GLint location, + GLsizei count, + const GLint* v) { GL_SERVICE_LOG("glUniform1iv" << "(" << location << ", " << count << ", " << static_cast<const void*>(v) << ")"); @@ -4290,101 +4578,117 @@ static void GL_BINDING_CALL Debug_glUniform1ui(GLint location, GLuint v0) { g_driver_gl.debug_fn.glUniform1uiFn(location, v0); } -static void GL_BINDING_CALL -Debug_glUniform1uiv(GLint location, GLsizei count, const GLuint* v) { +static void GL_BINDING_CALL Debug_glUniform1uiv(GLint location, + GLsizei count, + const GLuint* v) { GL_SERVICE_LOG("glUniform1uiv" << "(" << location << ", " << count << ", " << static_cast<const void*>(v) << ")"); g_driver_gl.debug_fn.glUniform1uivFn(location, count, v); } -static void GL_BINDING_CALL -Debug_glUniform2f(GLint location, GLfloat x, GLfloat y) { +static void GL_BINDING_CALL Debug_glUniform2f(GLint location, + GLfloat x, + GLfloat y) { GL_SERVICE_LOG("glUniform2f" << "(" << location << ", " << x << ", " << y << ")"); g_driver_gl.debug_fn.glUniform2fFn(location, x, y); } -static void GL_BINDING_CALL -Debug_glUniform2fv(GLint location, GLsizei count, const GLfloat* v) { +static void GL_BINDING_CALL Debug_glUniform2fv(GLint location, + GLsizei count, + const GLfloat* v) { GL_SERVICE_LOG("glUniform2fv" << "(" << location << ", " << count << ", " << static_cast<const void*>(v) << ")"); g_driver_gl.debug_fn.glUniform2fvFn(location, count, v); } -static void GL_BINDING_CALL -Debug_glUniform2i(GLint location, GLint x, GLint y) { +static void GL_BINDING_CALL Debug_glUniform2i(GLint location, + GLint x, + GLint y) { GL_SERVICE_LOG("glUniform2i" << "(" << location << ", " << x << ", " << y << ")"); g_driver_gl.debug_fn.glUniform2iFn(location, x, y); } -static void GL_BINDING_CALL -Debug_glUniform2iv(GLint location, GLsizei count, const GLint* v) { +static void GL_BINDING_CALL Debug_glUniform2iv(GLint location, + GLsizei count, + const GLint* v) { GL_SERVICE_LOG("glUniform2iv" << "(" << location << ", " << count << ", " << static_cast<const void*>(v) << ")"); g_driver_gl.debug_fn.glUniform2ivFn(location, count, v); } -static void GL_BINDING_CALL -Debug_glUniform2ui(GLint location, GLuint v0, GLuint v1) { +static void GL_BINDING_CALL Debug_glUniform2ui(GLint location, + GLuint v0, + GLuint v1) { GL_SERVICE_LOG("glUniform2ui" << "(" << location << ", " << v0 << ", " << v1 << ")"); g_driver_gl.debug_fn.glUniform2uiFn(location, v0, v1); } -static void GL_BINDING_CALL -Debug_glUniform2uiv(GLint location, GLsizei count, const GLuint* v) { +static void GL_BINDING_CALL Debug_glUniform2uiv(GLint location, + GLsizei count, + const GLuint* v) { GL_SERVICE_LOG("glUniform2uiv" << "(" << location << ", " << count << ", " << static_cast<const void*>(v) << ")"); g_driver_gl.debug_fn.glUniform2uivFn(location, count, v); } -static void GL_BINDING_CALL -Debug_glUniform3f(GLint location, GLfloat x, GLfloat y, GLfloat z) { +static void GL_BINDING_CALL Debug_glUniform3f(GLint location, + GLfloat x, + GLfloat y, + GLfloat z) { GL_SERVICE_LOG("glUniform3f" << "(" << location << ", " << x << ", " << y << ", " << z << ")"); g_driver_gl.debug_fn.glUniform3fFn(location, x, y, z); } -static void GL_BINDING_CALL -Debug_glUniform3fv(GLint location, GLsizei count, const GLfloat* v) { +static void GL_BINDING_CALL Debug_glUniform3fv(GLint location, + GLsizei count, + const GLfloat* v) { GL_SERVICE_LOG("glUniform3fv" << "(" << location << ", " << count << ", " << static_cast<const void*>(v) << ")"); g_driver_gl.debug_fn.glUniform3fvFn(location, count, v); } -static void GL_BINDING_CALL -Debug_glUniform3i(GLint location, GLint x, GLint y, GLint z) { +static void GL_BINDING_CALL Debug_glUniform3i(GLint location, + GLint x, + GLint y, + GLint z) { GL_SERVICE_LOG("glUniform3i" << "(" << location << ", " << x << ", " << y << ", " << z << ")"); g_driver_gl.debug_fn.glUniform3iFn(location, x, y, z); } -static void GL_BINDING_CALL -Debug_glUniform3iv(GLint location, GLsizei count, const GLint* v) { +static void GL_BINDING_CALL Debug_glUniform3iv(GLint location, + GLsizei count, + const GLint* v) { GL_SERVICE_LOG("glUniform3iv" << "(" << location << ", " << count << ", " << static_cast<const void*>(v) << ")"); g_driver_gl.debug_fn.glUniform3ivFn(location, count, v); } -static void GL_BINDING_CALL -Debug_glUniform3ui(GLint location, GLuint v0, GLuint v1, GLuint v2) { +static void GL_BINDING_CALL Debug_glUniform3ui(GLint location, + GLuint v0, + GLuint v1, + GLuint v2) { GL_SERVICE_LOG("glUniform3ui" << "(" << location << ", " << v0 << ", " << v1 << ", " << v2 << ")"); g_driver_gl.debug_fn.glUniform3uiFn(location, v0, v1, v2); } -static void GL_BINDING_CALL -Debug_glUniform3uiv(GLint location, GLsizei count, const GLuint* v) { +static void GL_BINDING_CALL Debug_glUniform3uiv(GLint location, + GLsizei count, + const GLuint* v) { GL_SERVICE_LOG("glUniform3uiv" << "(" << location << ", " << count << ", " << static_cast<const void*>(v) << ")"); @@ -4399,8 +4703,9 @@ Debug_glUniform4f(GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w) { g_driver_gl.debug_fn.glUniform4fFn(location, x, y, z, w); } -static void GL_BINDING_CALL -Debug_glUniform4fv(GLint location, GLsizei count, const GLfloat* v) { +static void GL_BINDING_CALL Debug_glUniform4fv(GLint location, + GLsizei count, + const GLfloat* v) { GL_SERVICE_LOG("glUniform4fv" << "(" << location << ", " << count << ", " << static_cast<const void*>(v) << ")"); @@ -4415,8 +4720,9 @@ Debug_glUniform4i(GLint location, GLint x, GLint y, GLint z, GLint w) { g_driver_gl.debug_fn.glUniform4iFn(location, x, y, z, w); } -static void GL_BINDING_CALL -Debug_glUniform4iv(GLint location, GLsizei count, const GLint* v) { +static void GL_BINDING_CALL Debug_glUniform4iv(GLint location, + GLsizei count, + const GLint* v) { GL_SERVICE_LOG("glUniform4iv" << "(" << location << ", " << count << ", " << static_cast<const void*>(v) << ")"); @@ -4431,8 +4737,9 @@ Debug_glUniform4ui(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3) { g_driver_gl.debug_fn.glUniform4uiFn(location, v0, v1, v2, v3); } -static void GL_BINDING_CALL -Debug_glUniform4uiv(GLint location, GLsizei count, const GLuint* v) { +static void GL_BINDING_CALL Debug_glUniform4uiv(GLint location, + GLsizei count, + const GLuint* v) { GL_SERVICE_LOG("glUniform4uiv" << "(" << location << ", " << count << ", " << static_cast<const void*>(v) << ")"); @@ -4581,38 +4888,41 @@ static void GL_BINDING_CALL Debug_glVertexAttrib1f(GLuint indx, GLfloat x) { g_driver_gl.debug_fn.glVertexAttrib1fFn(indx, x); } -static void GL_BINDING_CALL -Debug_glVertexAttrib1fv(GLuint indx, const GLfloat* values) { +static void GL_BINDING_CALL Debug_glVertexAttrib1fv(GLuint indx, + const GLfloat* values) { GL_SERVICE_LOG("glVertexAttrib1fv" << "(" << indx << ", " << static_cast<const void*>(values) << ")"); g_driver_gl.debug_fn.glVertexAttrib1fvFn(indx, values); } -static void GL_BINDING_CALL -Debug_glVertexAttrib2f(GLuint indx, GLfloat x, GLfloat y) { +static void GL_BINDING_CALL Debug_glVertexAttrib2f(GLuint indx, + GLfloat x, + GLfloat y) { GL_SERVICE_LOG("glVertexAttrib2f" << "(" << indx << ", " << x << ", " << y << ")"); g_driver_gl.debug_fn.glVertexAttrib2fFn(indx, x, y); } -static void GL_BINDING_CALL -Debug_glVertexAttrib2fv(GLuint indx, const GLfloat* values) { +static void GL_BINDING_CALL Debug_glVertexAttrib2fv(GLuint indx, + const GLfloat* values) { GL_SERVICE_LOG("glVertexAttrib2fv" << "(" << indx << ", " << static_cast<const void*>(values) << ")"); g_driver_gl.debug_fn.glVertexAttrib2fvFn(indx, values); } -static void GL_BINDING_CALL -Debug_glVertexAttrib3f(GLuint indx, GLfloat x, GLfloat y, GLfloat z) { +static void GL_BINDING_CALL Debug_glVertexAttrib3f(GLuint indx, + GLfloat x, + GLfloat y, + GLfloat z) { GL_SERVICE_LOG("glVertexAttrib3f" << "(" << indx << ", " << x << ", " << y << ", " << z << ")"); g_driver_gl.debug_fn.glVertexAttrib3fFn(indx, x, y, z); } -static void GL_BINDING_CALL -Debug_glVertexAttrib3fv(GLuint indx, const GLfloat* values) { +static void GL_BINDING_CALL Debug_glVertexAttrib3fv(GLuint indx, + const GLfloat* values) { GL_SERVICE_LOG("glVertexAttrib3fv" << "(" << indx << ", " << static_cast<const void*>(values) << ")"); @@ -4630,16 +4940,16 @@ static void GL_BINDING_CALL Debug_glVertexAttrib4f(GLuint indx, g_driver_gl.debug_fn.glVertexAttrib4fFn(indx, x, y, z, w); } -static void GL_BINDING_CALL -Debug_glVertexAttrib4fv(GLuint indx, const GLfloat* values) { +static void GL_BINDING_CALL Debug_glVertexAttrib4fv(GLuint indx, + const GLfloat* values) { GL_SERVICE_LOG("glVertexAttrib4fv" << "(" << indx << ", " << static_cast<const void*>(values) << ")"); g_driver_gl.debug_fn.glVertexAttrib4fvFn(indx, values); } -static void GL_BINDING_CALL -Debug_glVertexAttribDivisorANGLE(GLuint index, GLuint divisor) { +static void GL_BINDING_CALL Debug_glVertexAttribDivisorANGLE(GLuint index, + GLuint divisor) { GL_SERVICE_LOG("glVertexAttribDivisorANGLE" << "(" << index << ", " << divisor << ")"); g_driver_gl.debug_fn.glVertexAttribDivisorANGLEFn(index, divisor); @@ -4653,8 +4963,8 @@ Debug_glVertexAttribI4i(GLuint indx, GLint x, GLint y, GLint z, GLint w) { g_driver_gl.debug_fn.glVertexAttribI4iFn(indx, x, y, z, w); } -static void GL_BINDING_CALL -Debug_glVertexAttribI4iv(GLuint indx, const GLint* values) { +static void GL_BINDING_CALL Debug_glVertexAttribI4iv(GLuint indx, + const GLint* values) { GL_SERVICE_LOG("glVertexAttribI4iv" << "(" << indx << ", " << static_cast<const void*>(values) << ")"); @@ -4669,8 +4979,8 @@ Debug_glVertexAttribI4ui(GLuint indx, GLuint x, GLuint y, GLuint z, GLuint w) { g_driver_gl.debug_fn.glVertexAttribI4uiFn(indx, x, y, z, w); } -static void GL_BINDING_CALL -Debug_glVertexAttribI4uiv(GLuint indx, const GLuint* values) { +static void GL_BINDING_CALL Debug_glVertexAttribI4uiv(GLuint indx, + const GLuint* values) { GL_SERVICE_LOG("glVertexAttribI4uiv" << "(" << indx << ", " << static_cast<const void*>(values) << ")"); @@ -4704,16 +5014,19 @@ static void GL_BINDING_CALL Debug_glVertexAttribPointer(GLuint indx, stride, ptr); } -static void GL_BINDING_CALL -Debug_glViewport(GLint x, GLint y, GLsizei width, GLsizei height) { +static void GL_BINDING_CALL Debug_glViewport(GLint x, + GLint y, + GLsizei width, + GLsizei height) { GL_SERVICE_LOG("glViewport" << "(" << x << ", " << y << ", " << width << ", " << height << ")"); g_driver_gl.debug_fn.glViewportFn(x, y, width, height); } -static GLenum GL_BINDING_CALL -Debug_glWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout) { +static GLenum GL_BINDING_CALL Debug_glWaitSync(GLsync sync, + GLbitfield flags, + GLuint64 timeout) { GL_SERVICE_LOG("glWaitSync" << "(" << sync << ", " << flags << ", " << timeout << ")"); GLenum result = g_driver_gl.debug_fn.glWaitSyncFn(sync, flags, timeout); @@ -4727,6 +5040,12 @@ void DriverGL::InitializeDebugBindings() { debug_fn.glActiveTextureFn = fn.glActiveTextureFn; fn.glActiveTextureFn = Debug_glActiveTexture; } + if (!debug_fn.glApplyFramebufferAttachmentCMAAINTELFn) { + debug_fn.glApplyFramebufferAttachmentCMAAINTELFn = + fn.glApplyFramebufferAttachmentCMAAINTELFn; + fn.glApplyFramebufferAttachmentCMAAINTELFn = + Debug_glApplyFramebufferAttachmentCMAAINTEL; + } if (!debug_fn.glAttachShaderFn) { debug_fn.glAttachShaderFn = fn.glAttachShaderFn; fn.glAttachShaderFn = Debug_glAttachShader; @@ -4916,6 +5235,14 @@ void DriverGL::InitializeDebugBindings() { debug_fn.glCopyTexSubImage3DFn = fn.glCopyTexSubImage3DFn; fn.glCopyTexSubImage3DFn = Debug_glCopyTexSubImage3D; } + if (!debug_fn.glCoverFillPathNVFn) { + debug_fn.glCoverFillPathNVFn = fn.glCoverFillPathNVFn; + fn.glCoverFillPathNVFn = Debug_glCoverFillPathNV; + } + if (!debug_fn.glCoverStrokePathNVFn) { + debug_fn.glCoverStrokePathNVFn = fn.glCoverStrokePathNVFn; + fn.glCoverStrokePathNVFn = Debug_glCoverStrokePathNV; + } if (!debug_fn.glCreateProgramFn) { debug_fn.glCreateProgramFn = fn.glCreateProgramFn; fn.glCreateProgramFn = Debug_glCreateProgram; @@ -4944,6 +5271,10 @@ void DriverGL::InitializeDebugBindings() { debug_fn.glDeleteFramebuffersEXTFn = fn.glDeleteFramebuffersEXTFn; fn.glDeleteFramebuffersEXTFn = Debug_glDeleteFramebuffersEXT; } + if (!debug_fn.glDeletePathsNVFn) { + debug_fn.glDeletePathsNVFn = fn.glDeletePathsNVFn; + fn.glDeletePathsNVFn = Debug_glDeletePathsNV; + } if (!debug_fn.glDeleteProgramFn) { debug_fn.glDeleteProgramFn = fn.glDeleteProgramFn; fn.glDeleteProgramFn = Debug_glDeleteProgram; @@ -5138,6 +5469,10 @@ void DriverGL::InitializeDebugBindings() { debug_fn.glGenFramebuffersEXTFn = fn.glGenFramebuffersEXTFn; fn.glGenFramebuffersEXTFn = Debug_glGenFramebuffersEXT; } + if (!debug_fn.glGenPathsNVFn) { + debug_fn.glGenPathsNVFn = fn.glGenPathsNVFn; + fn.glGenPathsNVFn = Debug_glGenPathsNV; + } if (!debug_fn.glGenQueriesFn) { debug_fn.glGenQueriesFn = fn.glGenQueriesFn; fn.glGenQueriesFn = Debug_glGenQueries; @@ -5421,6 +5756,10 @@ void DriverGL::InitializeDebugBindings() { debug_fn.glIsFramebufferEXTFn = fn.glIsFramebufferEXTFn; fn.glIsFramebufferEXTFn = Debug_glIsFramebufferEXT; } + if (!debug_fn.glIsPathNVFn) { + debug_fn.glIsPathNVFn = fn.glIsPathNVFn; + fn.glIsPathNVFn = Debug_glIsPathNV; + } if (!debug_fn.glIsProgramFn) { debug_fn.glIsProgramFn = fn.glIsProgramFn; fn.glIsProgramFn = Debug_glIsProgram; @@ -5481,6 +5820,22 @@ void DriverGL::InitializeDebugBindings() { debug_fn.glMatrixLoadIdentityEXTFn = fn.glMatrixLoadIdentityEXTFn; fn.glMatrixLoadIdentityEXTFn = Debug_glMatrixLoadIdentityEXT; } + if (!debug_fn.glPathCommandsNVFn) { + debug_fn.glPathCommandsNVFn = fn.glPathCommandsNVFn; + fn.glPathCommandsNVFn = Debug_glPathCommandsNV; + } + if (!debug_fn.glPathParameterfNVFn) { + debug_fn.glPathParameterfNVFn = fn.glPathParameterfNVFn; + fn.glPathParameterfNVFn = Debug_glPathParameterfNV; + } + if (!debug_fn.glPathParameteriNVFn) { + debug_fn.glPathParameteriNVFn = fn.glPathParameteriNVFn; + fn.glPathParameteriNVFn = Debug_glPathParameteriNV; + } + if (!debug_fn.glPathStencilFuncNVFn) { + debug_fn.glPathStencilFuncNVFn = fn.glPathStencilFuncNVFn; + fn.glPathStencilFuncNVFn = Debug_glPathStencilFuncNV; + } if (!debug_fn.glPauseTransformFeedbackFn) { debug_fn.glPauseTransformFeedbackFn = fn.glPauseTransformFeedbackFn; fn.glPauseTransformFeedbackFn = Debug_glPauseTransformFeedback; @@ -5601,6 +5956,10 @@ void DriverGL::InitializeDebugBindings() { debug_fn.glShaderSourceFn = fn.glShaderSourceFn; fn.glShaderSourceFn = Debug_glShaderSource; } + if (!debug_fn.glStencilFillPathNVFn) { + debug_fn.glStencilFillPathNVFn = fn.glStencilFillPathNVFn; + fn.glStencilFillPathNVFn = Debug_glStencilFillPathNV; + } if (!debug_fn.glStencilFuncFn) { debug_fn.glStencilFuncFn = fn.glStencilFuncFn; fn.glStencilFuncFn = Debug_glStencilFunc; @@ -5625,6 +5984,19 @@ void DriverGL::InitializeDebugBindings() { debug_fn.glStencilOpSeparateFn = fn.glStencilOpSeparateFn; fn.glStencilOpSeparateFn = Debug_glStencilOpSeparate; } + if (!debug_fn.glStencilStrokePathNVFn) { + debug_fn.glStencilStrokePathNVFn = fn.glStencilStrokePathNVFn; + fn.glStencilStrokePathNVFn = Debug_glStencilStrokePathNV; + } + if (!debug_fn.glStencilThenCoverFillPathNVFn) { + debug_fn.glStencilThenCoverFillPathNVFn = fn.glStencilThenCoverFillPathNVFn; + fn.glStencilThenCoverFillPathNVFn = Debug_glStencilThenCoverFillPathNV; + } + if (!debug_fn.glStencilThenCoverStrokePathNVFn) { + debug_fn.glStencilThenCoverStrokePathNVFn = + fn.glStencilThenCoverStrokePathNVFn; + fn.glStencilThenCoverStrokePathNVFn = Debug_glStencilThenCoverStrokePathNV; + } if (!debug_fn.glTestFenceAPPLEFn) { debug_fn.glTestFenceAPPLEFn = fn.glTestFenceAPPLEFn; fn.glTestFenceAPPLEFn = Debug_glTestFenceAPPLE; @@ -5904,6 +6276,10 @@ void GLApiBase::glActiveTextureFn(GLenum texture) { driver_->fn.glActiveTextureFn(texture); } +void GLApiBase::glApplyFramebufferAttachmentCMAAINTELFn(void) { + driver_->fn.glApplyFramebufferAttachmentCMAAINTELFn(); +} + void GLApiBase::glAttachShaderFn(GLuint program, GLuint shader) { driver_->fn.glAttachShaderFn(program, shader); } @@ -6231,6 +6607,14 @@ void GLApiBase::glCopyTexSubImage3DFn(GLenum target, y, width, height); } +void GLApiBase::glCoverFillPathNVFn(GLuint path, GLenum coverMode) { + driver_->fn.glCoverFillPathNVFn(path, coverMode); +} + +void GLApiBase::glCoverStrokePathNVFn(GLuint name, GLenum coverMode) { + driver_->fn.glCoverStrokePathNVFn(name, coverMode); +} + GLuint GLApiBase::glCreateProgramFn(void) { return driver_->fn.glCreateProgramFn(); } @@ -6260,6 +6644,10 @@ void GLApiBase::glDeleteFramebuffersEXTFn(GLsizei n, driver_->fn.glDeleteFramebuffersEXTFn(n, framebuffers); } +void GLApiBase::glDeletePathsNVFn(GLuint path, GLsizei range) { + driver_->fn.glDeletePathsNVFn(path, range); +} + void GLApiBase::glDeleteProgramFn(GLuint program) { driver_->fn.glDeleteProgramFn(program); } @@ -6497,6 +6885,10 @@ void GLApiBase::glGenFramebuffersEXTFn(GLsizei n, GLuint* framebuffers) { driver_->fn.glGenFramebuffersEXTFn(n, framebuffers); } +GLuint GLApiBase::glGenPathsNVFn(GLsizei range) { + return driver_->fn.glGenPathsNVFn(range); +} + void GLApiBase::glGenQueriesFn(GLsizei n, GLuint* ids) { driver_->fn.glGenQueriesFn(n, ids); } @@ -6899,6 +7291,10 @@ GLboolean GLApiBase::glIsFramebufferEXTFn(GLuint framebuffer) { return driver_->fn.glIsFramebufferEXTFn(framebuffer); } +GLboolean GLApiBase::glIsPathNVFn(GLuint path) { + return driver_->fn.glIsPathNVFn(path); +} + GLboolean GLApiBase::glIsProgramFn(GLuint program) { return driver_->fn.glIsProgramFn(program); } @@ -6962,6 +7358,28 @@ void GLApiBase::glMatrixLoadIdentityEXTFn(GLenum matrixMode) { driver_->fn.glMatrixLoadIdentityEXTFn(matrixMode); } +void GLApiBase::glPathCommandsNVFn(GLuint path, + GLsizei numCommands, + const GLubyte* commands, + GLsizei numCoords, + GLenum coordType, + const GLvoid* coords) { + driver_->fn.glPathCommandsNVFn(path, numCommands, commands, numCoords, + coordType, coords); +} + +void GLApiBase::glPathParameterfNVFn(GLuint path, GLenum pname, GLfloat value) { + driver_->fn.glPathParameterfNVFn(path, pname, value); +} + +void GLApiBase::glPathParameteriNVFn(GLuint path, GLenum pname, GLint value) { + driver_->fn.glPathParameteriNVFn(path, pname, value); +} + +void GLApiBase::glPathStencilFuncNVFn(GLenum func, GLint ref, GLuint mask) { + driver_->fn.glPathStencilFuncNVFn(func, ref, mask); +} + void GLApiBase::glPauseTransformFeedbackFn(void) { driver_->fn.glPauseTransformFeedbackFn(); } @@ -7123,6 +7541,12 @@ void GLApiBase::glShaderSourceFn(GLuint shader, driver_->fn.glShaderSourceFn(shader, count, str, length); } +void GLApiBase::glStencilFillPathNVFn(GLuint path, + GLenum fillMode, + GLuint mask) { + driver_->fn.glStencilFillPathNVFn(path, fillMode, mask); +} + void GLApiBase::glStencilFuncFn(GLenum func, GLint ref, GLuint mask) { driver_->fn.glStencilFuncFn(func, ref, mask); } @@ -7153,6 +7577,27 @@ void GLApiBase::glStencilOpSeparateFn(GLenum face, driver_->fn.glStencilOpSeparateFn(face, fail, zfail, zpass); } +void GLApiBase::glStencilStrokePathNVFn(GLuint path, + GLint reference, + GLuint mask) { + driver_->fn.glStencilStrokePathNVFn(path, reference, mask); +} + +void GLApiBase::glStencilThenCoverFillPathNVFn(GLuint path, + GLenum fillMode, + GLuint mask, + GLenum coverMode) { + driver_->fn.glStencilThenCoverFillPathNVFn(path, fillMode, mask, coverMode); +} + +void GLApiBase::glStencilThenCoverStrokePathNVFn(GLuint path, + GLint reference, + GLuint mask, + GLenum coverMode) { + driver_->fn.glStencilThenCoverStrokePathNVFn(path, reference, mask, + coverMode); +} + GLboolean GLApiBase::glTestFenceAPPLEFn(GLuint fence) { return driver_->fn.glTestFenceAPPLEFn(fence); } @@ -7572,6 +8017,12 @@ void TraceGLApi::glActiveTextureFn(GLenum texture) { gl_api_->glActiveTextureFn(texture); } +void TraceGLApi::glApplyFramebufferAttachmentCMAAINTELFn(void) { + TRACE_EVENT_BINARY_EFFICIENT0( + "gpu", "TraceGLAPI::glApplyFramebufferAttachmentCMAAINTEL") + gl_api_->glApplyFramebufferAttachmentCMAAINTELFn(); +} + void TraceGLApi::glAttachShaderFn(GLuint program, GLuint shader) { TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glAttachShader") gl_api_->glAttachShaderFn(program, shader); @@ -7949,6 +8400,16 @@ void TraceGLApi::glCopyTexSubImage3DFn(GLenum target, width, height); } +void TraceGLApi::glCoverFillPathNVFn(GLuint path, GLenum coverMode) { + TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glCoverFillPathNV") + gl_api_->glCoverFillPathNVFn(path, coverMode); +} + +void TraceGLApi::glCoverStrokePathNVFn(GLuint name, GLenum coverMode) { + TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glCoverStrokePathNV") + gl_api_->glCoverStrokePathNVFn(name, coverMode); +} + GLuint TraceGLApi::glCreateProgramFn(void) { TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glCreateProgram") return gl_api_->glCreateProgramFn(); @@ -7985,6 +8446,11 @@ void TraceGLApi::glDeleteFramebuffersEXTFn(GLsizei n, gl_api_->glDeleteFramebuffersEXTFn(n, framebuffers); } +void TraceGLApi::glDeletePathsNVFn(GLuint path, GLsizei range) { + TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glDeletePathsNV") + gl_api_->glDeletePathsNVFn(path, range); +} + void TraceGLApi::glDeleteProgramFn(GLuint program) { TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glDeleteProgram") gl_api_->glDeleteProgramFn(program); @@ -8275,6 +8741,11 @@ void TraceGLApi::glGenFramebuffersEXTFn(GLsizei n, GLuint* framebuffers) { gl_api_->glGenFramebuffersEXTFn(n, framebuffers); } +GLuint TraceGLApi::glGenPathsNVFn(GLsizei range) { + TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGenPathsNV") + return gl_api_->glGenPathsNVFn(range); +} + void TraceGLApi::glGenQueriesFn(GLsizei n, GLuint* ids) { TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGenQueries") gl_api_->glGenQueriesFn(n, ids); @@ -8753,6 +9224,11 @@ GLboolean TraceGLApi::glIsFramebufferEXTFn(GLuint framebuffer) { return gl_api_->glIsFramebufferEXTFn(framebuffer); } +GLboolean TraceGLApi::glIsPathNVFn(GLuint path) { + TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glIsPathNV") + return gl_api_->glIsPathNVFn(path); +} + GLboolean TraceGLApi::glIsProgramFn(GLuint program) { TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glIsProgram") return gl_api_->glIsProgramFn(program); @@ -8831,6 +9307,34 @@ void TraceGLApi::glMatrixLoadIdentityEXTFn(GLenum matrixMode) { gl_api_->glMatrixLoadIdentityEXTFn(matrixMode); } +void TraceGLApi::glPathCommandsNVFn(GLuint path, + GLsizei numCommands, + const GLubyte* commands, + GLsizei numCoords, + GLenum coordType, + const GLvoid* coords) { + TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glPathCommandsNV") + gl_api_->glPathCommandsNVFn(path, numCommands, commands, numCoords, coordType, + coords); +} + +void TraceGLApi::glPathParameterfNVFn(GLuint path, + GLenum pname, + GLfloat value) { + TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glPathParameterfNV") + gl_api_->glPathParameterfNVFn(path, pname, value); +} + +void TraceGLApi::glPathParameteriNVFn(GLuint path, GLenum pname, GLint value) { + TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glPathParameteriNV") + gl_api_->glPathParameteriNVFn(path, pname, value); +} + +void TraceGLApi::glPathStencilFuncNVFn(GLenum func, GLint ref, GLuint mask) { + TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glPathStencilFuncNV") + gl_api_->glPathStencilFuncNVFn(func, ref, mask); +} + void TraceGLApi::glPauseTransformFeedbackFn(void) { TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glPauseTransformFeedback") gl_api_->glPauseTransformFeedbackFn(); @@ -9024,6 +9528,13 @@ void TraceGLApi::glShaderSourceFn(GLuint shader, gl_api_->glShaderSourceFn(shader, count, str, length); } +void TraceGLApi::glStencilFillPathNVFn(GLuint path, + GLenum fillMode, + GLuint mask) { + TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glStencilFillPathNV") + gl_api_->glStencilFillPathNVFn(path, fillMode, mask); +} + void TraceGLApi::glStencilFuncFn(GLenum func, GLint ref, GLuint mask) { TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glStencilFunc") gl_api_->glStencilFuncFn(func, ref, mask); @@ -9060,6 +9571,31 @@ void TraceGLApi::glStencilOpSeparateFn(GLenum face, gl_api_->glStencilOpSeparateFn(face, fail, zfail, zpass); } +void TraceGLApi::glStencilStrokePathNVFn(GLuint path, + GLint reference, + GLuint mask) { + TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glStencilStrokePathNV") + gl_api_->glStencilStrokePathNVFn(path, reference, mask); +} + +void TraceGLApi::glStencilThenCoverFillPathNVFn(GLuint path, + GLenum fillMode, + GLuint mask, + GLenum coverMode) { + TRACE_EVENT_BINARY_EFFICIENT0("gpu", + "TraceGLAPI::glStencilThenCoverFillPathNV") + gl_api_->glStencilThenCoverFillPathNVFn(path, fillMode, mask, coverMode); +} + +void TraceGLApi::glStencilThenCoverStrokePathNVFn(GLuint path, + GLint reference, + GLuint mask, + GLenum coverMode) { + TRACE_EVENT_BINARY_EFFICIENT0("gpu", + "TraceGLAPI::glStencilThenCoverStrokePathNV") + gl_api_->glStencilThenCoverStrokePathNVFn(path, reference, mask, coverMode); +} + GLboolean TraceGLApi::glTestFenceAPPLEFn(GLuint fence) { TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glTestFenceAPPLE") return gl_api_->glTestFenceAPPLEFn(fence); @@ -9547,6 +10083,13 @@ void NoContextGLApi::glActiveTextureFn(GLenum texture) { LOG(ERROR) << "Trying to call glActiveTexture() without current GL context"; } +void NoContextGLApi::glApplyFramebufferAttachmentCMAAINTELFn(void) { + NOTREACHED() << "Trying to call glApplyFramebufferAttachmentCMAAINTEL() " + "without current GL context"; + LOG(ERROR) << "Trying to call glApplyFramebufferAttachmentCMAAINTEL() " + "without current GL context"; +} + void NoContextGLApi::glAttachShaderFn(GLuint program, GLuint shader) { NOTREACHED() << "Trying to call glAttachShader() without current GL context"; LOG(ERROR) << "Trying to call glAttachShader() without current GL context"; @@ -9961,6 +10504,19 @@ void NoContextGLApi::glCopyTexSubImage3DFn(GLenum target, << "Trying to call glCopyTexSubImage3D() without current GL context"; } +void NoContextGLApi::glCoverFillPathNVFn(GLuint path, GLenum coverMode) { + NOTREACHED() + << "Trying to call glCoverFillPathNV() without current GL context"; + LOG(ERROR) << "Trying to call glCoverFillPathNV() without current GL context"; +} + +void NoContextGLApi::glCoverStrokePathNVFn(GLuint name, GLenum coverMode) { + NOTREACHED() + << "Trying to call glCoverStrokePathNV() without current GL context"; + LOG(ERROR) + << "Trying to call glCoverStrokePathNV() without current GL context"; +} + GLuint NoContextGLApi::glCreateProgramFn(void) { NOTREACHED() << "Trying to call glCreateProgram() without current GL context"; LOG(ERROR) << "Trying to call glCreateProgram() without current GL context"; @@ -10006,6 +10562,11 @@ void NoContextGLApi::glDeleteFramebuffersEXTFn(GLsizei n, << "Trying to call glDeleteFramebuffersEXT() without current GL context"; } +void NoContextGLApi::glDeletePathsNVFn(GLuint path, GLsizei range) { + NOTREACHED() << "Trying to call glDeletePathsNV() without current GL context"; + LOG(ERROR) << "Trying to call glDeletePathsNV() without current GL context"; +} + void NoContextGLApi::glDeleteProgramFn(GLuint program) { NOTREACHED() << "Trying to call glDeleteProgram() without current GL context"; LOG(ERROR) << "Trying to call glDeleteProgram() without current GL context"; @@ -10334,6 +10895,12 @@ void NoContextGLApi::glGenFramebuffersEXTFn(GLsizei n, GLuint* framebuffers) { << "Trying to call glGenFramebuffersEXT() without current GL context"; } +GLuint NoContextGLApi::glGenPathsNVFn(GLsizei range) { + NOTREACHED() << "Trying to call glGenPathsNV() without current GL context"; + LOG(ERROR) << "Trying to call glGenPathsNV() without current GL context"; + return 0U; +} + void NoContextGLApi::glGenQueriesFn(GLsizei n, GLuint* ids) { NOTREACHED() << "Trying to call glGenQueries() without current GL context"; LOG(ERROR) << "Trying to call glGenQueries() without current GL context"; @@ -10909,6 +11476,12 @@ GLboolean NoContextGLApi::glIsFramebufferEXTFn(GLuint framebuffer) { return GL_FALSE; } +GLboolean NoContextGLApi::glIsPathNVFn(GLuint path) { + NOTREACHED() << "Trying to call glIsPathNV() without current GL context"; + LOG(ERROR) << "Trying to call glIsPathNV() without current GL context"; + return GL_FALSE; +} + GLboolean NoContextGLApi::glIsProgramFn(GLuint program) { NOTREACHED() << "Trying to call glIsProgram() without current GL context"; LOG(ERROR) << "Trying to call glIsProgram() without current GL context"; @@ -11008,6 +11581,44 @@ void NoContextGLApi::glMatrixLoadIdentityEXTFn(GLenum matrixMode) { << "Trying to call glMatrixLoadIdentityEXT() without current GL context"; } +void NoContextGLApi::glPathCommandsNVFn(GLuint path, + GLsizei numCommands, + const GLubyte* commands, + GLsizei numCoords, + GLenum coordType, + const GLvoid* coords) { + NOTREACHED() + << "Trying to call glPathCommandsNV() without current GL context"; + LOG(ERROR) << "Trying to call glPathCommandsNV() without current GL context"; +} + +void NoContextGLApi::glPathParameterfNVFn(GLuint path, + GLenum pname, + GLfloat value) { + NOTREACHED() + << "Trying to call glPathParameterfNV() without current GL context"; + LOG(ERROR) + << "Trying to call glPathParameterfNV() without current GL context"; +} + +void NoContextGLApi::glPathParameteriNVFn(GLuint path, + GLenum pname, + GLint value) { + NOTREACHED() + << "Trying to call glPathParameteriNV() without current GL context"; + LOG(ERROR) + << "Trying to call glPathParameteriNV() without current GL context"; +} + +void NoContextGLApi::glPathStencilFuncNVFn(GLenum func, + GLint ref, + GLuint mask) { + NOTREACHED() + << "Trying to call glPathStencilFuncNV() without current GL context"; + LOG(ERROR) + << "Trying to call glPathStencilFuncNV() without current GL context"; +} + void NoContextGLApi::glPauseTransformFeedbackFn(void) { NOTREACHED() << "Trying to call glPauseTransformFeedback() without current GL context"; @@ -11232,6 +11843,15 @@ void NoContextGLApi::glShaderSourceFn(GLuint shader, LOG(ERROR) << "Trying to call glShaderSource() without current GL context"; } +void NoContextGLApi::glStencilFillPathNVFn(GLuint path, + GLenum fillMode, + GLuint mask) { + NOTREACHED() + << "Trying to call glStencilFillPathNV() without current GL context"; + LOG(ERROR) + << "Trying to call glStencilFillPathNV() without current GL context"; +} + void NoContextGLApi::glStencilFuncFn(GLenum func, GLint ref, GLuint mask) { NOTREACHED() << "Trying to call glStencilFunc() without current GL context"; LOG(ERROR) << "Trying to call glStencilFunc() without current GL context"; @@ -11274,6 +11894,35 @@ void NoContextGLApi::glStencilOpSeparateFn(GLenum face, << "Trying to call glStencilOpSeparate() without current GL context"; } +void NoContextGLApi::glStencilStrokePathNVFn(GLuint path, + GLint reference, + GLuint mask) { + NOTREACHED() + << "Trying to call glStencilStrokePathNV() without current GL context"; + LOG(ERROR) + << "Trying to call glStencilStrokePathNV() without current GL context"; +} + +void NoContextGLApi::glStencilThenCoverFillPathNVFn(GLuint path, + GLenum fillMode, + GLuint mask, + GLenum coverMode) { + NOTREACHED() << "Trying to call glStencilThenCoverFillPathNV() without " + "current GL context"; + LOG(ERROR) << "Trying to call glStencilThenCoverFillPathNV() without current " + "GL context"; +} + +void NoContextGLApi::glStencilThenCoverStrokePathNVFn(GLuint path, + GLint reference, + GLuint mask, + GLenum coverMode) { + NOTREACHED() << "Trying to call glStencilThenCoverStrokePathNV() without " + "current GL context"; + LOG(ERROR) << "Trying to call glStencilThenCoverStrokePathNV() without " + "current GL context"; +} + GLboolean NoContextGLApi::glTestFenceAPPLEFn(GLuint fence) { NOTREACHED() << "Trying to call glTestFenceAPPLE() without current GL context"; diff --git a/chromium/ui/gl/gl_bindings_autogen_gl.h b/chromium/ui/gl/gl_bindings_autogen_gl.h index 1689361c39e..15a95186af7 100644 --- a/chromium/ui/gl/gl_bindings_autogen_gl.h +++ b/chromium/ui/gl/gl_bindings_autogen_gl.h @@ -16,6 +16,7 @@ namespace gfx { class GLContext; typedef void(GL_BINDING_CALL* glActiveTextureProc)(GLenum texture); +typedef void(GL_BINDING_CALL* glApplyFramebufferAttachmentCMAAINTELProc)(void); typedef void(GL_BINDING_CALL* glAttachShaderProc)(GLuint program, GLuint shader); typedef void(GL_BINDING_CALL* glBeginQueryProc)(GLenum target, GLuint id); @@ -198,6 +199,10 @@ typedef void(GL_BINDING_CALL* glCopyTexSubImage3DProc)(GLenum target, GLint y, GLsizei width, GLsizei height); +typedef void(GL_BINDING_CALL* glCoverFillPathNVProc)(GLuint path, + GLenum coverMode); +typedef void(GL_BINDING_CALL* glCoverStrokePathNVProc)(GLuint name, + GLenum coverMode); typedef GLuint(GL_BINDING_CALL* glCreateProgramProc)(void); typedef GLuint(GL_BINDING_CALL* glCreateShaderProc)(GLenum type); typedef void(GL_BINDING_CALL* glCullFaceProc)(GLenum mode); @@ -210,6 +215,7 @@ typedef void(GL_BINDING_CALL* glDeleteFencesNVProc)(GLsizei n, typedef void(GL_BINDING_CALL* glDeleteFramebuffersEXTProc)( GLsizei n, const GLuint* framebuffers); +typedef void(GL_BINDING_CALL* glDeletePathsNVProc)(GLuint path, GLsizei range); typedef void(GL_BINDING_CALL* glDeleteProgramProc)(GLuint program); typedef void(GL_BINDING_CALL* glDeleteQueriesProc)(GLsizei n, const GLuint* ids); @@ -322,6 +328,7 @@ typedef void(GL_BINDING_CALL* glGenFencesAPPLEProc)(GLsizei n, GLuint* fences); typedef void(GL_BINDING_CALL* glGenFencesNVProc)(GLsizei n, GLuint* fences); typedef void(GL_BINDING_CALL* glGenFramebuffersEXTProc)(GLsizei n, GLuint* framebuffers); +typedef GLuint(GL_BINDING_CALL* glGenPathsNVProc)(GLsizei range); typedef void(GL_BINDING_CALL* glGenQueriesProc)(GLsizei n, GLuint* ids); typedef void(GL_BINDING_CALL* glGenRenderbuffersEXTProc)(GLsizei n, GLuint* renderbuffers); @@ -540,6 +547,7 @@ typedef GLboolean(GL_BINDING_CALL* glIsEnabledProc)(GLenum cap); typedef GLboolean(GL_BINDING_CALL* glIsFenceAPPLEProc)(GLuint fence); typedef GLboolean(GL_BINDING_CALL* glIsFenceNVProc)(GLuint fence); typedef GLboolean(GL_BINDING_CALL* glIsFramebufferEXTProc)(GLuint framebuffer); +typedef GLboolean(GL_BINDING_CALL* glIsPathNVProc)(GLuint path); typedef GLboolean(GL_BINDING_CALL* glIsProgramProc)(GLuint program); typedef GLboolean(GL_BINDING_CALL* glIsQueryProc)(GLuint query); typedef GLboolean(GL_BINDING_CALL* glIsRenderbufferEXTProc)( @@ -560,6 +568,21 @@ typedef void*(GL_BINDING_CALL* glMapBufferRangeProc)(GLenum target, typedef void(GL_BINDING_CALL* glMatrixLoadfEXTProc)(GLenum matrixMode, const GLfloat* m); typedef void(GL_BINDING_CALL* glMatrixLoadIdentityEXTProc)(GLenum matrixMode); +typedef void(GL_BINDING_CALL* glPathCommandsNVProc)(GLuint path, + GLsizei numCommands, + const GLubyte* commands, + GLsizei numCoords, + GLenum coordType, + const GLvoid* coords); +typedef void(GL_BINDING_CALL* glPathParameterfNVProc)(GLuint path, + GLenum pname, + GLfloat value); +typedef void(GL_BINDING_CALL* glPathParameteriNVProc)(GLuint path, + GLenum pname, + GLint value); +typedef void(GL_BINDING_CALL* glPathStencilFuncNVProc)(GLenum func, + GLint ref, + GLuint mask); typedef void(GL_BINDING_CALL* glPauseTransformFeedbackProc)(void); typedef void(GL_BINDING_CALL* glPixelStoreiProc)(GLenum pname, GLint param); typedef void(GL_BINDING_CALL* glPointParameteriProc)(GLenum pname, GLint param); @@ -644,6 +667,9 @@ typedef void(GL_BINDING_CALL* glShaderSourceProc)(GLuint shader, GLsizei count, const char* const* str, const GLint* length); +typedef void(GL_BINDING_CALL* glStencilFillPathNVProc)(GLuint path, + GLenum fillMode, + GLuint mask); typedef void(GL_BINDING_CALL* glStencilFuncProc)(GLenum func, GLint ref, GLuint mask); @@ -661,6 +687,19 @@ typedef void(GL_BINDING_CALL* glStencilOpSeparateProc)(GLenum face, GLenum fail, GLenum zfail, GLenum zpass); +typedef void(GL_BINDING_CALL* glStencilStrokePathNVProc)(GLuint path, + GLint reference, + GLuint mask); +typedef void(GL_BINDING_CALL* glStencilThenCoverFillPathNVProc)( + GLuint path, + GLenum fillMode, + GLuint mask, + GLenum coverMode); +typedef void(GL_BINDING_CALL* glStencilThenCoverStrokePathNVProc)( + GLuint path, + GLint reference, + GLuint mask, + GLenum coverMode); typedef GLboolean(GL_BINDING_CALL* glTestFenceAPPLEProc)(GLuint fence); typedef GLboolean(GL_BINDING_CALL* glTestFenceNVProc)(GLuint fence); typedef void(GL_BINDING_CALL* glTexImage2DProc)(GLenum target, @@ -939,6 +978,7 @@ struct ExtensionsGL { bool b_GL_EXT_texture_storage; bool b_GL_EXT_timer_query; bool b_GL_IMG_multisampled_render_to_texture; + bool b_GL_INTEL_framebuffer_CMAA; bool b_GL_KHR_blend_equation_advanced; bool b_GL_KHR_robustness; bool b_GL_NV_blend_equation_advanced; @@ -952,6 +992,8 @@ struct ExtensionsGL { struct ProcsGL { glActiveTextureProc glActiveTextureFn; + glApplyFramebufferAttachmentCMAAINTELProc + glApplyFramebufferAttachmentCMAAINTELFn; glAttachShaderProc glAttachShaderFn; glBeginQueryProc glBeginQueryFn; glBeginTransformFeedbackProc glBeginTransformFeedbackFn; @@ -999,6 +1041,8 @@ struct ProcsGL { glCopyTexImage2DProc glCopyTexImage2DFn; glCopyTexSubImage2DProc glCopyTexSubImage2DFn; glCopyTexSubImage3DProc glCopyTexSubImage3DFn; + glCoverFillPathNVProc glCoverFillPathNVFn; + glCoverStrokePathNVProc glCoverStrokePathNVFn; glCreateProgramProc glCreateProgramFn; glCreateShaderProc glCreateShaderFn; glCullFaceProc glCullFaceFn; @@ -1006,6 +1050,7 @@ struct ProcsGL { glDeleteFencesAPPLEProc glDeleteFencesAPPLEFn; glDeleteFencesNVProc glDeleteFencesNVFn; glDeleteFramebuffersEXTProc glDeleteFramebuffersEXTFn; + glDeletePathsNVProc glDeletePathsNVFn; glDeleteProgramProc glDeleteProgramFn; glDeleteQueriesProc glDeleteQueriesFn; glDeleteRenderbuffersEXTProc glDeleteRenderbuffersEXTFn; @@ -1056,6 +1101,7 @@ struct ProcsGL { glGenFencesAPPLEProc glGenFencesAPPLEFn; glGenFencesNVProc glGenFencesNVFn; glGenFramebuffersEXTProc glGenFramebuffersEXTFn; + glGenPathsNVProc glGenPathsNVFn; glGenQueriesProc glGenQueriesFn; glGenRenderbuffersEXTProc glGenRenderbuffersEXTFn; glGenSamplersProc glGenSamplersFn; @@ -1126,6 +1172,7 @@ struct ProcsGL { glIsFenceAPPLEProc glIsFenceAPPLEFn; glIsFenceNVProc glIsFenceNVFn; glIsFramebufferEXTProc glIsFramebufferEXTFn; + glIsPathNVProc glIsPathNVFn; glIsProgramProc glIsProgramFn; glIsQueryProc glIsQueryFn; glIsRenderbufferEXTProc glIsRenderbufferEXTFn; @@ -1141,6 +1188,10 @@ struct ProcsGL { glMapBufferRangeProc glMapBufferRangeFn; glMatrixLoadfEXTProc glMatrixLoadfEXTFn; glMatrixLoadIdentityEXTProc glMatrixLoadIdentityEXTFn; + glPathCommandsNVProc glPathCommandsNVFn; + glPathParameterfNVProc glPathParameterfNVFn; + glPathParameteriNVProc glPathParameteriNVFn; + glPathStencilFuncNVProc glPathStencilFuncNVFn; glPauseTransformFeedbackProc glPauseTransformFeedbackFn; glPixelStoreiProc glPixelStoreiFn; glPointParameteriProc glPointParameteriFn; @@ -1170,12 +1221,16 @@ struct ProcsGL { glSetFenceNVProc glSetFenceNVFn; glShaderBinaryProc glShaderBinaryFn; glShaderSourceProc glShaderSourceFn; + glStencilFillPathNVProc glStencilFillPathNVFn; glStencilFuncProc glStencilFuncFn; glStencilFuncSeparateProc glStencilFuncSeparateFn; glStencilMaskProc glStencilMaskFn; glStencilMaskSeparateProc glStencilMaskSeparateFn; glStencilOpProc glStencilOpFn; glStencilOpSeparateProc glStencilOpSeparateFn; + glStencilStrokePathNVProc glStencilStrokePathNVFn; + glStencilThenCoverFillPathNVProc glStencilThenCoverFillPathNVFn; + glStencilThenCoverStrokePathNVProc glStencilThenCoverStrokePathNVFn; glTestFenceAPPLEProc glTestFenceAPPLEFn; glTestFenceNVProc glTestFenceNVFn; glTexImage2DProc glTexImage2DFn; @@ -1251,6 +1306,7 @@ class GL_EXPORT GLApi { virtual ~GLApi(); virtual void glActiveTextureFn(GLenum texture) = 0; + virtual void glApplyFramebufferAttachmentCMAAINTELFn(void) = 0; virtual void glAttachShaderFn(GLuint program, GLuint shader) = 0; virtual void glBeginQueryFn(GLenum target, GLuint id) = 0; virtual void glBeginTransformFeedbackFn(GLenum primitiveMode) = 0; @@ -1426,6 +1482,8 @@ class GL_EXPORT GLApi { GLint y, GLsizei width, GLsizei height) = 0; + virtual void glCoverFillPathNVFn(GLuint path, GLenum coverMode) = 0; + virtual void glCoverStrokePathNVFn(GLuint name, GLenum coverMode) = 0; virtual GLuint glCreateProgramFn(void) = 0; virtual GLuint glCreateShaderFn(GLenum type) = 0; virtual void glCullFaceFn(GLenum mode) = 0; @@ -1434,6 +1492,7 @@ class GL_EXPORT GLApi { virtual void glDeleteFencesNVFn(GLsizei n, const GLuint* fences) = 0; virtual void glDeleteFramebuffersEXTFn(GLsizei n, const GLuint* framebuffers) = 0; + virtual void glDeletePathsNVFn(GLuint path, GLsizei range) = 0; virtual void glDeleteProgramFn(GLuint program) = 0; virtual void glDeleteQueriesFn(GLsizei n, const GLuint* ids) = 0; virtual void glDeleteRenderbuffersEXTFn(GLsizei n, @@ -1525,6 +1584,7 @@ class GL_EXPORT GLApi { virtual void glGenFencesAPPLEFn(GLsizei n, GLuint* fences) = 0; virtual void glGenFencesNVFn(GLsizei n, GLuint* fences) = 0; virtual void glGenFramebuffersEXTFn(GLsizei n, GLuint* framebuffers) = 0; + virtual GLuint glGenPathsNVFn(GLsizei range) = 0; virtual void glGenQueriesFn(GLsizei n, GLuint* ids) = 0; virtual void glGenRenderbuffersEXTFn(GLsizei n, GLuint* renderbuffers) = 0; virtual void glGenSamplersFn(GLsizei n, GLuint* samplers) = 0; @@ -1710,6 +1770,7 @@ class GL_EXPORT GLApi { virtual GLboolean glIsFenceAPPLEFn(GLuint fence) = 0; virtual GLboolean glIsFenceNVFn(GLuint fence) = 0; virtual GLboolean glIsFramebufferEXTFn(GLuint framebuffer) = 0; + virtual GLboolean glIsPathNVFn(GLuint path) = 0; virtual GLboolean glIsProgramFn(GLuint program) = 0; virtual GLboolean glIsQueryFn(GLuint query) = 0; virtual GLboolean glIsRenderbufferEXTFn(GLuint renderbuffer) = 0; @@ -1728,6 +1789,17 @@ class GL_EXPORT GLApi { GLbitfield access) = 0; virtual void glMatrixLoadfEXTFn(GLenum matrixMode, const GLfloat* m) = 0; virtual void glMatrixLoadIdentityEXTFn(GLenum matrixMode) = 0; + virtual void glPathCommandsNVFn(GLuint path, + GLsizei numCommands, + const GLubyte* commands, + GLsizei numCoords, + GLenum coordType, + const GLvoid* coords) = 0; + virtual void glPathParameterfNVFn(GLuint path, + GLenum pname, + GLfloat value) = 0; + virtual void glPathParameteriNVFn(GLuint path, GLenum pname, GLint value) = 0; + virtual void glPathStencilFuncNVFn(GLenum func, GLint ref, GLuint mask) = 0; virtual void glPauseTransformFeedbackFn(void) = 0; virtual void glPixelStoreiFn(GLenum pname, GLint param) = 0; virtual void glPointParameteriFn(GLenum pname, GLint param) = 0; @@ -1801,6 +1873,9 @@ class GL_EXPORT GLApi { GLsizei count, const char* const* str, const GLint* length) = 0; + virtual void glStencilFillPathNVFn(GLuint path, + GLenum fillMode, + GLuint mask) = 0; virtual void glStencilFuncFn(GLenum func, GLint ref, GLuint mask) = 0; virtual void glStencilFuncSeparateFn(GLenum face, GLenum func, @@ -1813,6 +1888,17 @@ class GL_EXPORT GLApi { GLenum fail, GLenum zfail, GLenum zpass) = 0; + virtual void glStencilStrokePathNVFn(GLuint path, + GLint reference, + GLuint mask) = 0; + virtual void glStencilThenCoverFillPathNVFn(GLuint path, + GLenum fillMode, + GLuint mask, + GLenum coverMode) = 0; + virtual void glStencilThenCoverStrokePathNVFn(GLuint path, + GLint reference, + GLuint mask, + GLenum coverMode) = 0; virtual GLboolean glTestFenceAPPLEFn(GLuint fence) = 0; virtual GLboolean glTestFenceNVFn(GLuint fence) = 0; virtual void glTexImage2DFn(GLenum target, @@ -2038,6 +2124,8 @@ class GL_EXPORT GLApi { } // namespace gfx #define glActiveTexture ::gfx::g_current_gl_context->glActiveTextureFn +#define glApplyFramebufferAttachmentCMAAINTEL \ + ::gfx::g_current_gl_context->glApplyFramebufferAttachmentCMAAINTELFn #define glAttachShader ::gfx::g_current_gl_context->glAttachShaderFn #define glBeginQuery ::gfx::g_current_gl_context->glBeginQueryFn #define glBeginTransformFeedback \ @@ -2097,6 +2185,8 @@ class GL_EXPORT GLApi { #define glCopyTexImage2D ::gfx::g_current_gl_context->glCopyTexImage2DFn #define glCopyTexSubImage2D ::gfx::g_current_gl_context->glCopyTexSubImage2DFn #define glCopyTexSubImage3D ::gfx::g_current_gl_context->glCopyTexSubImage3DFn +#define glCoverFillPathNV ::gfx::g_current_gl_context->glCoverFillPathNVFn +#define glCoverStrokePathNV ::gfx::g_current_gl_context->glCoverStrokePathNVFn #define glCreateProgram ::gfx::g_current_gl_context->glCreateProgramFn #define glCreateShader ::gfx::g_current_gl_context->glCreateShaderFn #define glCullFace ::gfx::g_current_gl_context->glCullFaceFn @@ -2105,6 +2195,7 @@ class GL_EXPORT GLApi { #define glDeleteFencesNV ::gfx::g_current_gl_context->glDeleteFencesNVFn #define glDeleteFramebuffersEXT \ ::gfx::g_current_gl_context->glDeleteFramebuffersEXTFn +#define glDeletePathsNV ::gfx::g_current_gl_context->glDeletePathsNVFn #define glDeleteProgram ::gfx::g_current_gl_context->glDeleteProgramFn #define glDeleteQueries ::gfx::g_current_gl_context->glDeleteQueriesFn #define glDeleteRenderbuffersEXT \ @@ -2169,6 +2260,7 @@ class GL_EXPORT GLApi { #define glGenFencesAPPLE ::gfx::g_current_gl_context->glGenFencesAPPLEFn #define glGenFencesNV ::gfx::g_current_gl_context->glGenFencesNVFn #define glGenFramebuffersEXT ::gfx::g_current_gl_context->glGenFramebuffersEXTFn +#define glGenPathsNV ::gfx::g_current_gl_context->glGenPathsNVFn #define glGenQueries ::gfx::g_current_gl_context->glGenQueriesFn #define glGenRenderbuffersEXT \ ::gfx::g_current_gl_context->glGenRenderbuffersEXTFn @@ -2263,6 +2355,7 @@ class GL_EXPORT GLApi { #define glIsFenceAPPLE ::gfx::g_current_gl_context->glIsFenceAPPLEFn #define glIsFenceNV ::gfx::g_current_gl_context->glIsFenceNVFn #define glIsFramebufferEXT ::gfx::g_current_gl_context->glIsFramebufferEXTFn +#define glIsPathNV ::gfx::g_current_gl_context->glIsPathNVFn #define glIsProgram ::gfx::g_current_gl_context->glIsProgramFn #define glIsQuery ::gfx::g_current_gl_context->glIsQueryFn #define glIsRenderbufferEXT ::gfx::g_current_gl_context->glIsRenderbufferEXTFn @@ -2280,6 +2373,10 @@ class GL_EXPORT GLApi { #define glMatrixLoadfEXT ::gfx::g_current_gl_context->glMatrixLoadfEXTFn #define glMatrixLoadIdentityEXT \ ::gfx::g_current_gl_context->glMatrixLoadIdentityEXTFn +#define glPathCommandsNV ::gfx::g_current_gl_context->glPathCommandsNVFn +#define glPathParameterfNV ::gfx::g_current_gl_context->glPathParameterfNVFn +#define glPathParameteriNV ::gfx::g_current_gl_context->glPathParameteriNVFn +#define glPathStencilFuncNV ::gfx::g_current_gl_context->glPathStencilFuncNVFn #define glPauseTransformFeedback \ ::gfx::g_current_gl_context->glPauseTransformFeedbackFn #define glPixelStorei ::gfx::g_current_gl_context->glPixelStoreiFn @@ -2316,6 +2413,7 @@ class GL_EXPORT GLApi { #define glSetFenceNV ::gfx::g_current_gl_context->glSetFenceNVFn #define glShaderBinary ::gfx::g_current_gl_context->glShaderBinaryFn #define glShaderSource ::gfx::g_current_gl_context->glShaderSourceFn +#define glStencilFillPathNV ::gfx::g_current_gl_context->glStencilFillPathNVFn #define glStencilFunc ::gfx::g_current_gl_context->glStencilFuncFn #define glStencilFuncSeparate \ ::gfx::g_current_gl_context->glStencilFuncSeparateFn @@ -2324,6 +2422,12 @@ class GL_EXPORT GLApi { ::gfx::g_current_gl_context->glStencilMaskSeparateFn #define glStencilOp ::gfx::g_current_gl_context->glStencilOpFn #define glStencilOpSeparate ::gfx::g_current_gl_context->glStencilOpSeparateFn +#define glStencilStrokePathNV \ + ::gfx::g_current_gl_context->glStencilStrokePathNVFn +#define glStencilThenCoverFillPathNV \ + ::gfx::g_current_gl_context->glStencilThenCoverFillPathNVFn +#define glStencilThenCoverStrokePathNV \ + ::gfx::g_current_gl_context->glStencilThenCoverStrokePathNVFn #define glTestFenceAPPLE ::gfx::g_current_gl_context->glTestFenceAPPLEFn #define glTestFenceNV ::gfx::g_current_gl_context->glTestFenceNVFn #define glTexImage2D ::gfx::g_current_gl_context->glTexImage2DFn diff --git a/chromium/ui/gl/gl_bindings_autogen_glx.cc b/chromium/ui/gl/gl_bindings_autogen_glx.cc index 0bd0d03d831..7c9c8c15d5b 100644 --- a/chromium/ui/gl/gl_bindings_autogen_glx.cc +++ b/chromium/ui/gl/gl_bindings_autogen_glx.cc @@ -240,8 +240,9 @@ Debug_glXChooseFBConfig(Display* dpy, return result; } -static XVisualInfo* GL_BINDING_CALL -Debug_glXChooseVisual(Display* dpy, int screen, int* attribList) { +static XVisualInfo* GL_BINDING_CALL Debug_glXChooseVisual(Display* dpy, + int screen, + int* attribList) { GL_SERVICE_LOG("glXChooseVisual" << "(" << static_cast<const void*>(dpy) << ", " << screen << ", " << static_cast<const void*>(attribList) << ")"); @@ -305,8 +306,9 @@ Debug_glXCreateContextAttribsARB(Display* dpy, return result; } -static GLXPixmap GL_BINDING_CALL -Debug_glXCreateGLXPixmap(Display* dpy, XVisualInfo* visual, Pixmap pixmap) { +static GLXPixmap GL_BINDING_CALL Debug_glXCreateGLXPixmap(Display* dpy, + XVisualInfo* visual, + Pixmap pixmap) { GL_SERVICE_LOG("glXCreateGLXPixmap" << "(" << static_cast<const void*>(dpy) << ", " << static_cast<const void*>(visual) << ", " << pixmap << ")"); @@ -373,47 +375,47 @@ static GLXWindow GL_BINDING_CALL Debug_glXCreateWindow(Display* dpy, return result; } -static void GL_BINDING_CALL -Debug_glXDestroyContext(Display* dpy, GLXContext ctx) { +static void GL_BINDING_CALL Debug_glXDestroyContext(Display* dpy, + GLXContext ctx) { GL_SERVICE_LOG("glXDestroyContext" << "(" << static_cast<const void*>(dpy) << ", " << ctx << ")"); g_driver_glx.debug_fn.glXDestroyContextFn(dpy, ctx); } -static void GL_BINDING_CALL -Debug_glXDestroyGLXPixmap(Display* dpy, GLXPixmap pixmap) { +static void GL_BINDING_CALL Debug_glXDestroyGLXPixmap(Display* dpy, + GLXPixmap pixmap) { GL_SERVICE_LOG("glXDestroyGLXPixmap" << "(" << static_cast<const void*>(dpy) << ", " << pixmap << ")"); g_driver_glx.debug_fn.glXDestroyGLXPixmapFn(dpy, pixmap); } -static void GL_BINDING_CALL -Debug_glXDestroyPbuffer(Display* dpy, GLXPbuffer pbuf) { +static void GL_BINDING_CALL Debug_glXDestroyPbuffer(Display* dpy, + GLXPbuffer pbuf) { GL_SERVICE_LOG("glXDestroyPbuffer" << "(" << static_cast<const void*>(dpy) << ", " << pbuf << ")"); g_driver_glx.debug_fn.glXDestroyPbufferFn(dpy, pbuf); } -static void GL_BINDING_CALL -Debug_glXDestroyPixmap(Display* dpy, GLXPixmap pixmap) { +static void GL_BINDING_CALL Debug_glXDestroyPixmap(Display* dpy, + GLXPixmap pixmap) { GL_SERVICE_LOG("glXDestroyPixmap" << "(" << static_cast<const void*>(dpy) << ", " << pixmap << ")"); g_driver_glx.debug_fn.glXDestroyPixmapFn(dpy, pixmap); } -static void GL_BINDING_CALL -Debug_glXDestroyWindow(Display* dpy, GLXWindow window) { +static void GL_BINDING_CALL Debug_glXDestroyWindow(Display* dpy, + GLXWindow window) { GL_SERVICE_LOG("glXDestroyWindow" << "(" << static_cast<const void*>(dpy) << ", " << window << ")"); g_driver_glx.debug_fn.glXDestroyWindowFn(dpy, window); } -static const char* GL_BINDING_CALL -Debug_glXGetClientString(Display* dpy, int name) { +static const char* GL_BINDING_CALL Debug_glXGetClientString(Display* dpy, + int name) { GL_SERVICE_LOG("glXGetClientString" << "(" << static_cast<const void*>(dpy) << ", " << name << ")"); @@ -422,8 +424,10 @@ Debug_glXGetClientString(Display* dpy, int name) { return result; } -static int GL_BINDING_CALL -Debug_glXGetConfig(Display* dpy, XVisualInfo* visual, int attrib, int* value) { +static int GL_BINDING_CALL Debug_glXGetConfig(Display* dpy, + XVisualInfo* visual, + int attrib, + int* value) { GL_SERVICE_LOG("glXGetConfig" << "(" << static_cast<const void*>(dpy) << ", " << static_cast<const void*>(visual) << ", " << attrib << ", " @@ -494,8 +498,9 @@ Debug_glXGetFBConfigFromVisualSGIX(Display* dpy, XVisualInfo* visualInfo) { return result; } -static GLXFBConfig* GL_BINDING_CALL -Debug_glXGetFBConfigs(Display* dpy, int screen, int* nelements) { +static GLXFBConfig* GL_BINDING_CALL Debug_glXGetFBConfigs(Display* dpy, + int screen, + int* nelements) { GL_SERVICE_LOG("glXGetFBConfigs" << "(" << static_cast<const void*>(dpy) << ", " << screen << ", " << static_cast<const void*>(nelements) << ")"); @@ -576,8 +581,9 @@ static int GL_BINDING_CALL Debug_glXMakeContextCurrent(Display* dpy, return result; } -static int GL_BINDING_CALL -Debug_glXMakeCurrent(Display* dpy, GLXDrawable drawable, GLXContext ctx) { +static int GL_BINDING_CALL Debug_glXMakeCurrent(Display* dpy, + GLXDrawable drawable, + GLXContext ctx) { GL_SERVICE_LOG("glXMakeCurrent" << "(" << static_cast<const void*>(dpy) << ", " << drawable << ", " << ctx << ")"); @@ -586,8 +592,10 @@ Debug_glXMakeCurrent(Display* dpy, GLXDrawable drawable, GLXContext ctx) { return result; } -static int GL_BINDING_CALL -Debug_glXQueryContext(Display* dpy, GLXContext ctx, int attribute, int* value) { +static int GL_BINDING_CALL Debug_glXQueryContext(Display* dpy, + GLXContext ctx, + int attribute, + int* value) { GL_SERVICE_LOG("glXQueryContext" << "(" << static_cast<const void*>(dpy) << ", " << ctx << ", " << attribute << ", " << static_cast<const void*>(value) @@ -609,8 +617,9 @@ static void GL_BINDING_CALL Debug_glXQueryDrawable(Display* dpy, g_driver_glx.debug_fn.glXQueryDrawableFn(dpy, draw, attribute, value); } -static int GL_BINDING_CALL -Debug_glXQueryExtension(Display* dpy, int* errorb, int* event) { +static int GL_BINDING_CALL Debug_glXQueryExtension(Display* dpy, + int* errorb, + int* event) { GL_SERVICE_LOG("glXQueryExtension" << "(" << static_cast<const void*>(dpy) << ", " << static_cast<const void*>(errorb) << ", " @@ -620,8 +629,8 @@ Debug_glXQueryExtension(Display* dpy, int* errorb, int* event) { return result; } -static const char* GL_BINDING_CALL -Debug_glXQueryExtensionsString(Display* dpy, int screen) { +static const char* GL_BINDING_CALL Debug_glXQueryExtensionsString(Display* dpy, + int screen) { GL_SERVICE_LOG("glXQueryExtensionsString" << "(" << static_cast<const void*>(dpy) << ", " << screen << ")"); @@ -631,8 +640,9 @@ Debug_glXQueryExtensionsString(Display* dpy, int screen) { return result; } -static const char* GL_BINDING_CALL -Debug_glXQueryServerString(Display* dpy, int screen, int name) { +static const char* GL_BINDING_CALL Debug_glXQueryServerString(Display* dpy, + int screen, + int name) { GL_SERVICE_LOG("glXQueryServerString" << "(" << static_cast<const void*>(dpy) << ", " << screen << ", " << name << ")"); @@ -642,8 +652,9 @@ Debug_glXQueryServerString(Display* dpy, int screen, int name) { return result; } -static int GL_BINDING_CALL -Debug_glXQueryVersion(Display* dpy, int* maj, int* min) { +static int GL_BINDING_CALL Debug_glXQueryVersion(Display* dpy, + int* maj, + int* min) { GL_SERVICE_LOG("glXQueryVersion" << "(" << static_cast<const void*>(dpy) << ", " << static_cast<const void*>(maj) << ", " @@ -653,32 +664,35 @@ Debug_glXQueryVersion(Display* dpy, int* maj, int* min) { return result; } -static void GL_BINDING_CALL -Debug_glXReleaseTexImageEXT(Display* dpy, GLXDrawable drawable, int buffer) { +static void GL_BINDING_CALL Debug_glXReleaseTexImageEXT(Display* dpy, + GLXDrawable drawable, + int buffer) { GL_SERVICE_LOG("glXReleaseTexImageEXT" << "(" << static_cast<const void*>(dpy) << ", " << drawable << ", " << buffer << ")"); g_driver_glx.debug_fn.glXReleaseTexImageEXTFn(dpy, drawable, buffer); } -static void GL_BINDING_CALL -Debug_glXSelectEvent(Display* dpy, GLXDrawable drawable, unsigned long mask) { +static void GL_BINDING_CALL Debug_glXSelectEvent(Display* dpy, + GLXDrawable drawable, + unsigned long mask) { GL_SERVICE_LOG("glXSelectEvent" << "(" << static_cast<const void*>(dpy) << ", " << drawable << ", " << mask << ")"); g_driver_glx.debug_fn.glXSelectEventFn(dpy, drawable, mask); } -static void GL_BINDING_CALL -Debug_glXSwapBuffers(Display* dpy, GLXDrawable drawable) { +static void GL_BINDING_CALL Debug_glXSwapBuffers(Display* dpy, + GLXDrawable drawable) { GL_SERVICE_LOG("glXSwapBuffers" << "(" << static_cast<const void*>(dpy) << ", " << drawable << ")"); g_driver_glx.debug_fn.glXSwapBuffersFn(dpy, drawable); } -static void GL_BINDING_CALL -Debug_glXSwapIntervalEXT(Display* dpy, GLXDrawable drawable, int interval) { +static void GL_BINDING_CALL Debug_glXSwapIntervalEXT(Display* dpy, + GLXDrawable drawable, + int interval) { GL_SERVICE_LOG("glXSwapIntervalEXT" << "(" << static_cast<const void*>(dpy) << ", " << drawable << ", " << interval << ")"); @@ -691,8 +705,10 @@ static void GL_BINDING_CALL Debug_glXSwapIntervalMESA(unsigned int interval) { g_driver_glx.debug_fn.glXSwapIntervalMESAFn(interval); } -static void GL_BINDING_CALL -Debug_glXUseXFont(Font font, int first, int count, int list) { +static void GL_BINDING_CALL Debug_glXUseXFont(Font font, + int first, + int count, + int list) { GL_SERVICE_LOG("glXUseXFont" << "(" << font << ", " << first << ", " << count << ", " << list << ")"); @@ -706,8 +722,9 @@ static void GL_BINDING_CALL Debug_glXWaitGL(void) { g_driver_glx.debug_fn.glXWaitGLFn(); } -static int GL_BINDING_CALL -Debug_glXWaitVideoSyncSGI(int divisor, int remainder, unsigned int* count) { +static int GL_BINDING_CALL Debug_glXWaitVideoSyncSGI(int divisor, + int remainder, + unsigned int* count) { GL_SERVICE_LOG("glXWaitVideoSyncSGI" << "(" << divisor << ", " << remainder << ", " << static_cast<const void*>(count) << ")"); diff --git a/chromium/ui/gl/gl_bindings_autogen_mock.cc b/chromium/ui/gl/gl_bindings_autogen_mock.cc index b5a82eea674..41a38dfba36 100644 --- a/chromium/ui/gl/gl_bindings_autogen_mock.cc +++ b/chromium/ui/gl/gl_bindings_autogen_mock.cc @@ -27,25 +27,31 @@ void GL_BINDING_CALL MockGLInterface::Mock_glActiveTexture(GLenum texture) { } void GL_BINDING_CALL -MockGLInterface::Mock_glAttachShader(GLuint program, GLuint shader) { +MockGLInterface::Mock_glApplyFramebufferAttachmentCMAAINTEL(void) { + MakeFunctionUnique("glApplyFramebufferAttachmentCMAAINTEL"); + interface_->ApplyFramebufferAttachmentCMAAINTEL(); +} + +void GL_BINDING_CALL MockGLInterface::Mock_glAttachShader(GLuint program, + GLuint shader) { MakeFunctionUnique("glAttachShader"); interface_->AttachShader(program, shader); } -void GL_BINDING_CALL -MockGLInterface::Mock_glBeginQuery(GLenum target, GLuint id) { +void GL_BINDING_CALL MockGLInterface::Mock_glBeginQuery(GLenum target, + GLuint id) { MakeFunctionUnique("glBeginQuery"); interface_->BeginQuery(target, id); } -void GL_BINDING_CALL -MockGLInterface::Mock_glBeginQueryARB(GLenum target, GLuint id) { +void GL_BINDING_CALL MockGLInterface::Mock_glBeginQueryARB(GLenum target, + GLuint id) { MakeFunctionUnique("glBeginQueryARB"); interface_->BeginQuery(target, id); } -void GL_BINDING_CALL -MockGLInterface::Mock_glBeginQueryEXT(GLenum target, GLuint id) { +void GL_BINDING_CALL MockGLInterface::Mock_glBeginQueryEXT(GLenum target, + GLuint id) { MakeFunctionUnique("glBeginQueryEXT"); interface_->BeginQuery(target, id); } @@ -64,8 +70,8 @@ MockGLInterface::Mock_glBindAttribLocation(GLuint program, interface_->BindAttribLocation(program, index, name); } -void GL_BINDING_CALL -MockGLInterface::Mock_glBindBuffer(GLenum target, GLuint buffer) { +void GL_BINDING_CALL MockGLInterface::Mock_glBindBuffer(GLenum target, + GLuint buffer) { MakeFunctionUnique("glBindBuffer"); interface_->BindBuffer(target, buffer); } @@ -128,14 +134,14 @@ MockGLInterface::Mock_glBindRenderbufferEXT(GLenum target, interface_->BindRenderbufferEXT(target, renderbuffer); } -void GL_BINDING_CALL -MockGLInterface::Mock_glBindSampler(GLuint unit, GLuint sampler) { +void GL_BINDING_CALL MockGLInterface::Mock_glBindSampler(GLuint unit, + GLuint sampler) { MakeFunctionUnique("glBindSampler"); interface_->BindSampler(unit, sampler); } -void GL_BINDING_CALL -MockGLInterface::Mock_glBindTexture(GLenum target, GLuint texture) { +void GL_BINDING_CALL MockGLInterface::Mock_glBindTexture(GLenum target, + GLuint texture) { MakeFunctionUnique("glBindTexture"); interface_->BindTexture(target, texture); } @@ -192,8 +198,8 @@ MockGLInterface::Mock_glBlendEquationSeparate(GLenum modeRGB, interface_->BlendEquationSeparate(modeRGB, modeAlpha); } -void GL_BINDING_CALL -MockGLInterface::Mock_glBlendFunc(GLenum sfactor, GLenum dfactor) { +void GL_BINDING_CALL MockGLInterface::Mock_glBlendFunc(GLenum sfactor, + GLenum dfactor) { MakeFunctionUnique("glBlendFunc"); interface_->BlendFunc(sfactor, dfactor); } @@ -475,6 +481,18 @@ void GL_BINDING_CALL MockGLInterface::Mock_glCopyTexSubImage3D(GLenum target, width, height); } +void GL_BINDING_CALL MockGLInterface::Mock_glCoverFillPathNV(GLuint path, + GLenum coverMode) { + MakeFunctionUnique("glCoverFillPathNV"); + interface_->CoverFillPathNV(path, coverMode); +} + +void GL_BINDING_CALL +MockGLInterface::Mock_glCoverStrokePathNV(GLuint name, GLenum coverMode) { + MakeFunctionUnique("glCoverStrokePathNV"); + interface_->CoverStrokePathNV(name, coverMode); +} + GLuint GL_BINDING_CALL MockGLInterface::Mock_glCreateProgram(void) { MakeFunctionUnique("glCreateProgram"); return interface_->CreateProgram(); @@ -522,13 +540,19 @@ MockGLInterface::Mock_glDeleteFramebuffersEXT(GLsizei n, interface_->DeleteFramebuffersEXT(n, framebuffers); } +void GL_BINDING_CALL MockGLInterface::Mock_glDeletePathsNV(GLuint path, + GLsizei range) { + MakeFunctionUnique("glDeletePathsNV"); + interface_->DeletePathsNV(path, range); +} + void GL_BINDING_CALL MockGLInterface::Mock_glDeleteProgram(GLuint program) { MakeFunctionUnique("glDeleteProgram"); interface_->DeleteProgram(program); } -void GL_BINDING_CALL -MockGLInterface::Mock_glDeleteQueries(GLsizei n, const GLuint* ids) { +void GL_BINDING_CALL MockGLInterface::Mock_glDeleteQueries(GLsizei n, + const GLuint* ids) { MakeFunctionUnique("glDeleteQueries"); interface_->DeleteQueries(n, ids); } @@ -616,20 +640,20 @@ void GL_BINDING_CALL MockGLInterface::Mock_glDepthMask(GLboolean flag) { interface_->DepthMask(flag); } -void GL_BINDING_CALL -MockGLInterface::Mock_glDepthRange(GLclampd zNear, GLclampd zFar) { +void GL_BINDING_CALL MockGLInterface::Mock_glDepthRange(GLclampd zNear, + GLclampd zFar) { MakeFunctionUnique("glDepthRange"); interface_->DepthRange(zNear, zFar); } -void GL_BINDING_CALL -MockGLInterface::Mock_glDepthRangef(GLclampf zNear, GLclampf zFar) { +void GL_BINDING_CALL MockGLInterface::Mock_glDepthRangef(GLclampf zNear, + GLclampf zFar) { MakeFunctionUnique("glDepthRangef"); interface_->DepthRangef(zNear, zFar); } -void GL_BINDING_CALL -MockGLInterface::Mock_glDetachShader(GLuint program, GLuint shader) { +void GL_BINDING_CALL MockGLInterface::Mock_glDetachShader(GLuint program, + GLuint shader) { MakeFunctionUnique("glDetachShader"); interface_->DetachShader(program, shader); } @@ -653,8 +677,9 @@ MockGLInterface::Mock_glDiscardFramebufferEXT(GLenum target, interface_->DiscardFramebufferEXT(target, numAttachments, attachments); } -void GL_BINDING_CALL -MockGLInterface::Mock_glDrawArrays(GLenum mode, GLint first, GLsizei count) { +void GL_BINDING_CALL MockGLInterface::Mock_glDrawArrays(GLenum mode, + GLint first, + GLsizei count) { MakeFunctionUnique("glDrawArrays"); interface_->DrawArrays(mode, first, count); } @@ -691,8 +716,8 @@ void GL_BINDING_CALL MockGLInterface::Mock_glDrawBuffer(GLenum mode) { interface_->DrawBuffer(mode); } -void GL_BINDING_CALL -MockGLInterface::Mock_glDrawBuffers(GLsizei n, const GLenum* bufs) { +void GL_BINDING_CALL MockGLInterface::Mock_glDrawBuffers(GLsizei n, + const GLenum* bufs) { MakeFunctionUnique("glDrawBuffers"); interface_->DrawBuffersARB(n, bufs); } @@ -804,8 +829,8 @@ void GL_BINDING_CALL MockGLInterface::Mock_glEndTransformFeedback(void) { interface_->EndTransformFeedback(); } -GLsync GL_BINDING_CALL -MockGLInterface::Mock_glFenceSync(GLenum condition, GLbitfield flags) { +GLsync GL_BINDING_CALL MockGLInterface::Mock_glFenceSync(GLenum condition, + GLbitfield flags) { MakeFunctionUnique("glFenceSync"); return interface_->FenceSync(condition, flags); } @@ -920,20 +945,20 @@ void GL_BINDING_CALL MockGLInterface::Mock_glFrontFace(GLenum mode) { interface_->FrontFace(mode); } -void GL_BINDING_CALL -MockGLInterface::Mock_glGenBuffers(GLsizei n, GLuint* buffers) { +void GL_BINDING_CALL MockGLInterface::Mock_glGenBuffers(GLsizei n, + GLuint* buffers) { MakeFunctionUnique("glGenBuffers"); interface_->GenBuffersARB(n, buffers); } -void GL_BINDING_CALL -MockGLInterface::Mock_glGenFencesAPPLE(GLsizei n, GLuint* fences) { +void GL_BINDING_CALL MockGLInterface::Mock_glGenFencesAPPLE(GLsizei n, + GLuint* fences) { MakeFunctionUnique("glGenFencesAPPLE"); interface_->GenFencesAPPLE(n, fences); } -void GL_BINDING_CALL -MockGLInterface::Mock_glGenFencesNV(GLsizei n, GLuint* fences) { +void GL_BINDING_CALL MockGLInterface::Mock_glGenFencesNV(GLsizei n, + GLuint* fences) { MakeFunctionUnique("glGenFencesNV"); interface_->GenFencesNV(n, fences); } @@ -950,20 +975,25 @@ MockGLInterface::Mock_glGenFramebuffersEXT(GLsizei n, GLuint* framebuffers) { interface_->GenFramebuffersEXT(n, framebuffers); } -void GL_BINDING_CALL -MockGLInterface::Mock_glGenQueries(GLsizei n, GLuint* ids) { +GLuint GL_BINDING_CALL MockGLInterface::Mock_glGenPathsNV(GLsizei range) { + MakeFunctionUnique("glGenPathsNV"); + return interface_->GenPathsNV(range); +} + +void GL_BINDING_CALL MockGLInterface::Mock_glGenQueries(GLsizei n, + GLuint* ids) { MakeFunctionUnique("glGenQueries"); interface_->GenQueries(n, ids); } -void GL_BINDING_CALL -MockGLInterface::Mock_glGenQueriesARB(GLsizei n, GLuint* ids) { +void GL_BINDING_CALL MockGLInterface::Mock_glGenQueriesARB(GLsizei n, + GLuint* ids) { MakeFunctionUnique("glGenQueriesARB"); interface_->GenQueries(n, ids); } -void GL_BINDING_CALL -MockGLInterface::Mock_glGenQueriesEXT(GLsizei n, GLuint* ids) { +void GL_BINDING_CALL MockGLInterface::Mock_glGenQueriesEXT(GLsizei n, + GLuint* ids) { MakeFunctionUnique("glGenQueriesEXT"); interface_->GenQueries(n, ids); } @@ -980,14 +1010,14 @@ MockGLInterface::Mock_glGenRenderbuffersEXT(GLsizei n, GLuint* renderbuffers) { interface_->GenRenderbuffersEXT(n, renderbuffers); } -void GL_BINDING_CALL -MockGLInterface::Mock_glGenSamplers(GLsizei n, GLuint* samplers) { +void GL_BINDING_CALL MockGLInterface::Mock_glGenSamplers(GLsizei n, + GLuint* samplers) { MakeFunctionUnique("glGenSamplers"); interface_->GenSamplers(n, samplers); } -void GL_BINDING_CALL -MockGLInterface::Mock_glGenTextures(GLsizei n, GLuint* textures) { +void GL_BINDING_CALL MockGLInterface::Mock_glGenTextures(GLsizei n, + GLuint* textures) { MakeFunctionUnique("glGenTextures"); interface_->GenTextures(n, textures); } @@ -998,8 +1028,8 @@ MockGLInterface::Mock_glGenTransformFeedbacks(GLsizei n, GLuint* ids) { interface_->GenTransformFeedbacks(n, ids); } -void GL_BINDING_CALL -MockGLInterface::Mock_glGenVertexArrays(GLsizei n, GLuint* arrays) { +void GL_BINDING_CALL MockGLInterface::Mock_glGenVertexArrays(GLsizei n, + GLuint* arrays) { MakeFunctionUnique("glGenVertexArrays"); interface_->GenVertexArraysOES(n, arrays); } @@ -1097,8 +1127,8 @@ MockGLInterface::Mock_glGetAttribLocation(GLuint program, const char* name) { return interface_->GetAttribLocation(program, name); } -void GL_BINDING_CALL -MockGLInterface::Mock_glGetBooleanv(GLenum pname, GLboolean* params) { +void GL_BINDING_CALL MockGLInterface::Mock_glGetBooleanv(GLenum pname, + GLboolean* params) { MakeFunctionUnique("glGetBooleanv"); interface_->GetBooleanv(pname, params); } @@ -1123,8 +1153,8 @@ void GL_BINDING_CALL MockGLInterface::Mock_glGetFenceivNV(GLuint fence, interface_->GetFenceivNV(fence, pname, params); } -void GL_BINDING_CALL -MockGLInterface::Mock_glGetFloatv(GLenum pname, GLfloat* params) { +void GL_BINDING_CALL MockGLInterface::Mock_glGetFloatv(GLenum pname, + GLfloat* params) { MakeFunctionUnique("glGetFloatv"); interface_->GetFloatv(pname, params); } @@ -1183,8 +1213,8 @@ void GL_BINDING_CALL MockGLInterface::Mock_glGetInteger64i_v(GLenum target, interface_->GetInteger64i_v(target, index, data); } -void GL_BINDING_CALL -MockGLInterface::Mock_glGetInteger64v(GLenum pname, GLint64* params) { +void GL_BINDING_CALL MockGLInterface::Mock_glGetInteger64v(GLenum pname, + GLint64* params) { MakeFunctionUnique("glGetInteger64v"); interface_->GetInteger64v(pname, params); } @@ -1196,8 +1226,8 @@ void GL_BINDING_CALL MockGLInterface::Mock_glGetIntegeri_v(GLenum target, interface_->GetIntegeri_v(target, index, data); } -void GL_BINDING_CALL -MockGLInterface::Mock_glGetIntegerv(GLenum pname, GLint* params) { +void GL_BINDING_CALL MockGLInterface::Mock_glGetIntegerv(GLenum pname, + GLint* params) { MakeFunctionUnique("glGetIntegerv"); interface_->GetIntegerv(pname, params); } @@ -1335,8 +1365,9 @@ MockGLInterface::Mock_glGetQueryObjectuivEXT(GLuint id, interface_->GetQueryObjectuiv(id, pname, params); } -void GL_BINDING_CALL -MockGLInterface::Mock_glGetQueryiv(GLenum target, GLenum pname, GLint* params) { +void GL_BINDING_CALL MockGLInterface::Mock_glGetQueryiv(GLenum target, + GLenum pname, + GLint* params) { MakeFunctionUnique("glGetQueryiv"); interface_->GetQueryiv(target, pname, params); } @@ -1627,6 +1658,11 @@ MockGLInterface::Mock_glIsFramebufferEXT(GLuint framebuffer) { return interface_->IsFramebufferEXT(framebuffer); } +GLboolean GL_BINDING_CALL MockGLInterface::Mock_glIsPathNV(GLuint path) { + MakeFunctionUnique("glIsPathNV"); + return interface_->IsPathNV(path); +} + GLboolean GL_BINDING_CALL MockGLInterface::Mock_glIsProgram(GLuint program) { MakeFunctionUnique("glIsProgram"); return interface_->IsProgram(program); @@ -1712,14 +1748,14 @@ void GL_BINDING_CALL MockGLInterface::Mock_glLinkProgram(GLuint program) { interface_->LinkProgram(program); } -void* GL_BINDING_CALL -MockGLInterface::Mock_glMapBuffer(GLenum target, GLenum access) { +void* GL_BINDING_CALL MockGLInterface::Mock_glMapBuffer(GLenum target, + GLenum access) { MakeFunctionUnique("glMapBuffer"); return interface_->MapBuffer(target, access); } -void* GL_BINDING_CALL -MockGLInterface::Mock_glMapBufferOES(GLenum target, GLenum access) { +void* GL_BINDING_CALL MockGLInterface::Mock_glMapBufferOES(GLenum target, + GLenum access) { MakeFunctionUnique("glMapBufferOES"); return interface_->MapBuffer(target, access); } @@ -1748,31 +1784,64 @@ MockGLInterface::Mock_glMatrixLoadIdentityEXT(GLenum matrixMode) { interface_->MatrixLoadIdentityEXT(matrixMode); } -void GL_BINDING_CALL -MockGLInterface::Mock_glMatrixLoadfEXT(GLenum matrixMode, const GLfloat* m) { +void GL_BINDING_CALL MockGLInterface::Mock_glMatrixLoadfEXT(GLenum matrixMode, + const GLfloat* m) { MakeFunctionUnique("glMatrixLoadfEXT"); interface_->MatrixLoadfEXT(matrixMode, m); } +void GL_BINDING_CALL +MockGLInterface::Mock_glPathCommandsNV(GLuint path, + GLsizei numCommands, + const GLubyte* commands, + GLsizei numCoords, + GLenum coordType, + const GLvoid* coords) { + MakeFunctionUnique("glPathCommandsNV"); + interface_->PathCommandsNV(path, numCommands, commands, numCoords, coordType, + coords); +} + +void GL_BINDING_CALL MockGLInterface::Mock_glPathParameterfNV(GLuint path, + GLenum pname, + GLfloat value) { + MakeFunctionUnique("glPathParameterfNV"); + interface_->PathParameterfNV(path, pname, value); +} + +void GL_BINDING_CALL MockGLInterface::Mock_glPathParameteriNV(GLuint path, + GLenum pname, + GLint value) { + MakeFunctionUnique("glPathParameteriNV"); + interface_->PathParameteriNV(path, pname, value); +} + +void GL_BINDING_CALL MockGLInterface::Mock_glPathStencilFuncNV(GLenum func, + GLint ref, + GLuint mask) { + MakeFunctionUnique("glPathStencilFuncNV"); + interface_->PathStencilFuncNV(func, ref, mask); +} + void GL_BINDING_CALL MockGLInterface::Mock_glPauseTransformFeedback(void) { MakeFunctionUnique("glPauseTransformFeedback"); interface_->PauseTransformFeedback(); } -void GL_BINDING_CALL -MockGLInterface::Mock_glPixelStorei(GLenum pname, GLint param) { +void GL_BINDING_CALL MockGLInterface::Mock_glPixelStorei(GLenum pname, + GLint param) { MakeFunctionUnique("glPixelStorei"); interface_->PixelStorei(pname, param); } -void GL_BINDING_CALL -MockGLInterface::Mock_glPointParameteri(GLenum pname, GLint param) { +void GL_BINDING_CALL MockGLInterface::Mock_glPointParameteri(GLenum pname, + GLint param) { MakeFunctionUnique("glPointParameteri"); interface_->PointParameteri(pname, param); } -void GL_BINDING_CALL -MockGLInterface::Mock_glPolygonOffset(GLfloat factor, GLfloat units) { +void GL_BINDING_CALL MockGLInterface::Mock_glPolygonOffset(GLfloat factor, + GLfloat units) { MakeFunctionUnique("glPolygonOffset"); interface_->PolygonOffset(factor, units); } @@ -1812,14 +1881,14 @@ MockGLInterface::Mock_glPushGroupMarkerEXT(GLsizei length, const char* marker) { interface_->PushGroupMarkerEXT(length, marker); } -void GL_BINDING_CALL -MockGLInterface::Mock_glQueryCounter(GLuint id, GLenum target) { +void GL_BINDING_CALL MockGLInterface::Mock_glQueryCounter(GLuint id, + GLenum target) { MakeFunctionUnique("glQueryCounter"); interface_->QueryCounter(id, target); } -void GL_BINDING_CALL -MockGLInterface::Mock_glQueryCounterEXT(GLuint id, GLenum target) { +void GL_BINDING_CALL MockGLInterface::Mock_glQueryCounterEXT(GLuint id, + GLenum target) { MakeFunctionUnique("glQueryCounterEXT"); interface_->QueryCounter(id, target); } @@ -1913,8 +1982,8 @@ void GL_BINDING_CALL MockGLInterface::Mock_glResumeTransformFeedback(void) { interface_->ResumeTransformFeedback(); } -void GL_BINDING_CALL -MockGLInterface::Mock_glSampleCoverage(GLclampf value, GLboolean invert) { +void GL_BINDING_CALL MockGLInterface::Mock_glSampleCoverage(GLclampf value, + GLboolean invert) { MakeFunctionUnique("glSampleCoverage"); interface_->SampleCoverage(value, invert); } @@ -1962,8 +2031,8 @@ void GL_BINDING_CALL MockGLInterface::Mock_glSetFenceAPPLE(GLuint fence) { interface_->SetFenceAPPLE(fence); } -void GL_BINDING_CALL -MockGLInterface::Mock_glSetFenceNV(GLuint fence, GLenum condition) { +void GL_BINDING_CALL MockGLInterface::Mock_glSetFenceNV(GLuint fence, + GLenum condition) { MakeFunctionUnique("glSetFenceNV"); interface_->SetFenceNV(fence, condition); } @@ -1986,8 +2055,16 @@ MockGLInterface::Mock_glShaderSource(GLuint shader, interface_->ShaderSource(shader, count, str, length); } -void GL_BINDING_CALL -MockGLInterface::Mock_glStencilFunc(GLenum func, GLint ref, GLuint mask) { +void GL_BINDING_CALL MockGLInterface::Mock_glStencilFillPathNV(GLuint path, + GLenum fillMode, + GLuint mask) { + MakeFunctionUnique("glStencilFillPathNV"); + interface_->StencilFillPathNV(path, fillMode, mask); +} + +void GL_BINDING_CALL MockGLInterface::Mock_glStencilFunc(GLenum func, + GLint ref, + GLuint mask) { MakeFunctionUnique("glStencilFunc"); interface_->StencilFunc(func, ref, mask); } @@ -2005,14 +2082,15 @@ void GL_BINDING_CALL MockGLInterface::Mock_glStencilMask(GLuint mask) { interface_->StencilMask(mask); } -void GL_BINDING_CALL -MockGLInterface::Mock_glStencilMaskSeparate(GLenum face, GLuint mask) { +void GL_BINDING_CALL MockGLInterface::Mock_glStencilMaskSeparate(GLenum face, + GLuint mask) { MakeFunctionUnique("glStencilMaskSeparate"); interface_->StencilMaskSeparate(face, mask); } -void GL_BINDING_CALL -MockGLInterface::Mock_glStencilOp(GLenum fail, GLenum zfail, GLenum zpass) { +void GL_BINDING_CALL MockGLInterface::Mock_glStencilOp(GLenum fail, + GLenum zfail, + GLenum zpass) { MakeFunctionUnique("glStencilOp"); interface_->StencilOp(fail, zfail, zpass); } @@ -2025,6 +2103,32 @@ void GL_BINDING_CALL MockGLInterface::Mock_glStencilOpSeparate(GLenum face, interface_->StencilOpSeparate(face, fail, zfail, zpass); } +void GL_BINDING_CALL +MockGLInterface::Mock_glStencilStrokePathNV(GLuint path, + GLint reference, + GLuint mask) { + MakeFunctionUnique("glStencilStrokePathNV"); + interface_->StencilStrokePathNV(path, reference, mask); +} + +void GL_BINDING_CALL +MockGLInterface::Mock_glStencilThenCoverFillPathNV(GLuint path, + GLenum fillMode, + GLuint mask, + GLenum coverMode) { + MakeFunctionUnique("glStencilThenCoverFillPathNV"); + interface_->StencilThenCoverFillPathNV(path, fillMode, mask, coverMode); +} + +void GL_BINDING_CALL +MockGLInterface::Mock_glStencilThenCoverStrokePathNV(GLuint path, + GLint reference, + GLuint mask, + GLenum coverMode) { + MakeFunctionUnique("glStencilThenCoverStrokePathNV"); + interface_->StencilThenCoverStrokePathNV(path, reference, mask, coverMode); +} + GLboolean GL_BINDING_CALL MockGLInterface::Mock_glTestFenceAPPLE(GLuint fence) { MakeFunctionUnique("glTestFenceAPPLE"); return interface_->TestFenceAPPLE(fence); @@ -2163,8 +2267,8 @@ MockGLInterface::Mock_glTransformFeedbackVaryings(GLuint program, interface_->TransformFeedbackVaryings(program, count, varyings, bufferMode); } -void GL_BINDING_CALL -MockGLInterface::Mock_glUniform1f(GLint location, GLfloat x) { +void GL_BINDING_CALL MockGLInterface::Mock_glUniform1f(GLint location, + GLfloat x) { MakeFunctionUnique("glUniform1f"); interface_->Uniform1f(location, x); } @@ -2176,8 +2280,8 @@ void GL_BINDING_CALL MockGLInterface::Mock_glUniform1fv(GLint location, interface_->Uniform1fv(location, count, v); } -void GL_BINDING_CALL -MockGLInterface::Mock_glUniform1i(GLint location, GLint x) { +void GL_BINDING_CALL MockGLInterface::Mock_glUniform1i(GLint location, + GLint x) { MakeFunctionUnique("glUniform1i"); interface_->Uniform1i(location, x); } @@ -2189,8 +2293,8 @@ void GL_BINDING_CALL MockGLInterface::Mock_glUniform1iv(GLint location, interface_->Uniform1iv(location, count, v); } -void GL_BINDING_CALL -MockGLInterface::Mock_glUniform1ui(GLint location, GLuint v0) { +void GL_BINDING_CALL MockGLInterface::Mock_glUniform1ui(GLint location, + GLuint v0) { MakeFunctionUnique("glUniform1ui"); interface_->Uniform1ui(location, v0); } @@ -2202,8 +2306,9 @@ void GL_BINDING_CALL MockGLInterface::Mock_glUniform1uiv(GLint location, interface_->Uniform1uiv(location, count, v); } -void GL_BINDING_CALL -MockGLInterface::Mock_glUniform2f(GLint location, GLfloat x, GLfloat y) { +void GL_BINDING_CALL MockGLInterface::Mock_glUniform2f(GLint location, + GLfloat x, + GLfloat y) { MakeFunctionUnique("glUniform2f"); interface_->Uniform2f(location, x, y); } @@ -2215,8 +2320,9 @@ void GL_BINDING_CALL MockGLInterface::Mock_glUniform2fv(GLint location, interface_->Uniform2fv(location, count, v); } -void GL_BINDING_CALL -MockGLInterface::Mock_glUniform2i(GLint location, GLint x, GLint y) { +void GL_BINDING_CALL MockGLInterface::Mock_glUniform2i(GLint location, + GLint x, + GLint y) { MakeFunctionUnique("glUniform2i"); interface_->Uniform2i(location, x, y); } @@ -2228,8 +2334,9 @@ void GL_BINDING_CALL MockGLInterface::Mock_glUniform2iv(GLint location, interface_->Uniform2iv(location, count, v); } -void GL_BINDING_CALL -MockGLInterface::Mock_glUniform2ui(GLint location, GLuint v0, GLuint v1) { +void GL_BINDING_CALL MockGLInterface::Mock_glUniform2ui(GLint location, + GLuint v0, + GLuint v1) { MakeFunctionUnique("glUniform2ui"); interface_->Uniform2ui(location, v0, v1); } @@ -2256,8 +2363,10 @@ void GL_BINDING_CALL MockGLInterface::Mock_glUniform3fv(GLint location, interface_->Uniform3fv(location, count, v); } -void GL_BINDING_CALL -MockGLInterface::Mock_glUniform3i(GLint location, GLint x, GLint y, GLint z) { +void GL_BINDING_CALL MockGLInterface::Mock_glUniform3i(GLint location, + GLint x, + GLint y, + GLint z) { MakeFunctionUnique("glUniform3i"); interface_->Uniform3i(location, x, y, z); } @@ -2443,8 +2552,8 @@ void GL_BINDING_CALL MockGLInterface::Mock_glValidateProgram(GLuint program) { interface_->ValidateProgram(program); } -void GL_BINDING_CALL -MockGLInterface::Mock_glVertexAttrib1f(GLuint indx, GLfloat x) { +void GL_BINDING_CALL MockGLInterface::Mock_glVertexAttrib1f(GLuint indx, + GLfloat x) { MakeFunctionUnique("glVertexAttrib1f"); interface_->VertexAttrib1f(indx, x); } @@ -2455,8 +2564,9 @@ MockGLInterface::Mock_glVertexAttrib1fv(GLuint indx, const GLfloat* values) { interface_->VertexAttrib1fv(indx, values); } -void GL_BINDING_CALL -MockGLInterface::Mock_glVertexAttrib2f(GLuint indx, GLfloat x, GLfloat y) { +void GL_BINDING_CALL MockGLInterface::Mock_glVertexAttrib2f(GLuint indx, + GLfloat x, + GLfloat y) { MakeFunctionUnique("glVertexAttrib2f"); interface_->VertexAttrib2f(indx, x, y); } @@ -2587,6 +2697,8 @@ static void MockInvalidFunction() { void* GL_BINDING_CALL MockGLInterface::GetGLProcAddress(const char* name) { if (strcmp(name, "glActiveTexture") == 0) return reinterpret_cast<void*>(Mock_glActiveTexture); + if (strcmp(name, "glApplyFramebufferAttachmentCMAAINTEL") == 0) + return reinterpret_cast<void*>(Mock_glApplyFramebufferAttachmentCMAAINTEL); if (strcmp(name, "glAttachShader") == 0) return reinterpret_cast<void*>(Mock_glAttachShader); if (strcmp(name, "glBeginQuery") == 0) @@ -2697,6 +2809,10 @@ void* GL_BINDING_CALL MockGLInterface::GetGLProcAddress(const char* name) { return reinterpret_cast<void*>(Mock_glCopyTexSubImage2D); if (strcmp(name, "glCopyTexSubImage3D") == 0) return reinterpret_cast<void*>(Mock_glCopyTexSubImage3D); + if (strcmp(name, "glCoverFillPathNV") == 0) + return reinterpret_cast<void*>(Mock_glCoverFillPathNV); + if (strcmp(name, "glCoverStrokePathNV") == 0) + return reinterpret_cast<void*>(Mock_glCoverStrokePathNV); if (strcmp(name, "glCreateProgram") == 0) return reinterpret_cast<void*>(Mock_glCreateProgram); if (strcmp(name, "glCreateShader") == 0) @@ -2713,6 +2829,8 @@ void* GL_BINDING_CALL MockGLInterface::GetGLProcAddress(const char* name) { return reinterpret_cast<void*>(Mock_glDeleteFramebuffers); if (strcmp(name, "glDeleteFramebuffersEXT") == 0) return reinterpret_cast<void*>(Mock_glDeleteFramebuffersEXT); + if (strcmp(name, "glDeletePathsNV") == 0) + return reinterpret_cast<void*>(Mock_glDeletePathsNV); if (strcmp(name, "glDeleteProgram") == 0) return reinterpret_cast<void*>(Mock_glDeleteProgram); if (strcmp(name, "glDeleteQueries") == 0) @@ -2837,6 +2955,8 @@ void* GL_BINDING_CALL MockGLInterface::GetGLProcAddress(const char* name) { return reinterpret_cast<void*>(Mock_glGenFramebuffers); if (strcmp(name, "glGenFramebuffersEXT") == 0) return reinterpret_cast<void*>(Mock_glGenFramebuffersEXT); + if (strcmp(name, "glGenPathsNV") == 0) + return reinterpret_cast<void*>(Mock_glGenPathsNV); if (strcmp(name, "glGenQueries") == 0) return reinterpret_cast<void*>(Mock_glGenQueries); if (strcmp(name, "glGenQueriesARB") == 0) @@ -3020,6 +3140,8 @@ void* GL_BINDING_CALL MockGLInterface::GetGLProcAddress(const char* name) { return reinterpret_cast<void*>(Mock_glIsFramebuffer); if (strcmp(name, "glIsFramebufferEXT") == 0) return reinterpret_cast<void*>(Mock_glIsFramebufferEXT); + if (strcmp(name, "glIsPathNV") == 0) + return reinterpret_cast<void*>(Mock_glIsPathNV); if (strcmp(name, "glIsProgram") == 0) return reinterpret_cast<void*>(Mock_glIsProgram); if (strcmp(name, "glIsQuery") == 0) @@ -3064,6 +3186,14 @@ void* GL_BINDING_CALL MockGLInterface::GetGLProcAddress(const char* name) { return reinterpret_cast<void*>(Mock_glMatrixLoadIdentityEXT); if (strcmp(name, "glMatrixLoadfEXT") == 0) return reinterpret_cast<void*>(Mock_glMatrixLoadfEXT); + if (strcmp(name, "glPathCommandsNV") == 0) + return reinterpret_cast<void*>(Mock_glPathCommandsNV); + if (strcmp(name, "glPathParameterfNV") == 0) + return reinterpret_cast<void*>(Mock_glPathParameterfNV); + if (strcmp(name, "glPathParameteriNV") == 0) + return reinterpret_cast<void*>(Mock_glPathParameteriNV); + if (strcmp(name, "glPathStencilFuncNV") == 0) + return reinterpret_cast<void*>(Mock_glPathStencilFuncNV); if (strcmp(name, "glPauseTransformFeedback") == 0) return reinterpret_cast<void*>(Mock_glPauseTransformFeedback); if (strcmp(name, "glPixelStorei") == 0) @@ -3126,6 +3256,8 @@ void* GL_BINDING_CALL MockGLInterface::GetGLProcAddress(const char* name) { return reinterpret_cast<void*>(Mock_glShaderBinary); if (strcmp(name, "glShaderSource") == 0) return reinterpret_cast<void*>(Mock_glShaderSource); + if (strcmp(name, "glStencilFillPathNV") == 0) + return reinterpret_cast<void*>(Mock_glStencilFillPathNV); if (strcmp(name, "glStencilFunc") == 0) return reinterpret_cast<void*>(Mock_glStencilFunc); if (strcmp(name, "glStencilFuncSeparate") == 0) @@ -3138,6 +3270,12 @@ void* GL_BINDING_CALL MockGLInterface::GetGLProcAddress(const char* name) { return reinterpret_cast<void*>(Mock_glStencilOp); if (strcmp(name, "glStencilOpSeparate") == 0) return reinterpret_cast<void*>(Mock_glStencilOpSeparate); + if (strcmp(name, "glStencilStrokePathNV") == 0) + return reinterpret_cast<void*>(Mock_glStencilStrokePathNV); + if (strcmp(name, "glStencilThenCoverFillPathNV") == 0) + return reinterpret_cast<void*>(Mock_glStencilThenCoverFillPathNV); + if (strcmp(name, "glStencilThenCoverStrokePathNV") == 0) + return reinterpret_cast<void*>(Mock_glStencilThenCoverStrokePathNV); if (strcmp(name, "glTestFenceAPPLE") == 0) return reinterpret_cast<void*>(Mock_glTestFenceAPPLE); if (strcmp(name, "glTestFenceNV") == 0) diff --git a/chromium/ui/gl/gl_bindings_autogen_mock.h b/chromium/ui/gl/gl_bindings_autogen_mock.h index 9dc82a05004..c0f00910ca9 100644 --- a/chromium/ui/gl/gl_bindings_autogen_mock.h +++ b/chromium/ui/gl/gl_bindings_autogen_mock.h @@ -9,16 +9,19 @@ // DO NOT EDIT! static void GL_BINDING_CALL Mock_glActiveTexture(GLenum texture); +static void GL_BINDING_CALL Mock_glApplyFramebufferAttachmentCMAAINTEL(void); static void GL_BINDING_CALL Mock_glAttachShader(GLuint program, GLuint shader); static void GL_BINDING_CALL Mock_glBeginQuery(GLenum target, GLuint id); static void GL_BINDING_CALL Mock_glBeginQueryARB(GLenum target, GLuint id); static void GL_BINDING_CALL Mock_glBeginQueryEXT(GLenum target, GLuint id); static void GL_BINDING_CALL Mock_glBeginTransformFeedback(GLenum primitiveMode); -static void GL_BINDING_CALL -Mock_glBindAttribLocation(GLuint program, GLuint index, const char* name); +static void GL_BINDING_CALL Mock_glBindAttribLocation(GLuint program, + GLuint index, + const char* name); static void GL_BINDING_CALL Mock_glBindBuffer(GLenum target, GLuint buffer); -static void GL_BINDING_CALL -Mock_glBindBufferBase(GLenum target, GLuint index, GLuint buffer); +static void GL_BINDING_CALL Mock_glBindBufferBase(GLenum target, + GLuint index, + GLuint buffer); static void GL_BINDING_CALL Mock_glBindBufferRange(GLenum target, GLuint index, GLuint buffer, @@ -32,28 +35,30 @@ Mock_glBindFragDataLocationIndexed(GLuint program, GLuint colorNumber, GLuint index, const char* name); -static void GL_BINDING_CALL -Mock_glBindFramebuffer(GLenum target, GLuint framebuffer); -static void GL_BINDING_CALL -Mock_glBindFramebufferEXT(GLenum target, GLuint framebuffer); -static void GL_BINDING_CALL -Mock_glBindRenderbuffer(GLenum target, GLuint renderbuffer); -static void GL_BINDING_CALL -Mock_glBindRenderbufferEXT(GLenum target, GLuint renderbuffer); +static void GL_BINDING_CALL Mock_glBindFramebuffer(GLenum target, + GLuint framebuffer); +static void GL_BINDING_CALL Mock_glBindFramebufferEXT(GLenum target, + GLuint framebuffer); +static void GL_BINDING_CALL Mock_glBindRenderbuffer(GLenum target, + GLuint renderbuffer); +static void GL_BINDING_CALL Mock_glBindRenderbufferEXT(GLenum target, + GLuint renderbuffer); static void GL_BINDING_CALL Mock_glBindSampler(GLuint unit, GLuint sampler); static void GL_BINDING_CALL Mock_glBindTexture(GLenum target, GLuint texture); -static void GL_BINDING_CALL -Mock_glBindTransformFeedback(GLenum target, GLuint id); +static void GL_BINDING_CALL Mock_glBindTransformFeedback(GLenum target, + GLuint id); static void GL_BINDING_CALL Mock_glBindVertexArray(GLuint array); static void GL_BINDING_CALL Mock_glBindVertexArrayAPPLE(GLuint array); static void GL_BINDING_CALL Mock_glBindVertexArrayOES(GLuint array); static void GL_BINDING_CALL Mock_glBlendBarrierKHR(void); static void GL_BINDING_CALL Mock_glBlendBarrierNV(void); -static void GL_BINDING_CALL -Mock_glBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); +static void GL_BINDING_CALL Mock_glBlendColor(GLclampf red, + GLclampf green, + GLclampf blue, + GLclampf alpha); static void GL_BINDING_CALL Mock_glBlendEquation(GLenum mode); -static void GL_BINDING_CALL -Mock_glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha); +static void GL_BINDING_CALL Mock_glBlendEquationSeparate(GLenum modeRGB, + GLenum modeAlpha); static void GL_BINDING_CALL Mock_glBlendFunc(GLenum sfactor, GLenum dfactor); static void GL_BINDING_CALL Mock_glBlendFuncSeparate(GLenum srcRGB, GLenum dstRGB, @@ -104,19 +109,25 @@ static void GL_BINDING_CALL Mock_glClearBufferfi(GLenum buffer, GLint drawbuffer, const GLfloat depth, GLint stencil); -static void GL_BINDING_CALL -Mock_glClearBufferfv(GLenum buffer, GLint drawbuffer, const GLfloat* value); -static void GL_BINDING_CALL -Mock_glClearBufferiv(GLenum buffer, GLint drawbuffer, const GLint* value); -static void GL_BINDING_CALL -Mock_glClearBufferuiv(GLenum buffer, GLint drawbuffer, const GLuint* value); -static void GL_BINDING_CALL -Mock_glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); +static void GL_BINDING_CALL Mock_glClearBufferfv(GLenum buffer, + GLint drawbuffer, + const GLfloat* value); +static void GL_BINDING_CALL Mock_glClearBufferiv(GLenum buffer, + GLint drawbuffer, + const GLint* value); +static void GL_BINDING_CALL Mock_glClearBufferuiv(GLenum buffer, + GLint drawbuffer, + const GLuint* value); +static void GL_BINDING_CALL Mock_glClearColor(GLclampf red, + GLclampf green, + GLclampf blue, + GLclampf alpha); static void GL_BINDING_CALL Mock_glClearDepth(GLclampd depth); static void GL_BINDING_CALL Mock_glClearDepthf(GLclampf depth); static void GL_BINDING_CALL Mock_glClearStencil(GLint s); -static GLenum GL_BINDING_CALL -Mock_glClientWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout); +static GLenum GL_BINDING_CALL Mock_glClientWaitSync(GLsync sync, + GLbitfield flags, + GLuint64 timeout); static void GL_BINDING_CALL Mock_glColorMask(GLboolean red, GLboolean green, GLboolean blue, @@ -189,43 +200,48 @@ static void GL_BINDING_CALL Mock_glCopyTexSubImage3D(GLenum target, GLint y, GLsizei width, GLsizei height); +static void GL_BINDING_CALL Mock_glCoverFillPathNV(GLuint path, + GLenum coverMode); +static void GL_BINDING_CALL Mock_glCoverStrokePathNV(GLuint name, + GLenum coverMode); static GLuint GL_BINDING_CALL Mock_glCreateProgram(void); static GLuint GL_BINDING_CALL Mock_glCreateShader(GLenum type); static void GL_BINDING_CALL Mock_glCullFace(GLenum mode); -static void GL_BINDING_CALL -Mock_glDeleteBuffers(GLsizei n, const GLuint* buffers); -static void GL_BINDING_CALL -Mock_glDeleteFencesAPPLE(GLsizei n, const GLuint* fences); -static void GL_BINDING_CALL -Mock_glDeleteFencesNV(GLsizei n, const GLuint* fences); +static void GL_BINDING_CALL Mock_glDeleteBuffers(GLsizei n, + const GLuint* buffers); +static void GL_BINDING_CALL Mock_glDeleteFencesAPPLE(GLsizei n, + const GLuint* fences); +static void GL_BINDING_CALL Mock_glDeleteFencesNV(GLsizei n, + const GLuint* fences); static void GL_BINDING_CALL Mock_glDeleteFramebuffers(GLsizei n, const GLuint* framebuffers); static void GL_BINDING_CALL Mock_glDeleteFramebuffersEXT(GLsizei n, const GLuint* framebuffers); +static void GL_BINDING_CALL Mock_glDeletePathsNV(GLuint path, GLsizei range); static void GL_BINDING_CALL Mock_glDeleteProgram(GLuint program); static void GL_BINDING_CALL Mock_glDeleteQueries(GLsizei n, const GLuint* ids); -static void GL_BINDING_CALL -Mock_glDeleteQueriesARB(GLsizei n, const GLuint* ids); -static void GL_BINDING_CALL -Mock_glDeleteQueriesEXT(GLsizei n, const GLuint* ids); +static void GL_BINDING_CALL Mock_glDeleteQueriesARB(GLsizei n, + const GLuint* ids); +static void GL_BINDING_CALL Mock_glDeleteQueriesEXT(GLsizei n, + const GLuint* ids); static void GL_BINDING_CALL Mock_glDeleteRenderbuffers(GLsizei n, const GLuint* renderbuffers); static void GL_BINDING_CALL Mock_glDeleteRenderbuffersEXT(GLsizei n, const GLuint* renderbuffers); -static void GL_BINDING_CALL -Mock_glDeleteSamplers(GLsizei n, const GLuint* samplers); +static void GL_BINDING_CALL Mock_glDeleteSamplers(GLsizei n, + const GLuint* samplers); static void GL_BINDING_CALL Mock_glDeleteShader(GLuint shader); static void GL_BINDING_CALL Mock_glDeleteSync(GLsync sync); -static void GL_BINDING_CALL -Mock_glDeleteTextures(GLsizei n, const GLuint* textures); -static void GL_BINDING_CALL -Mock_glDeleteTransformFeedbacks(GLsizei n, const GLuint* ids); -static void GL_BINDING_CALL -Mock_glDeleteVertexArrays(GLsizei n, const GLuint* arrays); +static void GL_BINDING_CALL Mock_glDeleteTextures(GLsizei n, + const GLuint* textures); +static void GL_BINDING_CALL Mock_glDeleteTransformFeedbacks(GLsizei n, + const GLuint* ids); +static void GL_BINDING_CALL Mock_glDeleteVertexArrays(GLsizei n, + const GLuint* arrays); static void GL_BINDING_CALL Mock_glDeleteVertexArraysAPPLE(GLsizei n, const GLuint* arrays); -static void GL_BINDING_CALL -Mock_glDeleteVertexArraysOES(GLsizei n, const GLuint* arrays); +static void GL_BINDING_CALL Mock_glDeleteVertexArraysOES(GLsizei n, + const GLuint* arrays); static void GL_BINDING_CALL Mock_glDepthFunc(GLenum func); static void GL_BINDING_CALL Mock_glDepthMask(GLboolean flag); static void GL_BINDING_CALL Mock_glDepthRange(GLclampd zNear, GLclampd zFar); @@ -237,8 +253,9 @@ static void GL_BINDING_CALL Mock_glDiscardFramebufferEXT(GLenum target, GLsizei numAttachments, const GLenum* attachments); -static void GL_BINDING_CALL -Mock_glDrawArrays(GLenum mode, GLint first, GLsizei count); +static void GL_BINDING_CALL Mock_glDrawArrays(GLenum mode, + GLint first, + GLsizei count); static void GL_BINDING_CALL Mock_glDrawArraysInstanced(GLenum mode, GLint first, GLsizei count, @@ -253,10 +270,10 @@ static void GL_BINDING_CALL Mock_glDrawArraysInstancedARB(GLenum mode, GLsizei primcount); static void GL_BINDING_CALL Mock_glDrawBuffer(GLenum mode); static void GL_BINDING_CALL Mock_glDrawBuffers(GLsizei n, const GLenum* bufs); -static void GL_BINDING_CALL -Mock_glDrawBuffersARB(GLsizei n, const GLenum* bufs); -static void GL_BINDING_CALL -Mock_glDrawBuffersEXT(GLsizei n, const GLenum* bufs); +static void GL_BINDING_CALL Mock_glDrawBuffersARB(GLsizei n, + const GLenum* bufs); +static void GL_BINDING_CALL Mock_glDrawBuffersEXT(GLsizei n, + const GLenum* bufs); static void GL_BINDING_CALL Mock_glDrawElements(GLenum mode, GLsizei count, GLenum type, @@ -293,8 +310,8 @@ static void GL_BINDING_CALL Mock_glEndQuery(GLenum target); static void GL_BINDING_CALL Mock_glEndQueryARB(GLenum target); static void GL_BINDING_CALL Mock_glEndQueryEXT(GLenum target); static void GL_BINDING_CALL Mock_glEndTransformFeedback(void); -static GLsync GL_BINDING_CALL -Mock_glFenceSync(GLenum condition, GLbitfield flags); +static GLsync GL_BINDING_CALL Mock_glFenceSync(GLenum condition, + GLbitfield flags); static void GL_BINDING_CALL Mock_glFinish(void); static void GL_BINDING_CALL Mock_glFinishFenceAPPLE(GLuint fence); static void GL_BINDING_CALL Mock_glFinishFenceNV(GLuint fence); @@ -345,26 +362,27 @@ static void GL_BINDING_CALL Mock_glFrontFace(GLenum mode); static void GL_BINDING_CALL Mock_glGenBuffers(GLsizei n, GLuint* buffers); static void GL_BINDING_CALL Mock_glGenFencesAPPLE(GLsizei n, GLuint* fences); static void GL_BINDING_CALL Mock_glGenFencesNV(GLsizei n, GLuint* fences); -static void GL_BINDING_CALL -Mock_glGenFramebuffers(GLsizei n, GLuint* framebuffers); -static void GL_BINDING_CALL -Mock_glGenFramebuffersEXT(GLsizei n, GLuint* framebuffers); +static void GL_BINDING_CALL Mock_glGenFramebuffers(GLsizei n, + GLuint* framebuffers); +static void GL_BINDING_CALL Mock_glGenFramebuffersEXT(GLsizei n, + GLuint* framebuffers); +static GLuint GL_BINDING_CALL Mock_glGenPathsNV(GLsizei range); static void GL_BINDING_CALL Mock_glGenQueries(GLsizei n, GLuint* ids); static void GL_BINDING_CALL Mock_glGenQueriesARB(GLsizei n, GLuint* ids); static void GL_BINDING_CALL Mock_glGenQueriesEXT(GLsizei n, GLuint* ids); -static void GL_BINDING_CALL -Mock_glGenRenderbuffers(GLsizei n, GLuint* renderbuffers); -static void GL_BINDING_CALL -Mock_glGenRenderbuffersEXT(GLsizei n, GLuint* renderbuffers); +static void GL_BINDING_CALL Mock_glGenRenderbuffers(GLsizei n, + GLuint* renderbuffers); +static void GL_BINDING_CALL Mock_glGenRenderbuffersEXT(GLsizei n, + GLuint* renderbuffers); static void GL_BINDING_CALL Mock_glGenSamplers(GLsizei n, GLuint* samplers); static void GL_BINDING_CALL Mock_glGenTextures(GLsizei n, GLuint* textures); -static void GL_BINDING_CALL -Mock_glGenTransformFeedbacks(GLsizei n, GLuint* ids); +static void GL_BINDING_CALL Mock_glGenTransformFeedbacks(GLsizei n, + GLuint* ids); static void GL_BINDING_CALL Mock_glGenVertexArrays(GLsizei n, GLuint* arrays); -static void GL_BINDING_CALL -Mock_glGenVertexArraysAPPLE(GLsizei n, GLuint* arrays); -static void GL_BINDING_CALL -Mock_glGenVertexArraysOES(GLsizei n, GLuint* arrays); +static void GL_BINDING_CALL Mock_glGenVertexArraysAPPLE(GLsizei n, + GLuint* arrays); +static void GL_BINDING_CALL Mock_glGenVertexArraysOES(GLsizei n, + GLuint* arrays); static void GL_BINDING_CALL Mock_glGenerateMipmap(GLenum target); static void GL_BINDING_CALL Mock_glGenerateMipmapEXT(GLenum target); static void GL_BINDING_CALL Mock_glGetActiveAttrib(GLuint program, @@ -402,17 +420,19 @@ static void GL_BINDING_CALL Mock_glGetAttachedShaders(GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders); -static GLint GL_BINDING_CALL -Mock_glGetAttribLocation(GLuint program, const char* name); +static GLint GL_BINDING_CALL Mock_glGetAttribLocation(GLuint program, + const char* name); static void GL_BINDING_CALL Mock_glGetBooleanv(GLenum pname, GLboolean* params); -static void GL_BINDING_CALL -Mock_glGetBufferParameteriv(GLenum target, GLenum pname, GLint* params); +static void GL_BINDING_CALL Mock_glGetBufferParameteriv(GLenum target, + GLenum pname, + GLint* params); static GLenum GL_BINDING_CALL Mock_glGetError(void); -static void GL_BINDING_CALL -Mock_glGetFenceivNV(GLuint fence, GLenum pname, GLint* params); +static void GL_BINDING_CALL Mock_glGetFenceivNV(GLuint fence, + GLenum pname, + GLint* params); static void GL_BINDING_CALL Mock_glGetFloatv(GLenum pname, GLfloat* params); -static GLint GL_BINDING_CALL -Mock_glGetFragDataLocation(GLuint program, const char* name); +static GLint GL_BINDING_CALL Mock_glGetFragDataLocation(GLuint program, + const char* name); static void GL_BINDING_CALL Mock_glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, @@ -427,11 +447,13 @@ static GLenum GL_BINDING_CALL Mock_glGetGraphicsResetStatus(void); static GLenum GL_BINDING_CALL Mock_glGetGraphicsResetStatusARB(void); static GLenum GL_BINDING_CALL Mock_glGetGraphicsResetStatusEXT(void); static GLenum GL_BINDING_CALL Mock_glGetGraphicsResetStatusKHR(void); -static void GL_BINDING_CALL -Mock_glGetInteger64i_v(GLenum target, GLuint index, GLint64* data); +static void GL_BINDING_CALL Mock_glGetInteger64i_v(GLenum target, + GLuint index, + GLint64* data); static void GL_BINDING_CALL Mock_glGetInteger64v(GLenum pname, GLint64* params); -static void GL_BINDING_CALL -Mock_glGetIntegeri_v(GLenum target, GLuint index, GLint* data); +static void GL_BINDING_CALL Mock_glGetIntegeri_v(GLenum target, + GLuint index, + GLint* data); static void GL_BINDING_CALL Mock_glGetIntegerv(GLenum pname, GLint* params); static void GL_BINDING_CALL Mock_glGetInternalformativ(GLenum target, GLenum internalformat, @@ -456,43 +478,60 @@ static GLint GL_BINDING_CALL Mock_glGetProgramResourceLocation(GLuint program, GLenum programInterface, const char* name); -static void GL_BINDING_CALL -Mock_glGetProgramiv(GLuint program, GLenum pname, GLint* params); -static void GL_BINDING_CALL -Mock_glGetQueryObjecti64v(GLuint id, GLenum pname, GLint64* params); -static void GL_BINDING_CALL -Mock_glGetQueryObjecti64vEXT(GLuint id, GLenum pname, GLint64* params); -static void GL_BINDING_CALL -Mock_glGetQueryObjectiv(GLuint id, GLenum pname, GLint* params); -static void GL_BINDING_CALL -Mock_glGetQueryObjectivARB(GLuint id, GLenum pname, GLint* params); -static void GL_BINDING_CALL -Mock_glGetQueryObjectivEXT(GLuint id, GLenum pname, GLint* params); -static void GL_BINDING_CALL -Mock_glGetQueryObjectui64v(GLuint id, GLenum pname, GLuint64* params); -static void GL_BINDING_CALL -Mock_glGetQueryObjectui64vEXT(GLuint id, GLenum pname, GLuint64* params); -static void GL_BINDING_CALL -Mock_glGetQueryObjectuiv(GLuint id, GLenum pname, GLuint* params); -static void GL_BINDING_CALL -Mock_glGetQueryObjectuivARB(GLuint id, GLenum pname, GLuint* params); -static void GL_BINDING_CALL -Mock_glGetQueryObjectuivEXT(GLuint id, GLenum pname, GLuint* params); -static void GL_BINDING_CALL -Mock_glGetQueryiv(GLenum target, GLenum pname, GLint* params); -static void GL_BINDING_CALL -Mock_glGetQueryivARB(GLenum target, GLenum pname, GLint* params); -static void GL_BINDING_CALL -Mock_glGetQueryivEXT(GLenum target, GLenum pname, GLint* params); -static void GL_BINDING_CALL -Mock_glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint* params); +static void GL_BINDING_CALL Mock_glGetProgramiv(GLuint program, + GLenum pname, + GLint* params); +static void GL_BINDING_CALL Mock_glGetQueryObjecti64v(GLuint id, + GLenum pname, + GLint64* params); +static void GL_BINDING_CALL Mock_glGetQueryObjecti64vEXT(GLuint id, + GLenum pname, + GLint64* params); +static void GL_BINDING_CALL Mock_glGetQueryObjectiv(GLuint id, + GLenum pname, + GLint* params); +static void GL_BINDING_CALL Mock_glGetQueryObjectivARB(GLuint id, + GLenum pname, + GLint* params); +static void GL_BINDING_CALL Mock_glGetQueryObjectivEXT(GLuint id, + GLenum pname, + GLint* params); +static void GL_BINDING_CALL Mock_glGetQueryObjectui64v(GLuint id, + GLenum pname, + GLuint64* params); +static void GL_BINDING_CALL Mock_glGetQueryObjectui64vEXT(GLuint id, + GLenum pname, + GLuint64* params); +static void GL_BINDING_CALL Mock_glGetQueryObjectuiv(GLuint id, + GLenum pname, + GLuint* params); +static void GL_BINDING_CALL Mock_glGetQueryObjectuivARB(GLuint id, + GLenum pname, + GLuint* params); +static void GL_BINDING_CALL Mock_glGetQueryObjectuivEXT(GLuint id, + GLenum pname, + GLuint* params); +static void GL_BINDING_CALL Mock_glGetQueryiv(GLenum target, + GLenum pname, + GLint* params); +static void GL_BINDING_CALL Mock_glGetQueryivARB(GLenum target, + GLenum pname, + GLint* params); +static void GL_BINDING_CALL Mock_glGetQueryivEXT(GLenum target, + GLenum pname, + GLint* params); +static void GL_BINDING_CALL Mock_glGetRenderbufferParameteriv(GLenum target, + GLenum pname, + GLint* params); static void GL_BINDING_CALL Mock_glGetRenderbufferParameterivEXT(GLenum target, GLenum pname, GLint* params); -static void GL_BINDING_CALL -Mock_glGetSamplerParameterfv(GLuint sampler, GLenum pname, GLfloat* params); -static void GL_BINDING_CALL -Mock_glGetSamplerParameteriv(GLuint sampler, GLenum pname, GLint* params); +static void GL_BINDING_CALL Mock_glGetSamplerParameterfv(GLuint sampler, + GLenum pname, + GLfloat* params); +static void GL_BINDING_CALL Mock_glGetSamplerParameteriv(GLuint sampler, + GLenum pname, + GLint* params); static void GL_BINDING_CALL Mock_glGetShaderInfoLog(GLuint shader, GLsizei bufsize, GLsizei* length, @@ -506,11 +545,12 @@ static void GL_BINDING_CALL Mock_glGetShaderSource(GLuint shader, GLsizei bufsize, GLsizei* length, char* source); -static void GL_BINDING_CALL -Mock_glGetShaderiv(GLuint shader, GLenum pname, GLint* params); +static void GL_BINDING_CALL Mock_glGetShaderiv(GLuint shader, + GLenum pname, + GLint* params); static const GLubyte* GL_BINDING_CALL Mock_glGetString(GLenum name); -static const GLubyte* GL_BINDING_CALL -Mock_glGetStringi(GLenum name, GLuint index); +static const GLubyte* GL_BINDING_CALL Mock_glGetStringi(GLenum name, + GLuint index); static void GL_BINDING_CALL Mock_glGetSynciv(GLsync sync, GLenum pname, GLsizei bufSize, @@ -524,10 +564,12 @@ static void GL_BINDING_CALL Mock_glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint* params); -static void GL_BINDING_CALL -Mock_glGetTexParameterfv(GLenum target, GLenum pname, GLfloat* params); -static void GL_BINDING_CALL -Mock_glGetTexParameteriv(GLenum target, GLenum pname, GLint* params); +static void GL_BINDING_CALL Mock_glGetTexParameterfv(GLenum target, + GLenum pname, + GLfloat* params); +static void GL_BINDING_CALL Mock_glGetTexParameteriv(GLenum target, + GLenum pname, + GLint* params); static void GL_BINDING_CALL Mock_glGetTransformFeedbackVarying(GLuint program, GLuint index, GLsizei bufSize, @@ -547,23 +589,29 @@ Mock_glGetUniformIndices(GLuint program, GLsizei uniformCount, const char* const* uniformNames, GLuint* uniformIndices); -static GLint GL_BINDING_CALL -Mock_glGetUniformLocation(GLuint program, const char* name); -static void GL_BINDING_CALL -Mock_glGetUniformfv(GLuint program, GLint location, GLfloat* params); -static void GL_BINDING_CALL -Mock_glGetUniformiv(GLuint program, GLint location, GLint* params); -static void GL_BINDING_CALL -Mock_glGetUniformuiv(GLuint program, GLint location, GLuint* params); -static void GL_BINDING_CALL -Mock_glGetVertexAttribPointerv(GLuint index, GLenum pname, void** pointer); -static void GL_BINDING_CALL -Mock_glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat* params); -static void GL_BINDING_CALL -Mock_glGetVertexAttribiv(GLuint index, GLenum pname, GLint* params); +static GLint GL_BINDING_CALL Mock_glGetUniformLocation(GLuint program, + const char* name); +static void GL_BINDING_CALL Mock_glGetUniformfv(GLuint program, + GLint location, + GLfloat* params); +static void GL_BINDING_CALL Mock_glGetUniformiv(GLuint program, + GLint location, + GLint* params); +static void GL_BINDING_CALL Mock_glGetUniformuiv(GLuint program, + GLint location, + GLuint* params); +static void GL_BINDING_CALL Mock_glGetVertexAttribPointerv(GLuint index, + GLenum pname, + void** pointer); +static void GL_BINDING_CALL Mock_glGetVertexAttribfv(GLuint index, + GLenum pname, + GLfloat* params); +static void GL_BINDING_CALL Mock_glGetVertexAttribiv(GLuint index, + GLenum pname, + GLint* params); static void GL_BINDING_CALL Mock_glHint(GLenum target, GLenum mode); -static void GL_BINDING_CALL -Mock_glInsertEventMarkerEXT(GLsizei length, const char* marker); +static void GL_BINDING_CALL Mock_glInsertEventMarkerEXT(GLsizei length, + const char* marker); static void GL_BINDING_CALL Mock_glInvalidateFramebuffer(GLenum target, GLsizei numAttachments, @@ -582,6 +630,7 @@ static GLboolean GL_BINDING_CALL Mock_glIsFenceAPPLE(GLuint fence); static GLboolean GL_BINDING_CALL Mock_glIsFenceNV(GLuint fence); static GLboolean GL_BINDING_CALL Mock_glIsFramebuffer(GLuint framebuffer); static GLboolean GL_BINDING_CALL Mock_glIsFramebufferEXT(GLuint framebuffer); +static GLboolean GL_BINDING_CALL Mock_glIsPathNV(GLuint path); static GLboolean GL_BINDING_CALL Mock_glIsProgram(GLuint program); static GLboolean GL_BINDING_CALL Mock_glIsQuery(GLuint query); static GLboolean GL_BINDING_CALL Mock_glIsQueryARB(GLuint query); @@ -609,8 +658,23 @@ static void* GL_BINDING_CALL Mock_glMapBufferRangeEXT(GLenum target, GLsizeiptr length, GLbitfield access); static void GL_BINDING_CALL Mock_glMatrixLoadIdentityEXT(GLenum matrixMode); -static void GL_BINDING_CALL -Mock_glMatrixLoadfEXT(GLenum matrixMode, const GLfloat* m); +static void GL_BINDING_CALL Mock_glMatrixLoadfEXT(GLenum matrixMode, + const GLfloat* m); +static void GL_BINDING_CALL Mock_glPathCommandsNV(GLuint path, + GLsizei numCommands, + const GLubyte* commands, + GLsizei numCoords, + GLenum coordType, + const GLvoid* coords); +static void GL_BINDING_CALL Mock_glPathParameterfNV(GLuint path, + GLenum pname, + GLfloat value); +static void GL_BINDING_CALL Mock_glPathParameteriNV(GLuint path, + GLenum pname, + GLint value); +static void GL_BINDING_CALL Mock_glPathStencilFuncNV(GLenum func, + GLint ref, + GLuint mask); static void GL_BINDING_CALL Mock_glPauseTransformFeedback(void); static void GL_BINDING_CALL Mock_glPixelStorei(GLenum pname, GLint param); static void GL_BINDING_CALL Mock_glPointParameteri(GLenum pname, GLint param); @@ -624,10 +688,11 @@ static void GL_BINDING_CALL Mock_glProgramBinaryOES(GLuint program, GLenum binaryFormat, const GLvoid* binary, GLsizei length); -static void GL_BINDING_CALL -Mock_glProgramParameteri(GLuint program, GLenum pname, GLint value); -static void GL_BINDING_CALL -Mock_glPushGroupMarkerEXT(GLsizei length, const char* marker); +static void GL_BINDING_CALL Mock_glProgramParameteri(GLuint program, + GLenum pname, + GLint value); +static void GL_BINDING_CALL Mock_glPushGroupMarkerEXT(GLsizei length, + const char* marker); static void GL_BINDING_CALL Mock_glQueryCounter(GLuint id, GLenum target); static void GL_BINDING_CALL Mock_glQueryCounterEXT(GLuint id, GLenum target); static void GL_BINDING_CALL Mock_glReadBuffer(GLenum src); @@ -672,18 +737,24 @@ Mock_glRenderbufferStorageMultisampleIMG(GLenum target, GLsizei width, GLsizei height); static void GL_BINDING_CALL Mock_glResumeTransformFeedback(void); -static void GL_BINDING_CALL -Mock_glSampleCoverage(GLclampf value, GLboolean invert); -static void GL_BINDING_CALL -Mock_glSamplerParameterf(GLuint sampler, GLenum pname, GLfloat param); -static void GL_BINDING_CALL -Mock_glSamplerParameterfv(GLuint sampler, GLenum pname, const GLfloat* params); -static void GL_BINDING_CALL -Mock_glSamplerParameteri(GLuint sampler, GLenum pname, GLint param); -static void GL_BINDING_CALL -Mock_glSamplerParameteriv(GLuint sampler, GLenum pname, const GLint* params); -static void GL_BINDING_CALL -Mock_glScissor(GLint x, GLint y, GLsizei width, GLsizei height); +static void GL_BINDING_CALL Mock_glSampleCoverage(GLclampf value, + GLboolean invert); +static void GL_BINDING_CALL Mock_glSamplerParameterf(GLuint sampler, + GLenum pname, + GLfloat param); +static void GL_BINDING_CALL Mock_glSamplerParameterfv(GLuint sampler, + GLenum pname, + const GLfloat* params); +static void GL_BINDING_CALL Mock_glSamplerParameteri(GLuint sampler, + GLenum pname, + GLint param); +static void GL_BINDING_CALL Mock_glSamplerParameteriv(GLuint sampler, + GLenum pname, + const GLint* params); +static void GL_BINDING_CALL Mock_glScissor(GLint x, + GLint y, + GLsizei width, + GLsizei height); static void GL_BINDING_CALL Mock_glSetFenceAPPLE(GLuint fence); static void GL_BINDING_CALL Mock_glSetFenceNV(GLuint fence, GLenum condition); static void GL_BINDING_CALL Mock_glShaderBinary(GLsizei n, @@ -695,17 +766,38 @@ static void GL_BINDING_CALL Mock_glShaderSource(GLuint shader, GLsizei count, const char* const* str, const GLint* length); -static void GL_BINDING_CALL -Mock_glStencilFunc(GLenum func, GLint ref, GLuint mask); -static void GL_BINDING_CALL -Mock_glStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask); +static void GL_BINDING_CALL Mock_glStencilFillPathNV(GLuint path, + GLenum fillMode, + GLuint mask); +static void GL_BINDING_CALL Mock_glStencilFunc(GLenum func, + GLint ref, + GLuint mask); +static void GL_BINDING_CALL Mock_glStencilFuncSeparate(GLenum face, + GLenum func, + GLint ref, + GLuint mask); static void GL_BINDING_CALL Mock_glStencilMask(GLuint mask); -static void GL_BINDING_CALL -Mock_glStencilMaskSeparate(GLenum face, GLuint mask); -static void GL_BINDING_CALL -Mock_glStencilOp(GLenum fail, GLenum zfail, GLenum zpass); -static void GL_BINDING_CALL -Mock_glStencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass); +static void GL_BINDING_CALL Mock_glStencilMaskSeparate(GLenum face, + GLuint mask); +static void GL_BINDING_CALL Mock_glStencilOp(GLenum fail, + GLenum zfail, + GLenum zpass); +static void GL_BINDING_CALL Mock_glStencilOpSeparate(GLenum face, + GLenum fail, + GLenum zfail, + GLenum zpass); +static void GL_BINDING_CALL Mock_glStencilStrokePathNV(GLuint path, + GLint reference, + GLuint mask); +static void GL_BINDING_CALL Mock_glStencilThenCoverFillPathNV(GLuint path, + GLenum fillMode, + GLuint mask, + GLenum coverMode); +static void GL_BINDING_CALL +Mock_glStencilThenCoverStrokePathNV(GLuint path, + GLint reference, + GLuint mask, + GLenum coverMode); static GLboolean GL_BINDING_CALL Mock_glTestFenceAPPLE(GLuint fence); static GLboolean GL_BINDING_CALL Mock_glTestFenceNV(GLuint fence); static void GL_BINDING_CALL Mock_glTexImage2D(GLenum target, @@ -727,14 +819,18 @@ static void GL_BINDING_CALL Mock_glTexImage3D(GLenum target, GLenum format, GLenum type, const void* pixels); -static void GL_BINDING_CALL -Mock_glTexParameterf(GLenum target, GLenum pname, GLfloat param); -static void GL_BINDING_CALL -Mock_glTexParameterfv(GLenum target, GLenum pname, const GLfloat* params); -static void GL_BINDING_CALL -Mock_glTexParameteri(GLenum target, GLenum pname, GLint param); -static void GL_BINDING_CALL -Mock_glTexParameteriv(GLenum target, GLenum pname, const GLint* params); +static void GL_BINDING_CALL Mock_glTexParameterf(GLenum target, + GLenum pname, + GLfloat param); +static void GL_BINDING_CALL Mock_glTexParameterfv(GLenum target, + GLenum pname, + const GLfloat* params); +static void GL_BINDING_CALL Mock_glTexParameteri(GLenum target, + GLenum pname, + GLint param); +static void GL_BINDING_CALL Mock_glTexParameteriv(GLenum target, + GLenum pname, + const GLint* params); static void GL_BINDING_CALL Mock_glTexStorage2D(GLenum target, GLsizei levels, GLenum internalformat, @@ -777,49 +873,69 @@ Mock_glTransformFeedbackVaryings(GLuint program, const char* const* varyings, GLenum bufferMode); static void GL_BINDING_CALL Mock_glUniform1f(GLint location, GLfloat x); -static void GL_BINDING_CALL -Mock_glUniform1fv(GLint location, GLsizei count, const GLfloat* v); +static void GL_BINDING_CALL Mock_glUniform1fv(GLint location, + GLsizei count, + const GLfloat* v); static void GL_BINDING_CALL Mock_glUniform1i(GLint location, GLint x); -static void GL_BINDING_CALL -Mock_glUniform1iv(GLint location, GLsizei count, const GLint* v); +static void GL_BINDING_CALL Mock_glUniform1iv(GLint location, + GLsizei count, + const GLint* v); static void GL_BINDING_CALL Mock_glUniform1ui(GLint location, GLuint v0); -static void GL_BINDING_CALL -Mock_glUniform1uiv(GLint location, GLsizei count, const GLuint* v); -static void GL_BINDING_CALL -Mock_glUniform2f(GLint location, GLfloat x, GLfloat y); -static void GL_BINDING_CALL -Mock_glUniform2fv(GLint location, GLsizei count, const GLfloat* v); +static void GL_BINDING_CALL Mock_glUniform1uiv(GLint location, + GLsizei count, + const GLuint* v); +static void GL_BINDING_CALL Mock_glUniform2f(GLint location, + GLfloat x, + GLfloat y); +static void GL_BINDING_CALL Mock_glUniform2fv(GLint location, + GLsizei count, + const GLfloat* v); static void GL_BINDING_CALL Mock_glUniform2i(GLint location, GLint x, GLint y); -static void GL_BINDING_CALL -Mock_glUniform2iv(GLint location, GLsizei count, const GLint* v); -static void GL_BINDING_CALL -Mock_glUniform2ui(GLint location, GLuint v0, GLuint v1); -static void GL_BINDING_CALL -Mock_glUniform2uiv(GLint location, GLsizei count, const GLuint* v); -static void GL_BINDING_CALL -Mock_glUniform3f(GLint location, GLfloat x, GLfloat y, GLfloat z); -static void GL_BINDING_CALL -Mock_glUniform3fv(GLint location, GLsizei count, const GLfloat* v); -static void GL_BINDING_CALL -Mock_glUniform3i(GLint location, GLint x, GLint y, GLint z); -static void GL_BINDING_CALL -Mock_glUniform3iv(GLint location, GLsizei count, const GLint* v); -static void GL_BINDING_CALL -Mock_glUniform3ui(GLint location, GLuint v0, GLuint v1, GLuint v2); -static void GL_BINDING_CALL -Mock_glUniform3uiv(GLint location, GLsizei count, const GLuint* v); +static void GL_BINDING_CALL Mock_glUniform2iv(GLint location, + GLsizei count, + const GLint* v); +static void GL_BINDING_CALL Mock_glUniform2ui(GLint location, + GLuint v0, + GLuint v1); +static void GL_BINDING_CALL Mock_glUniform2uiv(GLint location, + GLsizei count, + const GLuint* v); +static void GL_BINDING_CALL Mock_glUniform3f(GLint location, + GLfloat x, + GLfloat y, + GLfloat z); +static void GL_BINDING_CALL Mock_glUniform3fv(GLint location, + GLsizei count, + const GLfloat* v); +static void GL_BINDING_CALL Mock_glUniform3i(GLint location, + GLint x, + GLint y, + GLint z); +static void GL_BINDING_CALL Mock_glUniform3iv(GLint location, + GLsizei count, + const GLint* v); +static void GL_BINDING_CALL Mock_glUniform3ui(GLint location, + GLuint v0, + GLuint v1, + GLuint v2); +static void GL_BINDING_CALL Mock_glUniform3uiv(GLint location, + GLsizei count, + const GLuint* v); static void GL_BINDING_CALL Mock_glUniform4f(GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -static void GL_BINDING_CALL -Mock_glUniform4fv(GLint location, GLsizei count, const GLfloat* v); +static void GL_BINDING_CALL Mock_glUniform4fv(GLint location, + GLsizei count, + const GLfloat* v); static void GL_BINDING_CALL Mock_glUniform4i(GLint location, GLint x, GLint y, GLint z, GLint w); -static void GL_BINDING_CALL -Mock_glUniform4iv(GLint location, GLsizei count, const GLint* v); +static void GL_BINDING_CALL Mock_glUniform4iv(GLint location, + GLsizei count, + const GLint* v); static void GL_BINDING_CALL Mock_glUniform4ui(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -static void GL_BINDING_CALL -Mock_glUniform4uiv(GLint location, GLsizei count, const GLuint* v); +static void GL_BINDING_CALL Mock_glUniform4uiv(GLint location, + GLsizei count, + const GLuint* v); static void GL_BINDING_CALL Mock_glUniformBlockBinding(GLuint program, GLuint uniformBlockIndex, @@ -865,34 +981,37 @@ static GLboolean GL_BINDING_CALL Mock_glUnmapBufferOES(GLenum target); static void GL_BINDING_CALL Mock_glUseProgram(GLuint program); static void GL_BINDING_CALL Mock_glValidateProgram(GLuint program); static void GL_BINDING_CALL Mock_glVertexAttrib1f(GLuint indx, GLfloat x); -static void GL_BINDING_CALL -Mock_glVertexAttrib1fv(GLuint indx, const GLfloat* values); -static void GL_BINDING_CALL -Mock_glVertexAttrib2f(GLuint indx, GLfloat x, GLfloat y); -static void GL_BINDING_CALL -Mock_glVertexAttrib2fv(GLuint indx, const GLfloat* values); -static void GL_BINDING_CALL -Mock_glVertexAttrib3f(GLuint indx, GLfloat x, GLfloat y, GLfloat z); -static void GL_BINDING_CALL -Mock_glVertexAttrib3fv(GLuint indx, const GLfloat* values); +static void GL_BINDING_CALL Mock_glVertexAttrib1fv(GLuint indx, + const GLfloat* values); +static void GL_BINDING_CALL Mock_glVertexAttrib2f(GLuint indx, + GLfloat x, + GLfloat y); +static void GL_BINDING_CALL Mock_glVertexAttrib2fv(GLuint indx, + const GLfloat* values); +static void GL_BINDING_CALL Mock_glVertexAttrib3f(GLuint indx, + GLfloat x, + GLfloat y, + GLfloat z); +static void GL_BINDING_CALL Mock_glVertexAttrib3fv(GLuint indx, + const GLfloat* values); static void GL_BINDING_CALL Mock_glVertexAttrib4f(GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -static void GL_BINDING_CALL -Mock_glVertexAttrib4fv(GLuint indx, const GLfloat* values); -static void GL_BINDING_CALL -Mock_glVertexAttribDivisor(GLuint index, GLuint divisor); -static void GL_BINDING_CALL -Mock_glVertexAttribDivisorANGLE(GLuint index, GLuint divisor); -static void GL_BINDING_CALL -Mock_glVertexAttribDivisorARB(GLuint index, GLuint divisor); +static void GL_BINDING_CALL Mock_glVertexAttrib4fv(GLuint indx, + const GLfloat* values); +static void GL_BINDING_CALL Mock_glVertexAttribDivisor(GLuint index, + GLuint divisor); +static void GL_BINDING_CALL Mock_glVertexAttribDivisorANGLE(GLuint index, + GLuint divisor); +static void GL_BINDING_CALL Mock_glVertexAttribDivisorARB(GLuint index, + GLuint divisor); static void GL_BINDING_CALL Mock_glVertexAttribI4i(GLuint indx, GLint x, GLint y, GLint z, GLint w); -static void GL_BINDING_CALL -Mock_glVertexAttribI4iv(GLuint indx, const GLint* values); +static void GL_BINDING_CALL Mock_glVertexAttribI4iv(GLuint indx, + const GLint* values); static void GL_BINDING_CALL Mock_glVertexAttribI4ui(GLuint indx, GLuint x, GLuint y, GLuint z, GLuint w); -static void GL_BINDING_CALL -Mock_glVertexAttribI4uiv(GLuint indx, const GLuint* values); +static void GL_BINDING_CALL Mock_glVertexAttribI4uiv(GLuint indx, + const GLuint* values); static void GL_BINDING_CALL Mock_glVertexAttribIPointer(GLuint indx, GLint size, GLenum type, @@ -904,7 +1023,10 @@ static void GL_BINDING_CALL Mock_glVertexAttribPointer(GLuint indx, GLboolean normalized, GLsizei stride, const void* ptr); -static void GL_BINDING_CALL -Mock_glViewport(GLint x, GLint y, GLsizei width, GLsizei height); -static GLenum GL_BINDING_CALL -Mock_glWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout); +static void GL_BINDING_CALL Mock_glViewport(GLint x, + GLint y, + GLsizei width, + GLsizei height); +static GLenum GL_BINDING_CALL Mock_glWaitSync(GLsync sync, + GLbitfield flags, + GLuint64 timeout); diff --git a/chromium/ui/gl/gl_bindings_autogen_wgl.cc b/chromium/ui/gl/gl_bindings_autogen_wgl.cc index e5642e348f7..221efb080b8 100644 --- a/chromium/ui/gl/gl_bindings_autogen_wgl.cc +++ b/chromium/ui/gl/gl_bindings_autogen_wgl.cc @@ -149,8 +149,9 @@ Debug_wglChoosePixelFormatARB(HDC dc, return result; } -static BOOL GL_BINDING_CALL -Debug_wglCopyContext(HGLRC hglrcSrc, HGLRC hglrcDst, UINT mask) { +static BOOL GL_BINDING_CALL Debug_wglCopyContext(HGLRC hglrcSrc, + HGLRC hglrcDst, + UINT mask) { GL_SERVICE_LOG("wglCopyContext" << "(" << hglrcSrc << ", " << hglrcDst << ", " << mask << ")"); BOOL result = @@ -167,8 +168,8 @@ static HGLRC GL_BINDING_CALL Debug_wglCreateContext(HDC hdc) { return result; } -static HGLRC GL_BINDING_CALL -Debug_wglCreateLayerContext(HDC hdc, int iLayerPlane) { +static HGLRC GL_BINDING_CALL Debug_wglCreateLayerContext(HDC hdc, + int iLayerPlane) { GL_SERVICE_LOG("wglCreateLayerContext" << "(" << hdc << ", " << iLayerPlane << ")"); HGLRC result = @@ -260,8 +261,9 @@ static BOOL GL_BINDING_CALL Debug_wglMakeCurrent(HDC hdc, HGLRC hglrc) { return result; } -static BOOL GL_BINDING_CALL -Debug_wglQueryPbufferARB(HPBUFFERARB hPbuffer, int iAttribute, int* piValue) { +static BOOL GL_BINDING_CALL Debug_wglQueryPbufferARB(HPBUFFERARB hPbuffer, + int iAttribute, + int* piValue) { GL_SERVICE_LOG("wglQueryPbufferARB" << "(" << hPbuffer << ", " << iAttribute << ", " << static_cast<const void*>(piValue) << ")"); @@ -271,8 +273,8 @@ Debug_wglQueryPbufferARB(HPBUFFERARB hPbuffer, int iAttribute, int* piValue) { return result; } -static int GL_BINDING_CALL -Debug_wglReleasePbufferDCARB(HPBUFFERARB hPbuffer, HDC hDC) { +static int GL_BINDING_CALL Debug_wglReleasePbufferDCARB(HPBUFFERARB hPbuffer, + HDC hDC) { GL_SERVICE_LOG("wglReleasePbufferDCARB" << "(" << hPbuffer << ", " << hDC << ")"); int result = g_driver_wgl.debug_fn.wglReleasePbufferDCARBFn(hPbuffer, hDC); diff --git a/chromium/ui/gl/gl_bindings_skia_in_process.cc b/chromium/ui/gl/gl_bindings_skia_in_process.cc index fe44954263c..d76bd7aba16 100644 --- a/chromium/ui/gl/gl_bindings_skia_in_process.cc +++ b/chromium/ui/gl/gl_bindings_skia_in_process.cc @@ -17,618 +17,794 @@ extern "C" { // via gl_bindings.h use call-type GL_BINDING_CALL, which on Windows is stdcall. // Skia has been built such that its GrGLInterface GL pointers are __cdecl. -GLvoid StubGLActiveTexture(GLenum texture) { +GLvoid GR_GL_FUNCTION_TYPE StubGLActiveTexture(GLenum texture) { glActiveTexture(texture); } -GLvoid StubGLAttachShader(GLuint program, GLuint shader) { +GLvoid GR_GL_FUNCTION_TYPE StubGLAttachShader(GLuint program, GLuint shader) { glAttachShader(program, shader); } -GLvoid StubGLBeginQuery(GLenum target, GLuint id) { +GLvoid GR_GL_FUNCTION_TYPE StubGLBeginQuery(GLenum target, GLuint id) { glBeginQuery(target, id); } -GLvoid StubGLBindAttribLocation(GLuint program, GLuint index, - const char* name) { +GLvoid GR_GL_FUNCTION_TYPE StubGLBindAttribLocation(GLuint program, + GLuint index, + const char* name) { glBindAttribLocation(program, index, name); } -GLvoid StubGLBindBuffer(GLenum target, GLuint buffer) { +GLvoid GR_GL_FUNCTION_TYPE StubGLBindBuffer(GLenum target, GLuint buffer) { glBindBuffer(target, buffer); } -GLvoid StubGLBindFragDataLocation(GLuint program, GLuint colorNumber, - const GLchar * name) { +GLvoid GR_GL_FUNCTION_TYPE StubGLBindFragDataLocation(GLuint program, + GLuint colorNumber, + const GLchar* name) { glBindFragDataLocation(program, colorNumber, name); } -GLvoid StubGLBindFragDataLocationIndexed(GLuint program, GLuint colorNumber, - GLuint index, const GLchar * name) { +GLvoid GR_GL_FUNCTION_TYPE +StubGLBindFragDataLocationIndexed(GLuint program, + GLuint colorNumber, + GLuint index, + const GLchar* name) { glBindFragDataLocationIndexed(program, colorNumber, index, name); } -GLvoid StubGLBindFramebuffer(GLenum target, GLuint framebuffer) { +GLvoid GR_GL_FUNCTION_TYPE StubGLBindFramebuffer(GLenum target, + GLuint framebuffer) { glBindFramebufferEXT(target, framebuffer); } -GLvoid StubGLBindRenderbuffer(GLenum target, GLuint renderbuffer) { +GLvoid GR_GL_FUNCTION_TYPE StubGLBindRenderbuffer(GLenum target, + GLuint renderbuffer) { glBindRenderbufferEXT(target, renderbuffer); } -GLvoid StubGLBindTexture(GLenum target, GLuint texture) { +GLvoid GR_GL_FUNCTION_TYPE StubGLBindTexture(GLenum target, GLuint texture) { glBindTexture(target, texture); } -GLvoid StubGLBindVertexArray(GLuint array) { +GLvoid GR_GL_FUNCTION_TYPE StubGLBindVertexArray(GLuint array) { glBindVertexArrayOES(array); } -GLvoid StubGLBlendBarrier() { +GLvoid GR_GL_FUNCTION_TYPE StubGLBlendBarrier() { glBlendBarrierKHR(); } -GLvoid StubGLBlendColor(GLclampf red, GLclampf green, GLclampf blue, - GLclampf alpha) { +GLvoid GR_GL_FUNCTION_TYPE StubGLBlendColor(GLclampf red, + GLclampf green, + GLclampf blue, + GLclampf alpha) { glBlendColor(red, green, blue, alpha); } -GLvoid StubGLBlendEquation(GLenum mode) { +GLvoid GR_GL_FUNCTION_TYPE StubGLBlendEquation(GLenum mode) { glBlendEquation(mode); } -GLvoid StubGLBlendFunc(GLenum sfactor, GLenum dfactor) { +GLvoid GR_GL_FUNCTION_TYPE StubGLBlendFunc(GLenum sfactor, GLenum dfactor) { glBlendFunc(sfactor, dfactor); } -GLvoid StubGLBlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, - GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, - GLbitfield mask, GLenum filter) { +GLvoid GR_GL_FUNCTION_TYPE StubGLBlitFramebuffer(GLint srcX0, + GLint srcY0, + GLint srcX1, + GLint srcY1, + GLint dstX0, + GLint dstY0, + GLint dstX1, + GLint dstY1, + GLbitfield mask, + GLenum filter) { glBlitFramebufferEXT(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter); } -GLvoid StubGLBufferData(GLenum target, GLsizeiptr size, const void* data, - GLenum usage) { +GLvoid GR_GL_FUNCTION_TYPE StubGLBufferData(GLenum target, + GLsizeiptr size, + const void* data, + GLenum usage) { glBufferData(target, size, data, usage); } -GLvoid StubGLBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, - const void* data) { +GLvoid GR_GL_FUNCTION_TYPE StubGLBufferSubData(GLenum target, + GLintptr offset, + GLsizeiptr size, + const void* data) { glBufferSubData(target, offset, size, data); } -GLenum StubGLCheckFramebufferStatus(GLenum target) { +GLenum GR_GL_FUNCTION_TYPE StubGLCheckFramebufferStatus(GLenum target) { return glCheckFramebufferStatusEXT(target); } -GLvoid StubGLClear(GLbitfield mask) { +GLvoid GR_GL_FUNCTION_TYPE StubGLClear(GLbitfield mask) { glClear(mask); } -GLvoid StubGLClearColor(GLclampf red, GLclampf green, GLclampf blue, - GLclampf alpha) { +GLvoid GR_GL_FUNCTION_TYPE StubGLClearColor(GLclampf red, + GLclampf green, + GLclampf blue, + GLclampf alpha) { glClearColor(red, green, blue, alpha); } -GLvoid StubGLClearStencil(GLint s) { +GLvoid GR_GL_FUNCTION_TYPE StubGLClearStencil(GLint s) { glClearStencil(s); } -GLvoid StubGLColorMask(GLboolean red, GLboolean green, GLboolean blue, - GLboolean alpha) { +GLvoid GR_GL_FUNCTION_TYPE StubGLColorMask(GLboolean red, + GLboolean green, + GLboolean blue, + GLboolean alpha) { glColorMask(red, green, blue, alpha); } -GLvoid StubGLCompileShader(GLuint shader) { +GLvoid GR_GL_FUNCTION_TYPE StubGLCompileShader(GLuint shader) { glCompileShader(shader); } -GLvoid StubGLCompressedTexImage2D(GLenum target, GLint level, - GLenum internalformat, GLsizei width, - GLsizei height, GLint border, - GLsizei imageSize, const void* data) { +GLvoid GR_GL_FUNCTION_TYPE StubGLCompressedTexImage2D(GLenum target, + GLint level, + GLenum internalformat, + GLsizei width, + GLsizei height, + GLint border, + GLsizei imageSize, + const void* data) { glCompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data); } -GLvoid StubGLCopyTexSubImage2D(GLenum target, GLint level, - GLint xoffset, GLint yoffset, - GLint x, GLint y, - GLsizei width, GLsizei height) { +GLvoid GR_GL_FUNCTION_TYPE StubGLCopyTexSubImage2D(GLenum target, + GLint level, + GLint xoffset, + GLint yoffset, + GLint x, + GLint y, + GLsizei width, + GLsizei height) { glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height); } -GLuint StubGLCreateProgram(void) { +GLuint GR_GL_FUNCTION_TYPE StubGLCreateProgram(void) { return glCreateProgram(); } -GLuint StubGLCreateShader(GLenum type) { +GLuint GR_GL_FUNCTION_TYPE StubGLCreateShader(GLenum type) { return glCreateShader(type); } -GLvoid StubGLCullFace(GLenum mode) { +GLvoid GR_GL_FUNCTION_TYPE StubGLCullFace(GLenum mode) { glCullFace(mode); } -GLvoid StubGLDeleteBuffers(GLsizei n, const GLuint* buffers) { +GLvoid GR_GL_FUNCTION_TYPE StubGLDeleteBuffers(GLsizei n, + const GLuint* buffers) { glDeleteBuffersARB(n, buffers); } -GLvoid StubGLDeleteFramebuffers(GLsizei n, const GLuint* framebuffers) { +GLvoid GR_GL_FUNCTION_TYPE +StubGLDeleteFramebuffers(GLsizei n, const GLuint* framebuffers) { glDeleteFramebuffersEXT(n, framebuffers); } -GLvoid StubGLDeleteQueries(GLsizei n, const GLuint* ids) { +GLvoid GR_GL_FUNCTION_TYPE StubGLDeleteQueries(GLsizei n, const GLuint* ids) { glDeleteQueries(n, ids); } -GLvoid StubGLDeleteProgram(GLuint program) { +GLvoid GR_GL_FUNCTION_TYPE StubGLDeleteProgram(GLuint program) { glDeleteProgram(program); } -GLvoid StubGLDeleteRenderbuffers(GLsizei n, const GLuint* renderbuffers) { +GLvoid GR_GL_FUNCTION_TYPE +StubGLDeleteRenderbuffers(GLsizei n, const GLuint* renderbuffers) { glDeleteRenderbuffersEXT(n, renderbuffers); } -GLvoid StubGLDeleteShader(GLuint shader) { +GLvoid GR_GL_FUNCTION_TYPE StubGLDeleteShader(GLuint shader) { glDeleteShader(shader); } -GLvoid StubGLDeleteTextures(GLsizei n, const GLuint* textures) { +GLvoid GR_GL_FUNCTION_TYPE StubGLDeleteTextures(GLsizei n, + const GLuint* textures) { glDeleteTextures(n, textures); } -GLvoid StubGLDeleteVertexArrays(GLsizei n, const GLuint* arrays) { +GLvoid GR_GL_FUNCTION_TYPE StubGLDeleteVertexArrays(GLsizei n, + const GLuint* arrays) { glDeleteVertexArraysOES(n, arrays); } -GLvoid StubGLDepthMask(GLboolean flag) { +GLvoid GR_GL_FUNCTION_TYPE StubGLDepthMask(GLboolean flag) { glDepthMask(flag); } -GLvoid StubGLDisable(GLenum cap) { +GLvoid GR_GL_FUNCTION_TYPE StubGLDisable(GLenum cap) { glDisable(cap); } -GLvoid StubGLDisableVertexAttribArray(GLuint index) { +GLvoid GR_GL_FUNCTION_TYPE StubGLDisableVertexAttribArray(GLuint index) { glDisableVertexAttribArray(index); } -GLvoid StubGLDiscardFramebuffer(GLenum target, GLsizei numAttachments, - const GLenum *attachments) { +GLvoid GR_GL_FUNCTION_TYPE StubGLDiscardFramebuffer(GLenum target, + GLsizei numAttachments, + const GLenum* attachments) { glDiscardFramebufferEXT(target, numAttachments, attachments); } -GLvoid StubGLDrawArrays(GLenum mode, GLint first, GLsizei count) { +GLvoid GR_GL_FUNCTION_TYPE StubGLDrawArrays(GLenum mode, + GLint first, + GLsizei count) { glDrawArrays(mode, first, count); } -GLvoid StubGLDrawBuffer(GLenum mode) { +GLvoid GR_GL_FUNCTION_TYPE StubGLDrawBuffer(GLenum mode) { glDrawBuffer(mode); } -GLvoid StubGLDrawBuffers(GLsizei n, const GLenum* bufs) { +GLvoid GR_GL_FUNCTION_TYPE StubGLDrawBuffers(GLsizei n, const GLenum* bufs) { glDrawBuffersARB(n, bufs); } -GLvoid StubGLDrawElements(GLenum mode, GLsizei count, GLenum type, - const void* indices) { +GLvoid GR_GL_FUNCTION_TYPE StubGLDrawElements(GLenum mode, + GLsizei count, + GLenum type, + const void* indices) { glDrawElements(mode, count, type, indices); } -GLvoid StubGLEnable(GLenum cap) { +GLvoid GR_GL_FUNCTION_TYPE StubGLEnable(GLenum cap) { glEnable(cap); } -GLvoid StubGLEnableVertexAttribArray(GLuint index) { +GLvoid GR_GL_FUNCTION_TYPE StubGLEnableVertexAttribArray(GLuint index) { glEnableVertexAttribArray(index); } -GLvoid StubGLEndQuery(GLenum target) { +GLvoid GR_GL_FUNCTION_TYPE StubGLEndQuery(GLenum target) { glEndQuery(target); } -GLvoid StubGLFinish() { +GLvoid GR_GL_FUNCTION_TYPE StubGLFinish() { glFinish(); } -GLvoid StubGLFlush() { +GLvoid GR_GL_FUNCTION_TYPE StubGLFlush() { glFlush(); } -GLvoid StubGLFlushMappedBufferRange(GLenum target, GLintptr offset, - GLsizeiptr length) { +GLvoid GR_GL_FUNCTION_TYPE StubGLFlushMappedBufferRange(GLenum target, + GLintptr offset, + GLsizeiptr length) { glFlushMappedBufferRange(target, offset, length); } -GLvoid StubGLFramebufferRenderbuffer(GLenum target, GLenum attachment, - GLenum renderbuffertarget, - GLuint renderbuffer) { +GLvoid GR_GL_FUNCTION_TYPE +StubGLFramebufferRenderbuffer(GLenum target, + GLenum attachment, + GLenum renderbuffertarget, + GLuint renderbuffer) { glFramebufferRenderbufferEXT(target, attachment, renderbuffertarget, renderbuffer); } -GLvoid StubGLFramebufferTexture2D(GLenum target, GLenum attachment, - GLenum textarget, GLuint texture, - GLint level) { +GLvoid GR_GL_FUNCTION_TYPE StubGLFramebufferTexture2D(GLenum target, + GLenum attachment, + GLenum textarget, + GLuint texture, + GLint level) { glFramebufferTexture2DEXT(target, attachment, textarget, texture, level); } -GLvoid StubGLFramebufferTexture2DMultisample(GLenum target, GLenum attachment, - GLenum textarget, GLuint texture, - GLint level, GLsizei samples) { +GLvoid GR_GL_FUNCTION_TYPE +StubGLFramebufferTexture2DMultisample(GLenum target, + GLenum attachment, + GLenum textarget, + GLuint texture, + GLint level, + GLsizei samples) { glFramebufferTexture2DMultisampleEXT(target, attachment, textarget, texture, level, samples); } -GLvoid StubGLFrontFace(GLenum mode) { +GLvoid GR_GL_FUNCTION_TYPE StubGLFrontFace(GLenum mode) { glFrontFace(mode); } -GLvoid StubGLGenBuffers(GLsizei n, GLuint* buffers) { +GLvoid GR_GL_FUNCTION_TYPE StubGLGenBuffers(GLsizei n, GLuint* buffers) { glGenBuffersARB(n, buffers); } -GLvoid StubGLGenFramebuffers(GLsizei n, GLuint* framebuffers) { +GLvoid GR_GL_FUNCTION_TYPE StubGLGenFramebuffers(GLsizei n, + GLuint* framebuffers) { glGenFramebuffersEXT(n, framebuffers); } -GLvoid StubGLGenQueries(GLsizei n, GLuint* ids) { +GLvoid GR_GL_FUNCTION_TYPE StubGLGenQueries(GLsizei n, GLuint* ids) { glGenQueries(n, ids); } -GLvoid StubGLGenRenderbuffers(GLsizei n, GLuint* renderbuffers) { +GLvoid GR_GL_FUNCTION_TYPE StubGLGenRenderbuffers(GLsizei n, + GLuint* renderbuffers) { glGenRenderbuffersEXT(n, renderbuffers); } -GLvoid StubGLGenTextures(GLsizei n, GLuint* textures) { +GLvoid GR_GL_FUNCTION_TYPE StubGLGenTextures(GLsizei n, GLuint* textures) { glGenTextures(n, textures); } -GLvoid StubGLGenVertexArrays(GLsizei n, GLuint* arrays) { +GLvoid GR_GL_FUNCTION_TYPE StubGLGenVertexArrays(GLsizei n, GLuint* arrays) { glGenVertexArraysOES(n, arrays); } -GLvoid StubGLGenerateMipmap(GLenum target){ +GLvoid GR_GL_FUNCTION_TYPE StubGLGenerateMipmap(GLenum target) { glGenerateMipmapEXT(target); } -GLvoid StubGLGetBufferParameteriv(GLenum target, GLenum pname, GLint* params) { +GLvoid GR_GL_FUNCTION_TYPE StubGLGetBufferParameteriv(GLenum target, + GLenum pname, + GLint* params) { glGetBufferParameteriv(target, pname, params); } -GLvoid StubGLGetFramebufferAttachmentParameteriv(GLenum target, - GLenum attachment, - GLenum pname, GLint* params) { +GLvoid GR_GL_FUNCTION_TYPE +StubGLGetFramebufferAttachmentParameteriv(GLenum target, + GLenum attachment, + GLenum pname, + GLint* params) { glGetFramebufferAttachmentParameterivEXT(target, attachment, pname, params); } -GLenum StubGLGetError() { +GLenum GR_GL_FUNCTION_TYPE StubGLGetError() { return glGetError(); } -GLvoid StubGLGetIntegerv(GLenum pname, GLint* params) { +GLvoid GR_GL_FUNCTION_TYPE StubGLGetIntegerv(GLenum pname, GLint* params) { glGetIntegerv(pname, params); } -GLvoid StubGLGetProgramInfoLog(GLuint program, GLsizei bufsize, GLsizei* length, - char* infolog) { +GLvoid GR_GL_FUNCTION_TYPE StubGLGetProgramInfoLog(GLuint program, + GLsizei bufsize, + GLsizei* length, + char* infolog) { glGetProgramInfoLog(program, bufsize, length, infolog); } -GLvoid StubGLGetProgramiv(GLuint program, GLenum pname, GLint* params) { +GLvoid GR_GL_FUNCTION_TYPE StubGLGetProgramiv(GLuint program, + GLenum pname, + GLint* params) { glGetProgramiv(program, pname, params); } -GLvoid StubGLGetRenderbufferParameteriv(GLenum target, - GLenum pname, GLint* params) { +GLvoid GR_GL_FUNCTION_TYPE StubGLGetRenderbufferParameteriv(GLenum target, + GLenum pname, + GLint* params) { glGetRenderbufferParameterivEXT(target, pname, params); } -GLvoid StubGLGetShaderInfoLog(GLuint shader, GLsizei bufsize, GLsizei* length, - char* infolog) { +GLvoid GR_GL_FUNCTION_TYPE StubGLGetShaderInfoLog(GLuint shader, + GLsizei bufsize, + GLsizei* length, + char* infolog) { glGetShaderInfoLog(shader, bufsize, length, infolog); } -GLvoid StubGLGetShaderiv(GLuint shader, GLenum pname, GLint* params) { +GLvoid GR_GL_FUNCTION_TYPE StubGLGetShaderiv(GLuint shader, + GLenum pname, + GLint* params) { glGetShaderiv(shader, pname, params); } -GLvoid StubGLGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, - GLint *range, GLint *precision) { +GLvoid GR_GL_FUNCTION_TYPE StubGLGetShaderPrecisionFormat(GLenum shadertype, + GLenum precisiontype, + GLint* range, + GLint* precision) { glGetShaderPrecisionFormat(shadertype, precisiontype, range, precision); } -const GLubyte* StubGLGetString(GLenum name) { +const GLubyte* GR_GL_FUNCTION_TYPE StubGLGetString(GLenum name) { return glGetString(name); } -const GLubyte* StubGLGetStringi(GLenum name, GLuint index) { +const GLubyte* GR_GL_FUNCTION_TYPE StubGLGetStringi(GLenum name, GLuint index) { return glGetStringi(name, index); } -GLvoid StubGLGetQueryiv(GLenum target, GLenum pname, GLint* params) { +GLvoid GR_GL_FUNCTION_TYPE StubGLGetQueryiv(GLenum target, + GLenum pname, + GLint* params) { glGetQueryiv(target, pname, params); } -GLvoid StubGLGetQueryObjecti64v(GLuint id, GLenum pname, GLint64* params) { +GLvoid GR_GL_FUNCTION_TYPE StubGLGetQueryObjecti64v(GLuint id, + GLenum pname, + GLint64* params) { glGetQueryObjecti64v(id, pname, params); } -GLvoid StubGLGetQueryObjectiv(GLuint id, GLenum pname, GLint* params) { +GLvoid GR_GL_FUNCTION_TYPE StubGLGetQueryObjectiv(GLuint id, + GLenum pname, + GLint* params) { glGetQueryObjectiv(id, pname, params); } -GLvoid StubGLGetQueryObjectui64v(GLuint id, GLenum pname, GLuint64* params) { +GLvoid GR_GL_FUNCTION_TYPE StubGLGetQueryObjectui64v(GLuint id, + GLenum pname, + GLuint64* params) { glGetQueryObjectui64v(id, pname, params); } -GLvoid StubGLGetQueryObjectuiv(GLuint id, GLenum pname, GLuint* params) { +GLvoid GR_GL_FUNCTION_TYPE StubGLGetQueryObjectuiv(GLuint id, + GLenum pname, + GLuint* params) { glGetQueryObjectuiv(id, pname, params); } -GLvoid StubGLGetTexLevelParameteriv(GLenum target, GLint level, - GLenum pname, GLint* params) { +GLvoid GR_GL_FUNCTION_TYPE StubGLGetTexLevelParameteriv(GLenum target, + GLint level, + GLenum pname, + GLint* params) { glGetTexLevelParameteriv(target, level, pname, params); } -GLint StubGLGetUniformLocation(GLuint program, const char* name) { +GLint GR_GL_FUNCTION_TYPE StubGLGetUniformLocation(GLuint program, + const char* name) { return glGetUniformLocation(program, name); } -GLvoid StubGLInsertEventMarker(GLsizei length, const char* marker) { +GLvoid GR_GL_FUNCTION_TYPE StubGLInsertEventMarker(GLsizei length, + const char* marker) { glInsertEventMarkerEXT(length, marker); } -GLvoid StubGLInvalidateFramebuffer(GLenum target, GLsizei numAttachments, - const GLenum* attachments) { +GLvoid GR_GL_FUNCTION_TYPE +StubGLInvalidateFramebuffer(GLenum target, + GLsizei numAttachments, + const GLenum* attachments) { glInvalidateFramebuffer(target, numAttachments, attachments); } -GLvoid StubGLInvalidateSubFramebuffer(GLenum target, - GLsizei numAttachments, - const GLenum* attachments, - GLint x, GLint y, - GLsizei width, GLsizei height) { +GLvoid GR_GL_FUNCTION_TYPE +StubGLInvalidateSubFramebuffer(GLenum target, + GLsizei numAttachments, + const GLenum* attachments, + GLint x, + GLint y, + GLsizei width, + GLsizei height) { glInvalidateSubFramebuffer(target, numAttachments, attachments, x, y, width, height); } -GLvoid StubGLLineWidth(GLfloat width) { +GLvoid GR_GL_FUNCTION_TYPE StubGLLineWidth(GLfloat width) { glLineWidth(width); } -GLvoid StubGLLinkProgram(GLuint program) { +GLvoid GR_GL_FUNCTION_TYPE StubGLLinkProgram(GLuint program) { glLinkProgram(program); } -void* StubGLMapBuffer(GLenum target, GLenum access) { +void* GR_GL_FUNCTION_TYPE StubGLMapBuffer(GLenum target, GLenum access) { return glMapBuffer(target, access); } -void* StubGLMapBufferRange(GLenum target, GLintptr offset, GLsizeiptr length, - GLbitfield access) { +void* GR_GL_FUNCTION_TYPE StubGLMapBufferRange(GLenum target, + GLintptr offset, + GLsizeiptr length, + GLbitfield access) { return glMapBufferRange(target, offset, length, access); } -GLvoid StubGLPixelStorei(GLenum pname, GLint param) { +GLvoid GR_GL_FUNCTION_TYPE StubGLPixelStorei(GLenum pname, GLint param) { glPixelStorei(pname, param); } -GLvoid StubGLPopGroupMarker() { +GLvoid GR_GL_FUNCTION_TYPE StubGLPopGroupMarker() { glPopGroupMarkerEXT(); } -GLvoid StubGLPushGroupMarker(GLsizei length, const char* marker) { +GLvoid GR_GL_FUNCTION_TYPE StubGLPushGroupMarker(GLsizei length, + const char* marker) { glPushGroupMarkerEXT(length, marker); } -GLvoid StubGLQueryCounter(GLuint id, GLenum target) { +GLvoid GR_GL_FUNCTION_TYPE StubGLQueryCounter(GLuint id, GLenum target) { glQueryCounter(id, target); } -GLvoid StubGLReadBuffer(GLenum src) { +GLvoid GR_GL_FUNCTION_TYPE StubGLReadBuffer(GLenum src) { glReadBuffer(src); } -GLvoid StubGLReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, - GLenum format, GLenum type, void* pixels) { +GLvoid GR_GL_FUNCTION_TYPE StubGLReadPixels(GLint x, + GLint y, + GLsizei width, + GLsizei height, + GLenum format, + GLenum type, + void* pixels) { glReadPixels(x, y, width, height, format, type, pixels); } -GLvoid StubGLRenderbufferStorage(GLenum target, GLenum internalformat, - GLsizei width, GLsizei height) { +GLvoid GR_GL_FUNCTION_TYPE StubGLRenderbufferStorage(GLenum target, + GLenum internalformat, + GLsizei width, + GLsizei height) { glRenderbufferStorageEXT(target, internalformat, width, height); } -GLvoid StubGLRenderbufferStorageMultisample(GLenum target, GLsizei samples, - GLenum internalformat, - GLsizei width, GLsizei height) { +GLvoid GR_GL_FUNCTION_TYPE +StubGLRenderbufferStorageMultisample(GLenum target, + GLsizei samples, + GLenum internalformat, + GLsizei width, + GLsizei height) { glRenderbufferStorageMultisampleEXT(target, samples, internalformat, width, height); } -GLvoid StubGLScissor(GLint x, GLint y, GLsizei width, GLsizei height) { +GLvoid GR_GL_FUNCTION_TYPE StubGLScissor(GLint x, + GLint y, + GLsizei width, + GLsizei height) { glScissor(x, y, width, height); } -GLvoid StubGLShaderSource(GLuint shader, GLsizei count, const char* const* str, - const GLint* length) { +GLvoid GR_GL_FUNCTION_TYPE StubGLShaderSource(GLuint shader, + GLsizei count, + const char* const* str, + const GLint* length) { glShaderSource(shader, count, str, length); } -GLvoid StubGLStencilFunc(GLenum func, GLint ref, GLuint mask) { +GLvoid GR_GL_FUNCTION_TYPE StubGLStencilFunc(GLenum func, + GLint ref, + GLuint mask) { glStencilFunc(func, ref, mask); } -GLvoid StubGLStencilFuncSeparate(GLenum face, GLenum func, GLint ref, - GLuint mask) { +GLvoid GR_GL_FUNCTION_TYPE StubGLStencilFuncSeparate(GLenum face, + GLenum func, + GLint ref, + GLuint mask) { glStencilFuncSeparate(face, func, ref, mask); } -GLvoid StubGLStencilMask(GLuint mask) { +GLvoid GR_GL_FUNCTION_TYPE StubGLStencilMask(GLuint mask) { glStencilMask(mask); } -GLvoid StubGLStencilMaskSeparate(GLenum face, GLuint mask) { +GLvoid GR_GL_FUNCTION_TYPE StubGLStencilMaskSeparate(GLenum face, GLuint mask) { glStencilMaskSeparate(face, mask); } -GLvoid StubGLStencilOp(GLenum fail, GLenum zfail, GLenum zpass) { +GLvoid GR_GL_FUNCTION_TYPE StubGLStencilOp(GLenum fail, + GLenum zfail, + GLenum zpass) { glStencilOp(fail, zfail, zpass); } -GLvoid StubGLStencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, - GLenum zpass) { +GLvoid GR_GL_FUNCTION_TYPE StubGLStencilOpSeparate(GLenum face, + GLenum fail, + GLenum zfail, + GLenum zpass) { glStencilOpSeparate(face, fail, zfail, zpass); } -GLvoid StubGLTexImage2D(GLenum target, GLint level, GLint internalformat, - GLsizei width, GLsizei height, GLint border, - GLenum format, GLenum type, const void* pixels) { +GLvoid GR_GL_FUNCTION_TYPE StubGLTexImage2D(GLenum target, + GLint level, + GLint internalformat, + GLsizei width, + GLsizei height, + GLint border, + GLenum format, + GLenum type, + const void* pixels) { glTexImage2D(target, level, internalformat, width, height, border, format, type, pixels); } -GLvoid StubGLTexParameteri(GLenum target, GLenum pname, GLint param) { +GLvoid GR_GL_FUNCTION_TYPE StubGLTexParameteri(GLenum target, + GLenum pname, + GLint param) { glTexParameteri(target, pname, param); } -GLvoid StubGLTexParameteriv(GLenum target, GLenum pname, const GLint* params) { +GLvoid GR_GL_FUNCTION_TYPE StubGLTexParameteriv(GLenum target, + GLenum pname, + const GLint* params) { glTexParameteriv(target, pname, params); } -GLvoid StubGLTexStorage2D(GLenum target, GLsizei levels, GLenum internalFormat, - GLsizei width, GLsizei height) { +GLvoid GR_GL_FUNCTION_TYPE StubGLTexStorage2D(GLenum target, + GLsizei levels, + GLenum internalFormat, + GLsizei width, + GLsizei height) { glTexStorage2DEXT(target, levels, internalFormat, width, height); } -GLvoid StubGLTexSubImage2D(GLenum target, GLint level, GLint xoffset, - GLint yoffset, GLsizei width, GLsizei height, - GLenum format, GLenum type, const void* pixels) { +GLvoid GR_GL_FUNCTION_TYPE StubGLTexSubImage2D(GLenum target, + GLint level, + GLint xoffset, + GLint yoffset, + GLsizei width, + GLsizei height, + GLenum format, + GLenum type, + const void* pixels) { glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels); } -GLvoid StubGLUniform1f(GLint location, GLfloat v) { +GLvoid GR_GL_FUNCTION_TYPE StubGLUniform1f(GLint location, GLfloat v) { glUniform1f(location, v); } -GLvoid StubGLUniform1i(GLint location, GLint v) { +GLvoid GR_GL_FUNCTION_TYPE StubGLUniform1i(GLint location, GLint v) { glUniform1i(location, v); } -GLvoid StubGLUniform1fv(GLint location, GLsizei count, const GLfloat* v) { +GLvoid GR_GL_FUNCTION_TYPE StubGLUniform1fv(GLint location, + GLsizei count, + const GLfloat* v) { glUniform1fv(location, count, v); } -GLvoid StubGLUniform1iv(GLint location, GLsizei count, const GLint* v) { +GLvoid GR_GL_FUNCTION_TYPE StubGLUniform1iv(GLint location, + GLsizei count, + const GLint* v) { glUniform1iv(location, count, v); } -GLvoid StubGLUniform2f(GLint location, GLfloat v0, GLfloat v1) { +GLvoid GR_GL_FUNCTION_TYPE StubGLUniform2f(GLint location, + GLfloat v0, + GLfloat v1) { glUniform2f(location, v0, v1); } -GLvoid StubGLUniform2i(GLint location, GLint v0, GLint v1) { +GLvoid GR_GL_FUNCTION_TYPE StubGLUniform2i(GLint location, GLint v0, GLint v1) { glUniform2i(location, v0, v1); } -GLvoid StubGLUniform2fv(GLint location, GLsizei count, const GLfloat* v) { +GLvoid GR_GL_FUNCTION_TYPE StubGLUniform2fv(GLint location, + GLsizei count, + const GLfloat* v) { glUniform2fv(location, count, v); } -GLvoid StubGLUniform2iv(GLint location, GLsizei count, const GLint* v) { +GLvoid GR_GL_FUNCTION_TYPE StubGLUniform2iv(GLint location, + GLsizei count, + const GLint* v) { glUniform2iv(location, count, v); } -GLvoid StubGLUniform3f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2) { +GLvoid GR_GL_FUNCTION_TYPE StubGLUniform3f(GLint location, + GLfloat v0, + GLfloat v1, + GLfloat v2) { glUniform3f(location, v0, v1, v2); } -GLvoid StubGLUniform3i(GLint location, GLint v0, GLint v1, GLint v2) { +GLvoid GR_GL_FUNCTION_TYPE StubGLUniform3i(GLint location, + GLint v0, + GLint v1, + GLint v2) { glUniform3i(location, v0, v1, v2); } -GLvoid StubGLUniform3fv(GLint location, GLsizei count, const GLfloat* v) { +GLvoid GR_GL_FUNCTION_TYPE StubGLUniform3fv(GLint location, + GLsizei count, + const GLfloat* v) { glUniform3fv(location, count, v); } -GLvoid StubGLUniform3iv(GLint location, GLsizei count, const GLint* v) { +GLvoid GR_GL_FUNCTION_TYPE StubGLUniform3iv(GLint location, + GLsizei count, + const GLint* v) { glUniform3iv(location, count, v); } -GLvoid StubGLUniform4f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, - GLfloat v3) { +GLvoid GR_GL_FUNCTION_TYPE StubGLUniform4f(GLint location, + GLfloat v0, + GLfloat v1, + GLfloat v2, + GLfloat v3) { glUniform4f(location, v0, v1, v2, v3); } -GLvoid StubGLUniform4i(GLint location, GLint v0, GLint v1, GLint v2, - GLint v3) { +GLvoid GR_GL_FUNCTION_TYPE +StubGLUniform4i(GLint location, GLint v0, GLint v1, GLint v2, GLint v3) { glUniform4i(location, v0, v1, v2, v3); } -GLvoid StubGLUniform4fv(GLint location, GLsizei count, const GLfloat* v) { +GLvoid GR_GL_FUNCTION_TYPE StubGLUniform4fv(GLint location, + GLsizei count, + const GLfloat* v) { glUniform4fv(location, count, v); } -GLvoid StubGLUniform4iv(GLint location, GLsizei count, const GLint* v) { +GLvoid GR_GL_FUNCTION_TYPE StubGLUniform4iv(GLint location, + GLsizei count, + const GLint* v) { glUniform4iv(location, count, v); } -GLvoid StubGLUniformMatrix2fv(GLint location, GLsizei count, - GLboolean transpose, const GLfloat* value) { +GLvoid GR_GL_FUNCTION_TYPE StubGLUniformMatrix2fv(GLint location, + GLsizei count, + GLboolean transpose, + const GLfloat* value) { glUniformMatrix2fv(location, count, transpose, value); } -GLvoid StubGLUniformMatrix3fv(GLint location, GLsizei count, - GLboolean transpose, const GLfloat* value) { +GLvoid GR_GL_FUNCTION_TYPE StubGLUniformMatrix3fv(GLint location, + GLsizei count, + GLboolean transpose, + const GLfloat* value) { glUniformMatrix3fv(location, count, transpose, value); } -GLvoid StubGLUniformMatrix4fv(GLint location, GLsizei count, - GLboolean transpose, const GLfloat* value) { +GLvoid GR_GL_FUNCTION_TYPE StubGLUniformMatrix4fv(GLint location, + GLsizei count, + GLboolean transpose, + const GLfloat* value) { glUniformMatrix4fv(location, count, transpose, value); } -GLboolean StubGLUnmapBuffer(GLenum target) { +GLboolean GR_GL_FUNCTION_TYPE StubGLUnmapBuffer(GLenum target) { return glUnmapBuffer(target); } -GLvoid StubGLUseProgram(GLuint program) { +GLvoid GR_GL_FUNCTION_TYPE StubGLUseProgram(GLuint program) { glUseProgram(program); } -GLvoid StubGLVertexAttrib1f(GLuint indx, const GLfloat value) { +GLvoid GR_GL_FUNCTION_TYPE StubGLVertexAttrib1f(GLuint indx, + const GLfloat value) { glVertexAttrib1f(indx, value); } -GLvoid StubGLVertexAttrib2fv(GLuint indx, const GLfloat* values) { +GLvoid GR_GL_FUNCTION_TYPE StubGLVertexAttrib2fv(GLuint indx, + const GLfloat* values) { glVertexAttrib2fv(indx, values); } -GLvoid StubGLVertexAttrib3fv(GLuint indx, const GLfloat* values) { +GLvoid GR_GL_FUNCTION_TYPE StubGLVertexAttrib3fv(GLuint indx, + const GLfloat* values) { glVertexAttrib3fv(indx, values); } -GLvoid StubGLVertexAttrib4fv(GLuint indx, const GLfloat* values) { +GLvoid GR_GL_FUNCTION_TYPE StubGLVertexAttrib4fv(GLuint indx, + const GLfloat* values) { glVertexAttrib4fv(indx, values); } -GLvoid StubGLVertexAttribPointer(GLuint indx, GLint size, GLenum type, - GLboolean normalized, GLsizei stride, - const void* ptr) { +GLvoid GR_GL_FUNCTION_TYPE StubGLVertexAttribPointer(GLuint indx, + GLint size, + GLenum type, + GLboolean normalized, + GLsizei stride, + const void* ptr) { glVertexAttribPointer(indx, size, type, normalized, stride, ptr); } -GLvoid StubGLViewport(GLint x, GLint y, GLsizei width, GLsizei height) { +GLvoid GR_GL_FUNCTION_TYPE StubGLViewport(GLint x, + GLint y, + GLsizei width, + GLsizei height) { glViewport(x, y, width, height); } -GLint StubGLGetProgramResourceLocation(GLuint program, - GLenum programInterface, - const char* name) { +GLint GR_GL_FUNCTION_TYPE +StubGLGetProgramResourceLocation(GLuint program, + GLenum programInterface, + const char* name) { return glGetProgramResourceLocation(program, programInterface, name); } diff --git a/chromium/ui/gl/gl_context.cc b/chromium/ui/gl/gl_context.cc index 1049bfdba3a..ada2127d507 100644 --- a/chromium/ui/gl/gl_context.cc +++ b/chromium/ui/gl/gl_context.cc @@ -85,22 +85,7 @@ void GLContext::SetUnbindFboOnMakeCurrent() { std::string GLContext::GetExtensions() { DCHECK(IsCurrent(nullptr)); - if (gfx::GetGLImplementation() != - gfx::kGLImplementationDesktopGLCoreProfile) { - const char* ext = reinterpret_cast<const char*>(glGetString(GL_EXTENSIONS)); - return std::string(ext ? ext : ""); - } - - std::vector<std::string> exts; - GLint num_extensions = 0; - glGetIntegerv(GL_NUM_EXTENSIONS, &num_extensions); - for (GLint i = 0; i < num_extensions; ++i) { - const char* extension = reinterpret_cast<const char*>( - glGetStringi(GL_EXTENSIONS, i)); - DCHECK(extension != nullptr); - exts.push_back(extension); - } - return JoinString(exts, " "); + return GetGLExtensionsFromCurrentContext(); } std::string GLContext::GetGLVersion() { diff --git a/chromium/ui/gl/gl_context.h b/chromium/ui/gl/gl_context.h index 95986613e0b..d391deb0679 100644 --- a/chromium/ui/gl/gl_context.h +++ b/chromium/ui/gl/gl_context.h @@ -42,9 +42,6 @@ class GL_EXPORT GLContext : public base::RefCounted<GLContext> { virtual bool Initialize( GLSurface* compatible_surface, GpuPreference gpu_preference) = 0; - // Destroys the GL context. - virtual void Destroy() = 0; - // Makes the GL context and a surface current on the current thread. virtual bool MakeCurrent(GLSurface* surface) = 0; diff --git a/chromium/ui/gl/gl_context_android.cc b/chromium/ui/gl/gl_context_android.cc index 8786a0d4d5b..ebf1dda6b13 100644 --- a/chromium/ui/gl/gl_context_android.cc +++ b/chromium/ui/gl/gl_context_android.cc @@ -28,7 +28,6 @@ class GLNonOwnedContext : public GLContextReal { // Implement GLContext. bool Initialize(GLSurface* compatible_surface, GpuPreference gpu_preference) override; - void Destroy() override {} bool MakeCurrent(GLSurface* surface) override; void ReleaseCurrent(GLSurface* surface) override {} bool IsCurrent(GLSurface* surface) override { return true; } @@ -40,9 +39,9 @@ class GLNonOwnedContext : public GLContextReal { ~GLNonOwnedContext() override {} private: - DISALLOW_COPY_AND_ASSIGN(GLNonOwnedContext); - EGLDisplay display_; + + DISALLOW_COPY_AND_ASSIGN(GLNonOwnedContext); }; GLNonOwnedContext::GLNonOwnedContext(GLShareGroup* share_group) diff --git a/chromium/ui/gl/gl_context_cgl.cc b/chromium/ui/gl/gl_context_cgl.cc index e2e4af68243..6de014ecde9 100644 --- a/chromium/ui/gl/gl_context_cgl.cc +++ b/chromium/ui/gl/gl_context_cgl.cc @@ -80,7 +80,7 @@ GLContextCGL::GLContextCGL(GLShareGroup* share_group) discrete_pixelformat_(nullptr), screen_(-1), renderer_id_(-1), - safe_to_force_gpu_switch_(false) { + safe_to_force_gpu_switch_(true) { } bool GLContextCGL::Initialize(GLSurface* compatible_surface, @@ -126,6 +126,11 @@ bool GLContextCGL::Initialize(GLSurface* compatible_surface, } gpu_preference_ = gpu_preference; + // Contexts that prefer integrated gpu are known to use only the subset of GL + // that can be safely migrated between the iGPU and the dGPU. Mark those + // contexts as safe to forcibly transition between the GPUs by default. + // http://crbug.com/180876, http://crbug.com/227228 + safe_to_force_gpu_switch_ = gpu_preference == PreferIntegratedGpu; return true; } diff --git a/chromium/ui/gl/gl_context_cgl.h b/chromium/ui/gl/gl_context_cgl.h index 88813b39cc1..2c019988a23 100644 --- a/chromium/ui/gl/gl_context_cgl.h +++ b/chromium/ui/gl/gl_context_cgl.h @@ -21,7 +21,6 @@ class GLContextCGL : public GLContextReal { // Implement GLContext. bool Initialize(GLSurface* compatible_surface, GpuPreference gpu_preference) override; - void Destroy() override; bool MakeCurrent(GLSurface* surface) override; void ReleaseCurrent(GLSurface* surface) override; bool IsCurrent(GLSurface* surface) override; @@ -35,6 +34,7 @@ class GLContextCGL : public GLContextReal { ~GLContextCGL() override; private: + void Destroy(); GpuPreference GetGpuPreference(); void* context_; diff --git a/chromium/ui/gl/gl_context_egl.h b/chromium/ui/gl/gl_context_egl.h index 39b26d0c319..0d46723538e 100644 --- a/chromium/ui/gl/gl_context_egl.h +++ b/chromium/ui/gl/gl_context_egl.h @@ -26,7 +26,6 @@ class GLContextEGL : public GLContextReal { // Implement GLContext. bool Initialize(GLSurface* compatible_surface, GpuPreference gpu_preference) override; - void Destroy() override; bool MakeCurrent(GLSurface* surface) override; void ReleaseCurrent(GLSurface* surface) override; bool IsCurrent(GLSurface* surface) override; @@ -41,6 +40,8 @@ class GLContextEGL : public GLContextReal { ~GLContextEGL() override; private: + void Destroy(); + EGLContext context_; EGLDisplay display_; EGLConfig config_; diff --git a/chromium/ui/gl/gl_context_glx.cc b/chromium/ui/gl/gl_context_glx.cc index 9c4bb5f41e1..a8711a8fd79 100644 --- a/chromium/ui/gl/gl_context_glx.cc +++ b/chromium/ui/gl/gl_context_glx.cc @@ -10,6 +10,7 @@ extern "C" { #include "base/logging.h" #include "base/memory/scoped_ptr.h" +#include "base/numerics/safe_conversions.h" #include "base/trace_event/trace_event.h" #include "ui/gl/GL/glextchromium.h" #include "ui/gl/gl_bindings.h" @@ -198,7 +199,8 @@ bool GLContextGLX::GetTotalGpuMemory(size_t* bytes) { if (HasExtension("GL_NVX_gpu_memory_info")) { GLint kbytes = 0; glGetIntegerv(GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX, &kbytes); - *bytes = 1024*kbytes; + *bytes = + base::saturated_cast<size_t>(1024u * static_cast<uint64_t>(kbytes)); return true; } return false; diff --git a/chromium/ui/gl/gl_context_glx.h b/chromium/ui/gl/gl_context_glx.h index 6973542c0aa..ac93a5d64b4 100644 --- a/chromium/ui/gl/gl_context_glx.h +++ b/chromium/ui/gl/gl_context_glx.h @@ -26,7 +26,6 @@ class GL_EXPORT GLContextGLX : public GLContextReal { // Implement GLContext. bool Initialize(GLSurface* compatible_surface, GpuPreference gpu_preference) override; - void Destroy() override; bool MakeCurrent(GLSurface* surface) override; void ReleaseCurrent(GLSurface* surface) override; bool IsCurrent(GLSurface* surface) override; @@ -40,6 +39,8 @@ class GL_EXPORT GLContextGLX : public GLContextReal { ~GLContextGLX() override; private: + void Destroy(); + void* context_; XDisplay* display_; diff --git a/chromium/ui/gl/gl_context_osmesa.h b/chromium/ui/gl/gl_context_osmesa.h index dc82ad331c6..597e0143683 100644 --- a/chromium/ui/gl/gl_context_osmesa.h +++ b/chromium/ui/gl/gl_context_osmesa.h @@ -24,7 +24,6 @@ class GLContextOSMesa : public GLContextReal { // Implement GLContext. bool Initialize(GLSurface* compatible_surface, GpuPreference gpu_preference) override; - void Destroy() override; bool MakeCurrent(GLSurface* surface) override; void ReleaseCurrent(GLSurface* surface) override; bool IsCurrent(GLSurface* surface) override; @@ -35,6 +34,8 @@ class GLContextOSMesa : public GLContextReal { ~GLContextOSMesa() override; private: + void Destroy(); + OSMesaContext context_; bool is_released_; diff --git a/chromium/ui/gl/gl_context_stub.cc b/chromium/ui/gl/gl_context_stub.cc index aed365923f7..2304585bae6 100644 --- a/chromium/ui/gl/gl_context_stub.cc +++ b/chromium/ui/gl/gl_context_stub.cc @@ -13,8 +13,6 @@ bool GLContextStub::Initialize( return true; } -void GLContextStub::Destroy() {} - bool GLContextStub::MakeCurrent(GLSurface* surface) { SetCurrent(surface); SetRealGLApi(); diff --git a/chromium/ui/gl/gl_context_stub.h b/chromium/ui/gl/gl_context_stub.h index b4eef932802..811f9082b86 100644 --- a/chromium/ui/gl/gl_context_stub.h +++ b/chromium/ui/gl/gl_context_stub.h @@ -17,7 +17,6 @@ class GL_EXPORT GLContextStub : public GLContextReal { // Implement GLContext. bool Initialize(GLSurface* compatible_surface, GpuPreference gpu_preference) override; - void Destroy() override; bool MakeCurrent(GLSurface* surface) override; void ReleaseCurrent(GLSurface* surface) override; bool IsCurrent(GLSurface* surface) override; diff --git a/chromium/ui/gl/gl_context_wgl.h b/chromium/ui/gl/gl_context_wgl.h index ff0aae0d96f..21b38403296 100644 --- a/chromium/ui/gl/gl_context_wgl.h +++ b/chromium/ui/gl/gl_context_wgl.h @@ -22,7 +22,6 @@ class GLContextWGL : public GLContextReal { // Implement GLContext. bool Initialize(GLSurface* compatible_surface, GpuPreference gpu_preference) override; - void Destroy() override; bool MakeCurrent(GLSurface* surface) override; void ReleaseCurrent(GLSurface* surface) override; bool IsCurrent(GLSurface* surface) override; @@ -32,6 +31,7 @@ class GLContextWGL : public GLContextReal { private: ~GLContextWGL() override; + void Destroy(); HGLRC context_; diff --git a/chromium/ui/gl/gl_enums_implementation_autogen.h b/chromium/ui/gl/gl_enums_implementation_autogen.h index 9bd294ec5d6..de370dac666 100644 --- a/chromium/ui/gl/gl_enums_implementation_autogen.h +++ b/chromium/ui/gl/gl_enums_implementation_autogen.h @@ -10,4436 +10,3388 @@ static const GLEnums::EnumToString enum_to_string_table[] = { { - 0x8D77, - "GL_RGB16UI", + 0x8D77, "GL_RGB16UI", }, { - 0x8D76, - "GL_RGBA16UI", + 0x8D76, "GL_RGBA16UI", }, { - 0x9260, - "GL_GCCSO_SHADER_BINARY_FJ", + 0x9260, "GL_GCCSO_SHADER_BINARY_FJ", }, { - 0x9009, - "GL_TEXTURE_CUBE_MAP_ARRAY_EXT", + 0x9009, "GL_TEXTURE_CUBE_MAP_ARRAY_EXT", }, { - 0x8D71, - "GL_RGB32UI", + 0x8D71, "GL_RGB32UI", }, { - 0x8D70, - "GL_RGBA32UI", + 0x8D70, "GL_RGBA32UI", }, { - 0x8C76, - "GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH", + 0x8C76, "GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH", }, { - 0x8825, - "GL_DRAW_BUFFER0_EXT", + 0x8825, "GL_DRAW_BUFFER0_EXT", }, { - 0x8D94, - "GL_RED_INTEGER", + 0x8D94, "GL_RED_INTEGER", }, { - 0x0BC1, - "GL_ALPHA_TEST_FUNC_QCOM", + 0x0BC1, "GL_ALPHA_TEST_FUNC_QCOM", }, { - 0x884C, - "GL_TEXTURE_COMPARE_MODE_EXT", + 0x884C, "GL_TEXTURE_COMPARE_MODE_EXT", }, { - 0x0BC2, - "GL_ALPHA_TEST_REF_QCOM", + 0x0BC2, "GL_ALPHA_TEST_REF_QCOM", }, { - 0x78EF, - "GL_PIXEL_UNPACK_TRANSFER_BUFFER_BINDING_CHROMIUM", + 0x78EF, "GL_PIXEL_UNPACK_TRANSFER_BUFFER_BINDING_CHROMIUM", }, { - 0x884D, - "GL_TEXTURE_COMPARE_FUNC_EXT", + 0x884D, "GL_TEXTURE_COMPARE_FUNC_EXT", }, { - 0x884E, - "GL_COMPARE_REF_TO_TEXTURE_EXT", + 0x884E, "GL_COMPARE_REF_TO_TEXTURE_EXT", }, { - 0x8E76, - "GL_TESS_GEN_MODE_EXT", + 0x8E76, "GL_TESS_GEN_MODE_EXT", }, { - 0x8E77, - "GL_TESS_GEN_SPACING_EXT", + 0x8E77, "GL_TESS_GEN_SPACING_EXT", }, { - 0x000D, - "GL_TRIANGLE_STRIP_ADJACENCY_EXT", + 0x000D, "GL_TRIANGLE_STRIP_ADJACENCY_EXT", }, { - 0x000E, - "GL_PATCHES_EXT", + 0x000E, "GL_PATCHES_EXT", }, { - 0x000B, - "GL_LINE_STRIP_ADJACENCY_EXT", + 0x000B, "GL_LINE_STRIP_ADJACENCY_EXT", }, { - 0x000C, - "GL_TRIANGLES_ADJACENCY_EXT", + 0x000C, "GL_TRIANGLES_ADJACENCY_EXT", }, { - 0x000A, - "GL_LINES_ADJACENCY_EXT", + 0x000A, "GL_LINES_ADJACENCY_EXT", }, { - 0x92CF, - "GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT", + 0x8DCA, "GL_INT_SAMPLER_2D", }, { - 0x93A1, - "GL_BGRA8_EXT", + 0x92CF, "GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT", }, { - 0x813C, - "GL_TEXTURE_BASE_LEVEL", + 0x93A1, "GL_BGRA8_EXT", }, { - 0, - "GL_FALSE", + 0x813C, "GL_TEXTURE_BASE_LEVEL", }, { - 0x00400000, - "GL_STENCIL_BUFFER_BIT6_QCOM", + 0, "GL_FALSE", }, { - 0x9500, - "GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL", + 0x00400000, "GL_STENCIL_BUFFER_BIT6_QCOM", }, { - 0x78F2, - "GL_SCANOUT_CHROMIUM", + 0x9500, "GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL", }, { - 0x9138, - "GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG", + 0x78F2, "GL_SCANOUT_CHROMIUM", }, { - 0x8FC4, - "GL_SHADER_BINARY_VIV", + 0x9138, "GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG", }, { - 0x9130, - "GL_SGX_PROGRAM_BINARY_IMG", + 0x8FC4, "GL_SHADER_BINARY_VIV", }, { - 0x9133, - "GL_RENDERBUFFER_SAMPLES_IMG", + 0x9130, "GL_SGX_PROGRAM_BINARY_IMG", }, { - 0x82E0, - "GL_BUFFER_KHR", + 0x9133, "GL_RENDERBUFFER_SAMPLES_IMG", }, { - 0x9135, - "GL_MAX_SAMPLES_IMG", + 0x82E0, "GL_BUFFER_KHR", }, { - 0x9134, - "GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG", + 0x9135, "GL_MAX_SAMPLES_IMG", }, { - 0x9137, - "GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG", + 0x9134, "GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG", }, { - 0x9136, - "GL_TEXTURE_SAMPLES_IMG", + 0x9137, "GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG", }, { - 0x8D88, - "GL_RGBA16I", + 0x9136, "GL_TEXTURE_SAMPLES_IMG", }, { - 0x8D89, - "GL_RGB16I", + 0x8D88, "GL_RGBA16I", }, { - 0x00000020, - "GL_COLOR_BUFFER_BIT5_QCOM", + 0x8D89, "GL_RGB16I", }, { - 0x0008, - "GL_MAP_INVALIDATE_BUFFER_BIT_EXT", + 0x00000020, "GL_COLOR_BUFFER_BIT5_QCOM", }, { - 0x0BC0, - "GL_ALPHA_TEST_QCOM", + 0x0008, "GL_MAP_INVALIDATE_BUFFER_BIT_EXT", }, { - 0x0006, - "GL_TRIANGLE_FAN", + 0x0BC0, "GL_ALPHA_TEST_QCOM", }, { - 0x0007, - "GL_QUADS_EXT", + 0x0006, "GL_TRIANGLE_FAN", }, { - 0x0004, - "GL_TRIANGLES", + 0x0007, "GL_QUADS_EXT", }, { - 0x0005, - "GL_TRIANGLE_STRIP", + 0x0004, "GL_TRIANGLES", }, { - 0x0002, - "GL_LINE_LOOP", + 0x0005, "GL_TRIANGLE_STRIP", }, { - 0x0003, - "GL_LINE_STRIP", + 0x0002, "GL_LINE_LOOP", }, { - 0x0000, - "GL_POINTS", + 0x0003, "GL_LINE_STRIP", }, { - 0x0001, - "GL_LINES", + 0x0000, "GL_POINTS", }, { - 0x8D7D, - "GL_RGB8UI", + 0x0001, "GL_LINES", }, { - 0x93F0, - "GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG", + 0x8D7D, "GL_RGB8UI", }, { - 0x93F1, - "GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV2_IMG", + 0x93F0, "GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG", }, { - 0x0D04, - "GL_PACK_SKIP_PIXELS", + 0x93F1, "GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV2_IMG", }, { - 0x900E, - "GL_INT_SAMPLER_CUBE_MAP_ARRAY_EXT", + 0x0D04, "GL_PACK_SKIP_PIXELS", }, { - 0x900D, - "GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_EXT", + 0x900E, "GL_INT_SAMPLER_CUBE_MAP_ARRAY_EXT", }, { - 0x8C7F, - "GL_TRANSFORM_FEEDBACK_BUFFER_MODE", + 0x900D, "GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_EXT", }, { - 0x900F, - "GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_EXT", + 0x8C7F, "GL_TRANSFORM_FEEDBACK_BUFFER_MODE", }, { - 0x900A, - "GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_EXT", + 0x900F, "GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_EXT", }, { - 0x900C, - "GL_SAMPLER_CUBE_MAP_ARRAY_EXT", + 0x900A, "GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_EXT", }, { - 0x88B8, - "GL_READ_ONLY", + 0x900C, "GL_SAMPLER_CUBE_MAP_ARRAY_EXT", }, { - 0x88B9, - "GL_WRITE_ONLY_OES", + 0x88B8, "GL_READ_ONLY", }, { - 0x8211, - "GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT", + 0x88B9, "GL_WRITE_ONLY_OES", }, { - 0x8210, - "GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT", + 0x8211, "GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT", }, { - 0x8741, - "GL_PROGRAM_BINARY_LENGTH_OES", + 0x8210, "GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT", }, { - 0x8740, - "GL_Z400_BINARY_AMD", + 0x8741, "GL_PROGRAM_BINARY_LENGTH_OES", }, { - 0x8215, - "GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE", + 0x8740, "GL_Z400_BINARY_AMD", }, { - 0x8C4D, - "GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV", + 0x8215, "GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE", }, { - 0x8192, - "GL_GENERATE_MIPMAP_HINT", + 0x8C4D, "GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV", }, { - 0x8E79, - "GL_TESS_GEN_POINT_MODE_EXT", + 0x8192, "GL_GENERATE_MIPMAP_HINT", }, { - 0x8A54, - "GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT", + 0x8E79, "GL_TESS_GEN_POINT_MODE_EXT", }, { - 0x8A55, - "GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT", + 0x8A54, "GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT", }, { - 0x8A56, - "GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT", + 0x8A55, "GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT", }, { - 0x8A57, - "GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT", + 0x8A56, "GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT", }, { - 0x8A51, - "GL_RGB_RAW_422_APPLE", + 0x8A57, "GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT", }, { - 0x87F9, - "GL_3DC_X_AMD", + 0x8A51, "GL_RGB_RAW_422_APPLE", }, { - 0x8A53, - "GL_SYNC_OBJECT_APPLE", + 0x87F9, "GL_3DC_X_AMD", }, { - 0x8DF8, - "GL_SHADER_BINARY_FORMATS", + 0x8A53, "GL_SYNC_OBJECT_APPLE", }, { - 0x8DF9, - "GL_NUM_SHADER_BINARY_FORMATS", + 0x8DF8, "GL_SHADER_BINARY_FORMATS", }, { - 0x826D, - "GL_DEBUG_GROUP_STACK_DEPTH_KHR", + 0x8DF9, "GL_NUM_SHADER_BINARY_FORMATS", }, { - 0x8E75, - "GL_TESS_CONTROL_OUTPUT_VERTICES_EXT", + 0x826D, "GL_DEBUG_GROUP_STACK_DEPTH_KHR", }, { - 0x826B, - "GL_DEBUG_SEVERITY_NOTIFICATION_KHR", + 0x8E75, "GL_TESS_CONTROL_OUTPUT_VERTICES_EXT", }, { - 0x826C, - "GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR", + 0x826B, "GL_DEBUG_SEVERITY_NOTIFICATION_KHR", }, { - 0x8B59, - "GL_BOOL_VEC4", + 0x826C, "GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR", }, { - 0x826A, - "GL_DEBUG_TYPE_POP_GROUP_KHR", + 0x8B59, "GL_BOOL_VEC4", }, { - 0x8B57, - "GL_BOOL_VEC2", + 0x826A, "GL_DEBUG_TYPE_POP_GROUP_KHR", }, { - 0x8DF1, - "GL_MEDIUM_FLOAT", + 0x8B57, "GL_BOOL_VEC2", }, { - 0x8B55, - "GL_INT_VEC4", + 0x8DF1, "GL_MEDIUM_FLOAT", }, { - 0x8B54, - "GL_INT_VEC3", + 0x8B55, "GL_INT_VEC4", }, { - 0x8DF4, - "GL_MEDIUM_INT", + 0x8B54, "GL_INT_VEC3", }, { - 0x8DF5, - "GL_HIGH_INT", + 0x8DF4, "GL_MEDIUM_INT", }, { - 0x8B51, - "GL_FLOAT_VEC3", + 0x8DF5, "GL_HIGH_INT", }, { - 0x8B50, - "GL_FLOAT_VEC2", + 0x8B51, "GL_FLOAT_VEC3", }, { - 0x806D, - "GL_UNPACK_SKIP_IMAGES", + 0x8B50, "GL_FLOAT_VEC2", }, { - 0x806E, - "GL_UNPACK_IMAGE_HEIGHT", + 0x806D, "GL_UNPACK_SKIP_IMAGES", }, { - 0x806F, - "GL_TEXTURE_3D_OES", + 0x806E, "GL_UNPACK_IMAGE_HEIGHT", }, { - 0x92E7, - "GL_IS_PER_PATCH_EXT", + 0x806F, "GL_TEXTURE_3D_OES", }, { - 0x92E0, - "GL_DEBUG_OUTPUT_KHR", + 0x92E7, "GL_IS_PER_PATCH_EXT", }, { - 0x806A, - "GL_TEXTURE_BINDING_3D_OES", + 0x92E0, "GL_DEBUG_OUTPUT_KHR", }, { - 0x8D8E, - "GL_RGBA8I", + 0x806A, "GL_TEXTURE_BINDING_3D_OES", }, { - 0x8CE3, - "GL_COLOR_ATTACHMENT3_EXT", + 0x8D8E, "GL_RGBA8I", }, { - 0x9274, - "GL_COMPRESSED_RGB8_ETC2", + 0x8CE3, "GL_COLOR_ATTACHMENT3_EXT", }, { - 0x1904, - "GL_GREEN_NV", + 0x9274, "GL_COMPRESSED_RGB8_ETC2", }, { - 0x928D, - "GL_DST_OUT_NV", + 0x1904, "GL_GREEN_NV", }, { - 0x8069, - "GL_TEXTURE_BINDING_2D", + 0x928D, "GL_DST_OUT_NV", }, { - 0x8A2E, - "GL_MAX_COMBINED_UNIFORM_BLOCKS", + 0x8069, "GL_TEXTURE_BINDING_2D", }, { - 0x8F96, - "GL_RGB8_SNORM", + 0x8A2E, "GL_MAX_COMBINED_UNIFORM_BLOCKS", }, { - 0x8F95, - "GL_RG8_SNORM", + 0x8F96, "GL_RGB8_SNORM", }, { - 0x8260, - "GL_UNDEFINED_VERTEX_EXT", + 0x8F95, "GL_RG8_SNORM", }, { - 0x8261, - "GL_NO_RESET_NOTIFICATION_KHR", + 0x8260, "GL_UNDEFINED_VERTEX_EXT", }, { - 0x0D02, - "GL_PACK_ROW_LENGTH", + 0x8261, "GL_NO_RESET_NOTIFICATION_KHR", }, { - 0x8DFA, - "GL_SHADER_COMPILER", + 0x0D02, "GL_PACK_ROW_LENGTH", }, { - 0x8DFB, - "GL_MAX_VERTEX_UNIFORM_VECTORS", + 0x8DFA, "GL_SHADER_COMPILER", }, { - 0x8DFC, - "GL_MAX_VARYING_VECTORS", + 0x8DFB, "GL_MAX_VERTEX_UNIFORM_VECTORS", }, { - 0x8B5C, - "GL_FLOAT_MAT4", + 0x8DFC, "GL_MAX_VARYING_VECTORS", }, { - 0x8B5B, - "GL_FLOAT_MAT3", + 0x8B5C, "GL_FLOAT_MAT4", }, { - 0x8268, - "GL_DEBUG_TYPE_MARKER_KHR", + 0x8B5B, "GL_FLOAT_MAT3", }, { - 0x8269, - "GL_DEBUG_TYPE_PUSH_GROUP_KHR", + 0x8268, "GL_DEBUG_TYPE_MARKER_KHR", }, { - 0x8A43, - "GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES", + 0x8269, "GL_DEBUG_TYPE_PUSH_GROUP_KHR", }, { - 0x1905, - "GL_BLUE_NV", + 0x8A43, "GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES", }, { - 0x87FF, - "GL_PROGRAM_BINARY_FORMATS_OES", + 0x1905, "GL_BLUE_NV", }, { - 0x87FE, - "GL_NUM_PROGRAM_BINARY_FORMATS_OES", + 0x87FF, "GL_PROGRAM_BINARY_FORMATS_OES", }, { - 0x8A41, - "GL_UNIFORM_BLOCK_NAME_LENGTH", + 0x87FE, "GL_NUM_PROGRAM_BINARY_FORMATS_OES", }, { - 0x2600, - "GL_NEAREST", + 0x8A2D, "GL_MAX_FRAGMENT_UNIFORM_BLOCKS", }, { - 0x2601, - "GL_LINEAR", + 0x8A41, "GL_UNIFORM_BLOCK_NAME_LENGTH", }, { - 0x8C03, - "GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG", + 0x2600, "GL_NEAREST", }, { - 0x821B, - "GL_MAJOR_VERSION", + 0x2601, "GL_LINEAR", }, { - 0x821A, - "GL_DEPTH_STENCIL_ATTACHMENT", + 0x8C03, "GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG", }, { - 0x8A40, - "GL_UNIFORM_BLOCK_DATA_SIZE", + 0x821B, "GL_MAJOR_VERSION", }, { - 0x9242, - "GL_UNPACK_UNPREMULTIPLY_ALPHA_CHROMIUM", + 0x821A, "GL_DEPTH_STENCIL_ATTACHMENT", }, { - 0x821D, - "GL_NUM_EXTENSIONS", + 0x8A40, "GL_UNIFORM_BLOCK_DATA_SIZE", }, { - 0x88BB, - "GL_BUFFER_ACCESS_OES", + 0x821D, "GL_NUM_EXTENSIONS", }, { - 0x88BC, - "GL_BUFFER_MAPPED_OES", + 0x88BB, "GL_BUFFER_ACCESS_OES", }, { - 0x88BD, - "GL_BUFFER_MAP_POINTER_OES", + 0x88BC, "GL_BUFFER_MAPPED_OES", }, { - 0x88BF, - "GL_TIME_ELAPSED_EXT", + 0x88BD, "GL_BUFFER_MAP_POINTER_OES", }, { - 0x8A46, - "GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER", + 0x88BF, "GL_TIME_ELAPSED_EXT", }, { - 0x6003, - "GL_GET_ERROR_QUERY_CHROMIUM", + 0x8A46, "GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER", }, { - 0x8F94, - "GL_R8_SNORM", + 0x6003, "GL_GET_ERROR_QUERY_CHROMIUM", }, { - 0x0C10, - "GL_SCISSOR_BOX", + 0x8F94, "GL_R8_SNORM", }, { - 0x0C11, - "GL_SCISSOR_TEST", + 0x0C10, "GL_SCISSOR_BOX", }, { - 0x1700, - "GL_PATH_MODELVIEW_CHROMIUM", + 0x0C11, "GL_SCISSOR_TEST", }, { - 0x80000000, - "GL_MULTISAMPLE_BUFFER_BIT7_QCOM", + 0x1700, "GL_PATH_MODELVIEW_CHROMIUM", }, { - 0x94F8, - "GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL", + 0x80000000, "GL_MULTISAMPLE_BUFFER_BIT7_QCOM", }, { - 0x8A48, - "GL_TEXTURE_SRGB_DECODE_EXT", + 0x94F8, "GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL", }, { - 0x300E, - "GL_CONTEXT_LOST", + 0x90a4, "GL_ROUND_CHROMIUM", }, { - 0x02000000, - "GL_MULTISAMPLE_BUFFER_BIT1_QCOM", + 0x8A48, "GL_TEXTURE_SRGB_DECODE_EXT", }, { - 0x8C2F, - "GL_ANY_SAMPLES_PASSED_EXT", + 0x300E, "GL_CONTEXT_LOST", }, { - 0x8BD2, - "GL_TEXTURE_WIDTH_QCOM", + 0x90a3, "GL_SQUARE_CHROMIUM", }, { - 0x8C2D, - "GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT", + 0x02000000, "GL_MULTISAMPLE_BUFFER_BIT1_QCOM", }, { - 0x8C2C, - "GL_TEXTURE_BINDING_BUFFER_EXT", + 0x8C2F, "GL_ANY_SAMPLES_PASSED_EXT", }, { - 0x8C2B, - "GL_MAX_TEXTURE_BUFFER_SIZE_EXT", + 0x8BD2, "GL_TEXTURE_WIDTH_QCOM", }, { - 0x8C2A, - "GL_TEXTURE_BUFFER_EXT", + 0x8C2D, "GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT", }, { - 0x8BD7, - "GL_TEXTURE_TYPE_QCOM", + 0x8C2C, "GL_TEXTURE_BINDING_BUFFER_EXT", }, { - 0x8B8D, - "GL_CURRENT_PROGRAM", + 0x8C2B, "GL_MAX_TEXTURE_BUFFER_SIZE_EXT", }, { - 0x8BD9, - "GL_TEXTURE_NUM_LEVELS_QCOM", + 0x8C2A, "GL_TEXTURE_BUFFER_EXT", }, { - 0x00200000, - "GL_STENCIL_BUFFER_BIT5_QCOM", + 0x8BD7, "GL_TEXTURE_TYPE_QCOM", }, { - 0x8D9F, - "GL_INT_2_10_10_10_REV", + 0x8B8D, "GL_CURRENT_PROGRAM", }, { - 0x8B8A, - "GL_ACTIVE_ATTRIBUTE_MAX_LENGTH", + 0x8BD9, "GL_TEXTURE_NUM_LEVELS_QCOM", }, { - 0x8B8B, - "GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES", + 0x00200000, "GL_STENCIL_BUFFER_BIT5_QCOM", }, { - 0x8B8C, - "GL_SHADING_LANGUAGE_VERSION", + 0x8D9F, "GL_INT_2_10_10_10_REV", }, { - 0x8BDA, - "GL_TEXTURE_TARGET_QCOM", + 0x8B8A, "GL_ACTIVE_ATTRIBUTE_MAX_LENGTH", }, { - 0x8BDB, - "GL_TEXTURE_OBJECT_VALID_QCOM", + 0x8B8B, "GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES", }, { - 0x8BDC, - "GL_STATE_RESTORE", + 0x8B8C, "GL_SHADING_LANGUAGE_VERSION", }, { - 0x8B88, - "GL_SHADER_SOURCE_LENGTH", + 0x8BDA, "GL_TEXTURE_TARGET_QCOM", }, { - 0x8B89, - "GL_ACTIVE_ATTRIBUTES", + 0x8BDB, "GL_TEXTURE_OBJECT_VALID_QCOM", }, { - 0x93C9, - "GL_COMPRESSED_RGBA_ASTC_6x6x6_OES", + 0x8BDC, "GL_STATE_RESTORE", }, { - 0x93C8, - "GL_COMPRESSED_RGBA_ASTC_6x6x5_OES", + 0x8B88, "GL_SHADER_SOURCE_LENGTH", }, { - 0x8B84, - "GL_INFO_LOG_LENGTH", + 0x8B89, "GL_ACTIVE_ATTRIBUTES", }, { - 0x8B85, - "GL_ATTACHED_SHADERS", + 0x93C9, "GL_COMPRESSED_RGBA_ASTC_6x6x6_OES", }, { - 0x8B86, - "GL_ACTIVE_UNIFORMS", + 0x93C8, "GL_COMPRESSED_RGBA_ASTC_6x6x5_OES", }, { - 0x8B87, - "GL_ACTIVE_UNIFORM_MAX_LENGTH", + 0x8B84, "GL_INFO_LOG_LENGTH", }, { - 0x8B80, - "GL_DELETE_STATUS", + 0x8B85, "GL_ATTACHED_SHADERS", }, { - 0x8B81, - "GL_COMPILE_STATUS", + 0x8B86, "GL_ACTIVE_UNIFORMS", }, { - 0x8B82, - "GL_LINK_STATUS", + 0x8B87, "GL_ACTIVE_UNIFORM_MAX_LENGTH", }, { - 0x8B83, - "GL_VALIDATE_STATUS", + 0x8B80, "GL_DELETE_STATUS", }, { - 0x78FA, - "GL_RGB_YUV_420_CHROMIUM", + 0x8B81, "GL_COMPILE_STATUS", }, { - 0x8D48, - "GL_STENCIL_INDEX8", + 0x8B82, "GL_LINK_STATUS", }, { - 0x8D46, - "GL_STENCIL_INDEX1_OES", + 0x8B83, "GL_VALIDATE_STATUS", }, { - 0x8D47, - "GL_STENCIL_INDEX4_OES", + 0x78FA, "GL_RGB_YUV_420_CHROMIUM", }, { - 0x8D44, - "GL_RENDERBUFFER_INTERNAL_FORMAT", + 0x8D48, "GL_STENCIL_INDEX8", }, { - 0x00000100, - "GL_DEPTH_BUFFER_BIT", + 0x8D46, "GL_STENCIL_INDEX1_OES", }, { - 0x8D42, - "GL_RENDERBUFFER_WIDTH", + 0x8D47, "GL_STENCIL_INDEX4_OES", }, { - 0x8D43, - "GL_RENDERBUFFER_HEIGHT", + 0x8D44, "GL_RENDERBUFFER_INTERNAL_FORMAT", }, { - 0x8D40, - "GL_FRAMEBUFFER", + 0x00000100, "GL_DEPTH_BUFFER_BIT", }, { - 0x8D41, - "GL_RENDERBUFFER", + 0x8D42, "GL_RENDERBUFFER_WIDTH", }, { - 0x8A3A, - "GL_UNIFORM_BLOCK_INDEX", + 0x8D43, "GL_RENDERBUFFER_HEIGHT", }, { - 0x0BD0, - "GL_DITHER", + 0x8D40, "GL_FRAMEBUFFER", }, { - 0x93D3, - "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR", + 0x8D41, "GL_RENDERBUFFER", }, { - 0x9144, - "GL_MAX_DEBUG_LOGGED_MESSAGES_KHR", + 0x90B7, "GL_PATH_STENCIL_FUNC_CHROMIUM", }, { - 0x1801, - "GL_DEPTH_EXT", + 0x8A3A, "GL_UNIFORM_BLOCK_INDEX", }, { - 0x1800, - "GL_COLOR_EXT", + 0x0BD0, "GL_DITHER", }, { - 0x1802, - "GL_STENCIL_EXT", + 0x90B9, "GL_PATH_STENCIL_VALUE_MASK_CHROMIUM", }, { - 0x9288, - "GL_SRC_OVER_NV", + 0x90B8, "GL_PATH_STENCIL_REF_CHROMIUM", }, { - 0x9120, - "GL_BUFFER_MAP_LENGTH", + 0x93D3, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR", }, { - 0x0B21, - "GL_LINE_WIDTH", + 0x1D00, "GL_FLAT_CHROMIUM", }, { - 0x9308, - "GL_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT", + 0x9144, "GL_MAX_DEBUG_LOGGED_MESSAGES_KHR", }, { - 0x81A5, - "GL_DEPTH_COMPONENT16", + 0x1801, "GL_DEPTH_EXT", }, { - 0x81A6, - "GL_DEPTH_COMPONENT24_OES", + 0x1800, "GL_COLOR_EXT", }, { - 0x81A7, - "GL_DEPTH_COMPONENT32_OES", + 0x1802, "GL_STENCIL_EXT", }, { - 0x88FD, - "GL_VERTEX_ATTRIB_ARRAY_INTEGER", + 0x9288, "GL_SRC_OVER_NV", }, { - 0x88FE, - "GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE", + 0x9120, "GL_BUFFER_MAP_LENGTH", }, { - 0x88FF, - "GL_MAX_ARRAY_TEXTURE_LAYERS", + 0x0B21, "GL_LINE_WIDTH", }, { - 0x8B6A, - "GL_FLOAT_MAT4x3_NV", + 0x9308, "GL_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT", }, { - 0x93D0, - "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR", + 0x81A5, "GL_DEPTH_COMPONENT16", }, { - 0x9143, - "GL_MAX_DEBUG_MESSAGE_LENGTH_KHR", + 0x81A6, "GL_DEPTH_COMPONENT24_OES", }, { - 0x8DFD, - "GL_MAX_FRAGMENT_UNIFORM_VECTORS", + 0x81A7, "GL_DEPTH_COMPONENT32_OES", }, { - 0x9145, - "GL_DEBUG_LOGGED_MESSAGES_KHR", + 0x88FD, "GL_VERTEX_ATTRIB_ARRAY_INTEGER", }, { - 0x9146, - "GL_DEBUG_SEVERITY_HIGH_KHR", + 0x88FE, "GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE", }, { - 0x9147, - "GL_DEBUG_SEVERITY_MEDIUM_KHR", + 0x88FF, "GL_MAX_ARRAY_TEXTURE_LAYERS", }, { - 0x9148, - "GL_DEBUG_SEVERITY_LOW_KHR", + 0x8B6A, "GL_FLOAT_MAT4x3_NV", }, { - 0x8F63, - "GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_FAST_SIZE_EXT", + 0x93D0, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR", }, { - 0x8F60, - "GL_MALI_SHADER_BINARY_ARM", + 0x9143, "GL_MAX_DEBUG_MESSAGE_LENGTH_KHR", }, { - 0x8F61, - "GL_MALI_PROGRAM_BINARY_ARM", + 0x8DFD, "GL_MAX_FRAGMENT_UNIFORM_VECTORS", }, { - 0x8F66, - "GL_FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM", + 0x9145, "GL_DEBUG_LOGGED_MESSAGES_KHR", }, { - 0x8F67, - "GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_SIZE_EXT", + 0x9146, "GL_DEBUG_SEVERITY_HIGH_KHR", }, { - 0x8F64, - "GL_SHADER_PIXEL_LOCAL_STORAGE_EXT", + 0x9147, "GL_DEBUG_SEVERITY_MEDIUM_KHR", }, { - 0x8F65, - "GL_FETCH_PER_SAMPLE_ARM", + 0x9148, "GL_DEBUG_SEVERITY_LOW_KHR", }, { - 0x92D3, - "GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_EXT", + 0x8F63, "GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_FAST_SIZE_EXT", }, { - 0x87EE, - "GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD", + 0x8F60, "GL_MALI_SHADER_BINARY_ARM", }, { - 0x822B, - "GL_RG8_EXT", + 0x8F61, "GL_MALI_PROGRAM_BINARY_ARM", }, { - 0x822F, - "GL_RG16F_EXT", + 0x8F66, "GL_FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM", }, { - 0x822D, - "GL_R16F_EXT", + 0x8F67, "GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_SIZE_EXT", }, { - 0x822E, - "GL_R32F_EXT", + 0x8F64, "GL_SHADER_PIXEL_LOCAL_STORAGE_EXT", }, { - 1, - "GL_ES_VERSION_2_0", + 0x8F65, "GL_FETCH_PER_SAMPLE_ARM", }, { - 0x84F9, - "GL_DEPTH_STENCIL_OES", + 0x92D3, "GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_EXT", }, { - 0x82DB, - "GL_TEXTURE_VIEW_MIN_LEVEL_EXT", + 0x87EE, "GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD", }, { - 0x8368, - "GL_UNSIGNED_INT_2_10_10_10_REV_EXT", + 0x822B, "GL_RG8_EXT", }, { - 0x8819, - "GL_LUMINANCE_ALPHA32F_EXT", + 0x822F, "GL_RG16F_EXT", }, { - 0x8818, - "GL_LUMINANCE32F_EXT", + 0x822D, "GL_R16F_EXT", }, { - 0x82DF, - "GL_TEXTURE_IMMUTABLE_LEVELS", + 0x822E, "GL_R32F_EXT", }, { - 0x8363, - "GL_UNSIGNED_SHORT_5_6_5", + 1, "GL_ES_VERSION_2_0", }, { - 0x9051, - "GL_IMAGE_BUFFER_EXT", + 0x84F9, "GL_DEPTH_STENCIL_OES", }, { - 0x84F2, - "GL_ALL_COMPLETED_NV", + 0x82DB, "GL_TEXTURE_VIEW_MIN_LEVEL_EXT", }, { - 0x8E5A, - "GL_MAX_GEOMETRY_SHADER_INVOCATIONS_EXT", + 0x8368, "GL_UNSIGNED_INT_2_10_10_10_REV_EXT", }, { - 0x84F4, - "GL_FENCE_CONDITION_NV", + 0x8819, "GL_LUMINANCE_ALPHA32F_EXT", }, { - 0x8366, - "GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT", + 0x8818, "GL_LUMINANCE32F_EXT", }, { - 0x8365, - "GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT", + 0x82DF, "GL_TEXTURE_IMMUTABLE_LEVELS", }, { - 0x84F7, - "GL_COMMANDS_COMPLETED_CHROMIUM", + 0x8363, "GL_UNSIGNED_SHORT_5_6_5", }, { - 0x8F9C, - "GL_SIGNED_NORMALIZED", + 0x9051, "GL_IMAGE_BUFFER_EXT", }, { - 0x92D5, - "GL_MAX_GEOMETRY_ATOMIC_COUNTERS_EXT", + 0x84F2, "GL_ALL_COMPLETED_NV", }, { - 0x881E, - "GL_LUMINANCE16F_EXT", + 0x8E5A, "GL_MAX_GEOMETRY_SHADER_INVOCATIONS_EXT", }, { - 0x84FA, - "GL_UNSIGNED_INT_24_8_OES", + 0x84F4, "GL_FENCE_CONDITION_NV", }, { - 0x92D4, - "GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_EXT", + 0x8366, "GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT", }, { - 0x881A, - "GL_RGBA16F_EXT", + 0x8365, "GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT", }, { - 0x84FE, - "GL_TEXTURE_MAX_ANISOTROPY_EXT", + 0x84F7, "GL_COMMANDS_COMPLETED_CHROMIUM", }, { - 0x0901, - "GL_CCW", + 0x8F9C, "GL_SIGNED_NORMALIZED", }, { - 0x0900, - "GL_CW", + 0x92D5, "GL_MAX_GEOMETRY_ATOMIC_COUNTERS_EXT", }, { - 0x9317, - "GL_MAX_FRAMEBUFFER_LAYERS_EXT", + 0x881E, "GL_LUMINANCE16F_EXT", }, { - 0x8229, - "GL_R8_EXT", + 0x84FA, "GL_UNSIGNED_INT_24_8_OES", }, { - 0x8230, - "GL_RG32F_EXT", + 0x92D4, "GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_EXT", }, { - 0x9312, - "GL_FRAMEBUFFER_DEFAULT_LAYERS_EXT", + 0x881A, "GL_RGBA16F_EXT", }, { - 0x9283, - "GL_DISJOINT_NV", + 0x84FE, "GL_TEXTURE_MAX_ANISOTROPY_EXT", }, { - 0x8221, - "GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED", + 0x0901, "GL_CCW", }, { - 0x8227, - "GL_RG_EXT", + 0x0900, "GL_CW", }, { - 0x8B66, - "GL_FLOAT_MAT2x4_NV", + 0x9317, "GL_MAX_FRAMEBUFFER_LAYERS_EXT", }, { - 0x8B67, - "GL_FLOAT_MAT3x2_NV", + 0x8229, "GL_R8_EXT", }, { - 0x8E1E, - "GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_EXT", + 0x8230, "GL_RG32F_EXT", }, { - 0x8B62, - "GL_SAMPLER_2D_SHADOW_EXT", + 0x9312, "GL_FRAMEBUFFER_DEFAULT_LAYERS_EXT", }, { - 0x8B63, - "GL_SAMPLER_2D_RECT_ARB", + 0x9283, "GL_DISJOINT_NV", }, { - 0x8B60, - "GL_SAMPLER_CUBE", + 0x8221, "GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED", }, { - 0x00001000, - "GL_DEPTH_BUFFER_BIT4_QCOM", + 0x8227, "GL_RG_EXT", }, { - 0x8B68, - "GL_FLOAT_MAT3x4_NV", + 0x8B66, "GL_FLOAT_MAT2x4_NV", }, { - 0x83F0, - "GL_COMPRESSED_RGB_S3TC_DXT1_EXT", + 0x8B67, "GL_FLOAT_MAT3x2_NV", }, { - 0x8D6A, - "GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT", + 0x8E1E, "GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_EXT", }, { - 0x00000080, - "GL_COLOR_BUFFER_BIT7_QCOM", + 0x8B62, "GL_SAMPLER_2D_SHADOW_EXT", }, { - 0x88F0, - "GL_DEPTH24_STENCIL8_OES", + 0x8B63, "GL_SAMPLER_2D_RECT_ARB", }, { - 0x8E1F, - "GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT", + 0x8B60, "GL_SAMPLER_CUBE", }, { - 0x80A0, - "GL_SAMPLE_COVERAGE", + 0x00001000, "GL_DEPTH_BUFFER_BIT4_QCOM", }, { - 0x928F, - "GL_DST_ATOP_NV", + 0x8B68, "GL_FLOAT_MAT3x4_NV", }, { - 0x8213, - "GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE", + 0x83F0, "GL_COMPRESSED_RGB_S3TC_DXT1_EXT", }, { - 0x80A9, - "GL_SAMPLES", + 0x8D6A, "GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT", }, { - 0x80A8, - "GL_SAMPLE_BUFFERS", + 0x00000080, "GL_COLOR_BUFFER_BIT7_QCOM", }, { - 0x0D55, - "GL_ALPHA_BITS", + 0x88F0, "GL_DEPTH24_STENCIL8_OES", }, { - 0x0D54, - "GL_BLUE_BITS", + 0x8E1F, "GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT", }, { - 0x0D57, - "GL_STENCIL_BITS", + 0x80A0, "GL_SAMPLE_COVERAGE", }, { - 0x0D56, - "GL_DEPTH_BITS", + 0x0C, "GL_CUBIC_CURVE_TO_CHROMIUM", }, { - 0x8CD5, - "GL_FRAMEBUFFER_COMPLETE", + 0x928F, "GL_DST_ATOP_NV", }, { - 0x0D50, - "GL_SUBPIXEL_BITS", + 0x8213, "GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE", }, { - 0x0D53, - "GL_GREEN_BITS", + 0x80A9, "GL_SAMPLES", }, { - 0x0D52, - "GL_RED_BITS", + 0x80A8, "GL_SAMPLE_BUFFERS", }, { - 0x8037, - "GL_POLYGON_OFFSET_FILL", + 0x0D55, "GL_ALPHA_BITS", }, { - 0x928C, - "GL_SRC_OUT_NV", + 0x0D54, "GL_BLUE_BITS", }, { - 0x8034, - "GL_UNSIGNED_SHORT_5_5_5_1", + 0x0D57, "GL_STENCIL_BITS", }, { - 0x8033, - "GL_UNSIGNED_SHORT_4_4_4_4", + 0x0D56, "GL_DEPTH_BITS", }, { - 0x928B, - "GL_DST_IN_NV", + 0x8CD5, "GL_FRAMEBUFFER_COMPLETE", }, { - 0x0305, - "GL_ONE_MINUS_DST_ALPHA", + 0x0D50, "GL_SUBPIXEL_BITS", }, { - 0x0304, - "GL_DST_ALPHA", + 0x0D53, "GL_GREEN_BITS", }, { - 0x0307, - "GL_ONE_MINUS_DST_COLOR", + 0x0D52, "GL_RED_BITS", }, { - 0x0306, - "GL_DST_COLOR", + 0x8037, "GL_POLYGON_OFFSET_FILL", }, { - 0x0301, - "GL_ONE_MINUS_SRC_COLOR", + 0x928C, "GL_SRC_OUT_NV", }, { - 0x0300, - "GL_SRC_COLOR", + 0x8034, "GL_UNSIGNED_SHORT_5_5_5_1", }, { - 0x0303, - "GL_ONE_MINUS_SRC_ALPHA", + 0x8033, "GL_UNSIGNED_SHORT_4_4_4_4", }, { - 0x0302, - "GL_SRC_ALPHA", + 0x928B, "GL_DST_IN_NV", }, { - 0x8212, - "GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE", + 0x0305, "GL_ONE_MINUS_DST_ALPHA", }, { - 0x0308, - "GL_SRC_ALPHA_SATURATE", + 0x0304, "GL_DST_ALPHA", }, { - 0x2A00, - "GL_POLYGON_OFFSET_UNITS", + 0x0307, "GL_ONE_MINUS_DST_COLOR", }, { - 0xFFFFFFFF, - "GL_ALL_SHADER_BITS_EXT", + 0x0306, "GL_DST_COLOR", }, { - 0x82DC, - "GL_TEXTURE_VIEW_NUM_LEVELS_EXT", + 0x0301, "GL_ONE_MINUS_SRC_COLOR", }, { - 0x8C29, - "GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT", + 0x0300, "GL_SRC_COLOR", }, { - 0x82DD, - "GL_TEXTURE_VIEW_MIN_LAYER_EXT", + 0x0303, "GL_ONE_MINUS_SRC_ALPHA", }, { - 0x00800000, - "GL_STENCIL_BUFFER_BIT7_QCOM", + 0x0302, "GL_SRC_ALPHA", }, { - 0x82DE, - "GL_TEXTURE_VIEW_NUM_LAYERS_EXT", + 0x8212, "GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE", }, { - 0x00020000, - "GL_STENCIL_BUFFER_BIT1_QCOM", + 0x8DCC, "GL_INT_SAMPLER_CUBE", }, { - 0x8D00, - "GL_DEPTH_ATTACHMENT", + 0x0308, "GL_SRC_ALPHA_SATURATE", }, { - 0x8FA0, - "GL_PERFMON_GLOBAL_MODE_QCOM", + 0x2A00, "GL_POLYGON_OFFSET_UNITS", }, { - 0x8815, - "GL_RGB32F_EXT", + 0xFFFFFFFF, "GL_ALL_SHADER_BITS_EXT", }, { - 0x8A35, - "GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH", + 0x82DC, "GL_TEXTURE_VIEW_NUM_LEVELS_EXT", }, { - 0x8814, - "GL_RGBA32F_EXT", + 0x8C29, "GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT", }, { - 0x9277, - "GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2", + 0x82DD, "GL_TEXTURE_VIEW_MIN_LAYER_EXT", }, { - 0x6004, - "GL_COMMANDS_ISSUED_CHROMIUM", + 0x00800000, "GL_STENCIL_BUFFER_BIT7_QCOM", }, { - 0x813D, - "GL_TEXTURE_MAX_LEVEL_APPLE", + 0x82DE, "GL_TEXTURE_VIEW_NUM_LAYERS_EXT", }, { - 0x8816, - "GL_ALPHA32F_EXT", + 0x00020000, "GL_STENCIL_BUFFER_BIT1_QCOM", }, { - 0x813B, - "GL_TEXTURE_MAX_LOD", + 0x8D00, "GL_DEPTH_ATTACHMENT", }, { - 0x8CDD, - "GL_FRAMEBUFFER_UNSUPPORTED", + 0x8FA0, "GL_PERFMON_GLOBAL_MODE_QCOM", }, { - 0x8CDF, - "GL_MAX_COLOR_ATTACHMENTS_EXT", + 0x8815, "GL_RGB32F_EXT", }, { - 0x90F3, - "GL_CONTEXT_ROBUST_ACCESS_KHR", + 0x8A35, "GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH", }, { - 0x90F2, - "GL_MAX_MULTIVIEW_BUFFERS_EXT", + 0x8814, "GL_RGBA32F_EXT", }, { - 0x90F1, - "GL_MULTIVIEW_EXT", + 0x9277, "GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2", }, { - 0x90F0, - "GL_COLOR_ATTACHMENT_EXT", + 0x6004, "GL_COMMANDS_ISSUED_CHROMIUM", }, { - 0x803C, - "GL_ALPHA8_OES", + 0x813D, "GL_TEXTURE_MAX_LEVEL_APPLE", }, { - 0x8904, - "GL_MIN_PROGRAM_TEXEL_OFFSET", + 0x8816, "GL_ALPHA32F_EXT", }, { - 0x84F5, - "GL_TEXTURE_RECTANGLE_ARB", + 0x813B, "GL_TEXTURE_MAX_LOD", }, { - 0x882A, - "GL_DRAW_BUFFER5_EXT", + 0x8CDD, "GL_FRAMEBUFFER_UNSUPPORTED", }, { - 0x8E7F, - "GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_EXT", + 0x8CDF, "GL_MAX_COLOR_ATTACHMENTS_EXT", }, { - 0x80AA, - "GL_SAMPLE_COVERAGE_VALUE", + 0x90F3, "GL_CONTEXT_ROBUST_ACCESS_KHR", }, { - 0x84F6, - "GL_TEXTURE_BINDING_RECTANGLE_ARB", + 0x90F2, "GL_MAX_MULTIVIEW_BUFFERS_EXT", }, { - 0x80AB, - "GL_SAMPLE_COVERAGE_INVERT", + 0x90F1, "GL_MULTIVIEW_EXT", }, { - 0x8E7D, - "GL_MAX_PATCH_VERTICES_EXT", + 0x90F0, "GL_COLOR_ATTACHMENT_EXT", }, { - 0x6005, - "GL_ASYNC_PIXEL_UNPACK_COMPLETED_CHROMIUM", + 0x803C, "GL_ALPHA8_OES", }, { - 0x9105, - "GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY_OES", + 0x8904, "GL_MIN_PROGRAM_TEXEL_OFFSET", }, { - 0x8E7E, - "GL_MAX_TESS_GEN_LEVEL_EXT", + 0x84F5, "GL_TEXTURE_RECTANGLE_ARB", }, { - 0x9102, - "GL_TEXTURE_2D_MULTISAMPLE_ARRAY_OES", + 0x882A, "GL_DRAW_BUFFER5_EXT", }, { - 0x8C40, - "GL_SRGB_EXT", + 0x8E7F, "GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_EXT", }, { - 0x8236, - "GL_R32UI", + 0x80AA, "GL_SAMPLE_COVERAGE_VALUE", }, { - 0x8E7B, - "GL_FRACTIONAL_ODD_EXT", + 0x84F6, "GL_TEXTURE_BINDING_RECTANGLE_ARB", }, { - 0x00000040, - "GL_COLOR_BUFFER_BIT6_QCOM", + 0x80AB, "GL_SAMPLE_COVERAGE_INVERT", }, { - 0x882B, - "GL_DRAW_BUFFER6_EXT", + 0x8A3D, "GL_UNIFORM_MATRIX_STRIDE", }, { - 0x8E7C, - "GL_FRACTIONAL_EVEN_EXT", + 0x8E7D, "GL_MAX_PATCH_VERTICES_EXT", }, { - 0x8C8E, - "GL_TRANSFORM_FEEDBACK_BUFFER", + 0x9105, "GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY_OES", }, { - 0x8C8D, - "GL_SEPARATE_ATTRIBS", + 0x8E7E, "GL_MAX_TESS_GEN_LEVEL_EXT", }, { - 0x8C8F, - "GL_TRANSFORM_FEEDBACK_BUFFER_BINDING", + 0x9102, "GL_TEXTURE_2D_MULTISAMPLE_ARRAY_OES", }, { - 0x8C8A, - "GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS", + 0x8C40, "GL_SRGB_EXT", }, { - 0x8C8C, - "GL_INTERLEAVED_ATTRIBS", + 0x8236, "GL_R32UI", }, { - 0x8C8B, - "GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS", + 0x8E7B, "GL_FRACTIONAL_ODD_EXT", }, { - 0x8C17, - "GL_UNSIGNED_NORMALIZED_EXT", + 0x00000040, "GL_COLOR_BUFFER_BIT6_QCOM", }, { - 0x8A3E, - "GL_UNIFORM_IS_ROW_MAJOR", + 0x882B, "GL_DRAW_BUFFER6_EXT", }, { - 0x8E7A, - "GL_ISOLINES_EXT", + 0x8E7C, "GL_FRACTIONAL_EVEN_EXT", }, { - 0x6006, - "GL_ASYNC_PIXEL_PACK_COMPLETED_CHROMIUM", + 0x8C8E, "GL_TRANSFORM_FEEDBACK_BUFFER", }, { - 0x8D99, - "GL_RGBA_INTEGER", + 0x8C8D, "GL_SEPARATE_ATTRIBS", }, { - 0x8D98, - "GL_RGB_INTEGER", + 0x8C8F, "GL_TRANSFORM_FEEDBACK_BUFFER_BINDING", }, { - 0x8A4A, - "GL_SKIP_DECODE_EXT", + 0x8C8A, "GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS", }, { - 0x8A4F, - "GL_PROGRAM_PIPELINE_OBJECT_EXT", + 0x8C8C, "GL_INTERLEAVED_ATTRIBS", }, { - 0x882C, - "GL_DRAW_BUFFER7_EXT", + 0x8C8B, "GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS", }, { - 0x0010, - "GL_MAP_FLUSH_EXPLICIT_BIT_EXT", + 0x8C17, "GL_UNSIGNED_NORMALIZED_EXT", }, { - 0x8918, - "GL_GEOMETRY_LINKED_OUTPUT_TYPE_EXT", + 0x8A3E, "GL_UNIFORM_IS_ROW_MAJOR", }, { - 0x8919, - "GL_SAMPLER_BINDING", + 0x8E7A, "GL_ISOLINES_EXT", }, { - 0x92CD, - "GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_EXT", + 0x6006, "GL_ASYNC_PIXEL_PACK_COMPLETED_CHROMIUM", }, { - 0x92CE, - "GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_EXT", + 0x8D99, "GL_RGBA_INTEGER", }, { - 0x8C85, - "GL_TRANSFORM_FEEDBACK_BUFFER_SIZE", + 0x8D98, "GL_RGB_INTEGER", }, { - 0x8D7C, - "GL_RGBA8UI", + 0x8A4A, "GL_SKIP_DECODE_EXT", }, { - 0x6007, - "GL_LATENCY_QUERY_CHROMIUM", + 0x8A4F, "GL_PROGRAM_PIPELINE_OBJECT_EXT", }, { - 0x8D83, - "GL_RGB32I", + 0x882C, "GL_DRAW_BUFFER7_EXT", }, { - 0x8916, - "GL_GEOMETRY_LINKED_VERTICES_OUT_EXT", + 0x0010, "GL_MAP_FLUSH_EXPLICIT_BIT_EXT", }, { - 0x8917, - "GL_GEOMETRY_LINKED_INPUT_TYPE_EXT", + 0x8918, "GL_GEOMETRY_LINKED_OUTPUT_TYPE_EXT", }, { - 0x881F, - "GL_LUMINANCE_ALPHA16F_EXT", + 0x8919, "GL_SAMPLER_BINDING", }, { - 0x84FD, - "GL_MAX_TEXTURE_LOD_BIAS", + 0x92CD, "GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_EXT", }, { - 0x882D, - "GL_DRAW_BUFFER8_EXT", + 0x92CE, "GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_EXT", }, { - 0x0BA6, - "GL_PATH_MODELVIEW_MATRIX_CHROMIUM", + 0x90A6, "GL_BEVEL_CHROMIUM", }, { - 0x8A42, - "GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS", + 0x90A7, "GL_MITER_REVERT_CHROMIUM", }, { - 0x8F37, - "GL_COPY_WRITE_BUFFER_NV", + 0x6007, "GL_LATENCY_QUERY_CHROMIUM", }, { - 0x8F36, - "GL_COPY_READ_BUFFER_NV", + 0x8D83, "GL_RGB32I", }, { - 0x84FF, - "GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT", + 0x8916, "GL_GEOMETRY_LINKED_VERTICES_OUT_EXT", }, { - 0x8A3C, - "GL_UNIFORM_ARRAY_STRIDE", + 0x8917, "GL_GEOMETRY_LINKED_INPUT_TYPE_EXT", }, { - 0x8A44, - "GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER", + 0x881F, "GL_LUMINANCE_ALPHA16F_EXT", }, { - 0x6000, - "GL_TEXTURE_POOL_CHROMIUM", + 0x84FD, "GL_MAX_TEXTURE_LOD_BIAS", }, { - 0x0B74, - "GL_DEPTH_FUNC", + 0x882D, "GL_DRAW_BUFFER8_EXT", }, { - 0x8A49, - "GL_DECODE_EXT", + 0x0BA6, "GL_PATH_MODELVIEW_MATRIX_CHROMIUM", }, { - 0x881B, - "GL_RGB16F_EXT", + 0x8A42, "GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS", }, { - 0x0B71, - "GL_DEPTH_TEST", + 0x8F37, "GL_COPY_WRITE_BUFFER_NV", }, { - 0x0B70, - "GL_DEPTH_RANGE", + 0x8F36, "GL_COPY_READ_BUFFER_NV", }, { - 0x0B73, - "GL_DEPTH_CLEAR_VALUE", + 0x84FF, "GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT", }, { - 0x0B72, - "GL_DEPTH_WRITEMASK", + 0x8A3C, "GL_UNIFORM_ARRAY_STRIDE", }, { - 0x8BD5, - "GL_TEXTURE_INTERNAL_FORMAT_QCOM", + 0x8A44, "GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER", }, { - 0x85BA, - "GL_UNSIGNED_SHORT_8_8_APPLE", + 0x6000, "GL_TEXTURE_POOL_CHROMIUM", }, { - 0x8C87, - "GL_PRIMITIVES_GENERATED_EXT", + 0x0B74, "GL_DEPTH_FUNC", }, { - 0x8C80, - "GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS", + 0x8A49, "GL_DECODE_EXT", }, { - 0x8C83, - "GL_TRANSFORM_FEEDBACK_VARYINGS", + 0x881B, "GL_RGB16F_EXT", }, { - 0x8D69, - "GL_PRIMITIVE_RESTART_FIXED_INDEX", + 0x0B71, "GL_DEPTH_TEST", }, { - 0x882E, - "GL_DRAW_BUFFER9_EXT", + 0x0B70, "GL_DEPTH_RANGE", }, { - 0x8A32, - "GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_EXT", + 0x0B73, "GL_DEPTH_CLEAR_VALUE", }, { - 0x8A31, - "GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS", + 0x0B72, "GL_DEPTH_WRITEMASK", }, { - 0x8C89, - "GL_RASTERIZER_DISCARD", + 0x8BD5, "GL_TEXTURE_INTERNAL_FORMAT_QCOM", }, { - 0x8C88, - "GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN", + 0x85BA, "GL_UNSIGNED_SHORT_8_8_APPLE", }, { - 0x8C1A, - "GL_TEXTURE_2D_ARRAY", + 0x8C87, "GL_PRIMITIVES_GENERATED_EXT", }, { - 0x910D, - "GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES", + 0x8C80, "GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS", }, { - 0x8E80, - "GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT", + 0x8C83, "GL_TRANSFORM_FEEDBACK_VARYINGS", }, { - 0x910B, - "GL_SAMPLER_2D_MULTISAMPLE_ARRAY_OES", + 0x8D69, "GL_PRIMITIVE_RESTART_FIXED_INDEX", }, { - 0x910C, - "GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES", + 0x882E, "GL_DRAW_BUFFER9_EXT", }, { - 0x94FA, - "GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL", + 0x8A32, "GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_EXT", }, { - 0x8073, - "GL_MAX_3D_TEXTURE_SIZE_OES", + 0x8A31, "GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS", }, { - 0x8072, - "GL_TEXTURE_WRAP_R_OES", + 0x8C89, "GL_RASTERIZER_DISCARD", }, { - 0x9289, - "GL_DST_OVER_NV", + 0x8C88, "GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN", }, { - 0x882F, - "GL_DRAW_BUFFER10_EXT", + 0x8C1A, "GL_TEXTURE_2D_ARRAY", }, { - 0x8074, - "GL_VERTEX_ARRAY_KHR", + 0x910D, "GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES", }, { - 0x80E1, - "GL_BGRA_EXT", + 0x8E80, "GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT", }, { - 0x8ED7, - "GL_COVERAGE_AUTOMATIC_NV", + 0x910B, "GL_SAMPLER_2D_MULTISAMPLE_ARRAY_OES", }, { - 0x8ED6, - "GL_COVERAGE_EDGE_FRAGMENTS_NV", + 0x910C, "GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES", }, { - 0x8ED5, - "GL_COVERAGE_ALL_FRAGMENTS_NV", + 0x94FA, "GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL", }, { - 0x8ED4, - "GL_COVERAGE_SAMPLES_NV", + 0x8073, "GL_MAX_3D_TEXTURE_SIZE_OES", }, { - 0x8ED3, - "GL_COVERAGE_BUFFERS_NV", + 0x8072, "GL_TEXTURE_WRAP_R_OES", }, { - 0x8ED2, - "GL_COVERAGE_ATTACHMENT_NV", + 0x9289, "GL_DST_OVER_NV", }, { - 0x8ED1, - "GL_COVERAGE_COMPONENT4_NV", + 0x882F, "GL_DRAW_BUFFER10_EXT", }, { - 0x8ED0, - "GL_COVERAGE_COMPONENT_NV", + 0x8074, "GL_VERTEX_ARRAY_KHR", }, { - 0x8217, - "GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE", + 0x80E1, "GL_BGRA_EXT", }, { - 0x8E89, - "GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_EXT", + 0x8ED7, "GL_COVERAGE_AUTOMATIC_NV", }, { - 0x8216, - "GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE", + 0x8ED6, "GL_COVERAGE_EDGE_FRAGMENTS_NV", }, { - 0x8A36, - "GL_ACTIVE_UNIFORM_BLOCKS", + 0x8ED5, "GL_COVERAGE_ALL_FRAGMENTS_NV", }, { - 0x8A37, - "GL_UNIFORM_TYPE", + 0x8ED4, "GL_COVERAGE_SAMPLES_NV", }, { - 0x8A34, - "GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT", + 0x8ED3, "GL_COVERAGE_BUFFERS_NV", }, { - 0x3006, - "GL_CLIP_DISTANCE6_APPLE", + 0x8ED2, "GL_COVERAGE_ATTACHMENT_NV", }, { - 0x800B, - "GL_FUNC_REVERSE_SUBTRACT", + 0x8ED1, "GL_COVERAGE_COMPONENT4_NV", }, { - 0x8A33, - "GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS", + 0x8ED0, "GL_COVERAGE_COMPONENT_NV", }, { - 0x00000400, - "GL_STENCIL_BUFFER_BIT", + 0x8217, "GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE", }, { - 0x800A, - "GL_FUNC_SUBTRACT", + 0x8E89, "GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_EXT", }, { - 0x8214, - "GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE", + 0x8216, "GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE", }, { - 0x8A38, - "GL_UNIFORM_SIZE", + 0x8A36, "GL_ACTIVE_UNIFORM_BLOCKS", }, { - 0x8A39, - "GL_UNIFORM_NAME_LENGTH", + 0x8A37, "GL_UNIFORM_TYPE", }, { - 0x8E2C, - "GL_DEPTH_COMPONENT16_NONLINEAR_NV", + 0x8A34, "GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT", }, { - 0x889F, - "GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING", + 0x3006, "GL_CLIP_DISTANCE6_APPLE", }, { - 0x8219, - "GL_FRAMEBUFFER_UNDEFINED_OES", + 0x800B, "GL_FUNC_REVERSE_SUBTRACT", }, { - 0x8E23, - "GL_TRANSFORM_FEEDBACK_PAUSED", + 0x8A33, "GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS", }, { - 0x8E22, - "GL_TRANSFORM_FEEDBACK", + 0x00000400, "GL_STENCIL_BUFFER_BIT", }, { - 0x8E25, - "GL_TRANSFORM_FEEDBACK_BINDING", + 0x800A, "GL_FUNC_SUBTRACT", }, { - 0x9054, - "GL_IMAGE_CUBE_MAP_ARRAY_EXT", + 0x8214, "GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE", }, { - 0x8E28, - "GL_TIMESTAMP_EXT", + 0x8A38, "GL_UNIFORM_SIZE", }, { - 0x8006, - "GL_FUNC_ADD", + 0x8A39, "GL_UNIFORM_NAME_LENGTH", }, { - 0x8007, - "GL_MIN_EXT", + 0x8E2C, "GL_DEPTH_COMPONENT16_NONLINEAR_NV", }, { - 0x8004, - "GL_ONE_MINUS_CONSTANT_ALPHA", + 0x889F, "GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING", }, { - 0x8005, - "GL_BLEND_COLOR", + 0x8219, "GL_FRAMEBUFFER_UNDEFINED_OES", }, { - 0x8002, - "GL_ONE_MINUS_CONSTANT_COLOR", + 0x8E23, "GL_TRANSFORM_FEEDBACK_PAUSED", }, { - 0x8003, - "GL_CONSTANT_ALPHA", + 0x8E22, "GL_TRANSFORM_FEEDBACK", }, { - 0x8001, - "GL_CONSTANT_COLOR", + 0x8E25, "GL_TRANSFORM_FEEDBACK_BINDING", }, { - 0x0204, - "GL_GREATER", + 0x9054, "GL_IMAGE_CUBE_MAP_ARRAY_EXT", }, { - 0x0205, - "GL_NOTEQUAL", + 0x8E28, "GL_TIMESTAMP_EXT", }, { - 0x0206, - "GL_GEQUAL", + 0x8006, "GL_FUNC_ADD", }, { - 0x0207, - "GL_ALWAYS", + 0x8007, "GL_MIN_EXT", }, { - 0x0200, - "GL_NEVER", + 0x8004, "GL_ONE_MINUS_CONSTANT_ALPHA", }, { - 0x0201, - "GL_LESS", + 0x8005, "GL_BLEND_COLOR", }, { - 0x0202, - "GL_EQUAL", + 0x8002, "GL_ONE_MINUS_CONSTANT_COLOR", }, { - 0x0203, - "GL_LEQUAL", + 0x8003, "GL_CONSTANT_ALPHA", }, { - 0x8BD6, - "GL_TEXTURE_FORMAT_QCOM", + 0x8001, "GL_CONSTANT_COLOR", }, { - 0x8228, - "GL_RG_INTEGER", + 0x0204, "GL_GREATER", }, { - 0x2901, - "GL_REPEAT", + 0x0205, "GL_NOTEQUAL", }, { - 0x9067, - "GL_UNSIGNED_INT_IMAGE_BUFFER_EXT", + 0x0206, "GL_GEQUAL", }, { - 0x92A0, - "GL_EXCLUSION_KHR", + 0x0207, "GL_ALWAYS", }, { - 0x93D8, - "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR", + 0x0200, "GL_NEVER", }, { - 0x93D9, - "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR", + 0x0201, "GL_LESS", }, { - 0x8FB2, - "GL_GPU_OPTIMIZED_QCOM", + 0x0202, "GL_EQUAL", }, { - 0x190A, - "GL_LUMINANCE_ALPHA", + 0x0203, "GL_LEQUAL", }, { - 0x8FB0, - "GL_BINNING_CONTROL_HINT_QCOM", + 0x8DC6, "GL_UNSIGNED_INT_VEC2", }, { - 0x905C, - "GL_INT_IMAGE_BUFFER_EXT", + 0x8BD6, "GL_TEXTURE_FORMAT_QCOM", }, { - 0x1E00, - "GL_KEEP", + 0x8228, "GL_RG_INTEGER", }, { - 0x1E01, - "GL_REPLACE", + 0x2901, "GL_REPEAT", }, { - 0x1E02, - "GL_INCR", + 0x9067, "GL_UNSIGNED_INT_IMAGE_BUFFER_EXT", }, { - 0x1E03, - "GL_DECR", + 0x92A0, "GL_EXCLUSION_KHR", }, { - 0x93D6, - "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR", + 0x93D8, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR", }, { - 0x93D7, - "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR", + 0x93D9, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR", }, { - 0x93D4, - "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR", + 0x8FB2, "GL_GPU_OPTIMIZED_QCOM", }, { - 0x93D5, - "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR", + 0x190A, "GL_LUMINANCE_ALPHA", }, { - 0x886D, - "GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_EXT", + 0x8FB0, "GL_BINNING_CONTROL_HINT_QCOM", }, { - 0x0BE2, - "GL_BLEND", + 0x905C, "GL_INT_IMAGE_BUFFER_EXT", }, { - 0x84CB, - "GL_TEXTURE11", + 0x1E00, "GL_KEEP", }, { - 0x8D55, - "GL_RENDERBUFFER_STENCIL_SIZE", + 0x1E01, "GL_REPLACE", }, { - 0x8D54, - "GL_RENDERBUFFER_DEPTH_SIZE", + 0x1E02, "GL_INCR", }, { - 0x8D57, - "GL_MAX_SAMPLES_ANGLE", + 0x1E03, "GL_DECR", }, { - 0x8D56, - "GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE", + 0x93D6, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR", }, { - 0x8D51, - "GL_RENDERBUFFER_GREEN_SIZE", + 0x93D7, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR", }, { - 0x8D50, - "GL_RENDERBUFFER_RED_SIZE", + 0x93D4, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR", }, { - 0x8D53, - "GL_RENDERBUFFER_ALPHA_SIZE", + 0x93D5, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR", }, { - 0x8D52, - "GL_RENDERBUFFER_BLUE_SIZE", + 0x886D, "GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_EXT", }, { - 0x92A6, - "GL_VIVIDLIGHT_NV", + 0x0BE2, "GL_BLEND", }, { - 0x8A2A, - "GL_UNIFORM_BUFFER_SIZE", + 0x84CB, "GL_TEXTURE11", }, { - 0x8DCC, - "GL_INT_SAMPLER_CUBE", + 0x8D55, "GL_RENDERBUFFER_STENCIL_SIZE", }, { - 0x78F1, - "GL_MAP_CHROMIUM", + 0x8D54, "GL_RENDERBUFFER_DEPTH_SIZE", }, { - 0x00080000, - "GL_STENCIL_BUFFER_BIT3_QCOM", + 0x8D57, "GL_MAX_SAMPLES_ANGLE", }, { - 0x92A7, - "GL_LINEARLIGHT_NV", + 0x8D56, "GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE", }, { - 0x8DCF, - "GL_INT_SAMPLER_2D_ARRAY", + 0x8D51, "GL_RENDERBUFFER_GREEN_SIZE", }, { - 0x886A, - "GL_VERTEX_ATTRIB_ARRAY_NORMALIZED", + 0x8D50, "GL_RENDERBUFFER_RED_SIZE", }, { - 0x8C41, - "GL_SRGB8_NV", + 0x8D53, "GL_RENDERBUFFER_ALPHA_SIZE", }, { - 0x0C01, - "GL_DRAW_BUFFER_EXT", + 0x8D52, "GL_RENDERBUFFER_BLUE_SIZE", }, { - 0x886C, - "GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_EXT", + 0x92A6, "GL_VIVIDLIGHT_NV", }, { - 0x90CB, - "GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_EXT", + 0x8A2A, "GL_UNIFORM_BUFFER_SIZE", }, { - 0x8DCA, - "GL_INT_SAMPLER_2D", + 0x04, "GL_LINE_TO_CHROMIUM", }, { - 0x93C7, - "GL_COMPRESSED_RGBA_ASTC_6x5x5_OES", + 0x0BA7, "GL_PATH_PROJECTION_MATRIX_CHROMIUM", }, { - 0x8B5F, - "GL_SAMPLER_3D_OES", + 0x00080000, "GL_STENCIL_BUFFER_BIT3_QCOM", }, { - 0x8B95, - "GL_PALETTE8_RGB8_OES", + 0x92A7, "GL_LINEARLIGHT_NV", }, { - 0x9250, - "GL_SHADER_BINARY_DMP", + 0x00, "GL_CLOSE_PATH_CHROMIUM", }, { - 0x9251, - "GL_SMAPHS30_PROGRAM_BINARY_DMP", + 0x8DCF, "GL_INT_SAMPLER_2D_ARRAY", }, { - 0x9252, - "GL_SMAPHS_PROGRAM_BINARY_DMP", + 0x02, "GL_MOVE_TO_CHROMIUM", }, { - 0x9253, - "GL_DMP_PROGRAM_BINARY_DMP", + 0x886A, "GL_VERTEX_ATTRIB_ARRAY_NORMALIZED", }, { - 0x8DC8, - "GL_UNSIGNED_INT_VEC4", + 0x8C41, "GL_SRGB8_NV", }, { - 0x3000, - "GL_CLIP_DISTANCE0_APPLE", + 0x9079, "GL_PATH_JOIN_STYLE_CHROMIUM", }, { - 0x8C92, - "GL_ATC_RGB_AMD", + 0x0C01, "GL_DRAW_BUFFER_EXT", }, { - 0x8DC1, - "GL_SAMPLER_2D_ARRAY", + 0x9075, "GL_PATH_STROKE_WIDTH_CHROMIUM", }, { - 0x9154, - "GL_VERTEX_ARRAY_OBJECT_EXT", + 0x9076, "GL_PATH_END_CAPS_CHROMIUM", }, { - 0x9153, - "GL_QUERY_OBJECT_EXT", + 0x886C, "GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_EXT", }, { - 0x8864, - "GL_QUERY_COUNTER_BITS_EXT", + 0x90CB, "GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_EXT", }, { - 0x9151, - "GL_BUFFER_OBJECT_EXT", + 0x9086, "GL_PATH_STROKE_BOUND_CHROMIUM", }, { - 0x8C93, - "GL_ATC_RGBA_EXPLICIT_ALPHA_AMD", + 0x93C7, "GL_COMPRESSED_RGBA_ASTC_6x5x5_OES", }, { - 0x00000002, - "GL_CONTEXT_FLAG_DEBUG_BIT_KHR", + 0x8B5F, "GL_SAMPLER_3D_OES", }, { - 0x8A3F, - "GL_UNIFORM_BLOCK_BINDING", + 0x8B95, "GL_PALETTE8_RGB8_OES", }, { - 0x00000000, - "GL_PERFQUERY_SINGLE_CONTEXT_INTEL", + 0x9250, "GL_SHADER_BINARY_DMP", }, { - 0x00000001, - "GL_SYNC_FLUSH_COMMANDS_BIT_APPLE", + 0x9251, "GL_SMAPHS30_PROGRAM_BINARY_DMP", }, { - 0x9248, - "GL_OVERLAY_TRANSFORM_ROTATE_90_CHROMIUM", + 0x9252, "GL_SMAPHS_PROGRAM_BINARY_DMP", }, { - 0x00000004, - "GL_GEOMETRY_SHADER_BIT_EXT", + 0x9253, "GL_DMP_PROGRAM_BINARY_DMP", }, { - 0x1702, - "GL_TEXTURE", + 0x8DC8, "GL_UNSIGNED_INT_VEC4", }, { - 0x3003, - "GL_CLIP_DISTANCE3_APPLE", + 0x3000, "GL_CLIP_DISTANCE0_APPLE", }, { - 0x00000008, - "GL_TESS_CONTROL_SHADER_BIT_EXT", + 0x8C92, "GL_ATC_RGB_AMD", }, { - 0x8B58, - "GL_BOOL_VEC3", + 0x8DC1, "GL_SAMPLER_2D_ARRAY", }, { - 0x8A3D, - "GL_UNIFORM_MATRIX_STRIDE", + 0x9154, "GL_VERTEX_ARRAY_OBJECT_EXT", }, { - 0x8828, - "GL_DRAW_BUFFER3_EXT", + 0x9153, "GL_QUERY_OBJECT_EXT", }, { - 0x8DF0, - "GL_LOW_FLOAT", + 0x8864, "GL_QUERY_COUNTER_BITS_EXT", }, { - 0x1906, - "GL_ALPHA", + 0x9151, "GL_BUFFER_OBJECT_EXT", }, { - 0x1907, - "GL_RGB", + 0x8C93, "GL_ATC_RGBA_EXPLICIT_ALPHA_AMD", }, { - 0x8FBB, - "GL_GPU_DISJOINT_EXT", + 0x00000002, "GL_CONTEXT_FLAG_DEBUG_BIT_KHR", }, { - 0x1901, - "GL_STENCIL_INDEX_OES", + 0x8A3F, "GL_UNIFORM_BLOCK_BINDING", }, { - 0x1902, - "GL_DEPTH_COMPONENT", + 0x00000000, "GL_PERFQUERY_SINGLE_CONTEXT_INTEL", }, { - 0x8B56, - "GL_BOOL", + 0x00000001, "GL_SYNC_FLUSH_COMMANDS_BIT_APPLE", }, { - 0x93DB, - "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR", + 0x9248, "GL_OVERLAY_TRANSFORM_ROTATE_90_CHROMIUM", }, { - 0x8B9B, - "GL_IMPLEMENTATION_COLOR_READ_FORMAT", + 0x00000004, "GL_GEOMETRY_SHADER_BIT_EXT", }, { - 0x8B9A, - "GL_IMPLEMENTATION_COLOR_READ_TYPE", + 0x1702, "GL_TEXTURE", }, { - 0x93DA, - "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR", + 0x3003, "GL_CLIP_DISTANCE3_APPLE", }, { - 0x1908, - "GL_RGBA", + 0x00000008, "GL_TESS_CONTROL_SHADER_BIT_EXT", }, { - 0x8DF2, - "GL_HIGH_FLOAT", + 0x8B58, "GL_BOOL_VEC3", }, { - 0x93DD, - "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR", + 0x907a, "GL_PATH_MITER_LIMIT_CHROMIUM", }, { - 0x8827, - "GL_DRAW_BUFFER2_EXT", + 0x8828, "GL_DRAW_BUFFER3_EXT", }, { - 0x9243, - "GL_UNPACK_COLORSPACE_CONVERSION_CHROMIUM", + 0x8DF0, "GL_LOW_FLOAT", }, { - 0x8DF3, - "GL_LOW_INT", + 0x1906, "GL_ALPHA", }, { - 0x82E8, - "GL_MAX_LABEL_LENGTH_KHR", + 0x1907, "GL_RGB", }, { - 0x82E6, - "GL_SAMPLER_KHR", + 0x8FBB, "GL_GPU_DISJOINT_EXT", }, { - 0x0C02, - "GL_READ_BUFFER_EXT", + 0x1901, "GL_STENCIL_INDEX_OES", }, { - 0x82E3, - "GL_QUERY_KHR", + 0x1902, "GL_DEPTH_COMPONENT", }, { - 0x82E2, - "GL_PROGRAM_KHR", + 0x8B56, "GL_BOOL", }, { - 0x82E1, - "GL_SHADER_KHR", + 0x93DB, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR", }, { - 0x8B52, - "GL_FLOAT_VEC4", + 0x8B9B, "GL_IMPLEMENTATION_COLOR_READ_FORMAT", }, { - 0x8239, - "GL_RG16I", + 0x8B9A, "GL_IMPLEMENTATION_COLOR_READ_TYPE", }, { - 0x8238, - "GL_RG8UI", + 0x93DA, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR", }, { - 0x9240, - "GL_UNPACK_FLIP_Y_CHROMIUM", + 0x1908, "GL_RGBA", }, { - 0x8DF6, - "GL_UNSIGNED_INT_10_10_10_2_OES", + 0x8DF2, "GL_HIGH_FLOAT", }, { - 0x8A30, - "GL_MAX_UNIFORM_BLOCK_SIZE", + 0x93DD, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR", }, { - 0x9273, - "GL_COMPRESSED_SIGNED_RG11_EAC", + 0x8827, "GL_DRAW_BUFFER2_EXT", }, { - 0x8231, - "GL_R8I", + 0x9243, "GL_UNPACK_COLORSPACE_CONVERSION_CHROMIUM", }, { - 0x8866, - "GL_QUERY_RESULT_EXT", + 0x8DF3, "GL_LOW_INT", }, { - 0x8233, - "GL_R16I", + 0x82E8, "GL_MAX_LABEL_LENGTH_KHR", }, { - 0x8DF7, - "GL_INT_10_10_10_2_OES", + 0x82E6, "GL_SAMPLER_KHR", }, { - 0x8235, - "GL_R32I", + 0x0C02, "GL_READ_BUFFER_EXT", }, { - 0x8234, - "GL_R16UI", + 0x82E3, "GL_QUERY_KHR", }, { - 0x8237, - "GL_RG8I", + 0x82E2, "GL_PROGRAM_KHR", }, { - 0x9246, - "GL_OVERLAY_TRANSFORM_FLIP_HORIZONTAL_CHROMIUM", + 0x82E1, "GL_SHADER_KHR", }, { - 0x8B69, - "GL_FLOAT_MAT4x2_NV", + 0x8B52, "GL_FLOAT_VEC4", }, { - 0x812D, - "GL_CLAMP_TO_BORDER_EXT", + 0x8239, "GL_RG16I", }, { - 0x812F, - "GL_CLAMP_TO_EDGE", + 0x8238, "GL_RG8UI", }, { - 0x92A4, - "GL_LINEARDODGE_NV", + 0x8DF6, "GL_UNSIGNED_INT_10_10_10_2_OES", }, { - 0x8DD8, - "GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT", + 0x8A30, "GL_MAX_UNIFORM_BLOCK_SIZE", }, { - 0x8DD9, - "GL_GEOMETRY_SHADER_EXT", + 0x9273, "GL_COMPRESSED_SIGNED_RG11_EAC", }, { - 0x86A3, - "GL_COMPRESSED_TEXTURE_FORMATS", + 0x8231, "GL_R8I", }, { - 0x8DD4, - "GL_UNSIGNED_INT_SAMPLER_CUBE", + 0x8866, "GL_QUERY_RESULT_EXT", }, { - 0x9244, - "GL_BIND_GENERATES_RESOURCE_CHROMIUM", + 0x8233, "GL_R16I", }, { - 0x8DD2, - "GL_UNSIGNED_INT_SAMPLER_2D", + 0x8DF7, "GL_INT_10_10_10_2_OES", }, { - 0x8DD3, - "GL_UNSIGNED_INT_SAMPLER_3D", + 0x8235, "GL_R32I", }, { - 0x8DD0, - "GL_INT_SAMPLER_BUFFER_EXT", + 0x8234, "GL_R16UI", }, { - 0x86A2, - "GL_NUM_COMPRESSED_TEXTURE_FORMATS", + 0x8237, "GL_RG8I", }, { - 0x0CF3, - "GL_UNPACK_SKIP_ROWS_EXT", + 0x9246, "GL_OVERLAY_TRANSFORM_FLIP_HORIZONTAL_CHROMIUM", }, { - 0x0CF2, - "GL_UNPACK_ROW_LENGTH_EXT", + 0x8B69, "GL_FLOAT_MAT4x2_NV", }, { - 0x140C, - "GL_FIXED", + 0x812D, "GL_CLAMP_TO_BORDER_EXT", }, { - 0x140B, - "GL_HALF_FLOAT", + 0x812F, "GL_CLAMP_TO_EDGE", }, { - 0x8008, - "GL_MAX_EXT", + 0x92A4, "GL_LINEARDODGE_NV", }, { - 0x0CF5, - "GL_UNPACK_ALIGNMENT", + 0x8DD8, "GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT", }, { - 0x8867, - "GL_QUERY_RESULT_AVAILABLE_EXT", + 0x8DD9, "GL_GEOMETRY_SHADER_EXT", }, { - 0x8D82, - "GL_RGBA32I", + 0x86A3, "GL_COMPRESSED_TEXTURE_FORMATS", }, { - 0x8009, - "GL_BLEND_EQUATION", + 0x8DD4, "GL_UNSIGNED_INT_SAMPLER_CUBE", }, { - 0x911F, - "GL_BUFFER_ACCESS_FLAGS", + 0x9244, "GL_BIND_GENERATES_RESOURCE_CHROMIUM", }, { - 0x1401, - "GL_UNSIGNED_BYTE", + 0x8DD2, "GL_UNSIGNED_INT_SAMPLER_2D", }, { - 0x1400, - "GL_BYTE", + 0x8DD3, "GL_UNSIGNED_INT_SAMPLER_3D", }, { - 0x1403, - "GL_UNSIGNED_SHORT", + 0x8DD0, "GL_INT_SAMPLER_BUFFER_EXT", }, { - 0x1402, - "GL_SHORT", + 0x86A2, "GL_NUM_COMPRESSED_TEXTURE_FORMATS", }, { - 0x1405, - "GL_UNSIGNED_INT", + 0x0CF3, "GL_UNPACK_SKIP_ROWS_EXT", }, { - 0x1404, - "GL_INT", + 0x0CF2, "GL_UNPACK_ROW_LENGTH_EXT", }, { - 0x1406, - "GL_FLOAT", + 0x140C, "GL_FIXED", }, { - 0x8C1D, - "GL_TEXTURE_BINDING_2D_ARRAY", + 0x140B, "GL_HALF_FLOAT", }, { - 0x8DDF, - "GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT", + 0x8008, "GL_MAX_EXT", }, { - 0x8043, - "GL_LUMINANCE4_ALPHA4_OES", + 0x0CF5, "GL_UNPACK_ALIGNMENT", }, { - 0x8040, - "GL_LUMINANCE8_OES", + 0x8867, "GL_QUERY_RESULT_AVAILABLE_EXT", }, { - 0x8045, - "GL_LUMINANCE8_ALPHA8_OES", + 0x8D82, "GL_RGBA32I", }, { - 0x8CD1, - "GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME", + 0x8009, "GL_BLEND_EQUATION", }, { - 0x00040000, - "GL_STENCIL_BUFFER_BIT2_QCOM", + 0x911F, "GL_BUFFER_ACCESS_FLAGS", }, { - 0x8CD0, - "GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE", + 0x1401, "GL_UNSIGNED_BYTE", }, { - 0x823A, - "GL_RG16UI", + 0x1400, "GL_BYTE", }, { - 0x8CE4, - "GL_COLOR_ATTACHMENT4_EXT", + 0x1403, "GL_UNSIGNED_SHORT", }, { - 0x823B, - "GL_RG32I", + 0x1402, "GL_SHORT", }, { - 0x8CD3, - "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE", + 0x1405, "GL_UNSIGNED_INT", }, { - 0x846E, - "GL_ALIASED_LINE_WIDTH_RANGE", + 0x1404, "GL_INT", }, { - 0x0B90, - "GL_STENCIL_TEST", + 0x1406, "GL_FLOAT", }, { - 0x8CD2, - "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL", + 0x8C1D, "GL_TEXTURE_BINDING_2D_ARRAY", }, { - 0x881C, - "GL_ALPHA16F_EXT", + 0x8DDF, "GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT", }, { - 0x928E, - "GL_SRC_ATOP_NV", + 0x8043, "GL_LUMINANCE4_ALPHA4_OES", }, { - 0x8CD4, - "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES", + 0x8040, "GL_LUMINANCE8_OES", }, { - 0x9113, - "GL_SYNC_CONDITION_APPLE", + 0x8045, "GL_LUMINANCE8_ALPHA8_OES", }, { - 0x8CD7, - "GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT", + 0x8CD1, "GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME", }, { - 0x08000000, - "GL_MULTISAMPLE_BUFFER_BIT3_QCOM", + 0x00040000, "GL_STENCIL_BUFFER_BIT2_QCOM", }, { - 0x93A4, - "GL_PACK_REVERSE_ROW_ORDER_ANGLE", + 0x8CD0, "GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE", }, { - 0x8038, - "GL_POLYGON_OFFSET_FACTOR", + 0x823A, "GL_RG16UI", }, { - 0x94F9, - "GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL", + 0x8CE4, "GL_COLOR_ATTACHMENT4_EXT", }, { - 0x851A, - "GL_TEXTURE_CUBE_MAP_NEGATIVE_Z", + 0x823B, "GL_RG32I", }, { - 0x851C, - "GL_MAX_CUBE_MAP_TEXTURE_SIZE", + 0x8CD3, "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE", }, { - 0x8CD9, - "GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS", + 0x846E, "GL_ALIASED_LINE_WIDTH_RANGE", }, { - 0x84CC, - "GL_TEXTURE12", + 0x0B90, "GL_STENCIL_TEST", }, { - 0x0BA2, - "GL_VIEWPORT", + 0x8CD2, "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL", }, { - 0x84CA, - "GL_TEXTURE10", + 0x881C, "GL_ALPHA16F_EXT", }, { - 0x0BA7, - "GL_PATH_PROJECTION_MATRIX_CHROMIUM", + 0x928E, "GL_SRC_ATOP_NV", }, { - 0x84CF, - "GL_TEXTURE15", + 0x8CD4, "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES", }, { - 0x84CE, - "GL_TEXTURE14", + 0x9113, "GL_SYNC_CONDITION_APPLE", }, { - 0x84CD, - "GL_TEXTURE13", + 0x8CD7, "GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT", }, { - 0x83F9, - "GL_PERFQUERY_DONOT_FLUSH_INTEL", + 0x08000000, "GL_MULTISAMPLE_BUFFER_BIT3_QCOM", }, { - 0x9115, - "GL_SYNC_FLAGS_APPLE", + 0x93A4, "GL_PACK_REVERSE_ROW_ORDER_ANGLE", }, { - 0x9286, - "GL_SRC_NV", + 0x8038, "GL_POLYGON_OFFSET_FACTOR", }, { - 0x83F3, - "GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE", + 0x94F9, "GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL", }, { - 0x83F2, - "GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE", + 0x851A, "GL_TEXTURE_CUBE_MAP_NEGATIVE_Z", }, { - 0x83F1, - "GL_COMPRESSED_RGBA_S3TC_DXT1_EXT", + 0x851C, "GL_MAX_CUBE_MAP_TEXTURE_SIZE", }, { - 0x9114, - "GL_SYNC_STATUS_APPLE", + 0x8CD9, "GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS", }, { - 0x8C0A, - "GL_SGX_BINARY_IMG", + 0x84CC, "GL_TEXTURE12", }, { - 0x93BB, - "GL_COMPRESSED_RGBA_ASTC_10x10_KHR", + 0x0BA2, "GL_VIEWPORT", }, { - 0x911C, - "GL_CONDITION_SATISFIED_APPLE", + 0x84CA, "GL_TEXTURE10", }, { - 0x911B, - "GL_TIMEOUT_EXPIRED_APPLE", + 0x78F1, "GL_MAP_CHROMIUM", }, { - 0x911A, - "GL_ALREADY_SIGNALED_APPLE", + 0x84CF, "GL_TEXTURE15", }, { - 0x9284, - "GL_CONJOINT_NV", + 0x84CE, "GL_TEXTURE14", }, { - 0x9124, - "GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT", + 0x84CD, "GL_TEXTURE13", }, { - 0x911D, - "GL_WAIT_FAILED_APPLE", + 0x83F9, "GL_PERFQUERY_DONOT_FLUSH_INTEL", }, { - 0x929A, - "GL_COLORBURN_KHR", + 0x9115, "GL_SYNC_FLAGS_APPLE", }, { - 0x929B, - "GL_HARDLIGHT_KHR", + 0x9286, "GL_SRC_NV", }, { - 0x929C, - "GL_SOFTLIGHT_KHR", + 0x83F3, "GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE", }, { - 0x846D, - "GL_ALIASED_POINT_SIZE_RANGE", + 0x83F2, "GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE", }, { - 0x929E, - "GL_DIFFERENCE_KHR", + 0x83F1, "GL_COMPRESSED_RGBA_S3TC_DXT1_EXT", }, { - 0x929F, - "GL_MINUS_NV", + 0x9114, "GL_SYNC_STATUS_APPLE", }, { - 0x9282, - "GL_UNCORRELATED_NV", + 0x8C0A, "GL_SGX_BINARY_IMG", }, { - 0x9298, - "GL_LIGHTEN_KHR", + 0x93BB, "GL_COMPRESSED_RGBA_ASTC_10x10_KHR", }, { - 0x9299, - "GL_COLORDODGE_KHR", + 0x911C, "GL_CONDITION_SATISFIED_APPLE", }, { - 0x9111, - "GL_MAX_SERVER_WAIT_TIMEOUT_APPLE", + 0x911B, "GL_TIMEOUT_EXPIRED_APPLE", }, { - 0x93A6, - "GL_PROGRAM_BINARY_ANGLE", + 0x911A, "GL_ALREADY_SIGNALED_APPLE", }, { - 0x9117, - "GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE", + 0x9284, "GL_CONJOINT_NV", }, { - 0x93A0, - "GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE", + 0x9124, "GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT", }, { - 0x93A3, - "GL_FRAMEBUFFER_ATTACHMENT_ANGLE", + 0x911D, "GL_WAIT_FAILED_APPLE", }, { - 0x93A2, - "GL_TEXTURE_USAGE_ANGLE", + 0x929A, "GL_COLORBURN_KHR", }, { - 0x8802, - "GL_STENCIL_BACK_PASS_DEPTH_FAIL", + 0x929B, "GL_HARDLIGHT_KHR", }, { - 0x9119, - "GL_SIGNALED_APPLE", + 0x929C, "GL_SOFTLIGHT_KHR", }, { - 0x9118, - "GL_UNSIGNALED_APPLE", + 0x846D, "GL_ALIASED_POINT_SIZE_RANGE", }, { - 0x9294, - "GL_MULTIPLY_KHR", + 0x929E, "GL_DIFFERENCE_KHR", }, { - 0x9295, - "GL_SCREEN_KHR", + 0x929F, "GL_MINUS_NV", }, { - 0x9296, - "GL_OVERLAY_KHR", + 0x9282, "GL_UNCORRELATED_NV", }, { - 0x9297, - "GL_DARKEN_KHR", + 0x9298, "GL_LIGHTEN_KHR", }, { - 0x0020, - "GL_MAP_UNSYNCHRONIZED_BIT_EXT", + 0x9299, "GL_COLORDODGE_KHR", }, { - 0x8E78, - "GL_TESS_GEN_VERTEX_ORDER_EXT", + 0x9111, "GL_MAX_SERVER_WAIT_TIMEOUT_APPLE", }, { - 0x8C01, - "GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG", + 0x93A6, "GL_PROGRAM_BINARY_ANGLE", }, { - 0x8C00, - "GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG", + 0x9117, "GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE", }, { - 0x8A52, - "GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT", + 0x93A0, "GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE", }, { - 0x8C02, - "GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG", + 0x93A3, "GL_FRAMEBUFFER_ATTACHMENT_ANGLE", }, { - 0x84C9, - "GL_TEXTURE9", + 0x93A2, "GL_TEXTURE_USAGE_ANGLE", }, { - 0x84C8, - "GL_TEXTURE8", + 0x8802, "GL_STENCIL_BACK_PASS_DEPTH_FAIL", }, { - 0x8869, - "GL_MAX_VERTEX_ATTRIBS", + 0x9119, "GL_SIGNALED_APPLE", }, { - 0x84C3, - "GL_TEXTURE3", + 0x9118, "GL_UNSIGNALED_APPLE", }, { - 0x84C2, - "GL_TEXTURE2", + 0x9294, "GL_MULTIPLY_KHR", }, { - 0x84C1, - "GL_TEXTURE1", + 0x9295, "GL_SCREEN_KHR", }, { - 0x84C0, - "GL_TEXTURE0", + 0x9296, "GL_OVERLAY_KHR", }, { - 0x84C7, - "GL_TEXTURE7", + 0x9297, "GL_DARKEN_KHR", }, { - 0x84C6, - "GL_TEXTURE6", + 0x0020, "GL_MAP_UNSYNCHRONIZED_BIT_EXT", }, { - 0x84C5, - "GL_TEXTURE5", + 0x8E78, "GL_TESS_GEN_VERTEX_ORDER_EXT", }, { - 0x8803, - "GL_STENCIL_BACK_PASS_DEPTH_PASS", + 0x8C01, "GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG", }, { - 0x928A, - "GL_SRC_IN_NV", + 0x8C00, "GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG", }, { - 0x8518, - "GL_TEXTURE_CUBE_MAP_NEGATIVE_Y", + 0x8A52, "GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT", }, { - 0x8519, - "GL_TEXTURE_CUBE_MAP_POSITIVE_Z", + 0x8C02, "GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG", }, { - 0x8514, - "GL_TEXTURE_BINDING_CUBE_MAP", + 0x84C9, "GL_TEXTURE9", }, { - 0x8515, - "GL_TEXTURE_CUBE_MAP_POSITIVE_X", + 0x84C8, "GL_TEXTURE8", }, { - 0x8516, - "GL_TEXTURE_CUBE_MAP_NEGATIVE_X", + 0x8869, "GL_MAX_VERTEX_ATTRIBS", }, { - 0x8517, - "GL_TEXTURE_CUBE_MAP_POSITIVE_Y", + 0x84C3, "GL_TEXTURE3", }, { - 0x8218, - "GL_FRAMEBUFFER_DEFAULT", + 0x84C2, "GL_TEXTURE2", }, { - 0x8513, - "GL_TEXTURE_CUBE_MAP", + 0x84C1, "GL_TEXTURE1", }, { - 0x8626, - "GL_CURRENT_VERTEX_ATTRIB", + 0x84C0, "GL_TEXTURE0", }, { - 0x92B1, - "GL_PLUS_CLAMPED_NV", + 0x84C7, "GL_TEXTURE7", }, { - 0x92B0, - "GL_HSL_LUMINOSITY_KHR", + 0x84C6, "GL_TEXTURE6", }, { - 0x92B3, - "GL_MINUS_CLAMPED_NV", + 0x84C5, "GL_TEXTURE5", }, { - 0x92B2, - "GL_PLUS_CLAMPED_ALPHA_NV", + 0x8803, "GL_STENCIL_BACK_PASS_DEPTH_PASS", }, { - 0x8765, - "GL_BUFFER_USAGE", + 0x928A, "GL_SRC_IN_NV", }, { - 0x8764, - "GL_BUFFER_SIZE", + 0x8518, "GL_TEXTURE_CUBE_MAP_NEGATIVE_Y", }, { - 0x8B99, - "GL_PALETTE8_RGB5_A1_OES", + 0x8519, "GL_TEXTURE_CUBE_MAP_POSITIVE_Z", }, { - 0x0503, - "GL_STACK_OVERFLOW_KHR", + 0x8514, "GL_TEXTURE_BINDING_CUBE_MAP", }, { - 0x0502, - "GL_INVALID_OPERATION", + 0x8515, "GL_TEXTURE_CUBE_MAP_POSITIVE_X", }, { - 0x0501, - "GL_INVALID_VALUE", + 0x8516, "GL_TEXTURE_CUBE_MAP_NEGATIVE_X", }, { - 0x0500, - "GL_INVALID_ENUM", + 0x8517, "GL_TEXTURE_CUBE_MAP_POSITIVE_Y", }, { - 0x0507, - "GL_CONTEXT_LOST_KHR", + 0x8218, "GL_FRAMEBUFFER_DEFAULT", }, { - 0x0506, - "GL_INVALID_FRAMEBUFFER_OPERATION", + 0x8513, "GL_TEXTURE_CUBE_MAP", }, { - 0x0505, - "GL_OUT_OF_MEMORY", + 0x8626, "GL_CURRENT_VERTEX_ATTRIB", }, { - 0x0504, - "GL_STACK_UNDERFLOW_KHR", + 0x92B1, "GL_PLUS_CLAMPED_NV", }, { - 0x0CF4, - "GL_UNPACK_SKIP_PIXELS_EXT", + 0x92B0, "GL_HSL_LUMINOSITY_KHR", }, { - 0x0B44, - "GL_CULL_FACE", + 0x92B3, "GL_MINUS_CLAMPED_NV", }, { - 0x8B5E, - "GL_SAMPLER_2D", + 0x92B2, "GL_PLUS_CLAMPED_ALPHA_NV", }, { - 0x0B46, - "GL_FRONT_FACE", + 0x8765, "GL_BUFFER_USAGE", }, { - 0x8FB3, - "GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM", + 0x8764, "GL_BUFFER_SIZE", }, { - 0x824A, - "GL_DEBUG_SOURCE_APPLICATION_KHR", + 0x8B99, "GL_PALETTE8_RGB5_A1_OES", }, { - 0x824B, - "GL_DEBUG_SOURCE_OTHER_KHR", + 0x0503, "GL_STACK_OVERFLOW_KHR", }, { - 0x824C, - "GL_DEBUG_TYPE_ERROR_KHR", + 0x0502, "GL_INVALID_OPERATION", }, { - 0x824D, - "GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR", + 0x0501, "GL_INVALID_VALUE", }, { - 0x824E, - "GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR", + 0x0500, "GL_INVALID_ENUM", }, { - 0x824F, - "GL_DEBUG_TYPE_PORTABILITY_KHR", + 0x0507, "GL_CONTEXT_LOST_KHR", }, { - 0x8DD7, - "GL_UNSIGNED_INT_SAMPLER_2D_ARRAY", + 0x0506, "GL_INVALID_FRAMEBUFFER_OPERATION", }, { - 0x8B31, - "GL_VERTEX_SHADER", + 0x0505, "GL_OUT_OF_MEMORY", }, { - 0x8B30, - "GL_FRAGMENT_SHADER", + 0x0504, "GL_STACK_UNDERFLOW_KHR", }, { - 0x8FB1, - "GL_CPU_OPTIMIZED_QCOM", + 0x0CF4, "GL_UNPACK_SKIP_PIXELS_EXT", }, { - 0x93D2, - "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR", + 0x0B44, "GL_CULL_FACE", }, { - 0x82FB, - "GL_CONTEXT_RELEASE_BEHAVIOR_KHR", + 0x8B5E, "GL_SAMPLER_2D", }, { - 0x8B5A, - "GL_FLOAT_MAT2", + 0x0B46, "GL_FRONT_FACE", }, { - 0x84D8, - "GL_TEXTURE24", + 0x8FB3, "GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM", }, { - 0x84D9, - "GL_TEXTURE25", + 0x824A, "GL_DEBUG_SOURCE_APPLICATION_KHR", }, { - 0x84D6, - "GL_TEXTURE22", + 0x824B, "GL_DEBUG_SOURCE_OTHER_KHR", }, { - 0x84D7, - "GL_TEXTURE23", + 0x824C, "GL_DEBUG_TYPE_ERROR_KHR", }, { - 0x84D4, - "GL_TEXTURE20", + 0x824D, "GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR", }, { - 0x0D05, - "GL_PACK_ALIGNMENT", + 0x824E, "GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR", }, { - 0x84D2, - "GL_TEXTURE18", + 0x824F, "GL_DEBUG_TYPE_PORTABILITY_KHR", }, { - 0x84D3, - "GL_TEXTURE19", + 0x8DD7, "GL_UNSIGNED_INT_SAMPLER_2D_ARRAY", }, { - 0x84D0, - "GL_TEXTURE16", + 0x8B31, "GL_VERTEX_SHADER", }, { - 0x84D1, - "GL_TEXTURE17", + 0x8B30, "GL_FRAGMENT_SHADER", }, { - 0x93D1, - "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR", + 0x8FB1, "GL_CPU_OPTIMIZED_QCOM", }, { - 0x84DF, - "GL_TEXTURE31", + 0x93D2, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR", }, { - 0x8B97, - "GL_PALETTE8_R5_G6_B5_OES", + 0x82FB, "GL_CONTEXT_RELEASE_BEHAVIOR_KHR", }, { - 0x84DD, - "GL_TEXTURE29", + 0x8B5A, "GL_FLOAT_MAT2", }, { - 0x84DE, - "GL_TEXTURE30", + 0x84D8, "GL_TEXTURE24", }, { - 0x84DB, - "GL_TEXTURE27", + 0x84D9, "GL_TEXTURE25", }, { - 0x84DC, - "GL_TEXTURE28", + 0x84D6, "GL_TEXTURE22", }, { - 0x6002, - "GL_TEXTURE_POOL_UNMANAGED_CHROMIUM", + 0x84D7, "GL_TEXTURE23", }, { - 0x84DA, - "GL_TEXTURE26", + 0x84D4, "GL_TEXTURE20", }, { - 0x8242, - "GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR", + 0x0D05, "GL_PACK_ALIGNMENT", }, { - 0x8243, - "GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR", + 0x84D2, "GL_TEXTURE18", }, { - 0x8244, - "GL_DEBUG_CALLBACK_FUNCTION_KHR", + 0x84D3, "GL_TEXTURE19", }, { - 0x8245, - "GL_DEBUG_CALLBACK_USER_PARAM_KHR", + 0x84D0, "GL_TEXTURE16", }, { - 0x8246, - "GL_DEBUG_SOURCE_API_KHR", + 0x84D1, "GL_TEXTURE17", }, { - 0x8247, - "GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR", + 0x93D1, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR", }, { - 0x8248, - "GL_DEBUG_SOURCE_SHADER_COMPILER_KHR", + 0x84DF, "GL_TEXTURE31", }, { - 0x8249, - "GL_DEBUG_SOURCE_THIRD_PARTY_KHR", + 0x8B97, "GL_PALETTE8_R5_G6_B5_OES", }, { - 0x88ED, - "GL_PIXEL_PACK_BUFFER_BINDING", + 0x84DD, "GL_TEXTURE29", }, { - 0x8B94, - "GL_PALETTE4_RGB5_A1_OES", + 0x84DE, "GL_TEXTURE30", }, { - 0x94F4, - "GL_PERFQUERY_COUNTER_RAW_INTEL", + 0x84DB, "GL_TEXTURE27", }, { - 0x823C, - "GL_RG32UI", + 0x84DC, "GL_TEXTURE28", }, { - 0x8A29, - "GL_UNIFORM_BUFFER_START", + 0x6002, "GL_TEXTURE_POOL_UNMANAGED_CHROMIUM", }, { - 0x8A28, - "GL_UNIFORM_BUFFER_BINDING", + 0x84DA, "GL_TEXTURE26", }, { - 0x92BE, - "GL_PRIMITIVE_BOUNDING_BOX_EXT", + 0x8242, "GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR", }, { - 0x8645, - "GL_VERTEX_ATTRIB_ARRAY_POINTER", + 0x8243, "GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR", }, { - 0x8865, - "GL_CURRENT_QUERY_EXT", + 0x8244, "GL_DEBUG_CALLBACK_FUNCTION_KHR", }, { - 0x9380, - "GL_NUM_SAMPLE_COUNTS", + 0x8245, "GL_DEBUG_CALLBACK_USER_PARAM_KHR", }, { - 0x8E5B, - "GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_OES", + 0x8246, "GL_DEBUG_SOURCE_API_KHR", }, { - 0x8E5C, - "GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_OES", + 0x8247, "GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR", }, { - 0x8E5D, - "GL_FRAGMENT_INTERPOLATION_OFFSET_BITS_OES", + 0x8248, "GL_DEBUG_SOURCE_SHADER_COMPILER_KHR", }, { - 0x906A, - "GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT", + 0x8249, "GL_DEBUG_SOURCE_THIRD_PARTY_KHR", }, { - 0x906F, - "GL_RGB10_A2UI", + 0x88ED, "GL_PIXEL_PACK_BUFFER_BINDING", }, { - 0x8E72, - "GL_PATCH_VERTICES_EXT", + 0x8B94, "GL_PALETTE4_RGB5_A1_OES", }, { - 0x8BD3, - "GL_TEXTURE_HEIGHT_QCOM", + 0x94F4, "GL_PERFQUERY_COUNTER_RAW_INTEL", }, { - 0x87FA, - "GL_3DC_XY_AMD", + 0x823C, "GL_RG32UI", }, { - 0x84C4, - "GL_TEXTURE4", + 0x8A29, "GL_UNIFORM_BUFFER_START", }, { - 0x821C, - "GL_MINOR_VERSION", + 0x8A28, "GL_UNIFORM_BUFFER_BINDING", }, { - 0x8E8A, - "GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT", + 0x92BE, "GL_PRIMITIVE_BOUNDING_BOX_EXT", }, { - 0x85B5, - "GL_VERTEX_ARRAY_BINDING_OES", + 0x8645, "GL_VERTEX_ATTRIB_ARRAY_POINTER", }, { - 0x8253, - "GL_GUILTY_CONTEXT_RESET_KHR", + 0x8865, "GL_CURRENT_QUERY_EXT", }, { - 0x8D6B, - "GL_MAX_ELEMENT_INDEX", + 0x9380, "GL_NUM_SAMPLE_COUNTS", }, { - 0x8D6C, - "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT", + 0x8E5B, "GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_OES", }, { - 0x92A1, - "GL_CONTRAST_NV", + 0x8E5C, "GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_OES", }, { - 0x8252, - "GL_LOSE_CONTEXT_ON_RESET_KHR", + 0x8E5D, "GL_FRAGMENT_INTERPOLATION_OFFSET_BITS_OES", }, { - 0x8C4C, - "GL_COMPRESSED_SRGB_S3TC_DXT1_NV", + 0x906A, "GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT", }, { - 0x8C4E, - "GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV", + 0x906F, "GL_RGB10_A2UI", }, { - 0x8251, - "GL_DEBUG_TYPE_OTHER_KHR", + 0x8E72, "GL_PATCH_VERTICES_EXT", }, { - 0x8C4F, - "GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV", + 0x8BD3, "GL_TEXTURE_HEIGHT_QCOM", }, { - 0x9309, - "GL_REFERENCED_BY_GEOMETRY_SHADER_EXT", + 0x87FA, "GL_3DC_XY_AMD", }, { - 0x93E9, - "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES", + 0x84C4, "GL_TEXTURE4", }, { - 0x93E8, - "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES", + 0x1A, "GL_CONIC_CURVE_TO_CHROMIUM", }, { - 0x8C43, - "GL_SRGB8_ALPHA8_EXT", + 0x821C, "GL_MINOR_VERSION", }, { - 0x8C42, - "GL_SRGB_ALPHA_EXT", + 0x8E8A, "GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT", }, { - 0x8C45, - "GL_SLUMINANCE8_ALPHA8_NV", + 0x85B5, "GL_VERTEX_ARRAY_BINDING_OES", }, { - 0x8C44, - "GL_SLUMINANCE_ALPHA_NV", + 0x8253, "GL_GUILTY_CONTEXT_RESET_KHR", }, { - 0x8C47, - "GL_SLUMINANCE8_NV", + 0x8D6B, "GL_MAX_ELEMENT_INDEX", }, { - 0x8C46, - "GL_SLUMINANCE_NV", + 0x8D6C, "GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT", }, { - 0x93E1, - "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES", + 0x92A1, "GL_CONTRAST_NV", }, { - 0x93E0, - "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES", + 0x8252, "GL_LOSE_CONTEXT_ON_RESET_KHR", }, { - 0x93E3, - "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES", + 0x8C4C, "GL_COMPRESSED_SRGB_S3TC_DXT1_NV", }, { - 0x93E2, - "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES", + 0x8C4E, "GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV", }, { - 0x93E5, - "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES", + 0x8251, "GL_DEBUG_TYPE_OTHER_KHR", }, { - 0x93E4, - "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES", + 0x8C4F, "GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV", }, { - 0x93E7, - "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES", + 0x9309, "GL_REFERENCED_BY_GEOMETRY_SHADER_EXT", }, { - 0x93E6, - "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES", + 0x93E9, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES", }, { - 0x8D68, - "GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES", + 0x93E8, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES", }, { - 0x8E82, - "GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_EXT", + 0x8C43, "GL_SRGB8_ALPHA8_EXT", }, { - 0x8E81, - "GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_EXT", + 0x8C42, "GL_SRGB_ALPHA_EXT", }, { - 0x85BB, - "GL_UNSIGNED_SHORT_8_8_REV_APPLE", + 0x8C45, "GL_SLUMINANCE8_ALPHA8_NV", }, { - 0x8E87, - "GL_TESS_EVALUATION_SHADER_EXT", + 0x8C44, "GL_SLUMINANCE_ALPHA_NV", }, { - 0x8E86, - "GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_EXT", + 0x8C47, "GL_SLUMINANCE8_NV", }, { - 0x8E85, - "GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_EXT", + 0x8C46, "GL_SLUMINANCE_NV", }, { - 0x8E84, - "GL_MAX_TESS_PATCH_COMPONENTS_EXT", + 0x93E1, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES", }, { - 0x8D61, - "GL_HALF_FLOAT_OES", + 0x93E0, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES", }, { - 0x8D62, - "GL_RGB565", + 0x93E3, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES", }, { - 0x8E88, - "GL_TESS_CONTROL_SHADER_EXT", + 0x93E2, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES", }, { - 0x8D64, - "GL_ETC1_RGB8_OES", + 0x93E5, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES", }, { - 0x8D65, - "GL_TEXTURE_EXTERNAL_OES", + 0x93E4, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES", }, { - 0x8D66, - "GL_SAMPLER_EXTERNAL_OES", + 0x93E7, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES", }, { - 0x8D67, - "GL_TEXTURE_BINDING_EXTERNAL_OES", + 0x93E6, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES", }, { - 0x10000000, - "GL_MULTISAMPLE_BUFFER_BIT4_QCOM", + 0x8D68, "GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES", }, { - 0x04000000, - "GL_MULTISAMPLE_BUFFER_BIT2_QCOM", + 0x8E82, "GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_EXT", }, { - 0x90D7, - "GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXT", + 0x8E81, "GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_EXT", }, { - 0x90D9, - "GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_EXT", + 0x85BB, "GL_UNSIGNED_SHORT_8_8_REV_APPLE", }, { - 0x90D8, - "GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_EXT", + 0x8E87, "GL_TESS_EVALUATION_SHADER_EXT", }, { - 0x8CEE, - "GL_COLOR_ATTACHMENT14_EXT", + 0x8E86, "GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_EXT", }, { - 0x8DC7, - "GL_UNSIGNED_INT_VEC3", + 0x8E85, "GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_EXT", }, { - 0x1701, - "GL_PATH_PROJECTION_CHROMIUM", + 0x8E84, "GL_MAX_TESS_PATCH_COMPONENTS_EXT", }, { - 0x2800, - "GL_TEXTURE_MAG_FILTER", + 0x8D61, "GL_HALF_FLOAT_OES", }, { - 0x2801, - "GL_TEXTURE_MIN_FILTER", + 0x8D62, "GL_RGB565", }, { - 0x2802, - "GL_TEXTURE_WRAP_S", + 0x8E88, "GL_TESS_CONTROL_SHADER_EXT", }, { - 0x2803, - "GL_TEXTURE_WRAP_T", + 0x8D64, "GL_ETC1_RGB8_OES", }, { - 0x8DCB, - "GL_INT_SAMPLER_3D", + 0x8D65, "GL_TEXTURE_EXTERNAL_OES", }, { - 0x3007, - "GL_CLIP_DISTANCE7_APPLE", + 0x8D66, "GL_SAMPLER_EXTERNAL_OES", }, { - 0x2703, - "GL_LINEAR_MIPMAP_LINEAR", + 0x8D67, "GL_TEXTURE_BINDING_EXTERNAL_OES", }, { - 0x3005, - "GL_CLIP_DISTANCE5_APPLE", + 0x10000000, "GL_MULTISAMPLE_BUFFER_BIT4_QCOM", }, { - 0x3004, - "GL_CLIP_DISTANCE4_APPLE", + 0x04000000, "GL_MULTISAMPLE_BUFFER_BIT2_QCOM", }, { - 0x8B98, - "GL_PALETTE8_RGBA4_OES", + 0x90D7, "GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXT", }, { - 0x3002, - "GL_CLIP_DISTANCE2_APPLE", + 0x90D9, "GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_EXT", }, { - 0x3001, - "GL_CLIP_DISTANCE1_APPLE", + 0x90D8, "GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_EXT", }, { - 0x2702, - "GL_NEAREST_MIPMAP_LINEAR", + 0x8CEE, "GL_COLOR_ATTACHMENT14_EXT", }, { - 0x1F03, - "GL_EXTENSIONS", + 0x8DC7, "GL_UNSIGNED_INT_VEC3", }, { - 0x1F02, - "GL_VERSION", + 0x1701, "GL_PATH_PROJECTION_CHROMIUM", }, { - 0x1F01, - "GL_RENDERER", + 0x2800, "GL_TEXTURE_MAG_FILTER", }, { - 0x1F00, - "GL_VENDOR", + 0x2801, "GL_TEXTURE_MIN_FILTER", }, { - 0x9247, - "GL_OVERLAY_TRANSFORM_FLIP_VERTICAL_CHROMIUM", + 0x2802, "GL_TEXTURE_WRAP_S", }, { - 0x2701, - "GL_LINEAR_MIPMAP_NEAREST", + 0x2803, "GL_TEXTURE_WRAP_T", }, { - 0x9245, - "GL_OVERLAY_TRANSFORM_NONE_CHROMIUM", + 0x8DCB, "GL_INT_SAMPLER_3D", }, { - 0x92B4, - "GL_INVERT_OVG_NV", + 0x3007, "GL_CLIP_DISTANCE7_APPLE", }, { - 0x9249, - "GL_OVERLAY_TRANSFORM_ROTATE_180_CHROMIUM", + 0x2703, "GL_LINEAR_MIPMAP_LINEAR", }, { - 0x0B94, - "GL_STENCIL_FAIL", + 0x3005, "GL_CLIP_DISTANCE5_APPLE", }, { - 0x8B4A, - "GL_MAX_VERTEX_UNIFORM_COMPONENTS", + 0x3004, "GL_CLIP_DISTANCE4_APPLE", }, { - 0x8B4B, - "GL_MAX_VARYING_COMPONENTS", + 0x8B98, "GL_PALETTE8_RGBA4_OES", }, { - 0x8B4C, - "GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS", + 0x3002, "GL_CLIP_DISTANCE2_APPLE", }, { - 0x8B4D, - "GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS", + 0x3001, "GL_CLIP_DISTANCE1_APPLE", }, { - 0x8B4F, - "GL_SHADER_TYPE", + 0x2702, "GL_NEAREST_MIPMAP_LINEAR", }, { - 0x9122, - "GL_MAX_VERTEX_OUTPUT_COMPONENTS", + 0x1F03, "GL_EXTENSIONS", }, { - 0x9123, - "GL_MAX_GEOMETRY_INPUT_COMPONENTS_EXT", + 0x1F02, "GL_VERSION", }, { - 0x83FB, - "GL_PERFQUERY_WAIT_INTEL", + 0x1F01, "GL_RENDERER", }, { - 0x9121, - "GL_BUFFER_MAP_OFFSET", + 0x1F00, "GL_VENDOR", }, { - 0x00004000, - "GL_COLOR_BUFFER_BIT", + 0x9247, "GL_OVERLAY_TRANSFORM_FLIP_VERTICAL_CHROMIUM", }, { - 0x9125, - "GL_MAX_FRAGMENT_INPUT_COMPONENTS", + 0x2701, "GL_LINEAR_MIPMAP_NEAREST", }, { - 0x00000010, - "GL_TESS_EVALUATION_SHADER_BIT_EXT", + 0x9245, "GL_OVERLAY_TRANSFORM_NONE_CHROMIUM", }, { - 0x8834, - "GL_DRAW_BUFFER15_EXT", + 0x92B4, "GL_INVERT_OVG_NV", }, { - 0x8833, - "GL_DRAW_BUFFER14_EXT", + 0x9249, "GL_OVERLAY_TRANSFORM_ROTATE_180_CHROMIUM", }, { - 0x8832, - "GL_DRAW_BUFFER13_EXT", + 0x0B94, "GL_STENCIL_FAIL", }, { - 0x8831, - "GL_DRAW_BUFFER12_EXT", + 0x8B4A, "GL_MAX_VERTEX_UNIFORM_COMPONENTS", }, { - 0x8830, - "GL_DRAW_BUFFER11_EXT", + 0x8B4B, "GL_MAX_VARYING_COMPONENTS", }, { - 0x8DC5, - "GL_SAMPLER_CUBE_SHADOW_NV", + 0x8B4C, "GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS", }, { - 0x94FF, - "GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL", + 0x8B4D, "GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS", }, { - 0x94FE, - "GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL", + 0x8B4F, "GL_SHADER_TYPE", }, { - 0x94FD, - "GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL", + 0x9122, "GL_MAX_VERTEX_OUTPUT_COMPONENTS", }, { - 0x94FC, - "GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL", + 0x9123, "GL_MAX_GEOMETRY_INPUT_COMPONENTS_EXT", }, { - 0x94FB, - "GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL", + 0x83FB, "GL_PERFQUERY_WAIT_INTEL", }, { - 0x93B8, - "GL_COMPRESSED_RGBA_ASTC_10x5_KHR", + 0x9121, "GL_BUFFER_MAP_OFFSET", }, { - 0x8B65, - "GL_FLOAT_MAT2x3_NV", + 0x9089, "GL_COUNT_DOWN_CHROMIUM", }, { - 0x9241, - "GL_UNPACK_PREMULTIPLY_ALPHA_CHROMIUM", + 0x9088, "GL_COUNT_UP_CHROMIUM", }, { - 0x00010000, - "GL_STENCIL_BUFFER_BIT0_QCOM", + 0x00004000, "GL_COLOR_BUFFER_BIT", }, { - 0x83FA, - "GL_PERFQUERY_FLUSH_INTEL", + 0x9125, "GL_MAX_FRAGMENT_INPUT_COMPONENTS", }, { - 0x0D03, - "GL_PACK_SKIP_ROWS", + 0x00000010, "GL_TESS_EVALUATION_SHADER_BIT_EXT", }, { - 0x84F3, - "GL_FENCE_STATUS_NV", + 0x8834, "GL_DRAW_BUFFER15_EXT", }, { - 0x88E6, - "GL_STATIC_COPY", + 0x8833, "GL_DRAW_BUFFER14_EXT", }, { - 0x0B93, - "GL_STENCIL_VALUE_MASK", + 0x8832, "GL_DRAW_BUFFER13_EXT", }, { - 0x0B92, - "GL_STENCIL_FUNC", + 0x8831, "GL_DRAW_BUFFER12_EXT", }, { - 0x0B91, - "GL_STENCIL_CLEAR_VALUE", + 0x8830, "GL_DRAW_BUFFER11_EXT", }, { - 0x883D, - "GL_BLEND_EQUATION_ALPHA", + 0x8DC5, "GL_SAMPLER_CUBE_SHADOW_NV", }, { - 0x0B97, - "GL_STENCIL_REF", + 0x94FF, "GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL", }, { - 0x0B96, - "GL_STENCIL_PASS_DEPTH_PASS", + 0x94FE, "GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL", }, { - 0x0B95, - "GL_STENCIL_PASS_DEPTH_FAIL", + 0x94FD, "GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL", }, { - 0x2700, - "GL_NEAREST_MIPMAP_NEAREST", + 0x94FC, "GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL", }, { - 0x94F5, - "GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL", + 0x94FB, "GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL", }, { - 0x0B98, - "GL_STENCIL_WRITEMASK", + 0x93B8, "GL_COMPRESSED_RGBA_ASTC_10x5_KHR", }, { - 0x94F3, - "GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL", + 0x8B65, "GL_FLOAT_MAT2x3_NV", }, { - 0x94F2, - "GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL", + 0x00010000, "GL_STENCIL_BUFFER_BIT0_QCOM", }, { - 0x94F1, - "GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL", + 0x83FA, "GL_PERFQUERY_FLUSH_INTEL", }, { - 0x94F0, - "GL_PERFQUERY_COUNTER_EVENT_INTEL", + 0x0D03, "GL_PACK_SKIP_ROWS", }, { - 0x8B40, - "GL_PROGRAM_OBJECT_EXT", + 0x84F3, "GL_FENCE_STATUS_NV", }, { - 0x1004, - "GL_TEXTURE_BORDER_COLOR_EXT", + 0x908D, "GL_BOUNDING_BOX_CHROMIUM", }, { - 0x8A2D, - "GL_MAX_FRAGMENT_UNIFORM_BLOCKS", + 0x88E6, "GL_STATIC_COPY", }, { - 0x8B48, - "GL_SHADER_OBJECT_EXT", + 0x0B93, "GL_STENCIL_VALUE_MASK", }, { - 0x8B49, - "GL_MAX_FRAGMENT_UNIFORM_COMPONENTS", + 0x0B92, "GL_STENCIL_FUNC", }, { - 0x813A, - "GL_TEXTURE_MIN_LOD", + 0x0B91, "GL_STENCIL_CLEAR_VALUE", }, { - 0x8DE1, - "GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT", + 0x883D, "GL_BLEND_EQUATION_ALPHA", }, { - 0x8DE0, - "GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT", + 0x0B97, "GL_STENCIL_REF", }, { - 0x924C, - "GL_MOUSE_POSITION_CHROMIUM", + 0x0B96, "GL_STENCIL_PASS_DEPTH_PASS", }, { - 0x924B, - "GL_SUBSCRIBED_VALUES_BUFFER_CHROMIUM", + 0x0B95, "GL_STENCIL_PASS_DEPTH_FAIL", }, { - 0x924A, - "GL_OVERLAY_TRANSFORM_ROTATE_270_CHROMIUM", + 0x2700, "GL_NEAREST_MIPMAP_NEAREST", }, { - 0x8A2F, - "GL_MAX_UNIFORM_BUFFER_BINDINGS", + 0x94F5, "GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL", }, { - 0x20000000, - "GL_MULTISAMPLE_BUFFER_BIT5_QCOM", + 0x0B98, "GL_STENCIL_WRITEMASK", }, { - 64, - "GL_MAILBOX_SIZE_CHROMIUM", + 0x94F3, "GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL", }, { - 0x0DE1, - "GL_TEXTURE_2D", + 0x94F2, "GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL", }, { - 0x8A2C, - "GL_MAX_GEOMETRY_UNIFORM_BLOCKS_EXT", + 0x94F1, "GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL", }, { - 0x80C9, - "GL_BLEND_SRC_RGB", + 0x94F0, "GL_PERFQUERY_COUNTER_EVENT_INTEL", }, { - 0x80C8, - "GL_BLEND_DST_RGB", + 0x8B40, "GL_PROGRAM_OBJECT_EXT", }, { - 0x912F, - "GL_TEXTURE_IMMUTABLE_FORMAT_EXT", + 0x1004, "GL_TEXTURE_BORDER_COLOR_EXT", }, { - 0x8A2B, - "GL_MAX_VERTEX_UNIFORM_BLOCKS", + 0x908B, "GL_CONVEX_HULL_CHROMIUM", }, { - 0x88EC, - "GL_PIXEL_UNPACK_BUFFER", + 0x8B48, "GL_SHADER_OBJECT_EXT", }, { - 0x8D8F, - "GL_RGB8I", + 0x8B49, "GL_MAX_FRAGMENT_UNIFORM_COMPONENTS", }, { - 0x8059, - "GL_RGB10_A2_EXT", + 0x813A, "GL_TEXTURE_MIN_LOD", }, { - 0x8058, - "GL_RGBA8_OES", + 0x8DE1, "GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT", }, { - 0x8B93, - "GL_PALETTE4_RGBA4_OES", + 0x8DE0, "GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT", }, { - 0x88EB, - "GL_PIXEL_PACK_BUFFER", + 0x924C, "GL_MOUSE_POSITION_CHROMIUM", }, { - 0x8E83, - "GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_EXT", + 0x924B, "GL_SUBSCRIBED_VALUES_BUFFER_CHROMIUM", }, { - 0x8051, - "GL_RGB8_OES", + 0x924A, "GL_OVERLAY_TRANSFORM_ROTATE_270_CHROMIUM", }, { - 0x8CAD, - "GL_DEPTH32F_STENCIL8", + 0x8A2F, "GL_MAX_UNIFORM_BUFFER_BINDINGS", }, { - 0x8052, - "GL_RGB10_EXT", + 0x20000000, "GL_MULTISAMPLE_BUFFER_BIT5_QCOM", }, { - 0x8CAB, - "GL_RENDERBUFFER_SAMPLES_ANGLE", + 64, "GL_MAILBOX_SIZE_CHROMIUM", }, { - 0x8CAC, - "GL_DEPTH_COMPONENT32F", + 0x0DE1, "GL_TEXTURE_2D", }, { - 0x8057, - "GL_RGB5_A1", + 0x8A2C, "GL_MAX_GEOMETRY_UNIFORM_BLOCKS_EXT", }, { - 0x8056, - "GL_RGBA4", + 0x80C9, "GL_BLEND_SRC_RGB", }, { - 0x8232, - "GL_R8UI", + 0x80C8, "GL_BLEND_DST_RGB", }, { - 0x150A, - "GL_INVERT", + 0x912F, "GL_TEXTURE_IMMUTABLE_FORMAT_EXT", }, { - 0x01000000, - "GL_MULTISAMPLE_BUFFER_BIT0_QCOM", + 0x8A2B, "GL_MAX_VERTEX_UNIFORM_BLOCKS", }, { - 0x78ED, - "GL_PIXEL_PACK_TRANSFER_BUFFER_CHROMIUM", + 0x88EC, "GL_PIXEL_UNPACK_BUFFER", }, { - 0x78EE, - "GL_PIXEL_PACK_TRANSFER_BUFFER_BINDING_CHROMIUM", + 0x8D8F, "GL_RGB8I", }, { - 0x6001, - "GL_TEXTURE_POOL_MANAGED_CHROMIUM", + 0x8059, "GL_RGB10_A2_EXT", }, { - 0x0B45, - "GL_CULL_FACE_MODE", + 0x8058, "GL_RGBA8_OES", }, { - 0x8B92, - "GL_PALETTE4_R5_G6_B5_OES", + 0x8B93, "GL_PALETTE4_RGBA4_OES", }, { - 0x00100000, - "GL_STENCIL_BUFFER_BIT4_QCOM", + 0x88EB, "GL_PIXEL_PACK_BUFFER", }, { - 0x8E4E, - "GL_LAST_VERTEX_CONVENTION_EXT", + 0x8E83, "GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_EXT", }, { - 0x8E4D, - "GL_FIRST_VERTEX_CONVENTION_EXT", + 0x8051, "GL_RGB8_OES", }, { - 0x8E24, - "GL_TRANSFORM_FEEDBACK_ACTIVE", + 0x8CAD, "GL_DEPTH32F_STENCIL8", }, { - 0x8E45, - "GL_TEXTURE_SWIZZLE_A", + 0x8052, "GL_RGB10_EXT", }, { - 0x8E44, - "GL_TEXTURE_SWIZZLE_B", + 0x8CAB, "GL_RENDERBUFFER_SAMPLES_ANGLE", }, { - 0x8E43, - "GL_TEXTURE_SWIZZLE_G", + 0x8CAC, "GL_DEPTH_COMPONENT32F", }, { - 0x8E42, - "GL_TEXTURE_SWIZZLE_R", + 0x8057, "GL_RGB5_A1", }, { - 0x8D20, - "GL_STENCIL_ATTACHMENT", + 0x8056, "GL_RGBA4", }, { - 0x8B91, - "GL_PALETTE4_RGBA8_OES", + 0x8232, "GL_R8UI", }, { - 0x00000200, - "GL_DEPTH_BUFFER_BIT1_QCOM", + 0x90A4, "GL_ROUND_CHROMIUM", }, { - 0x00008000, - "GL_COVERAGE_BUFFER_BIT_NV", + 0x150A, "GL_INVERT", }, { - 0x1506, - "GL_XOR_NV", + 0x01000000, "GL_MULTISAMPLE_BUFFER_BIT0_QCOM", }, { - 0x8CA8, - "GL_READ_FRAMEBUFFER_ANGLE", + 0x78ED, "GL_PIXEL_PACK_TRANSFER_BUFFER_CHROMIUM", }, { - 0x8CA9, - "GL_DRAW_FRAMEBUFFER_ANGLE", + 0x78EE, "GL_PIXEL_PACK_TRANSFER_BUFFER_BINDING_CHROMIUM", }, { - 0x8CA6, - "GL_FRAMEBUFFER_BINDING", + 0x6001, "GL_TEXTURE_POOL_MANAGED_CHROMIUM", }, { - 0x8CA7, - "GL_RENDERBUFFER_BINDING", + 0x0B45, "GL_CULL_FACE_MODE", }, { - 0x8CA4, - "GL_STENCIL_BACK_VALUE_MASK", + 0x8B92, "GL_PALETTE4_R5_G6_B5_OES", }, { - 0x8CA5, - "GL_STENCIL_BACK_WRITEMASK", + 0x00100000, "GL_STENCIL_BUFFER_BIT4_QCOM", }, { - 0x8B90, - "GL_PALETTE4_RGB8_OES", + 0x8E4E, "GL_LAST_VERTEX_CONVENTION_EXT", }, { - 0x8CA3, - "GL_STENCIL_BACK_REF", + 0x8E4D, "GL_FIRST_VERTEX_CONVENTION_EXT", }, { - 0x80E8, - "GL_MAX_ELEMENTS_VERTICES", + 0x8E24, "GL_TRANSFORM_FEEDBACK_ACTIVE", }, { - 0x80CB, - "GL_BLEND_SRC_ALPHA", + 0x8E45, "GL_TEXTURE_SWIZZLE_A", }, { - 0x80CA, - "GL_BLEND_DST_ALPHA", + 0x8E44, "GL_TEXTURE_SWIZZLE_B", }, { - 0x8CE7, - "GL_COLOR_ATTACHMENT7_EXT", + 0x8E43, "GL_TEXTURE_SWIZZLE_G", }, { - 0x93B0, - "GL_COMPRESSED_RGBA_ASTC_4x4_KHR", + 0x8E42, "GL_TEXTURE_SWIZZLE_R", }, { - 0x93B1, - "GL_COMPRESSED_RGBA_ASTC_5x4_KHR", + 0x8D20, "GL_STENCIL_ATTACHMENT", }, { - 0x93B2, - "GL_COMPRESSED_RGBA_ASTC_5x5_KHR", + 0x8B91, "GL_PALETTE4_RGBA8_OES", }, { - 0x93B3, - "GL_COMPRESSED_RGBA_ASTC_6x5_KHR", + 0x00000200, "GL_DEPTH_BUFFER_BIT1_QCOM", }, { - 0x93B4, - "GL_COMPRESSED_RGBA_ASTC_6x6_KHR", + 0x8C85, "GL_TRANSFORM_FEEDBACK_BUFFER_SIZE", }, { - 0x93B5, - "GL_COMPRESSED_RGBA_ASTC_8x5_KHR", + 0x00008000, "GL_COVERAGE_BUFFER_BIT_NV", }, { - 0x93B6, - "GL_COMPRESSED_RGBA_ASTC_8x6_KHR", + 0x1506, "GL_XOR_NV", }, { - 0x93B7, - "GL_COMPRESSED_RGBA_ASTC_8x8_KHR", + 0x8CA8, "GL_READ_FRAMEBUFFER_ANGLE", }, { - 0x8CD6, - "GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT", + 0x8CA9, "GL_DRAW_FRAMEBUFFER_ANGLE", }, { - 0x93B9, - "GL_COMPRESSED_RGBA_ASTC_10x6_KHR", + 0x8CA6, "GL_FRAMEBUFFER_BINDING", }, { - 0x80E9, - "GL_MAX_ELEMENTS_INDICES", + 0x8CA7, "GL_RENDERBUFFER_BINDING", }, { - 0x8CE5, - "GL_COLOR_ATTACHMENT5_EXT", + 0x8CA4, "GL_STENCIL_BACK_VALUE_MASK", }, { - 0x8C84, - "GL_TRANSFORM_FEEDBACK_BUFFER_START", + 0x8CA5, "GL_STENCIL_BACK_WRITEMASK", }, { - 0x8DC2, - "GL_SAMPLER_BUFFER_EXT", + 0x8B90, "GL_PALETTE4_RGB8_OES", }, { - 0x8C36, - "GL_SAMPLE_SHADING_OES", + 0x8CA3, "GL_STENCIL_BACK_REF", }, { - 0x8C37, - "GL_MIN_SAMPLE_SHADING_VALUE_OES", + 0x80E8, "GL_MAX_ELEMENTS_VERTICES", }, { - 0x8F97, - "GL_RGBA8_SNORM", + 0x80CB, "GL_BLEND_SRC_ALPHA", }, { - 0x8CE9, - "GL_COLOR_ATTACHMENT9_EXT", + 0x80CA, "GL_BLEND_DST_ALPHA", }, { - 0x8DAD, - "GL_FLOAT_32_UNSIGNED_INT_24_8_REV", + 0x8CE7, "GL_COLOR_ATTACHMENT7_EXT", }, { - 0x8B96, - "GL_PALETTE8_RGBA8_OES", + 0x93B0, "GL_COMPRESSED_RGBA_ASTC_4x4_KHR", }, { - 0x8872, - "GL_MAX_TEXTURE_IMAGE_UNITS", + 0x93B1, "GL_COMPRESSED_RGBA_ASTC_5x4_KHR", }, { - 0x8DC6, - "GL_UNSIGNED_INT_VEC2", + 0x93B2, "GL_COMPRESSED_RGBA_ASTC_5x5_KHR", }, { - 0x8905, - "GL_MAX_PROGRAM_TEXEL_OFFSET", + 0x93B3, "GL_COMPRESSED_RGBA_ASTC_6x5_KHR", }, { - 0x8508, - "GL_DECR_WRAP", + 0x93B4, "GL_COMPRESSED_RGBA_ASTC_6x6_KHR", }, { - 0x92AD, - "GL_HSL_HUE_KHR", + 0x93B5, "GL_COMPRESSED_RGBA_ASTC_8x5_KHR", }, { - 0x92AE, - "GL_HSL_SATURATION_KHR", + 0x93B6, "GL_COMPRESSED_RGBA_ASTC_8x6_KHR", }, { - 0x92AF, - "GL_HSL_COLOR_KHR", + 0x93B7, "GL_COMPRESSED_RGBA_ASTC_8x8_KHR", }, { - 0x8BD4, - "GL_TEXTURE_DEPTH_QCOM", + 0x8CD6, "GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT", }, { - 0x8DC4, - "GL_SAMPLER_2D_ARRAY_SHADOW_NV", + 0x93B9, "GL_COMPRESSED_RGBA_ASTC_10x6_KHR", }, { - 0x8507, - "GL_INCR_WRAP", + 0x80E9, "GL_MAX_ELEMENTS_INDICES", }, { - 0x82FC, - "GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR", + 0x8CE5, "GL_COLOR_ATTACHMENT5_EXT", }, { - 0x8895, - "GL_ELEMENT_ARRAY_BUFFER_BINDING", + 0x8C84, "GL_TRANSFORM_FEEDBACK_BUFFER_START", }, { - 0x8894, - "GL_ARRAY_BUFFER_BINDING", + 0x8DC2, "GL_SAMPLER_BUFFER_EXT", }, { - 0x92A3, - "GL_INVERT_RGB_NV", + 0x8C36, "GL_SAMPLE_SHADING_OES", }, { - 0x905F, - "GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT", + 0x8C37, "GL_MIN_SAMPLE_SHADING_VALUE_OES", }, { - 0x92A5, - "GL_LINEARBURN_NV", + 0x8F97, "GL_RGBA8_SNORM", }, { - 0x8893, - "GL_ELEMENT_ARRAY_BUFFER", + 0x8CE9, "GL_COLOR_ATTACHMENT9_EXT", }, { - 0x8892, - "GL_ARRAY_BUFFER", + 0x8DAD, "GL_FLOAT_32_UNSIGNED_INT_24_8_REV", }, { - 0x92A8, - "GL_PINLIGHT_NV", + 0x8B96, "GL_PALETTE8_RGBA8_OES", }, { - 0x92A9, - "GL_HARDMIX_NV", + 0x8872, "GL_MAX_TEXTURE_IMAGE_UNITS", }, { - 0x9112, - "GL_OBJECT_TYPE_APPLE", + 0x0A, "GL_QUADRATIC_CURVE_TO_CHROMIUM", }, { - 0x90CC, - "GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_EXT", + 0x8905, "GL_MAX_PROGRAM_TEXEL_OFFSET", }, { - 0x90CD, - "GL_MAX_GEOMETRY_IMAGE_UNIFORMS_EXT", + 0x8508, "GL_DECR_WRAP", }, { - 0x919F, - "GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_EXT", + 0x92AD, "GL_HSL_HUE_KHR", }, { - 0x919E, - "GL_TEXTURE_BUFFER_SIZE_EXT", + 0x92AE, "GL_HSL_SATURATION_KHR", }, { - 0x919D, - "GL_TEXTURE_BUFFER_OFFSET_EXT", + 0x92AF, "GL_HSL_COLOR_KHR", }, { - 0x8BD8, - "GL_TEXTURE_IMAGE_VALID_QCOM", + 0x8BD4, "GL_TEXTURE_DEPTH_QCOM", }, { - 0x9278, - "GL_COMPRESSED_RGBA8_ETC2_EAC", + 0x8DC4, "GL_SAMPLER_2D_ARRAY_SHADOW_NV", }, { - 0x9279, - "GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC", + 0x8507, "GL_INCR_WRAP", }, { - 0x8DA7, - "GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT", + 0x82FC, "GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR", }, { - 0x9272, - "GL_COMPRESSED_RG11_EAC", + 0x8895, "GL_ELEMENT_ARRAY_BUFFER_BINDING", }, { - 0x8DA8, - "GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT", + 0x8894, "GL_ARRAY_BUFFER_BINDING", }, { - 0x9270, - "GL_COMPRESSED_R11_EAC", + 0x92A3, "GL_INVERT_RGB_NV", }, { - 0x9271, - "GL_COMPRESSED_SIGNED_R11_EAC", + 0x905F, "GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT", }, { - 0x9276, - "GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2", + 0x92A5, "GL_LINEARBURN_NV", }, { - 0x887F, - "GL_GEOMETRY_SHADER_INVOCATIONS_EXT", + 0x8893, "GL_ELEMENT_ARRAY_BUFFER", }, { - 0x8A3B, - "GL_UNIFORM_OFFSET", + 0x8892, "GL_ARRAY_BUFFER", }, { - 0x9275, - "GL_COMPRESSED_SRGB8_ETC2", + 0x92A8, "GL_PINLIGHT_NV", }, { - 0x84D5, - "GL_TEXTURE21", + 0x92A9, "GL_HARDMIX_NV", }, { - 0x8C3A, - "GL_R11F_G11F_B10F_APPLE", + 0x9112, "GL_OBJECT_TYPE_APPLE", }, { - 0x8C3B, - "GL_UNSIGNED_INT_10F_11F_11F_REV_APPLE", + 0x90CC, "GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_EXT", }, { - 0x8C3D, - "GL_RGB9_E5_APPLE", + 0x90CD, "GL_MAX_GEOMETRY_IMAGE_UNIFORMS_EXT", }, { - 0x8C3E, - "GL_UNSIGNED_INT_5_9_9_9_REV_APPLE", + 0x919F, "GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_EXT", }, { - 0x9287, - "GL_DST_NV", + 0x919E, "GL_TEXTURE_BUFFER_SIZE_EXT", }, { - 0x93BA, - "GL_COMPRESSED_RGBA_ASTC_10x8_KHR", + 0x919D, "GL_TEXTURE_BUFFER_OFFSET_EXT", }, { - 0x9285, - "GL_BLEND_ADVANCED_COHERENT_KHR", + 0x8BD8, "GL_TEXTURE_IMAGE_VALID_QCOM", }, { - 0x93BC, - "GL_COMPRESSED_RGBA_ASTC_12x10_KHR", + 0x9278, "GL_COMPRESSED_RGBA8_ETC2_EAC", }, { - 0x93BD, - "GL_COMPRESSED_RGBA_ASTC_12x12_KHR", + 0x9279, "GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC", }, { - 0x84E8, - "GL_MAX_RENDERBUFFER_SIZE", + 0x8DA7, "GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT", }, { - 0x9281, - "GL_BLEND_OVERLAP_NV", + 0x9272, "GL_COMPRESSED_RG11_EAC", }, { - 0x9280, - "GL_BLEND_PREMULTIPLIED_SRC_NV", + 0x8DA8, "GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT", }, { - 0x00002000, - "GL_DEPTH_BUFFER_BIT5_QCOM", + 0x9270, "GL_COMPRESSED_R11_EAC", }, { - 0x8370, - "GL_MIRRORED_REPEAT", + 0x9271, "GL_COMPRESSED_SIGNED_R11_EAC", }, { - 0x84E0, - "GL_ACTIVE_TEXTURE", + 0x9276, "GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2", }, { - 0x8800, - "GL_STENCIL_BACK_FUNC", + 0x887F, "GL_GEOMETRY_SHADER_INVOCATIONS_EXT", }, { - 0x8801, - "GL_STENCIL_BACK_FAIL", + 0x8A3B, "GL_UNIFORM_OFFSET", }, { - 0x0D33, - "GL_MAX_TEXTURE_SIZE", + 0x9275, "GL_COMPRESSED_SRGB8_ETC2", }, { - 0x0D32, - "GL_MAX_CLIP_DISTANCES_APPLE", + 0x8D7C, "GL_RGBA8UI", }, { - 0x8624, - "GL_VERTEX_ATTRIB_ARRAY_STRIDE", + 0x84D5, "GL_TEXTURE21", }, { - 0x8625, - "GL_VERTEX_ATTRIB_ARRAY_TYPE", + 0x8C3A, "GL_R11F_G11F_B10F_APPLE", }, { - 0x8622, - "GL_VERTEX_ATTRIB_ARRAY_ENABLED", + 0x8C3B, "GL_UNSIGNED_INT_10F_11F_11F_REV_APPLE", }, { - 0x8623, - "GL_VERTEX_ATTRIB_ARRAY_SIZE", + 0x8C3D, "GL_RGB9_E5_APPLE", }, { - 0x8DB9, - "GL_FRAMEBUFFER_SRGB_EXT", + 0x8C3E, "GL_UNSIGNED_INT_5_9_9_9_REV_APPLE", }, { - 0x9307, - "GL_REFERENCED_BY_TESS_CONTROL_SHADER_EXT", + 0x9287, "GL_DST_NV", }, { - 0x8259, - "GL_ACTIVE_PROGRAM_EXT", + 0x93BA, "GL_COMPRESSED_RGBA_ASTC_10x8_KHR", }, { - 0x8258, - "GL_PROGRAM_SEPARABLE_EXT", + 0x9285, "GL_BLEND_ADVANCED_COHERENT_KHR", }, { - 0x8257, - "GL_PROGRAM_BINARY_RETRIEVABLE_HINT", + 0x93BC, "GL_COMPRESSED_RGBA_ASTC_12x10_KHR", }, { - 0x8256, - "GL_RESET_NOTIFICATION_STRATEGY_KHR", + 0x93BD, "GL_COMPRESSED_RGBA_ASTC_12x12_KHR", }, { - 0x8255, - "GL_UNKNOWN_CONTEXT_RESET_KHR", + 0x84E8, "GL_MAX_RENDERBUFFER_SIZE", }, { - 0x8254, - "GL_INNOCENT_CONTEXT_RESET_KHR", + 0x9281, "GL_BLEND_OVERLAP_NV", }, { - 0x1100, - "GL_DONT_CARE", + 0x9280, "GL_BLEND_PREMULTIPLIED_SRC_NV", }, { - 0x1101, - "GL_FASTEST", + 0x00002000, "GL_DEPTH_BUFFER_BIT5_QCOM", }, { - 0x1102, - "GL_NICEST", + 0x8370, "GL_MIRRORED_REPEAT", }, { - 0x8250, - "GL_DEBUG_TYPE_PERFORMANCE_KHR", + 0x84E0, "GL_ACTIVE_TEXTURE", }, { - 0x8CEB, - "GL_COLOR_ATTACHMENT11_EXT", + 0x8800, "GL_STENCIL_BACK_FUNC", }, { - 0x8CEC, - "GL_COLOR_ATTACHMENT12_EXT", + 0x8801, "GL_STENCIL_BACK_FAIL", }, { - 0x0408, - "GL_FRONT_AND_BACK", + 0x0D33, "GL_MAX_TEXTURE_SIZE", }, { - 0x8CEA, - "GL_COLOR_ATTACHMENT10_EXT", + 0x0D32, "GL_MAX_CLIP_DISTANCES_APPLE", }, { - 0x8CEF, - "GL_COLOR_ATTACHMENT15_EXT", + 0x8624, "GL_VERTEX_ATTRIB_ARRAY_STRIDE", }, { - 0x8CED, - "GL_COLOR_ATTACHMENT13_EXT", + 0x8625, "GL_VERTEX_ATTRIB_ARRAY_TYPE", }, { - 0x8829, - "GL_DRAW_BUFFER4_EXT", + 0x8622, "GL_VERTEX_ATTRIB_ARRAY_ENABLED", }, { - 0x0404, - "GL_FRONT", + 0x8623, "GL_VERTEX_ATTRIB_ARRAY_SIZE", }, { - 0x0405, - "GL_BACK", + 0x8DB9, "GL_FRAMEBUFFER_SRGB_EXT", }, { - 0x88E1, - "GL_STREAM_READ", + 0x9307, "GL_REFERENCED_BY_TESS_CONTROL_SHADER_EXT", }, { - 0x88E0, - "GL_STREAM_DRAW", + 0x8259, "GL_ACTIVE_PROGRAM_EXT", }, { - 0x88E2, - "GL_STREAM_COPY", + 0x8258, "GL_PROGRAM_SEPARABLE_EXT", }, { - 0x88E5, - "GL_STATIC_READ", + 0x8257, "GL_PROGRAM_BINARY_RETRIEVABLE_HINT", }, { - 0x88E4, - "GL_STATIC_DRAW", + 0x8256, "GL_RESET_NOTIFICATION_STRATEGY_KHR", }, { - 0x93C6, - "GL_COMPRESSED_RGBA_ASTC_5x5x5_OES", + 0x8255, "GL_UNKNOWN_CONTEXT_RESET_KHR", }, { - 0x88E9, - "GL_DYNAMIC_READ", + 0x8254, "GL_INNOCENT_CONTEXT_RESET_KHR", }, { - 0x88E8, - "GL_DYNAMIC_DRAW", + 0x1100, "GL_DONT_CARE", }, { - 0x9291, - "GL_PLUS_NV", + 0x1101, "GL_FASTEST", }, { - 0x8CAA, - "GL_READ_FRAMEBUFFER_BINDING_ANGLE", + 0x1102, "GL_NICEST", }, { - 0x93C5, - "GL_COMPRESSED_RGBA_ASTC_5x5x4_OES", + 0x8250, "GL_DEBUG_TYPE_PERFORMANCE_KHR", }, { - 0x40000000, - "GL_MULTISAMPLE_BUFFER_BIT6_QCOM", + 0x8CEB, "GL_COLOR_ATTACHMENT11_EXT", }, { - 0x88EA, - "GL_DYNAMIC_COPY", + 0x8CEC, "GL_COLOR_ATTACHMENT12_EXT", }, { - 0x9116, - "GL_SYNC_FENCE_APPLE", + 0x0408, "GL_FRONT_AND_BACK", }, { - 0x93C4, - "GL_COMPRESSED_RGBA_ASTC_5x4x4_OES", + 0x8CEA, "GL_COLOR_ATTACHMENT10_EXT", }, { - 0x88EE, - "GL_ETC1_SRGB8_NV", + 0x8CEF, "GL_COLOR_ATTACHMENT15_EXT", }, { - 0x78EC, - "GL_PIXEL_UNPACK_TRANSFER_BUFFER_CHROMIUM", + 0x8CED, "GL_COLOR_ATTACHMENT13_EXT", }, { - 0x88EF, - "GL_PIXEL_UNPACK_BUFFER_BINDING", + 0x8829, "GL_DRAW_BUFFER4_EXT", }, { - 0x93C3, - "GL_COMPRESSED_RGBA_ASTC_4x4x4_OES", + 0x0404, "GL_FRONT", }, { - 0x00000800, - "GL_DEPTH_BUFFER_BIT3_QCOM", + 0x0405, "GL_BACK", }, { - 0x1903, - "GL_RED_EXT", + 0x88E1, "GL_STREAM_READ", }, { - 0x93C2, - "GL_COMPRESSED_RGBA_ASTC_4x4x3_OES", + 0x88E0, "GL_STREAM_DRAW", }, { - 0x8CE2, - "GL_COLOR_ATTACHMENT2_EXT", + 0x88E2, "GL_STREAM_COPY", }, { - 0x8BC1, - "GL_COUNTER_RANGE_AMD", + 0x88E5, "GL_STATIC_READ", }, { - 0x8CE0, - "GL_COLOR_ATTACHMENT0", + 0x88E4, "GL_STATIC_DRAW", }, { - 0x8CE1, - "GL_COLOR_ATTACHMENT1_EXT", + 0x93C6, "GL_COMPRESSED_RGBA_ASTC_5x5x5_OES", }, { - 0x8CE6, - "GL_COLOR_ATTACHMENT6_EXT", + 0x88E9, "GL_DYNAMIC_READ", }, { - 0x93C1, - "GL_COMPRESSED_RGBA_ASTC_4x3x3_OES", + 0x88E8, "GL_DYNAMIC_DRAW", }, { - 0x8A1F, - "GL_RGB_422_APPLE", + 0x9291, "GL_PLUS_NV", }, { - 0x93DC, - "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR", + 0x8CAA, "GL_READ_FRAMEBUFFER_BINDING_ANGLE", }, { - 0x9292, - "GL_PLUS_DARKER_NV", + 0x93C5, "GL_COMPRESSED_RGBA_ASTC_5x5x4_OES", }, { - 0x8CE8, - "GL_COLOR_ATTACHMENT8_EXT", + 0x40000000, "GL_MULTISAMPLE_BUFFER_BIT6_QCOM", }, { - 0x93C0, - "GL_COMPRESSED_RGBA_ASTC_3x3x3_OES", + 0x88EA, "GL_DYNAMIC_COPY", }, { - 0x0C23, - "GL_COLOR_WRITEMASK", + 0x9116, "GL_SYNC_FENCE_APPLE", }, { - 0x0C22, - "GL_COLOR_CLEAR_VALUE", + 0x93C4, "GL_COMPRESSED_RGBA_ASTC_5x4x4_OES", }, { - 0x8A11, - "GL_UNIFORM_BUFFER", + 0x88EE, "GL_ETC1_SRGB8_NV", }, { - 0x8823, - "GL_WRITEONLY_RENDERING_QCOM", + 0x78EC, "GL_PIXEL_UNPACK_TRANSFER_BUFFER_CHROMIUM", }, { - 0x8824, - "GL_MAX_DRAW_BUFFERS_EXT", + 0x88EF, "GL_PIXEL_UNPACK_BUFFER_BINDING", }, { - 0x825E, - "GL_LAYER_PROVOKING_VERTEX_EXT", + 0x93C3, "GL_COMPRESSED_RGBA_ASTC_4x4x4_OES", }, { - 0x825A, - "GL_PROGRAM_PIPELINE_BINDING_EXT", + 0x00000800, "GL_DEPTH_BUFFER_BIT3_QCOM", }, { - 0x1909, - "GL_LUMINANCE", + 0x1903, "GL_RED_EXT", }, { - 0x0D3A, - "GL_MAX_VIEWPORT_DIMS", + 0x93C2, "GL_COMPRESSED_RGBA_ASTC_4x4x3_OES", }, { - 0x8B53, - "GL_INT_VEC2", + 0x8CE2, "GL_COLOR_ATTACHMENT2_EXT", }, { - 0x8826, - "GL_DRAW_BUFFER1_EXT", + 0x8BC1, "GL_COUNTER_RANGE_AMD", }, { - 0x809E, - "GL_SAMPLE_ALPHA_TO_COVERAGE", + 0x8CE0, "GL_COLOR_ATTACHMENT0", }, { - 0x8BC0, - "GL_COUNTER_TYPE_AMD", + 0x8CE1, "GL_COLOR_ATTACHMENT1_EXT", }, { - 0x8BC3, - "GL_PERCENTAGE_AMD", + 0x8CE6, "GL_COLOR_ATTACHMENT6_EXT", }, { - 0x8BC2, - "GL_UNSIGNED_INT64_AMD", + 0x93C1, "GL_COMPRESSED_RGBA_ASTC_4x3x3_OES", }, { - 0x8BC5, - "GL_PERFMON_RESULT_SIZE_AMD", + 0x8A1F, "GL_RGB_422_APPLE", }, { - 0x8BC4, - "GL_PERFMON_RESULT_AVAILABLE_AMD", + 0x93DC, "GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR", }, { - 0x8BC6, - "GL_PERFMON_RESULT_AMD", + 0x9292, "GL_PLUS_DARKER_NV", + }, + { + 0x8CE8, "GL_COLOR_ATTACHMENT8_EXT", + }, + { + 0x93C0, "GL_COMPRESSED_RGBA_ASTC_3x3x3_OES", + }, + { + 0x0C23, "GL_COLOR_WRITEMASK", + }, + { + 0x0C22, "GL_COLOR_CLEAR_VALUE", + }, + { + 0x8A11, "GL_UNIFORM_BUFFER", + }, + { + 0x8823, "GL_WRITEONLY_RENDERING_QCOM", + }, + { + 0x8824, "GL_MAX_DRAW_BUFFERS_EXT", + }, + { + 0x825E, "GL_LAYER_PROVOKING_VERTEX_EXT", + }, + { + 0x825A, "GL_PROGRAM_PIPELINE_BINDING_EXT", + }, + { + 0x1909, "GL_LUMINANCE", + }, + { + 0x0D3A, "GL_MAX_VIEWPORT_DIMS", + }, + { + 0x8B53, "GL_INT_VEC2", + }, + { + 0x8826, "GL_DRAW_BUFFER1_EXT", + }, + { + 0x809E, "GL_SAMPLE_ALPHA_TO_COVERAGE", + }, + { + 0x8BC0, "GL_COUNTER_TYPE_AMD", + }, + { + 0x8BC3, "GL_PERCENTAGE_AMD", + }, + { + 0x8BC2, "GL_UNSIGNED_INT64_AMD", + }, + { + 0x8BC5, "GL_PERFMON_RESULT_SIZE_AMD", + }, + { + 0x8BC4, "GL_PERFMON_RESULT_AVAILABLE_AMD", + }, + { + 0x8BC6, "GL_PERFMON_RESULT_AMD", }, }; diff --git a/chromium/ui/gl/gl_gl_api_implementation.cc b/chromium/ui/gl/gl_gl_api_implementation.cc index 57b0333854c..9ebb3aec94e 100644 --- a/chromium/ui/gl/gl_gl_api_implementation.cc +++ b/chromium/ui/gl/gl_gl_api_implementation.cc @@ -50,7 +50,8 @@ static inline GLenum GetTexInternalFormat(GLenum internal_format, // g_version_info must be initialized when this function is bound. DCHECK(gfx::g_version_info); if (gfx::g_version_info->is_es3) { - if (format == GL_RED_EXT) { + if (internal_format == GL_RED_EXT) { + // GL_EXT_texture_rg case in ES2. switch (type) { case GL_UNSIGNED_BYTE: gl_internal_format = GL_R8_EXT; @@ -66,7 +67,8 @@ static inline GLenum GetTexInternalFormat(GLenum internal_format, break; } return gl_internal_format; - } else if (format == GL_RG_EXT) { + } else if (internal_format == GL_RG_EXT) { + // GL_EXT_texture_rg case in ES2. switch (type) { case GL_UNSIGNED_BYTE: gl_internal_format = GL_RG8_EXT; @@ -108,7 +110,8 @@ static inline GLenum GetTexInternalFormat(GLenum internal_format, return gl_internal_format; if (type == GL_FLOAT) { - switch (format) { + switch (internal_format) { + // We need to map all the unsized internal formats from ES2 clients. case GL_RGBA: gl_internal_format = GL_RGBA32F_ARB; break; @@ -125,11 +128,12 @@ static inline GLenum GetTexInternalFormat(GLenum internal_format, gl_internal_format = GL_ALPHA32F_ARB; break; default: - NOTREACHED(); + // We can't assert here because if the client context is ES3, + // all sized internal_format will reach here. break; } } else if (type == GL_HALF_FLOAT_OES) { - switch (format) { + switch (internal_format) { case GL_RGBA: gl_internal_format = GL_RGBA16F_ARB; break; @@ -471,13 +475,13 @@ void RealGLApi::glFinishFn() { void RealGLApi::InitializeFilteredExtensions() { if (disabled_exts_.size()) { filtered_exts_.clear(); - if (gfx::GetGLImplementation() != - gfx::kGLImplementationDesktopGLCoreProfile) { + if (gfx::WillUseGLGetStringForExtensions()) { filtered_exts_str_ = FilterGLExtensionList(reinterpret_cast<const char*>( GLApiBase::glGetStringFn(GL_EXTENSIONS)), disabled_exts_); - base::SplitString(filtered_exts_str_, ' ', &filtered_exts_); + filtered_exts_ = base::SplitString( + filtered_exts_str_, " ", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); } else { GLint num_extensions = 0; GLApiBase::glGetIntegervFn(GL_NUM_EXTENSIONS, &num_extensions); @@ -490,7 +494,7 @@ void RealGLApi::InitializeFilteredExtensions() { filtered_exts_.push_back(gl_extension); } } - filtered_exts_str_ = JoinString(filtered_exts_, " "); + filtered_exts_str_ = base::JoinString(filtered_exts_, " "); } #if DCHECK_IS_ON() filtered_exts_initialized_ = true; @@ -520,19 +524,7 @@ void VirtualGLApi::Initialize(DriverGL* driver, GLContext* real_context) { real_context_ = real_context; DCHECK(real_context->IsCurrent(NULL)); - std::string ext_string = real_context->GetExtensions(); - std::vector<std::string> ext = base::SplitString( - ext_string, " ", base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY); - - std::vector<std::string>::iterator it; - // We can't support GL_EXT_occlusion_query_boolean which is - // based on GL_ARB_occlusion_query without a lot of work virtualizing - // queries. - it = std::find(ext.begin(), ext.end(), "GL_EXT_occlusion_query_boolean"); - if (it != ext.end()) - ext.erase(it); - - extensions_ = JoinString(ext, " "); + extensions_ = real_context->GetExtensions(); } bool VirtualGLApi::MakeCurrent(GLContext* virtual_context, GLSurface* surface) { @@ -565,16 +557,27 @@ bool VirtualGLApi::MakeCurrent(GLContext* virtual_context, GLSurface* surface) { // context loss handling in virtual context mode. // There should be no other errors from the previous context leaking into // the new context. - DCHECK(error == GL_NO_ERROR || error == GL_CONTEXT_LOST_KHR); + DCHECK(error == GL_NO_ERROR || error == GL_CONTEXT_LOST_KHR) << + "GL error was: " << error; #endif // Set all state that is different from the real state GLApi* temp = GetCurrentGLApi(); SetGLToRealGLApi(); if (virtual_context->GetGLStateRestorer()->IsInitialized()) { - virtual_context->GetGLStateRestorer()->RestoreState( - (current_context_ && !state_dirtied_externally && !switched_contexts) - ? current_context_->GetGLStateRestorer() + GLStateRestorer* virtual_state = virtual_context->GetGLStateRestorer(); + GLStateRestorer* current_state = current_context_ ? + current_context_->GetGLStateRestorer() : + nullptr; + if (switched_contexts || virtual_context != current_context_) { + if (current_state) + current_state->PauseQueries(); + virtual_state->ResumeQueries(); + } + + virtual_state->RestoreState( + (current_state && !state_dirtied_externally && !switched_contexts) + ? current_state : NULL); } SetGLApi(temp); @@ -612,13 +615,4 @@ void VirtualGLApi::glFinishFn() { GLApiBase::glFinishFn(); } -ScopedSetGLToRealGLApi::ScopedSetGLToRealGLApi() - : old_gl_api_(GetCurrentGLApi()) { - SetGLToRealGLApi(); -} - -ScopedSetGLToRealGLApi::~ScopedSetGLToRealGLApi() { - SetGLApi(old_gl_api_); -} - } // namespace gfx diff --git a/chromium/ui/gl/gl_gl_api_implementation.h b/chromium/ui/gl/gl_gl_api_implementation.h index a5197fed774..cfefb1384bc 100644 --- a/chromium/ui/gl/gl_gl_api_implementation.h +++ b/chromium/ui/gl/gl_gl_api_implementation.h @@ -36,6 +36,7 @@ void ClearGLBindingsGL(); void SetGLToRealGLApi(); void SetGLApi(GLApi* api); void SetGLApiToNoContext(); +GLApi* GetCurrentGLApi(); const GLVersionInfo* GetGLVersionInfo(); class GL_EXPORT GLApiBase : public GLApi { @@ -139,15 +140,6 @@ private: std::string extensions_; }; -class GL_EXPORT ScopedSetGLToRealGLApi { - public: - ScopedSetGLToRealGLApi(); - ~ScopedSetGLToRealGLApi(); - - private: - GLApi* old_gl_api_; -}; - } // namespace gfx #endif // UI_GL_GL_GL_API_IMPLEMENTATION_H_ diff --git a/chromium/ui/gl/gl_image.h b/chromium/ui/gl/gl_image.h index b48b687957c..a23669952a8 100644 --- a/chromium/ui/gl/gl_image.h +++ b/chromium/ui/gl/gl_image.h @@ -14,6 +14,12 @@ #include "ui/gfx/overlay_transform.h" #include "ui/gl/gl_export.h" +namespace base { +namespace trace_event { +class ProcessMemoryDump; +} +} + namespace gfx { // Encapsulates an image that can be bound to a texture, hiding platform @@ -61,6 +67,12 @@ class GL_EXPORT GLImage : public base::RefCounted<GLImage> { const Rect& bounds_rect, const RectF& crop_rect) = 0; + // Dumps information about the memory backing the GLImage to a dump named + // |dump_name|. + virtual void OnMemoryDump(base::trace_event::ProcessMemoryDump* pmd, + uint64_t process_tracing_id, + const std::string& dump_name) = 0; + protected: virtual ~GLImage() {} diff --git a/chromium/ui/gl/gl_image_glx.cc b/chromium/ui/gl/gl_image_glx.cc index f22ba0ff622..496cf449bb8 100644 --- a/chromium/ui/gl/gl_image_glx.cc +++ b/chromium/ui/gl/gl_image_glx.cc @@ -203,4 +203,10 @@ bool GLImageGLX::ScheduleOverlayPlane(gfx::AcceleratedWidget widget, return false; } +void GLImageGLX::OnMemoryDump(base::trace_event::ProcessMemoryDump* pmd, + uint64_t process_tracing_id, + const std::string& dump_name) { + // TODO(ericrk): Implement GLImage OnMemoryDump. crbug.com/514914 +} + } // namespace gfx diff --git a/chromium/ui/gl/gl_image_glx.h b/chromium/ui/gl/gl_image_glx.h index a8689708826..5de1d0d165f 100644 --- a/chromium/ui/gl/gl_image_glx.h +++ b/chromium/ui/gl/gl_image_glx.h @@ -36,6 +36,9 @@ class GL_EXPORT GLImageGLX : public GLImage { OverlayTransform transform, const Rect& bounds_rect, const RectF& crop_rect) override; + void OnMemoryDump(base::trace_event::ProcessMemoryDump* pmd, + uint64_t process_tracing_id, + const std::string& dump_name) override; protected: ~GLImageGLX() override; diff --git a/chromium/ui/gl/gl_image_io_surface.cc b/chromium/ui/gl/gl_image_io_surface.cc deleted file mode 100644 index adcadee363a..00000000000 --- a/chromium/ui/gl/gl_image_io_surface.cc +++ /dev/null @@ -1,198 +0,0 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "ui/gl/gl_image_io_surface.h" - -#include "ui/gl/gl_bindings.h" -#include "ui/gl/gl_context.h" - -// Note that this must be included after gl_bindings.h to avoid conflicts. -#include <OpenGL/CGLIOSurface.h> - -namespace gfx { -namespace { - -bool ValidInternalFormat(unsigned internalformat) { - switch (internalformat) { - case GL_R8: - case GL_BGRA_EXT: - return true; - default: - return false; - } -} - -bool ValidFormat(GpuMemoryBuffer::Format format) { - switch (format) { - case GpuMemoryBuffer::R_8: - case GpuMemoryBuffer::BGRA_8888: - return true; - case GpuMemoryBuffer::ATC: - case GpuMemoryBuffer::ATCIA: - case GpuMemoryBuffer::DXT1: - case GpuMemoryBuffer::DXT5: - case GpuMemoryBuffer::ETC1: - case GpuMemoryBuffer::RGBA_4444: - case GpuMemoryBuffer::RGBA_8888: - case GpuMemoryBuffer::RGBX_8888: - case GpuMemoryBuffer::YUV_420: - return false; - } - - NOTREACHED(); - return false; -} - -GLenum TextureFormat(GpuMemoryBuffer::Format format) { - switch (format) { - case GpuMemoryBuffer::R_8: - return GL_RED; - case GpuMemoryBuffer::BGRA_8888: - return GL_RGBA; - case GpuMemoryBuffer::ATC: - case GpuMemoryBuffer::ATCIA: - case GpuMemoryBuffer::DXT1: - case GpuMemoryBuffer::DXT5: - case GpuMemoryBuffer::ETC1: - case GpuMemoryBuffer::RGBA_4444: - case GpuMemoryBuffer::RGBA_8888: - case GpuMemoryBuffer::RGBX_8888: - case GpuMemoryBuffer::YUV_420: - NOTREACHED(); - return 0; - } - - NOTREACHED(); - return 0; -} - -GLenum DataFormat(GpuMemoryBuffer::Format format) { - switch (format) { - case GpuMemoryBuffer::R_8: - return GL_RED; - case GpuMemoryBuffer::BGRA_8888: - return GL_BGRA; - case GpuMemoryBuffer::ATC: - case GpuMemoryBuffer::ATCIA: - case GpuMemoryBuffer::DXT1: - case GpuMemoryBuffer::DXT5: - case GpuMemoryBuffer::ETC1: - case GpuMemoryBuffer::RGBA_4444: - case GpuMemoryBuffer::RGBA_8888: - case GpuMemoryBuffer::RGBX_8888: - case GpuMemoryBuffer::YUV_420: - NOTREACHED(); - return 0; - } - - NOTREACHED(); - return 0; -} - -GLenum DataType(GpuMemoryBuffer::Format format) { - switch (format) { - case GpuMemoryBuffer::R_8: - return GL_UNSIGNED_BYTE; - case GpuMemoryBuffer::BGRA_8888: - return GL_UNSIGNED_INT_8_8_8_8_REV; - case GpuMemoryBuffer::ATC: - case GpuMemoryBuffer::ATCIA: - case GpuMemoryBuffer::DXT1: - case GpuMemoryBuffer::DXT5: - case GpuMemoryBuffer::ETC1: - case GpuMemoryBuffer::RGBA_4444: - case GpuMemoryBuffer::RGBA_8888: - case GpuMemoryBuffer::RGBX_8888: - case GpuMemoryBuffer::YUV_420: - NOTREACHED(); - return 0; - } - - NOTREACHED(); - return 0; -} - -} // namespace - -GLImageIOSurface::GLImageIOSurface(const gfx::Size& size, - unsigned internalformat) - : size_(size), - internalformat_(internalformat), - format_(GpuMemoryBuffer::RGBA_8888) { -} - -GLImageIOSurface::~GLImageIOSurface() { - DCHECK(thread_checker_.CalledOnValidThread()); - DCHECK(!io_surface_); -} - -bool GLImageIOSurface::Initialize(IOSurfaceRef io_surface, - GpuMemoryBuffer::Format format) { - DCHECK(thread_checker_.CalledOnValidThread()); - DCHECK(!io_surface_); - - if (!ValidInternalFormat(internalformat_)) { - LOG(ERROR) << "Invalid internalformat: " << internalformat_; - return false; - } - - if (!ValidFormat(format)) { - LOG(ERROR) << "Invalid format: " << format; - return false; - } - - format_ = format; - io_surface_.reset(io_surface, base::scoped_policy::RETAIN); - return true; -} - -void GLImageIOSurface::Destroy(bool have_context) { - DCHECK(thread_checker_.CalledOnValidThread()); - io_surface_.reset(); -} - -gfx::Size GLImageIOSurface::GetSize() { return size_; } - -unsigned GLImageIOSurface::GetInternalFormat() { return internalformat_; } - -bool GLImageIOSurface::BindTexImage(unsigned target) { - DCHECK(thread_checker_.CalledOnValidThread()); - if (target != GL_TEXTURE_RECTANGLE_ARB) { - // This might be supported in the future. For now, perform strict - // validation so we know what's going on. - LOG(ERROR) << "IOSurface requires TEXTURE_RECTANGLE_ARB target"; - return false; - } - - CGLContextObj cgl_context = - static_cast<CGLContextObj>(GLContext::GetCurrent()->GetHandle()); - - DCHECK(io_surface_); - CGLError cgl_error = - CGLTexImageIOSurface2D(cgl_context, target, TextureFormat(format_), - size_.width(), size_.height(), DataFormat(format_), - DataType(format_), io_surface_.get(), 0); - if (cgl_error != kCGLNoError) { - LOG(ERROR) << "Error in CGLTexImageIOSurface2D"; - return false; - } - - return true; -} - -bool GLImageIOSurface::CopyTexSubImage(unsigned target, - const Point& offset, - const Rect& rect) { - return false; -} - -bool GLImageIOSurface::ScheduleOverlayPlane(gfx::AcceleratedWidget widget, - int z_order, - OverlayTransform transform, - const Rect& bounds_rect, - const RectF& crop_rect) { - return false; -} - -} // namespace gfx diff --git a/chromium/ui/gl/gl_image_io_surface.h b/chromium/ui/gl/gl_image_io_surface.h index 85606ffcd0a..bf65b0f56df 100644 --- a/chromium/ui/gl/gl_image_io_surface.h +++ b/chromium/ui/gl/gl_image_io_surface.h @@ -5,20 +5,28 @@ #ifndef UI_GL_GL_IMAGE_IO_SURFACE_H_ #define UI_GL_GL_IMAGE_IO_SURFACE_H_ -#include <IOSurface/IOSurfaceAPI.h> +#include <IOSurface/IOSurface.h> #include "base/mac/scoped_cftyperef.h" #include "base/threading/thread_checker.h" #include "ui/gfx/gpu_memory_buffer.h" #include "ui/gl/gl_image.h" +#if defined(__OBJC__) +@class CALayer; +#else +typedef void* CALayer; +#endif + namespace gfx { class GL_EXPORT GLImageIOSurface : public GLImage { public: - GLImageIOSurface(const gfx::Size& size, unsigned internalformat); + GLImageIOSurface(gfx::GenericSharedMemoryId io_surface_id, + const gfx::Size& size, + unsigned internalformat); - bool Initialize(IOSurfaceRef io_surface, GpuMemoryBuffer::Format format); + bool Initialize(IOSurfaceRef io_surface, BufferFormat format); // Overridden from GLImage: void Destroy(bool have_context) override; @@ -38,14 +46,23 @@ class GL_EXPORT GLImageIOSurface : public GLImage { OverlayTransform transform, const Rect& bounds_rect, const RectF& crop_rect) override; + void OnMemoryDump(base::trace_event::ProcessMemoryDump* pmd, + uint64_t process_tracing_id, + const std::string& dump_name) override; + + base::ScopedCFTypeRef<IOSurfaceRef> io_surface(); + + static void SetLayerForWidget(gfx::AcceleratedWidget widget, + CALayer* layer); protected: ~GLImageIOSurface() override; private: + gfx::GenericSharedMemoryId io_surface_id_; const gfx::Size size_; const unsigned internalformat_; - GpuMemoryBuffer::Format format_; + BufferFormat format_; base::ScopedCFTypeRef<IOSurfaceRef> io_surface_; base::ThreadChecker thread_checker_; diff --git a/chromium/ui/gl/gl_image_io_surface.mm b/chromium/ui/gl/gl_image_io_surface.mm new file mode 100644 index 00000000000..211226a27b3 --- /dev/null +++ b/chromium/ui/gl/gl_image_io_surface.mm @@ -0,0 +1,255 @@ +// Copyright 2013 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "ui/gl/gl_image_io_surface.h" + +#include <map> + +#include "base/lazy_instance.h" +#include "base/mac/foundation_util.h" +#include "ui/gl/gl_bindings.h" +#include "ui/gl/gl_context.h" + +// Note that this must be included after gl_bindings.h to avoid conflicts. +#include <OpenGL/CGLIOSurface.h> +#include <Quartz/Quartz.h> + +namespace gfx { +namespace { + +typedef std::map<gfx::AcceleratedWidget,CALayer*> WidgetToLayerMap; +base::LazyInstance<WidgetToLayerMap> g_widget_to_layer_map; + +bool ValidInternalFormat(unsigned internalformat) { + switch (internalformat) { + case GL_R8: + case GL_BGRA_EXT: + case GL_RGB: + case GL_RGB_YCBCR_422_CHROMIUM: + return true; + default: + return false; + } +} + +bool ValidFormat(BufferFormat format) { + switch (format) { + case BufferFormat::R_8: + case BufferFormat::BGRA_8888: + case BufferFormat::UYVY_422: + case BufferFormat::YUV_420_BIPLANAR: + return true; + case BufferFormat::ATC: + case BufferFormat::ATCIA: + case BufferFormat::DXT1: + case BufferFormat::DXT5: + case BufferFormat::ETC1: + case BufferFormat::RGBA_4444: + case BufferFormat::RGBA_8888: + case BufferFormat::BGRX_8888: + case BufferFormat::YUV_420: + return false; + } + + NOTREACHED(); + return false; +} + +GLenum TextureFormat(BufferFormat format) { + switch (format) { + case BufferFormat::R_8: + case BufferFormat::YUV_420_BIPLANAR: + return GL_RED; + case BufferFormat::BGRA_8888: + return GL_RGBA; + case BufferFormat::UYVY_422: + return GL_RGB; + case BufferFormat::ATC: + case BufferFormat::ATCIA: + case BufferFormat::DXT1: + case BufferFormat::DXT5: + case BufferFormat::ETC1: + case BufferFormat::RGBA_4444: + case BufferFormat::RGBA_8888: + case BufferFormat::BGRX_8888: + case BufferFormat::YUV_420: + NOTREACHED(); + return 0; + } + + NOTREACHED(); + return 0; +} + +GLenum DataFormat(BufferFormat format) { + switch (format) { + case BufferFormat::R_8: + case BufferFormat::YUV_420_BIPLANAR: + return GL_RED; + case BufferFormat::BGRA_8888: + return GL_BGRA; + case BufferFormat::UYVY_422: + return GL_YCBCR_422_APPLE; + break; + case BufferFormat::ATC: + case BufferFormat::ATCIA: + case BufferFormat::DXT1: + case BufferFormat::DXT5: + case BufferFormat::ETC1: + case BufferFormat::RGBA_4444: + case BufferFormat::RGBA_8888: + case BufferFormat::BGRX_8888: + case BufferFormat::YUV_420: + NOTREACHED(); + return 0; + } + + NOTREACHED(); + return 0; +} + +GLenum DataType(BufferFormat format) { + switch (format) { + case BufferFormat::R_8: + case BufferFormat::YUV_420_BIPLANAR: + return GL_UNSIGNED_BYTE; + case BufferFormat::BGRA_8888: + return GL_UNSIGNED_INT_8_8_8_8_REV; + case BufferFormat::UYVY_422: + return GL_UNSIGNED_SHORT_8_8_APPLE; + break; + case BufferFormat::ATC: + case BufferFormat::ATCIA: + case BufferFormat::DXT1: + case BufferFormat::DXT5: + case BufferFormat::ETC1: + case BufferFormat::RGBA_4444: + case BufferFormat::RGBA_8888: + case BufferFormat::BGRX_8888: + case BufferFormat::YUV_420: + NOTREACHED(); + return 0; + } + + NOTREACHED(); + return 0; +} + +} // namespace + +GLImageIOSurface::GLImageIOSurface(gfx::GenericSharedMemoryId io_surface_id, + const gfx::Size& size, + unsigned internalformat) + : io_surface_id_(io_surface_id), + size_(size), + internalformat_(internalformat), + format_(BufferFormat::RGBA_8888) {} + +GLImageIOSurface::~GLImageIOSurface() { + DCHECK(thread_checker_.CalledOnValidThread()); + DCHECK(!io_surface_); +} + +bool GLImageIOSurface::Initialize(IOSurfaceRef io_surface, + BufferFormat format) { + DCHECK(thread_checker_.CalledOnValidThread()); + DCHECK(!io_surface_); + + if (!ValidInternalFormat(internalformat_)) { + LOG(ERROR) << "Invalid internalformat: " << internalformat_; + return false; + } + + if (!ValidFormat(format)) { + LOG(ERROR) << "Invalid format: " << static_cast<int>(format); + return false; + } + + format_ = format; + io_surface_.reset(io_surface, base::scoped_policy::RETAIN); + return true; +} + +void GLImageIOSurface::Destroy(bool have_context) { + DCHECK(thread_checker_.CalledOnValidThread()); + io_surface_.reset(); +} + +gfx::Size GLImageIOSurface::GetSize() { return size_; } + +unsigned GLImageIOSurface::GetInternalFormat() { return internalformat_; } + +bool GLImageIOSurface::BindTexImage(unsigned target) { + DCHECK(thread_checker_.CalledOnValidThread()); + if (target != GL_TEXTURE_RECTANGLE_ARB) { + // This might be supported in the future. For now, perform strict + // validation so we know what's going on. + LOG(ERROR) << "IOSurface requires TEXTURE_RECTANGLE_ARB target"; + return false; + } + + CGLContextObj cgl_context = + static_cast<CGLContextObj>(GLContext::GetCurrent()->GetHandle()); + + DCHECK(io_surface_); + CGLError cgl_error = + CGLTexImageIOSurface2D(cgl_context, target, TextureFormat(format_), + size_.width(), size_.height(), DataFormat(format_), + DataType(format_), io_surface_.get(), 0); + if (cgl_error != kCGLNoError) { + LOG(ERROR) << "Error in CGLTexImageIOSurface2D"; + return false; + } + + return true; +} + +bool GLImageIOSurface::CopyTexSubImage(unsigned target, + const Point& offset, + const Rect& rect) { + return false; +} + +bool GLImageIOSurface::ScheduleOverlayPlane(gfx::AcceleratedWidget widget, + int z_order, + OverlayTransform transform, + const Rect& bounds_rect, + const RectF& crop_rect) { + NOTREACHED(); + return false; +} + +void GLImageIOSurface::OnMemoryDump(base::trace_event::ProcessMemoryDump* pmd, + uint64_t process_tracing_id, + const std::string& dump_name) { + // IOSurfaceGetAllocSize will return 0 if io_surface_ is invalid. In this case + // we log 0 for consistency with other GLImage memory dump functions. + size_t size_bytes = IOSurfaceGetAllocSize(io_surface_); + + base::trace_event::MemoryAllocatorDump* dump = + pmd->CreateAllocatorDump(dump_name); + dump->AddScalar(base::trace_event::MemoryAllocatorDump::kNameSize, + base::trace_event::MemoryAllocatorDump::kUnitsBytes, + static_cast<uint64_t>(size_bytes)); + + auto guid = gfx::GetGenericSharedMemoryGUIDForTracing(process_tracing_id, + io_surface_id_); + pmd->CreateSharedGlobalAllocatorDump(guid); + pmd->AddOwnershipEdge(dump->guid(), guid); +} + +base::ScopedCFTypeRef<IOSurfaceRef> GLImageIOSurface::io_surface() { + return io_surface_; +} + +// static +void GLImageIOSurface::SetLayerForWidget( + gfx::AcceleratedWidget widget, CALayer* layer) { + if (layer) + g_widget_to_layer_map.Pointer()->insert(std::make_pair(widget, layer)); + else + g_widget_to_layer_map.Pointer()->erase(widget); +} + +} // namespace gfx diff --git a/chromium/ui/gl/gl_image_linux_dma_buffer.cc b/chromium/ui/gl/gl_image_linux_dma_buffer.cc deleted file mode 100644 index 30a76a6d714..00000000000 --- a/chromium/ui/gl/gl_image_linux_dma_buffer.cc +++ /dev/null @@ -1,126 +0,0 @@ -// Copyright 2014 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "ui/gl/gl_image_linux_dma_buffer.h" - -#include <unistd.h> - -#define FOURCC(a, b, c, d) \ - ((static_cast<uint32>(a)) | (static_cast<uint32>(b) << 8) | \ - (static_cast<uint32>(c) << 16) | (static_cast<uint32>(d) << 24)) - -#define DRM_FORMAT_ARGB8888 FOURCC('A', 'R', '2', '4') -#define DRM_FORMAT_XRGB8888 FOURCC('X', 'R', '2', '4') - -namespace gfx { -namespace { - -bool ValidInternalFormat(unsigned internalformat) { - switch (internalformat) { - case GL_RGB: - case GL_BGRA_EXT: - return true; - default: - return false; - } -} - -bool ValidFormat(gfx::GpuMemoryBuffer::Format format) { - switch (format) { - case GpuMemoryBuffer::BGRA_8888: - case GpuMemoryBuffer::RGBX_8888: - return true; - case GpuMemoryBuffer::ATC: - case GpuMemoryBuffer::ATCIA: - case GpuMemoryBuffer::DXT1: - case GpuMemoryBuffer::DXT5: - case GpuMemoryBuffer::ETC1: - case GpuMemoryBuffer::R_8: - case GpuMemoryBuffer::RGBA_4444: - case GpuMemoryBuffer::RGBA_8888: - case GpuMemoryBuffer::YUV_420: - return false; - } - - NOTREACHED(); - return false; -} - -EGLint FourCC(gfx::GpuMemoryBuffer::Format format) { - switch (format) { - case GpuMemoryBuffer::BGRA_8888: - return DRM_FORMAT_ARGB8888; - case GpuMemoryBuffer::RGBX_8888: - return DRM_FORMAT_XRGB8888; - case GpuMemoryBuffer::ATC: - case GpuMemoryBuffer::ATCIA: - case GpuMemoryBuffer::DXT1: - case GpuMemoryBuffer::DXT5: - case GpuMemoryBuffer::ETC1: - case GpuMemoryBuffer::R_8: - case GpuMemoryBuffer::RGBA_4444: - case GpuMemoryBuffer::RGBA_8888: - case GpuMemoryBuffer::YUV_420: - NOTREACHED(); - return 0; - } - - NOTREACHED(); - return 0; -} - -bool IsHandleValid(const base::FileDescriptor& handle) { - return handle.fd >= 0; -} - -} // namespace - -GLImageLinuxDMABuffer::GLImageLinuxDMABuffer(const Size& size, - unsigned internalformat) - : GLImageEGL(size), internalformat_(internalformat) { -} - -GLImageLinuxDMABuffer::~GLImageLinuxDMABuffer() { -} - -bool GLImageLinuxDMABuffer::Initialize(const base::FileDescriptor& handle, - GpuMemoryBuffer::Format format, - int pitch) { - if (!ValidInternalFormat(internalformat_)) { - LOG(ERROR) << "Invalid internalformat: " << internalformat_; - return false; - } - - if (!ValidFormat(format)) { - LOG(ERROR) << "Invalid format: " << format; - return false; - } - - if (!IsHandleValid(handle)) { - LOG(ERROR) << "Invalid file descriptor: " << handle.fd; - return false; - } - - // Note: If eglCreateImageKHR is successful for a EGL_LINUX_DMA_BUF_EXT - // target, the EGL will take a reference to the dma_buf. - EGLint attrs[] = {EGL_WIDTH, - size_.width(), - EGL_HEIGHT, - size_.height(), - EGL_LINUX_DRM_FOURCC_EXT, - FourCC(format), - EGL_DMA_BUF_PLANE0_FD_EXT, - handle.fd, - EGL_DMA_BUF_PLANE0_OFFSET_EXT, - 0, - EGL_DMA_BUF_PLANE0_PITCH_EXT, - pitch, - EGL_NONE}; - return GLImageEGL::Initialize( - EGL_LINUX_DMA_BUF_EXT, static_cast<EGLClientBuffer>(NULL), attrs); -} - -unsigned GLImageLinuxDMABuffer::GetInternalFormat() { return internalformat_; } - -} // namespace gfx diff --git a/chromium/ui/gl/gl_image_linux_dma_buffer.h b/chromium/ui/gl/gl_image_linux_dma_buffer.h deleted file mode 100644 index 92710bc2cc8..00000000000 --- a/chromium/ui/gl/gl_image_linux_dma_buffer.h +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright 2014 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef UI_GL_GL_IMAGE_LINUX_DMA_BUFFER_H_ -#define UI_GL_GL_IMAGE_LINUX_DMA_BUFFER_H_ - -#include "ui/gfx/gpu_memory_buffer.h" -#include "ui/gl/gl_image_egl.h" - -namespace gfx { - -class GL_EXPORT GLImageLinuxDMABuffer : public GLImageEGL { - public: - GLImageLinuxDMABuffer(const Size& size, unsigned internalformat); - - // Returns true on success and the file descriptor can be closed as the - // implementation will take a reference to the dma_buf. - bool Initialize(const base::FileDescriptor& handle, - GpuMemoryBuffer::Format format, - int pitch); - - // Overridden from GLImage: - unsigned GetInternalFormat() override; - - protected: - ~GLImageLinuxDMABuffer() override; - - private: - unsigned internalformat_; - - DISALLOW_COPY_AND_ASSIGN(GLImageLinuxDMABuffer); -}; - -} // namespace gfx - -#endif // UI_GL_GL_IMAGE_LINUX_DMA_BUFFER_H_ diff --git a/chromium/ui/gl/gl_image_memory.cc b/chromium/ui/gl/gl_image_memory.cc index 5ccb9d160f8..c91ad5635f9 100644 --- a/chromium/ui/gl/gl_image_memory.cc +++ b/chromium/ui/gl/gl_image_memory.cc @@ -33,20 +33,22 @@ bool ValidInternalFormat(unsigned internalformat) { } } -bool ValidFormat(GpuMemoryBuffer::Format format) { +bool ValidFormat(BufferFormat format) { switch (format) { - case GpuMemoryBuffer::ATC: - case GpuMemoryBuffer::ATCIA: - case GpuMemoryBuffer::DXT1: - case GpuMemoryBuffer::DXT5: - case GpuMemoryBuffer::ETC1: - case GpuMemoryBuffer::R_8: - case GpuMemoryBuffer::RGBA_4444: - case GpuMemoryBuffer::RGBA_8888: - case GpuMemoryBuffer::BGRA_8888: + case BufferFormat::ATC: + case BufferFormat::ATCIA: + case BufferFormat::DXT1: + case BufferFormat::DXT5: + case BufferFormat::ETC1: + case BufferFormat::R_8: + case BufferFormat::RGBA_4444: + case BufferFormat::RGBA_8888: + case BufferFormat::BGRA_8888: return true; - case GpuMemoryBuffer::RGBX_8888: - case GpuMemoryBuffer::YUV_420: + case BufferFormat::BGRX_8888: + case BufferFormat::YUV_420: + case BufferFormat::YUV_420_BIPLANAR: + case BufferFormat::UYVY_422: return false; } @@ -54,20 +56,22 @@ bool ValidFormat(GpuMemoryBuffer::Format format) { return false; } -bool IsCompressedFormat(GpuMemoryBuffer::Format format) { +bool IsCompressedFormat(BufferFormat format) { switch (format) { - case GpuMemoryBuffer::ATC: - case GpuMemoryBuffer::ATCIA: - case GpuMemoryBuffer::DXT1: - case GpuMemoryBuffer::DXT5: - case GpuMemoryBuffer::ETC1: - case GpuMemoryBuffer::YUV_420: + case BufferFormat::ATC: + case BufferFormat::ATCIA: + case BufferFormat::DXT1: + case BufferFormat::DXT5: + case BufferFormat::ETC1: return true; - case GpuMemoryBuffer::R_8: - case GpuMemoryBuffer::RGBA_4444: - case GpuMemoryBuffer::RGBA_8888: - case GpuMemoryBuffer::BGRA_8888: - case GpuMemoryBuffer::RGBX_8888: + case BufferFormat::R_8: + case BufferFormat::RGBA_4444: + case BufferFormat::RGBA_8888: + case BufferFormat::BGRA_8888: + case BufferFormat::BGRX_8888: + case BufferFormat::YUV_420: + case BufferFormat::YUV_420_BIPLANAR: + case BufferFormat::UYVY_422: return false; } @@ -75,27 +79,29 @@ bool IsCompressedFormat(GpuMemoryBuffer::Format format) { return false; } -GLenum TextureFormat(GpuMemoryBuffer::Format format) { +GLenum TextureFormat(BufferFormat format) { switch (format) { - case GpuMemoryBuffer::ATC: + case BufferFormat::ATC: return GL_ATC_RGB_AMD; - case GpuMemoryBuffer::ATCIA: + case BufferFormat::ATCIA: return GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD; - case GpuMemoryBuffer::DXT1: + case BufferFormat::DXT1: return GL_COMPRESSED_RGB_S3TC_DXT1_EXT; - case GpuMemoryBuffer::DXT5: + case BufferFormat::DXT5: return GL_COMPRESSED_RGBA_S3TC_DXT5_EXT; - case GpuMemoryBuffer::ETC1: + case BufferFormat::ETC1: return GL_ETC1_RGB8_OES; - case GpuMemoryBuffer::R_8: + case BufferFormat::R_8: return GL_RED; - case GpuMemoryBuffer::RGBA_4444: - case GpuMemoryBuffer::RGBA_8888: + case BufferFormat::RGBA_4444: + case BufferFormat::RGBA_8888: return GL_RGBA; - case GpuMemoryBuffer::BGRA_8888: + case BufferFormat::BGRA_8888: return GL_BGRA_EXT; - case GpuMemoryBuffer::RGBX_8888: - case GpuMemoryBuffer::YUV_420: + case BufferFormat::BGRX_8888: + case BufferFormat::YUV_420: + case BufferFormat::YUV_420_BIPLANAR: + case BufferFormat::UYVY_422: NOTREACHED(); return 0; } @@ -104,25 +110,27 @@ GLenum TextureFormat(GpuMemoryBuffer::Format format) { return 0; } -GLenum DataFormat(GpuMemoryBuffer::Format format) { +GLenum DataFormat(BufferFormat format) { return TextureFormat(format); } -GLenum DataType(GpuMemoryBuffer::Format format) { +GLenum DataType(BufferFormat format) { switch (format) { - case GpuMemoryBuffer::RGBA_4444: + case BufferFormat::RGBA_4444: return GL_UNSIGNED_SHORT_4_4_4_4; - case GpuMemoryBuffer::RGBA_8888: - case GpuMemoryBuffer::BGRA_8888: - case GpuMemoryBuffer::R_8: + case BufferFormat::RGBA_8888: + case BufferFormat::BGRA_8888: + case BufferFormat::R_8: return GL_UNSIGNED_BYTE; - case GpuMemoryBuffer::ATC: - case GpuMemoryBuffer::ATCIA: - case GpuMemoryBuffer::DXT1: - case GpuMemoryBuffer::DXT5: - case GpuMemoryBuffer::ETC1: - case GpuMemoryBuffer::RGBX_8888: - case GpuMemoryBuffer::YUV_420: + case BufferFormat::ATC: + case BufferFormat::ATCIA: + case BufferFormat::DXT1: + case BufferFormat::DXT5: + case BufferFormat::ETC1: + case BufferFormat::BGRX_8888: + case BufferFormat::YUV_420: + case BufferFormat::YUV_420_BIPLANAR: + case BufferFormat::UYVY_422: NOTREACHED(); return 0; } @@ -131,8 +139,7 @@ GLenum DataType(GpuMemoryBuffer::Format format) { return 0; } -GLsizei SizeInBytes(const Size& size, - GpuMemoryBuffer::Format format) { +GLsizei SizeInBytes(const Size& size, BufferFormat format) { size_t stride_in_bytes = 0; bool valid_stride = GLImageMemory::StrideInBytes( size.width(), format, &stride_in_bytes); @@ -146,7 +153,7 @@ GLImageMemory::GLImageMemory(const Size& size, unsigned internalformat) : size_(size), internalformat_(internalformat), memory_(NULL), - format_(GpuMemoryBuffer::RGBA_8888), + format_(BufferFormat::RGBA_8888), in_use_(false), target_(0), need_do_bind_tex_image_(false) @@ -169,41 +176,43 @@ GLImageMemory::~GLImageMemory() { // static bool GLImageMemory::StrideInBytes(size_t width, - GpuMemoryBuffer::Format format, + BufferFormat format, size_t* stride_in_bytes) { base::CheckedNumeric<size_t> checked_stride = width; switch (format) { - case GpuMemoryBuffer::ATCIA: - case GpuMemoryBuffer::DXT5: + case BufferFormat::ATCIA: + case BufferFormat::DXT5: *stride_in_bytes = width; return true; - case GpuMemoryBuffer::ATC: - case GpuMemoryBuffer::DXT1: - case GpuMemoryBuffer::ETC1: + case BufferFormat::ATC: + case BufferFormat::DXT1: + case BufferFormat::ETC1: DCHECK_EQ(width % 2, 0u); *stride_in_bytes = width / 2; return true; - case GpuMemoryBuffer::R_8: + case BufferFormat::R_8: checked_stride += 3; if (!checked_stride.IsValid()) return false; *stride_in_bytes = checked_stride.ValueOrDie() & ~0x3; return true; - case GpuMemoryBuffer::RGBA_4444: + case BufferFormat::RGBA_4444: checked_stride *= 2; if (!checked_stride.IsValid()) return false; *stride_in_bytes = checked_stride.ValueOrDie(); return true; - case GpuMemoryBuffer::RGBA_8888: - case GpuMemoryBuffer::BGRA_8888: + case BufferFormat::RGBA_8888: + case BufferFormat::BGRA_8888: checked_stride *= 4; if (!checked_stride.IsValid()) return false; *stride_in_bytes = checked_stride.ValueOrDie(); return true; - case GpuMemoryBuffer::RGBX_8888: - case GpuMemoryBuffer::YUV_420: + case BufferFormat::BGRX_8888: + case BufferFormat::YUV_420: + case BufferFormat::YUV_420_BIPLANAR: + case BufferFormat::UYVY_422: NOTREACHED(); return false; } @@ -213,14 +222,14 @@ bool GLImageMemory::StrideInBytes(size_t width, } bool GLImageMemory::Initialize(const unsigned char* memory, - GpuMemoryBuffer::Format format) { + BufferFormat format) { if (!ValidInternalFormat(internalformat_)) { LOG(ERROR) << "Invalid internalformat: " << internalformat_; return false; } if (!ValidFormat(format)) { - LOG(ERROR) << "Invalid format: " << format; + LOG(ERROR) << "Invalid format: " << static_cast<int>(format); return false; } @@ -439,4 +448,30 @@ void GLImageMemory::DoBindTexImage(unsigned target) { } } +void GLImageMemory::OnMemoryDump(base::trace_event::ProcessMemoryDump* pmd, + uint64_t process_tracing_id, + const std::string& dump_name) { + // Note that the following calculation does not consider whether this GLImage + // has been un-bound from a texture. It also relies on this GLImage only ever + // being bound to a single texture. We could check these conditions more + // thoroughly, but at the cost of extra GL queries. + bool is_bound_to_texture = target_ && !need_do_bind_tex_image_; + +#if defined(OS_WIN) || defined(USE_X11) || defined(OS_ANDROID) || \ + defined(USE_OZONE) + is_bound_to_texture |= !!egl_texture_id_; +#endif + + size_t size_in_bytes = is_bound_to_texture ? SizeInBytes(size_, format_) : 0; + + base::trace_event::MemoryAllocatorDump* dump = + pmd->CreateAllocatorDump(dump_name + "/texture_memory"); + dump->AddScalar(base::trace_event::MemoryAllocatorDump::kNameSize, + base::trace_event::MemoryAllocatorDump::kUnitsBytes, + static_cast<uint64_t>(size_in_bytes)); + + // No need for a global shared edge here. This object in the GPU process is + // the sole owner of this texture id. +} + } // namespace gfx diff --git a/chromium/ui/gl/gl_image_memory.h b/chromium/ui/gl/gl_image_memory.h index 89ccfa7eab6..10b1a3bc60b 100644 --- a/chromium/ui/gl/gl_image_memory.h +++ b/chromium/ui/gl/gl_image_memory.h @@ -23,11 +23,10 @@ class GL_EXPORT GLImageMemory : public GLImage { GLImageMemory(const Size& size, unsigned internalformat); static bool StrideInBytes(size_t width, - GpuMemoryBuffer::Format format, + BufferFormat format, size_t* stride_in_bytes); - bool Initialize(const unsigned char* memory, - GpuMemoryBuffer::Format format); + bool Initialize(const unsigned char* memory, BufferFormat format); // Overridden from GLImage: void Destroy(bool have_context) override; @@ -48,16 +47,24 @@ class GL_EXPORT GLImageMemory : public GLImage { const Rect& bounds_rect, const RectF& crop_rect) override; + // Only dumps the GLTexture portion of the memory usage. Subclasses are + // responsible for dumping the CPU-side memory. + void OnMemoryDump(base::trace_event::ProcessMemoryDump* pmd, + uint64_t process_tracing_id, + const std::string& dump_name) override; + protected: ~GLImageMemory() override; + BufferFormat format() const { return format_; } + private: void DoBindTexImage(unsigned target); const Size size_; const unsigned internalformat_; const unsigned char* memory_; - GpuMemoryBuffer::Format format_; + BufferFormat format_; bool in_use_; unsigned target_; bool need_do_bind_tex_image_; diff --git a/chromium/ui/gl/gl_image_ozone_native_pixmap.cc b/chromium/ui/gl/gl_image_ozone_native_pixmap.cc new file mode 100644 index 00000000000..413c0abe460 --- /dev/null +++ b/chromium/ui/gl/gl_image_ozone_native_pixmap.cc @@ -0,0 +1,153 @@ +// Copyright 2015 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "ui/gl/gl_image_ozone_native_pixmap.h" + +#define FOURCC(a, b, c, d) \ + ((static_cast<uint32>(a)) | (static_cast<uint32>(b) << 8) | \ + (static_cast<uint32>(c) << 16) | (static_cast<uint32>(d) << 24)) + +#define DRM_FORMAT_ARGB8888 FOURCC('A', 'R', '2', '4') +#define DRM_FORMAT_XRGB8888 FOURCC('X', 'R', '2', '4') + +namespace gfx { +namespace { + +bool ValidInternalFormat(unsigned internalformat) { + switch (internalformat) { + case GL_RGB: + case GL_BGRA_EXT: + return true; + default: + return false; + } +} + +bool ValidFormat(gfx::BufferFormat format) { + switch (format) { + case BufferFormat::BGRA_8888: + case BufferFormat::BGRX_8888: + return true; + case BufferFormat::ATC: + case BufferFormat::ATCIA: + case BufferFormat::DXT1: + case BufferFormat::DXT5: + case BufferFormat::ETC1: + case BufferFormat::R_8: + case BufferFormat::RGBA_4444: + case BufferFormat::RGBA_8888: + case BufferFormat::YUV_420: + case BufferFormat::YUV_420_BIPLANAR: + case BufferFormat::UYVY_422: + return false; + } + + NOTREACHED(); + return false; +} + +EGLint FourCC(gfx::BufferFormat format) { + switch (format) { + case BufferFormat::BGRA_8888: + return DRM_FORMAT_ARGB8888; + case BufferFormat::BGRX_8888: + return DRM_FORMAT_XRGB8888; + case BufferFormat::ATC: + case BufferFormat::ATCIA: + case BufferFormat::DXT1: + case BufferFormat::DXT5: + case BufferFormat::ETC1: + case BufferFormat::R_8: + case BufferFormat::RGBA_4444: + case BufferFormat::RGBA_8888: + case BufferFormat::YUV_420: + case BufferFormat::YUV_420_BIPLANAR: + case BufferFormat::UYVY_422: + NOTREACHED(); + return 0; + } + + NOTREACHED(); + return 0; +} + +} // namespace + +GLImageOzoneNativePixmap::GLImageOzoneNativePixmap(const Size& size, + unsigned internalformat) + : GLImageEGL(size), internalformat_(internalformat) {} + +GLImageOzoneNativePixmap::~GLImageOzoneNativePixmap() { +} + +bool GLImageOzoneNativePixmap::Initialize(ui::NativePixmap* pixmap, + BufferFormat format) { + DCHECK(!pixmap_); + + bool result = true; + if (pixmap->GetEGLClientBuffer()) { + EGLint attrs[] = {EGL_IMAGE_PRESERVED_KHR, EGL_TRUE, EGL_NONE}; + result = GLImageEGL::Initialize(EGL_NATIVE_PIXMAP_KHR, + pixmap->GetEGLClientBuffer(), attrs); + } else if (pixmap->GetDmaBufFd() >= 0) { + if (!ValidInternalFormat(internalformat_)) { + LOG(ERROR) << "Invalid internalformat: " << internalformat_; + return false; + } + + if (!ValidFormat(format)) { + LOG(ERROR) << "Invalid format: " << static_cast<int>(format); + return false; + } + + // Note: If eglCreateImageKHR is successful for a EGL_LINUX_DMA_BUF_EXT + // target, the EGL will take a reference to the dma_buf. + EGLint attrs[] = {EGL_WIDTH, + size_.width(), + EGL_HEIGHT, + size_.height(), + EGL_LINUX_DRM_FOURCC_EXT, + FourCC(format), + EGL_DMA_BUF_PLANE0_FD_EXT, + pixmap->GetDmaBufFd(), + EGL_DMA_BUF_PLANE0_OFFSET_EXT, + 0, + EGL_DMA_BUF_PLANE0_PITCH_EXT, + pixmap->GetDmaBufPitch(), + EGL_NONE}; + result = GLImageEGL::Initialize( + EGL_LINUX_DMA_BUF_EXT, static_cast<EGLClientBuffer>(nullptr), attrs); + } + + if (result) + pixmap_ = pixmap; + return result; +} + +unsigned GLImageOzoneNativePixmap::GetInternalFormat() { + return internalformat_; +} + +void GLImageOzoneNativePixmap::Destroy(bool have_context) { + GLImageEGL::Destroy(have_context); +} + +bool GLImageOzoneNativePixmap::ScheduleOverlayPlane(AcceleratedWidget widget, + int z_order, + OverlayTransform transform, + const Rect& bounds_rect, + const RectF& crop_rect) { + DCHECK(pixmap_); + return pixmap_->ScheduleOverlayPlane(widget, z_order, transform, bounds_rect, + crop_rect); +} + +void GLImageOzoneNativePixmap::OnMemoryDump( + base::trace_event::ProcessMemoryDump* pmd, + uint64_t process_tracing_id, + const std::string& dump_name) { + // TODO(ericrk): Implement GLImage OnMemoryDump. crbug.com/514914 +} + +} // namespace gfx diff --git a/chromium/ui/gl/gl_image_ozone_native_pixmap.h b/chromium/ui/gl/gl_image_ozone_native_pixmap.h new file mode 100644 index 00000000000..e164f39c2c3 --- /dev/null +++ b/chromium/ui/gl/gl_image_ozone_native_pixmap.h @@ -0,0 +1,42 @@ +// Copyright 2015 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef UI_GL_GL_IMAGE_OZONE_NATIVE_PIXMAP_H_ +#define UI_GL_GL_IMAGE_OZONE_NATIVE_PIXMAP_H_ + +#include "ui/gfx/gpu_memory_buffer.h" +#include "ui/gl/gl_image_egl.h" +#include "ui/ozone/public/native_pixmap.h" + +namespace gfx { + +class GL_EXPORT GLImageOzoneNativePixmap : public GLImageEGL { + public: + GLImageOzoneNativePixmap(const Size& size, unsigned internalformat); + + bool Initialize(ui::NativePixmap* pixmap, BufferFormat format); + + // Overridden from GLImage: + unsigned GetInternalFormat() override; + void Destroy(bool have_context) override; + bool ScheduleOverlayPlane(AcceleratedWidget widget, + int z_order, + OverlayTransform transform, + const Rect& bounds_rect, + const RectF& crop_rect) override; + void OnMemoryDump(base::trace_event::ProcessMemoryDump* pmd, + uint64_t process_tracing_id, + const std::string& dump_name) override; + + protected: + ~GLImageOzoneNativePixmap() override; + + private: + unsigned internalformat_; + scoped_refptr<ui::NativePixmap> pixmap_; +}; + +} // namespace gfx + +#endif // UI_GL_GL_IMAGE_OZONE_NATIVE_PIXMAP_H_ diff --git a/chromium/ui/gl/gl_image_ref_counted_memory.cc b/chromium/ui/gl/gl_image_ref_counted_memory.cc index 653d70a98c7..7aadd247e94 100644 --- a/chromium/ui/gl/gl_image_ref_counted_memory.cc +++ b/chromium/ui/gl/gl_image_ref_counted_memory.cc @@ -20,7 +20,7 @@ GLImageRefCountedMemory::~GLImageRefCountedMemory() { bool GLImageRefCountedMemory::Initialize( base::RefCountedMemory* ref_counted_memory, - gfx::GpuMemoryBuffer::Format format) { + gfx::BufferFormat format) { if (!GLImageMemory::Initialize(ref_counted_memory->front(), format)) return false; @@ -34,4 +34,27 @@ void GLImageRefCountedMemory::Destroy(bool have_context) { ref_counted_memory_ = NULL; } +void GLImageRefCountedMemory::OnMemoryDump( + base::trace_event::ProcessMemoryDump* pmd, + uint64_t process_tracing_id, + const std::string& dump_name) { + // Log size 0 if |ref_counted_memory_| has been released. + size_t size_in_bytes = ref_counted_memory_ ? ref_counted_memory_->size() : 0; + + // Dump under "/private_memory", as the base class may also dump to + // "/texture_memory". + base::trace_event::MemoryAllocatorDump* dump = + pmd->CreateAllocatorDump(dump_name + "/private_memory"); + dump->AddScalar(base::trace_event::MemoryAllocatorDump::kNameSize, + base::trace_event::MemoryAllocatorDump::kUnitsBytes, + static_cast<uint64_t>(size_in_bytes)); + + pmd->AddSuballocation(dump->guid(), + base::trace_event::MemoryDumpManager::GetInstance() + ->system_allocator_pool_name()); + + // Also dump the base class's texture memory. + GLImageMemory::OnMemoryDump(pmd, process_tracing_id, dump_name); +} + } // namespace gfx diff --git a/chromium/ui/gl/gl_image_ref_counted_memory.h b/chromium/ui/gl/gl_image_ref_counted_memory.h index 6bcf2179f26..db079545dac 100644 --- a/chromium/ui/gl/gl_image_ref_counted_memory.h +++ b/chromium/ui/gl/gl_image_ref_counted_memory.h @@ -19,10 +19,13 @@ class GL_EXPORT GLImageRefCountedMemory : public GLImageMemory { GLImageRefCountedMemory(const gfx::Size& size, unsigned internalformat); bool Initialize(base::RefCountedMemory* ref_counted_memory, - gfx::GpuMemoryBuffer::Format format); + gfx::BufferFormat format); // Overridden from GLImage: void Destroy(bool have_context) override; + void OnMemoryDump(base::trace_event::ProcessMemoryDump* pmd, + uint64_t process_tracing_id, + const std::string& dump_name) override; protected: ~GLImageRefCountedMemory() override; diff --git a/chromium/ui/gl/gl_image_shared_memory.cc b/chromium/ui/gl/gl_image_shared_memory.cc index d9e31a73ae5..33ba4d161ab 100644 --- a/chromium/ui/gl/gl_image_shared_memory.cc +++ b/chromium/ui/gl/gl_image_shared_memory.cc @@ -13,7 +13,7 @@ namespace { // Returns true if the size is valid and false otherwise. bool SizeInBytes(const gfx::Size& size, - gfx::GpuMemoryBuffer::Format format, + gfx::BufferFormat format, size_t* size_in_bytes) { if (size.IsEmpty()) return false; @@ -41,7 +41,7 @@ GLImageSharedMemory::~GLImageSharedMemory() { } bool GLImageSharedMemory::Initialize(const gfx::GpuMemoryBufferHandle& handle, - gfx::GpuMemoryBuffer::Format format) { + gfx::BufferFormat format) { size_t size_in_bytes; if (!SizeInBytes(GetSize(), format, &size_in_bytes)) return false; @@ -73,6 +73,7 @@ bool GLImageSharedMemory::Initialize(const gfx::GpuMemoryBufferHandle& handle, DCHECK(!shared_memory_); shared_memory_ = duped_shared_memory.Pass(); + shared_memory_id_ = handle.id; return true; } @@ -81,4 +82,32 @@ void GLImageSharedMemory::Destroy(bool have_context) { shared_memory_.reset(); } +void GLImageSharedMemory::OnMemoryDump( + base::trace_event::ProcessMemoryDump* pmd, + uint64_t process_tracing_id, + const std::string& dump_name) { + size_t size_in_bytes = 0; + + if (shared_memory_) { + bool result = SizeInBytes(GetSize(), format(), &size_in_bytes); + DCHECK(result); + } + + // Dump under "/shared_memory", as the base class may also dump to + // "/texture_memory". + base::trace_event::MemoryAllocatorDump* dump = + pmd->CreateAllocatorDump(dump_name + "/private_memory"); + dump->AddScalar(base::trace_event::MemoryAllocatorDump::kNameSize, + base::trace_event::MemoryAllocatorDump::kUnitsBytes, + static_cast<uint64_t>(size_in_bytes)); + + auto guid = gfx::GetGenericSharedMemoryGUIDForTracing(process_tracing_id, + shared_memory_id_); + pmd->CreateSharedGlobalAllocatorDump(guid); + pmd->AddOwnershipEdge(dump->guid(), guid); + + // Also dump the base class's texture memory. + GLImageMemory::OnMemoryDump(pmd, process_tracing_id, dump_name); +} + } // namespace gfx diff --git a/chromium/ui/gl/gl_image_shared_memory.h b/chromium/ui/gl/gl_image_shared_memory.h index ab80b35bc59..d9233cb1fc3 100644 --- a/chromium/ui/gl/gl_image_shared_memory.h +++ b/chromium/ui/gl/gl_image_shared_memory.h @@ -16,16 +16,20 @@ class GL_EXPORT GLImageSharedMemory : public GLImageMemory { GLImageSharedMemory(const gfx::Size& size, unsigned internalformat); bool Initialize(const gfx::GpuMemoryBufferHandle& handle, - gfx::GpuMemoryBuffer::Format format); + gfx::BufferFormat format); // Overridden from GLImage: void Destroy(bool have_context) override; + void OnMemoryDump(base::trace_event::ProcessMemoryDump* pmd, + uint64_t process_tracing_id, + const std::string& dump_name) override; protected: ~GLImageSharedMemory() override; private: scoped_ptr<base::SharedMemory> shared_memory_; + gfx::GenericSharedMemoryId shared_memory_id_; DISALLOW_COPY_AND_ASSIGN(GLImageSharedMemory); }; diff --git a/chromium/ui/gl/gl_image_stub.h b/chromium/ui/gl/gl_image_stub.h index 04c760b945e..be31bff5afc 100644 --- a/chromium/ui/gl/gl_image_stub.h +++ b/chromium/ui/gl/gl_image_stub.h @@ -32,6 +32,9 @@ class GL_EXPORT GLImageStub : public GLImage { OverlayTransform transform, const Rect& bounds_rect, const RectF& crop_rect) override; + void OnMemoryDump(base::trace_event::ProcessMemoryDump* pmd, + uint64_t process_tracing_id, + const std::string& dump_name) override {} protected: ~GLImageStub() override; diff --git a/chromium/ui/gl/gl_image_surface_texture.cc b/chromium/ui/gl/gl_image_surface_texture.cc index bec06be8f24..910551da3a4 100644 --- a/chromium/ui/gl/gl_image_surface_texture.cc +++ b/chromium/ui/gl/gl_image_surface_texture.cc @@ -92,4 +92,11 @@ bool GLImageSurfaceTexture::ScheduleOverlayPlane(gfx::AcceleratedWidget widget, return false; } +void GLImageSurfaceTexture::OnMemoryDump( + base::trace_event::ProcessMemoryDump* pmd, + uint64_t process_tracing_id, + const std::string& dump_name) { + // TODO(ericrk): Add OnMemoryDump for GLImages. crbug.com/514914 +} + } // namespace gfx diff --git a/chromium/ui/gl/gl_image_surface_texture.h b/chromium/ui/gl/gl_image_surface_texture.h index 2412c5d0101..d8c4abb360a 100644 --- a/chromium/ui/gl/gl_image_surface_texture.h +++ b/chromium/ui/gl/gl_image_surface_texture.h @@ -37,6 +37,9 @@ class GL_EXPORT GLImageSurfaceTexture : public GLImage { OverlayTransform transform, const Rect& bounds_rect, const RectF& crop_rect) override; + void OnMemoryDump(base::trace_event::ProcessMemoryDump* pmd, + uint64_t process_tracing_id, + const std::string& dump_name) override; protected: ~GLImageSurfaceTexture() override; diff --git a/chromium/ui/gl/gl_implementation.cc b/chromium/ui/gl/gl_implementation.cc index 4fae0ec5302..66f228243fc 100644 --- a/chromium/ui/gl/gl_implementation.cc +++ b/chromium/ui/gl/gl_implementation.cc @@ -14,6 +14,7 @@ #include "base/strings/string_util.h" #include "ui/gl/gl_bindings.h" #include "ui/gl/gl_gl_api_implementation.h" +#include "ui/gl/gl_version_info.h" namespace gfx { @@ -162,8 +163,8 @@ std::string FilterGLExtensionList( if (extensions == NULL) return ""; - std::vector<std::string> extension_vec; - base::SplitString(extensions, ' ', &extension_vec); + std::vector<std::string> extension_vec = base::SplitString( + extensions, " ", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL); auto is_disabled = [&disabled_extensions](const std::string& ext) { return std::find(disabled_extensions.begin(), disabled_extensions.end(), @@ -173,7 +174,7 @@ std::string FilterGLExtensionList( std::remove_if(extension_vec.begin(), extension_vec.end(), is_disabled), extension_vec.end()); - return JoinString(extension_vec, " "); + return base::JoinString(extension_vec, " "); } DisableNullDrawGLBindings::DisableNullDrawGLBindings() { @@ -187,4 +188,31 @@ DisableNullDrawGLBindings::~DisableNullDrawGLBindings() { GLWindowSystemBindingInfo::GLWindowSystemBindingInfo() : direct_rendering(true) {} +std::string GetGLExtensionsFromCurrentContext() { + if (WillUseGLGetStringForExtensions()) { + return reinterpret_cast<const char*>(glGetString(GL_EXTENSIONS)); + } + + std::vector<std::string> exts; + GLint num_extensions = 0; + glGetIntegerv(GL_NUM_EXTENSIONS, &num_extensions); + for (GLint i = 0; i < num_extensions; ++i) { + const char* extension = reinterpret_cast<const char*>( + glGetStringi(GL_EXTENSIONS, i)); + DCHECK(extension != NULL); + exts.push_back(extension); + } + return base::JoinString(exts, " "); +} + +bool WillUseGLGetStringForExtensions() { + const char* version_str = + reinterpret_cast<const char*>(glGetString(GL_VERSION)); + unsigned major_version, minor_version; + bool is_es, is_es3; + gfx::GLVersionInfo::ParseVersionString( + version_str, &major_version, &minor_version, &is_es, &is_es3); + return is_es || major_version < 3; +} + } // namespace gfx diff --git a/chromium/ui/gl/gl_implementation.h b/chromium/ui/gl/gl_implementation.h index c0ac42ea429..eab70dc3598 100644 --- a/chromium/ui/gl/gl_implementation.h +++ b/chromium/ui/gl/gl_implementation.h @@ -36,7 +36,8 @@ struct GL_EXPORT GLWindowSystemBindingInfo { bool direct_rendering; }; -void GetAllowedGLImplementations(std::vector<GLImplementation>* impls); +void GL_EXPORT +GetAllowedGLImplementations(std::vector<GLImplementation>* impls); #if defined(OS_WIN) typedef void* (WINAPI *GLGetProcAddressProc)(const char* name); @@ -121,6 +122,19 @@ void* GetGLProcAddress(const char* name); // EGL, GLX, WGL). Returns true if the information was retrieved successfully. GL_EXPORT bool GetGLWindowSystemBindingInfo(GLWindowSystemBindingInfo* info); +// Helper for fetching the OpenGL extensions from the current context. +// This helper abstracts over differences between the desktop OpenGL +// core profile, and OpenGL ES and the compatibility profile. It's +// intended for users of the bindings, not the implementation of the +// bindings themselves. This is a relatively expensive call, so +// callers should cache the result. +GL_EXPORT std::string GetGLExtensionsFromCurrentContext(); + +// Helper for the GL bindings implementation to understand whether +// glGetString(GL_EXTENSIONS) or glGetStringi(GL_EXTENSIONS, i) will +// be used in the function above. +GL_EXPORT bool WillUseGLGetStringForExtensions(); + } // namespace gfx #endif // UI_GL_GL_IMPLEMENTATION_H_ diff --git a/chromium/ui/gl/gl_implementation_win.cc b/chromium/ui/gl/gl_implementation_win.cc index 40cbdde9131..6a4e61298a7 100644 --- a/chromium/ui/gl/gl_implementation_win.cc +++ b/chromium/ui/gl/gl_implementation_win.cc @@ -90,16 +90,17 @@ bool InitializeStaticGLBindings(GLImplementation implementation) { switch (implementation) { case kGLImplementationOSMesaGL: { base::FilePath module_path; - if (!PathService::Get(base::DIR_MODULE, &module_path)) { - LOG(ERROR) << "PathService::Get failed."; - return false; - } - + PathService::Get(base::DIR_MODULE, &module_path); base::NativeLibrary library = base::LoadNativeLibrary( module_path.Append(L"osmesa.dll"), NULL); if (!library) { - DVLOG(1) << "osmesa.dll not found"; - return false; + PathService::Get(base::DIR_EXE, &module_path); + library = base::LoadNativeLibrary( + module_path.Append(L"osmesa.dll"), NULL); + if (!library) { + DVLOG(1) << "osmesa.dll not found"; + return false; + } } GLGetProcAddressProc get_proc_address = diff --git a/chromium/ui/gl/gl_mock_autogen_gl.h b/chromium/ui/gl/gl_mock_autogen_gl.h index 2840661c996..53c49dff775 100644 --- a/chromium/ui/gl/gl_mock_autogen_gl.h +++ b/chromium/ui/gl/gl_mock_autogen_gl.h @@ -9,6 +9,7 @@ // DO NOT EDIT! MOCK_METHOD1(ActiveTexture, void(GLenum texture)); +MOCK_METHOD0(ApplyFramebufferAttachmentCMAAINTEL, void()); MOCK_METHOD2(AttachShader, void(GLuint program, GLuint shader)); MOCK_METHOD2(BeginQuery, void(GLenum target, GLuint id)); MOCK_METHOD1(BeginTransformFeedback, void(GLenum primitiveMode)); @@ -168,6 +169,8 @@ MOCK_METHOD9(CopyTexSubImage3D, GLint y, GLsizei width, GLsizei height)); +MOCK_METHOD2(CoverFillPathNV, void(GLuint path, GLenum coverMode)); +MOCK_METHOD2(CoverStrokePathNV, void(GLuint name, GLenum coverMode)); MOCK_METHOD0(CreateProgram, GLuint()); MOCK_METHOD1(CreateShader, GLuint(GLenum type)); MOCK_METHOD1(CullFace, void(GLenum mode)); @@ -176,6 +179,7 @@ MOCK_METHOD2(DeleteFencesAPPLE, void(GLsizei n, const GLuint* fences)); MOCK_METHOD2(DeleteFencesNV, void(GLsizei n, const GLuint* fences)); MOCK_METHOD2(DeleteFramebuffersEXT, void(GLsizei n, const GLuint* framebuffers)); +MOCK_METHOD2(DeletePathsNV, void(GLuint path, GLsizei range)); MOCK_METHOD1(DeleteProgram, void(GLuint program)); MOCK_METHOD2(DeleteQueries, void(GLsizei n, const GLuint* ids)); MOCK_METHOD2(DeleteRenderbuffersEXT, @@ -270,6 +274,7 @@ MOCK_METHOD1(GenerateMipmapEXT, void(GLenum target)); MOCK_METHOD2(GenFencesAPPLE, void(GLsizei n, GLuint* fences)); MOCK_METHOD2(GenFencesNV, void(GLsizei n, GLuint* fences)); MOCK_METHOD2(GenFramebuffersEXT, void(GLsizei n, GLuint* framebuffers)); +MOCK_METHOD1(GenPathsNV, GLuint(GLsizei range)); MOCK_METHOD2(GenQueries, void(GLsizei n, GLuint* ids)); MOCK_METHOD2(GenRenderbuffersEXT, void(GLsizei n, GLuint* renderbuffers)); MOCK_METHOD2(GenSamplers, void(GLsizei n, GLuint* samplers)); @@ -436,6 +441,7 @@ MOCK_METHOD1(IsEnabled, GLboolean(GLenum cap)); MOCK_METHOD1(IsFenceAPPLE, GLboolean(GLuint fence)); MOCK_METHOD1(IsFenceNV, GLboolean(GLuint fence)); MOCK_METHOD1(IsFramebufferEXT, GLboolean(GLuint framebuffer)); +MOCK_METHOD1(IsPathNV, GLboolean(GLuint path)); MOCK_METHOD1(IsProgram, GLboolean(GLuint program)); MOCK_METHOD1(IsQuery, GLboolean(GLuint query)); MOCK_METHOD1(IsRenderbufferEXT, GLboolean(GLuint renderbuffer)); @@ -455,6 +461,16 @@ MOCK_METHOD4(MapBufferRange, GLbitfield access)); MOCK_METHOD2(MatrixLoadfEXT, void(GLenum matrixMode, const GLfloat* m)); MOCK_METHOD1(MatrixLoadIdentityEXT, void(GLenum matrixMode)); +MOCK_METHOD6(PathCommandsNV, + void(GLuint path, + GLsizei numCommands, + const GLubyte* commands, + GLsizei numCoords, + GLenum coordType, + const GLvoid* coords)); +MOCK_METHOD3(PathParameterfNV, void(GLuint path, GLenum pname, GLfloat value)); +MOCK_METHOD3(PathParameteriNV, void(GLuint path, GLenum pname, GLint value)); +MOCK_METHOD3(PathStencilFuncNV, void(GLenum func, GLint ref, GLuint mask)); MOCK_METHOD0(PauseTransformFeedback, void()); MOCK_METHOD2(PixelStorei, void(GLenum pname, GLint param)); MOCK_METHOD2(PointParameteri, void(GLenum pname, GLint param)); @@ -530,6 +546,8 @@ MOCK_METHOD4(ShaderSource, GLsizei count, const char* const* str, const GLint* length)); +MOCK_METHOD3(StencilFillPathNV, + void(GLuint path, GLenum fillMode, GLuint mask)); MOCK_METHOD3(StencilFunc, void(GLenum func, GLint ref, GLuint mask)); MOCK_METHOD4(StencilFuncSeparate, void(GLenum face, GLenum func, GLint ref, GLuint mask)); @@ -538,6 +556,12 @@ MOCK_METHOD2(StencilMaskSeparate, void(GLenum face, GLuint mask)); MOCK_METHOD3(StencilOp, void(GLenum fail, GLenum zfail, GLenum zpass)); MOCK_METHOD4(StencilOpSeparate, void(GLenum face, GLenum fail, GLenum zfail, GLenum zpass)); +MOCK_METHOD3(StencilStrokePathNV, + void(GLuint path, GLint reference, GLuint mask)); +MOCK_METHOD4(StencilThenCoverFillPathNV, + void(GLuint path, GLenum fillMode, GLuint mask, GLenum coverMode)); +MOCK_METHOD4(StencilThenCoverStrokePathNV, + void(GLuint path, GLint reference, GLuint mask, GLenum coverMode)); MOCK_METHOD1(TestFenceAPPLE, GLboolean(GLuint fence)); MOCK_METHOD1(TestFenceNV, GLboolean(GLuint fence)); MOCK_METHOD9(TexImage2D, diff --git a/chromium/ui/gl/gl_state_restorer.h b/chromium/ui/gl/gl_state_restorer.h index 7edc9989134..87ad7cccb85 100644 --- a/chromium/ui/gl/gl_state_restorer.h +++ b/chromium/ui/gl/gl_state_restorer.h @@ -8,6 +8,12 @@ #include "base/basictypes.h" #include "ui/gl/gl_export.h" +namespace gpu { +namespace gles2 { + class GLES2Decoder; +} // namespace gles2 +} // namespace gpu + namespace gfx { // An interface for Restoring GL State. @@ -22,6 +28,8 @@ class GL_EXPORT GLStateRestorer { virtual void RestoreAllTextureUnitBindings() = 0; virtual void RestoreActiveTextureUnitBinding(unsigned int target) = 0; virtual void RestoreFramebufferBindings() = 0; + virtual void PauseQueries() = 0; + virtual void ResumeQueries() = 0; DISALLOW_COPY_AND_ASSIGN(GLStateRestorer); }; diff --git a/chromium/ui/gl/gl_surface.cc b/chromium/ui/gl/gl_surface.cc index 8a60ca5477d..3c4538e66ee 100644 --- a/chromium/ui/gl/gl_surface.cc +++ b/chromium/ui/gl/gl_surface.cc @@ -17,10 +17,6 @@ #include "ui/gl/gl_implementation.h" #include "ui/gl/gl_switches.h" -#if defined(USE_X11) -#include <X11/Xlib.h> -#endif - namespace gfx { namespace { @@ -97,80 +93,12 @@ bool GLSurface::InitializeOneOffImplementation(GLImplementation impl, return initialized; } -// static -void GLSurface::InitializeOneOffForTests() { - DCHECK_EQ(kGLImplementationNone, GetGLImplementation()); - -#if defined(USE_X11) - XInitThreads(); -#endif - - bool use_osmesa = true; - - // We usually use OSMesa as this works on all bots. The command line can - // override this behaviour to use hardware GL. - if (base::CommandLine::ForCurrentProcess()->HasSwitch( - switches::kUseGpuInTests)) - use_osmesa = false; - -#if defined(OS_ANDROID) - // On Android we always use hardware GL. - use_osmesa = false; -#endif - - std::vector<GLImplementation> allowed_impls; - GetAllowedGLImplementations(&allowed_impls); - DCHECK(!allowed_impls.empty()); - - GLImplementation impl = allowed_impls[0]; - if (use_osmesa) - impl = kGLImplementationOSMesaGL; - - DCHECK(!base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kUseGL)) - << "kUseGL has not effect in tests"; - - bool fallback_to_osmesa = false; - bool gpu_service_logging = false; - bool disable_gl_drawing = true; - - CHECK(InitializeOneOffImplementation( - impl, fallback_to_osmesa, gpu_service_logging, disable_gl_drawing)); -} - -// static -void GLSurface::InitializeOneOffWithMockBindingsForTests() { - DCHECK(!base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kUseGL)) - << "kUseGL has not effect in tests"; - - // This method may be called multiple times in the same process to set up - // mock bindings in different ways. - ClearGLBindings(); - - bool fallback_to_osmesa = false; - bool gpu_service_logging = false; - bool disable_gl_drawing = false; - - CHECK(InitializeOneOffImplementation(kGLImplementationMockGL, - fallback_to_osmesa, - gpu_service_logging, - disable_gl_drawing)); -} - -// static -void GLSurface::InitializeDynamicMockBindingsForTests(GLContext* context) { - CHECK(InitializeDynamicGLBindings(kGLImplementationMockGL, context)); -} - GLSurface::GLSurface() {} bool GLSurface::Initialize() { return true; } -void GLSurface::DestroyAndTerminateDisplay() { - Destroy(); -} - bool GLSurface::Resize(const gfx::Size& size) { NOTIMPLEMENTED(); return false; diff --git a/chromium/ui/gl/gl_surface.h b/chromium/ui/gl/gl_surface.h index 9fee0a37c2c..5d98253910d 100644 --- a/chromium/ui/gl/gl_surface.h +++ b/chromium/ui/gl/gl_surface.h @@ -40,10 +40,6 @@ class GL_EXPORT GLSurface : public base::RefCounted<GLSurface> { // Destroys the surface. virtual void Destroy() = 0; - // Destroys the surface and terminates its underlying display. This must be - // the last surface which uses the display. - virtual void DestroyAndTerminateDisplay(); - virtual bool Resize(const gfx::Size& size); // Recreate the surface without changing the size. @@ -99,12 +95,6 @@ class GL_EXPORT GLSurface : public base::RefCounted<GLSurface> { // Initialize GL bindings. static bool InitializeOneOff(); - // Unit tests should call these instead of InitializeOneOff() to set up - // GL bindings appropriate for tests. - static void InitializeOneOffForTests(); - static void InitializeOneOffWithMockBindingsForTests(); - static void InitializeDynamicMockBindingsForTests(GLContext* context); - // Called after a context is made current with this surface. Returns false // on error. virtual bool OnMakeCurrent(GLContext* context); @@ -189,6 +179,7 @@ class GL_EXPORT GLSurface : public base::RefCounted<GLSurface> { private: friend class base::RefCounted<GLSurface>; friend class GLContext; + friend class GLSurfaceTestSupport; DISALLOW_COPY_AND_ASSIGN(GLSurface); }; diff --git a/chromium/ui/gl/gl_surface_egl.cc b/chromium/ui/gl/gl_surface_egl.cc index 2e193a5d5dc..f85258ff8b8 100644 --- a/chromium/ui/gl/gl_surface_egl.cc +++ b/chromium/ui/gl/gl_surface_egl.cc @@ -85,16 +85,7 @@ namespace { EGLConfig g_config; EGLDisplay g_display; -EGLNativeDisplayType g_native_display_type; - -// In the Cast environment, we need to destroy the EGLNativeDisplayType and -// EGLDisplay returned by the GPU platform when we switch to an external app -// which will temporarily own all screen and GPU resources. -// Even though Chromium is still in the background. -// As such, it must be reinitialized each time we come back to the foreground. -bool g_initialized = false; -int g_num_surfaces = 0; -bool g_terminate_pending = false; +EGLNativeDisplayType g_native_display; const char* g_egl_extensions = NULL; bool g_egl_create_context_robustness_supported = false; @@ -138,13 +129,6 @@ class EGLSyncControlVSyncProvider DISALLOW_COPY_AND_ASSIGN(EGLSyncControlVSyncProvider); }; -void DeinitializeEgl() { - if (g_initialized) { - g_initialized = false; - eglTerminate(g_display); - } -} - EGLDisplay GetPlatformANGLEDisplay(EGLNativeDisplayType native_display, EGLenum platform_type, bool warpDevice) { @@ -270,17 +254,11 @@ void GetEGLInitDisplays(bool supports_angle_d3d, } } -GLSurfaceEGL::GLSurfaceEGL() { - ++g_num_surfaces; - if (!g_initialized) { - bool result = GLSurfaceEGL::InitializeOneOff(); - DCHECK(result); - DCHECK(g_initialized); - } -} +GLSurfaceEGL::GLSurfaceEGL() {} bool GLSurfaceEGL::InitializeOneOff() { - if (g_initialized) + static bool initialized = false; + if (initialized) return true; InitializeDisplay(); @@ -347,12 +325,6 @@ bool GLSurfaceEGL::InitializeOneOff() { g_egl_window_fixed_size_supported = HasEGLExtension("EGL_ANGLE_window_fixed_size"); - // We always succeed beyond this point so set g_initialized here to avoid - // infinite recursion through CreateGLContext and GetDisplay - // if g_egl_surfaceless_context_supported. - g_initialized = true; - g_terminate_pending = false; - // TODO(oetuaho@nvidia.com): Surfaceless is disabled on Android as a temporary // workaround, since code written for Android WebView takes different paths // based on whether GL surface objects have underlying EGL surface handles, @@ -382,35 +354,24 @@ bool GLSurfaceEGL::InitializeOneOff() { } #endif + initialized = true; + return true; } EGLDisplay GLSurfaceEGL::GetDisplay() { - DCHECK(g_initialized); return g_display; } -// static EGLDisplay GLSurfaceEGL::GetHardwareDisplay() { - if (!g_initialized) { - bool result = GLSurfaceEGL::InitializeOneOff(); - DCHECK(result); - } return g_display; } -// static EGLNativeDisplayType GLSurfaceEGL::GetNativeDisplay() { - if (!g_initialized) { - bool result = GLSurfaceEGL::InitializeOneOff(); - DCHECK(result); - } - return g_native_display_type; + return g_native_display; } const char* GLSurfaceEGL::GetEGLExtensions() { - // No need for InitializeOneOff. Assume that extensions will not change - // after the first initialization. return g_egl_extensions; } @@ -426,20 +387,7 @@ bool GLSurfaceEGL::IsEGLSurfacelessContextSupported() { return g_egl_surfaceless_context_supported; } -void GLSurfaceEGL::DestroyAndTerminateDisplay() { - DCHECK(g_initialized); - DCHECK_EQ(g_num_surfaces, 1); - Destroy(); - g_terminate_pending = true; -} - -GLSurfaceEGL::~GLSurfaceEGL() { - DCHECK_GT(g_num_surfaces, 0) << "Bad surface count"; - if (--g_num_surfaces == 0 && g_terminate_pending) { - DeinitializeEgl(); - g_terminate_pending = false; - } -} +GLSurfaceEGL::~GLSurfaceEGL() {} // InitializeDisplay is necessary because the static binding code // needs a full Display init before it can query the Display extensions. @@ -449,7 +397,7 @@ EGLDisplay GLSurfaceEGL::InitializeDisplay() { return g_display; } - g_native_display_type = GetPlatformDefaultEGLNativeDisplay(); + g_native_display = GetPlatformDefaultEGLNativeDisplay(); // If EGL_EXT_client_extensions not supported this call to eglQueryString // will return NULL. @@ -474,7 +422,7 @@ EGLDisplay GLSurfaceEGL::InitializeDisplay() { for (size_t disp_index = 0; disp_index < init_displays.size(); ++disp_index) { DisplayType display_type = init_displays[disp_index]; EGLDisplay display = - GetDisplayFromType(display_type, g_native_display_type); + GetDisplayFromType(display_type, g_native_display); if (display == EGL_NO_DISPLAY) { LOG(ERROR) << "EGL display query failed with error " << GetLastEGLErrorString(); diff --git a/chromium/ui/gl/gl_surface_egl.h b/chromium/ui/gl/gl_surface_egl.h index 07d02712cb9..c8c7ddf3122 100644 --- a/chromium/ui/gl/gl_surface_egl.h +++ b/chromium/ui/gl/gl_surface_egl.h @@ -45,7 +45,6 @@ class GL_EXPORT GLSurfaceEGL : public GLSurface { GLSurfaceEGL(); // Implement GLSurface. - void DestroyAndTerminateDisplay() override; EGLDisplay GetDisplay() override; static bool InitializeOneOff(); diff --git a/chromium/ui/gl/gl_surface_glx.cc b/chromium/ui/gl/gl_surface_glx.cc index b021a426838..49ff0411507 100644 --- a/chromium/ui/gl/gl_surface_glx.cc +++ b/chromium/ui/gl/gl_surface_glx.cc @@ -47,7 +47,7 @@ bool g_glx_get_msc_rate_oml_supported = false; bool g_glx_sgi_video_sync_supported = false; -static const base::TimeDelta kGetVSyncParametersMinPeriod = +static const int kGetVSyncParametersMinSeconds = #if defined(OS_LINUX) // See crbug.com/373489 // On Linux, querying the vsync parameters might burn CPU for up to an @@ -55,9 +55,9 @@ static const base::TimeDelta kGetVSyncParametersMinPeriod = // 5 seconds is chosen somewhat abitrarily as a balance between: // a) Drift in the phase of our signal. // b) Potential janks from periodically pegging the CPU. - base::TimeDelta::FromSeconds(5); + 5; #else - base::TimeDelta::FromSeconds(0); + 0; #endif class OMLSyncControlVSyncProvider @@ -261,10 +261,10 @@ class SGIVideoSyncVSyncProvider void GetVSyncParameters( const VSyncProvider::UpdateVSyncCallback& callback) override { - if (kGetVSyncParametersMinPeriod > base::TimeDelta()) { + if (kGetVSyncParametersMinSeconds > 0) { base::TimeTicks now = base::TimeTicks::Now(); base::TimeDelta delta = now - last_get_vsync_parameters_time_; - if (delta < kGetVSyncParametersMinPeriod) + if (delta.InSeconds() < kGetVSyncParametersMinSeconds) return; last_get_vsync_parameters_time_ = now; } diff --git a/chromium/ui/gl/gl_surface_ozone.cc b/chromium/ui/gl/gl_surface_ozone.cc index 50a7326f66f..04fc760d366 100644 --- a/chromium/ui/gl/gl_surface_ozone.cc +++ b/chromium/ui/gl/gl_surface_ozone.cc @@ -15,7 +15,7 @@ #include "ui/gfx/native_widget_types.h" #include "ui/gl/gl_context.h" #include "ui/gl/gl_image.h" -#include "ui/gl/gl_image_linux_dma_buffer.h" +#include "ui/gl/gl_image_ozone_native_pixmap.h" #include "ui/gl/gl_implementation.h" #include "ui/gl/gl_surface_egl.h" #include "ui/gl/gl_surface_osmesa.h" @@ -36,7 +36,7 @@ void WaitForFence(EGLDisplay display, EGLSyncKHR fence) { EGL_FOREVER_KHR); } -// A thin wrapper around GLSurfaceEGL that owns the EGLNativeWindow +// A thin wrapper around GLSurfaceEGL that owns the EGLNativeWindow. class GL_EXPORT GLSurfaceOzoneEGL : public NativeViewGLSurfaceEGL { public: GLSurfaceOzoneEGL(scoped_ptr<ui::SurfaceOzoneEGL> ozone_surface, @@ -71,8 +71,7 @@ GLSurfaceOzoneEGL::GLSurfaceOzoneEGL( AcceleratedWidget widget) : NativeViewGLSurfaceEGL(ozone_surface->GetNativeWindow()), ozone_surface_(ozone_surface.Pass()), - widget_(widget) { -} + widget_(widget) {} bool GLSurfaceOzoneEGL::Initialize() { return Initialize(ozone_surface_->CreateVSyncProvider()); @@ -107,7 +106,7 @@ bool GLSurfaceOzoneEGL::ScheduleOverlayPlane(int z_order, } GLSurfaceOzoneEGL::~GLSurfaceOzoneEGL() { - Destroy(); // EGL surface must be destroyed before SurfaceOzone + Destroy(); // The EGL surface must be destroyed before SurfaceOzone. } bool GLSurfaceOzoneEGL::ReinitializeNativeSurface() { @@ -121,8 +120,7 @@ bool GLSurfaceOzoneEGL::ReinitializeNativeSurface() { Destroy(); ozone_surface_ = ui::OzonePlatform::GetInstance() ->GetSurfaceFactoryOzone() - ->CreateEGLSurfaceForWidget(widget_) - .Pass(); + ->CreateEGLSurfaceForWidget(widget_); if (!ozone_surface_) { LOG(ERROR) << "Failed to create native surface."; return false; @@ -222,8 +220,7 @@ GLSurfaceOzoneSurfaceless::Overlay::Overlay(int z_order, transform(transform), image(image), bounds_rect(bounds_rect), - crop_rect(crop_rect) { -} + crop_rect(crop_rect) {} bool GLSurfaceOzoneSurfaceless::Overlay::ScheduleOverlayPlane( gfx::AcceleratedWidget widget) const { @@ -231,8 +228,7 @@ bool GLSurfaceOzoneSurfaceless::Overlay::ScheduleOverlayPlane( crop_rect); } -GLSurfaceOzoneSurfaceless::PendingFrame::PendingFrame() : ready(false) { -} +GLSurfaceOzoneSurfaceless::PendingFrame::PendingFrame() : ready(false) {} bool GLSurfaceOzoneSurfaceless::PendingFrame::ScheduleOverlayPlanes( gfx::AcceleratedWidget widget) { @@ -264,12 +260,14 @@ bool GLSurfaceOzoneSurfaceless::Initialize() { return false; return true; } + bool GLSurfaceOzoneSurfaceless::Resize(const gfx::Size& size) { if (!ozone_surface_->ResizeNativeWindow(size)) return false; return SurfacelessEGL::Resize(size); } + gfx::SwapResult GLSurfaceOzoneSurfaceless::SwapBuffers() { glFlush(); // TODO: the following should be replaced by a per surface flush as it gets @@ -292,6 +290,7 @@ gfx::SwapResult GLSurfaceOzoneSurfaceless::SwapBuffers() { return ozone_surface_->OnSwapBuffers() ? gfx::SwapResult::SWAP_ACK : gfx::SwapResult::SWAP_FAILED; } + bool GLSurfaceOzoneSurfaceless::ScheduleOverlayPlane(int z_order, OverlayTransform transform, GLImage* image, @@ -301,15 +300,19 @@ bool GLSurfaceOzoneSurfaceless::ScheduleOverlayPlane(int z_order, Overlay(z_order, transform, image, bounds_rect, crop_rect)); return true; } + bool GLSurfaceOzoneSurfaceless::IsOffscreen() { return false; } + VSyncProvider* GLSurfaceOzoneSurfaceless::GetVSyncProvider() { return vsync_provider_.get(); } + bool GLSurfaceOzoneSurfaceless::SupportsPostSubBuffer() { return true; } + gfx::SwapResult GLSurfaceOzoneSurfaceless::PostSubBuffer(int x, int y, int width, @@ -318,6 +321,7 @@ gfx::SwapResult GLSurfaceOzoneSurfaceless::PostSubBuffer(int x, SwapBuffers(); return gfx::SwapResult::SWAP_ACK; } + bool GLSurfaceOzoneSurfaceless::SwapBuffersAsync( const SwapCompletionCallback& callback) { // If last swap failed, don't try to schedule new ones. @@ -359,6 +363,7 @@ bool GLSurfaceOzoneSurfaceless::SwapBuffersAsync( SubmitFrame(); return last_swap_buffers_result_; } + bool GLSurfaceOzoneSurfaceless::PostSubBufferAsync( int x, int y, @@ -369,7 +374,7 @@ bool GLSurfaceOzoneSurfaceless::PostSubBufferAsync( } GLSurfaceOzoneSurfaceless::~GLSurfaceOzoneSurfaceless() { - Destroy(); // EGL surface must be destroyed before SurfaceOzone + Destroy(); // The EGL surface must be destroyed before SurfaceOzone. } void GLSurfaceOzoneSurfaceless::SubmitFrame() { @@ -426,31 +431,15 @@ class GL_EXPORT GLSurfaceOzoneSurfacelessSurfaceImpl gfx::SwapResult SwapBuffers() override; bool SwapBuffersAsync(const SwapCompletionCallback& callback) override; void Destroy() override; + bool IsSurfaceless() const override; private: - class SurfaceImage : public GLImageLinuxDMABuffer { - public: - SurfaceImage(const gfx::Size& size, unsigned internalformat); - - bool Initialize(scoped_refptr<ui::NativePixmap> pixmap, - gfx::GpuMemoryBuffer::Format format); - bool ScheduleOverlayPlane(gfx::AcceleratedWidget widget, - int z_order, - gfx::OverlayTransform transform, - const gfx::Rect& bounds_rect, - const gfx::RectF& crop_rect) override; - - private: - ~SurfaceImage() override; - - scoped_refptr<ui::NativePixmap> pixmap_; - }; - ~GLSurfaceOzoneSurfacelessSurfaceImpl() override; void BindFramebuffer(); bool CreatePixmaps(); + scoped_refptr<GLContext> context_; GLuint fbo_; GLuint textures_[2]; scoped_refptr<GLImage> images_[2]; @@ -458,39 +447,11 @@ class GL_EXPORT GLSurfaceOzoneSurfacelessSurfaceImpl DISALLOW_COPY_AND_ASSIGN(GLSurfaceOzoneSurfacelessSurfaceImpl); }; -GLSurfaceOzoneSurfacelessSurfaceImpl::SurfaceImage::SurfaceImage( - const gfx::Size& size, - unsigned internalformat) - : GLImageLinuxDMABuffer(size, internalformat) { -} - -bool GLSurfaceOzoneSurfacelessSurfaceImpl::SurfaceImage::Initialize( - scoped_refptr<ui::NativePixmap> pixmap, - gfx::GpuMemoryBuffer::Format format) { - base::FileDescriptor handle(pixmap->GetDmaBufFd(), false); - if (!GLImageLinuxDMABuffer::Initialize(handle, format, - pixmap->GetDmaBufPitch())) - return false; - pixmap_ = pixmap; - return true; -} -bool GLSurfaceOzoneSurfacelessSurfaceImpl::SurfaceImage::ScheduleOverlayPlane( - gfx::AcceleratedWidget widget, - int z_order, - gfx::OverlayTransform transform, - const gfx::Rect& bounds_rect, - const gfx::RectF& crop_rect) { - return pixmap_->ScheduleOverlayPlane(widget, z_order, transform, bounds_rect, - crop_rect); -} - -GLSurfaceOzoneSurfacelessSurfaceImpl::SurfaceImage::~SurfaceImage() { -} - GLSurfaceOzoneSurfacelessSurfaceImpl::GLSurfaceOzoneSurfacelessSurfaceImpl( scoped_ptr<ui::SurfaceOzoneEGL> ozone_surface, AcceleratedWidget widget) : GLSurfaceOzoneSurfaceless(ozone_surface.Pass(), widget), + context_(nullptr), fbo_(0), current_surface_(0) { for (auto& texture : textures_) @@ -503,6 +464,8 @@ GLSurfaceOzoneSurfacelessSurfaceImpl::GetBackingFrameBufferObject() { } bool GLSurfaceOzoneSurfacelessSurfaceImpl::OnMakeCurrent(GLContext* context) { + DCHECK(!context_ || context == context_); + context_ = context; if (!fbo_) { glGenFramebuffersEXT(1, &fbo_); if (!fbo_) @@ -553,8 +516,9 @@ bool GLSurfaceOzoneSurfacelessSurfaceImpl::SwapBuffersAsync( } void GLSurfaceOzoneSurfacelessSurfaceImpl::Destroy() { - GLContext* current_context = GLContext::GetCurrent(); - DCHECK(current_context && current_context->IsCurrent(this)); + if (!context_) + return; + ui::ScopedMakeCurrent context(context_.get(), this); glBindFramebufferEXT(GL_FRAMEBUFFER, 0); if (fbo_) { glDeleteTextures(arraysize(textures_), textures_); @@ -569,6 +533,10 @@ void GLSurfaceOzoneSurfacelessSurfaceImpl::Destroy() { } } +bool GLSurfaceOzoneSurfacelessSurfaceImpl::IsSurfaceless() const { + return false; +} + GLSurfaceOzoneSurfacelessSurfaceImpl::~GLSurfaceOzoneSurfacelessSurfaceImpl() { DCHECK(!fbo_); for (size_t i = 0; i < arraysize(textures_); i++) @@ -589,13 +557,13 @@ bool GLSurfaceOzoneSurfacelessSurfaceImpl::CreatePixmaps() { ui::OzonePlatform::GetInstance() ->GetSurfaceFactoryOzone() ->CreateNativePixmap(widget_, GetSize(), - ui::SurfaceFactoryOzone::BGRA_8888, - ui::SurfaceFactoryOzone::SCANOUT); + gfx::BufferFormat::BGRA_8888, + gfx::BufferUsage::SCANOUT); if (!pixmap) return false; - scoped_refptr<SurfaceImage> image = - new SurfaceImage(GetSize(), GL_BGRA_EXT); - if (!image->Initialize(pixmap, gfx::GpuMemoryBuffer::Format::BGRA_8888)) + scoped_refptr<GLImageOzoneNativePixmap> image = + new GLImageOzoneNativePixmap(GetSize(), GL_BGRA_EXT); + if (!image->Initialize(pixmap.get(), gfx::BufferFormat::BGRA_8888)) return false; images_[i] = image; // Bind image to texture. @@ -606,6 +574,36 @@ bool GLSurfaceOzoneSurfacelessSurfaceImpl::CreatePixmaps() { return true; } +scoped_refptr<GLSurface> CreateViewGLSurfaceOzone( + gfx::AcceleratedWidget window) { + scoped_ptr<ui::SurfaceOzoneEGL> surface_ozone = + ui::OzonePlatform::GetInstance() + ->GetSurfaceFactoryOzone() + ->CreateEGLSurfaceForWidget(window); + if (!surface_ozone) + return nullptr; + scoped_refptr<GLSurface> surface = + new GLSurfaceOzoneEGL(surface_ozone.Pass(), window); + if (!surface->Initialize()) + return nullptr; + return surface; +} + +scoped_refptr<GLSurface> CreateViewGLSurfaceOzoneSurfacelessSurfaceImpl( + gfx::AcceleratedWidget window) { + scoped_ptr<ui::SurfaceOzoneEGL> surface_ozone = + ui::OzonePlatform::GetInstance() + ->GetSurfaceFactoryOzone() + ->CreateSurfacelessEGLSurfaceForWidget(window); + if (!surface_ozone) + return nullptr; + scoped_refptr<GLSurface> surface = + new GLSurfaceOzoneSurfacelessSurfaceImpl(surface_ozone.Pass(), window); + if (!surface->Initialize()) + return nullptr; + return surface; +} + } // namespace // static @@ -631,10 +629,7 @@ scoped_refptr<GLSurface> GLSurface::CreateSurfacelessViewGLSurface( gfx::AcceleratedWidget window) { if (GetGLImplementation() == kGLImplementationEGLGLES2 && window != kNullAcceleratedWidget && - GLSurfaceEGL::IsEGLSurfacelessContextSupported() && - ui::OzonePlatform::GetInstance() - ->GetSurfaceFactoryOzone() - ->CanShowPrimaryPlaneAsOverlay()) { + GLSurfaceEGL::IsEGLSurfacelessContextSupported()) { scoped_ptr<ui::SurfaceOzoneEGL> surface_ozone = ui::OzonePlatform::GetInstance() ->GetSurfaceFactoryOzone() @@ -656,43 +651,23 @@ scoped_refptr<GLSurface> GLSurface::CreateViewGLSurface( if (GetGLImplementation() == kGLImplementationOSMesaGL) { scoped_refptr<GLSurface> surface(new GLSurfaceOSMesaHeadless()); if (!surface->Initialize()) - return NULL; + return nullptr; return surface; } DCHECK(GetGLImplementation() == kGLImplementationEGLGLES2); if (window != kNullAcceleratedWidget) { scoped_refptr<GLSurface> surface; - if (GLSurfaceEGL::IsEGLSurfacelessContextSupported() && - ui::OzonePlatform::GetInstance() - ->GetSurfaceFactoryOzone() - ->CanShowPrimaryPlaneAsOverlay()) { - scoped_ptr<ui::SurfaceOzoneEGL> surface_ozone = - ui::OzonePlatform::GetInstance() - ->GetSurfaceFactoryOzone() - ->CreateSurfacelessEGLSurfaceForWidget(window); - if (!surface_ozone) - return NULL; - surface = new GLSurfaceOzoneSurfacelessSurfaceImpl(surface_ozone.Pass(), - window); - } else { - scoped_ptr<ui::SurfaceOzoneEGL> surface_ozone = - ui::OzonePlatform::GetInstance() - ->GetSurfaceFactoryOzone() - ->CreateEGLSurfaceForWidget(window); - if (!surface_ozone) - return NULL; - - surface = new GLSurfaceOzoneEGL(surface_ozone.Pass(), window); - } - if (!surface->Initialize()) - return NULL; + if (GLSurfaceEGL::IsEGLSurfacelessContextSupported()) + surface = CreateViewGLSurfaceOzoneSurfacelessSurfaceImpl(window); + if (!surface) + surface = CreateViewGLSurfaceOzone(window); return surface; } else { scoped_refptr<GLSurface> surface = new GLSurfaceStub(); if (surface->Initialize()) return surface; } - return NULL; + return nullptr; } // static @@ -703,7 +678,7 @@ scoped_refptr<GLSurface> GLSurface::CreateOffscreenGLSurface( scoped_refptr<GLSurface> surface( new GLSurfaceOSMesa(OSMesaSurfaceFormatBGRA, size)); if (!surface->Initialize()) - return NULL; + return nullptr; return surface; } @@ -716,14 +691,14 @@ scoped_refptr<GLSurface> GLSurface::CreateOffscreenGLSurface( surface = new PbufferGLSurfaceEGL(size); if (!surface->Initialize()) - return NULL; + return nullptr; return surface; } case kGLImplementationMockGL: return new GLSurfaceStub; default: NOTREACHED(); - return NULL; + return nullptr; } } diff --git a/chromium/ui/gl/gl_surface_win.cc b/chromium/ui/gl/gl_surface_win.cc index c416e6b21ce..93410cae6ae 100644 --- a/chromium/ui/gl/gl_surface_win.cc +++ b/chromium/ui/gl/gl_surface_win.cc @@ -171,6 +171,13 @@ bool GLSurface::InitializeOneOffInternal() { return false; } break; + case kGLImplementationNone: + case kGLImplementationDesktopGLCoreProfile: + case kGLImplementationAppleGL: + NOTREACHED(); + case kGLImplementationOSMesaGL: + case kGLImplementationMockGL: + break; } return true; } diff --git a/chromium/ui/gl/gl_switches.cc b/chromium/ui/gl/gl_switches.cc index 4ac132843d4..dc217ef9405 100644 --- a/chromium/ui/gl/gl_switches.cc +++ b/chromium/ui/gl/gl_switches.cc @@ -29,6 +29,10 @@ namespace switches { const char kDisableD3D11[] = "disable-d3d11"; // Stop the GPU from synchronizing on the vsync before presenting. +// We can select from the options below: +// beginframe : Next frame can start without any delay on cc::scheduler. +// gpu : Disable gpu vsync. +// default: Set both flags. const char kDisableGpuVsync[] = "disable-gpu-vsync"; // Turns on GPU logging (debug build only). diff --git a/chromium/ui/gl/gl_tests.gyp b/chromium/ui/gl/gl_tests.gyp index 37dec4fb207..4f7e2dd8656 100644 --- a/chromium/ui/gl/gl_tests.gyp +++ b/chromium/ui/gl/gl_tests.gyp @@ -24,6 +24,7 @@ '<(DEPTH)/testing/gmock.gyp:gmock', '<(DEPTH)/testing/gtest.gyp:gtest', '<(DEPTH)/ui/gl/gl.gyp:gl', + '<(DEPTH)/ui/gl/gl.gyp:gl_test_support', '<(DEPTH)/ui/gl/gl.gyp:gl_unittest_utils', ], 'conditions': [ diff --git a/chromium/ui/gl/gl_unittests.isolate b/chromium/ui/gl/gl_unittests.isolate index e8b1d41f4bd..9c8a2dcbc8f 100644 --- a/chromium/ui/gl/gl_unittests.isolate +++ b/chromium/ui/gl/gl_unittests.isolate @@ -8,9 +8,6 @@ 'command': [ '<(PRODUCT_DIR)/gl_unittests<(EXECUTABLE_SUFFIX)', ], - 'files': [ - '<(PRODUCT_DIR)/gl_unittests<(EXECUTABLE_SUFFIX)', - ], }, }], ], diff --git a/chromium/ui/gl/gl_version_info.cc b/chromium/ui/gl/gl_version_info.cc index 5eff43a1cc6..cc960b0a3a8 100644 --- a/chromium/ui/gl/gl_version_info.cc +++ b/chromium/ui/gl/gl_version_info.cc @@ -50,7 +50,8 @@ GLVersionInfo::GLVersionInfo(const char* version_str, const char* renderer_str) &is_es, &is_es3); } if (renderer_str) { - is_angle = base::StartsWithASCII(renderer_str, "ANGLE", true); + is_angle = base::StartsWith(renderer_str, "ANGLE", + base::CompareCase::SENSITIVE); } } @@ -66,7 +67,7 @@ void GLVersionInfo::ParseVersionString(const char* version_str, *is_es3 = false; if (!version_str) return; - std::string lstr(base::StringToLowerASCII(std::string(version_str))); + std::string lstr(base::ToLowerASCII(version_str)); *is_es = (lstr.length() > 12) && (lstr.substr(0, 9) == "opengl es"); if (*is_es) lstr = lstr.substr(10, 3); diff --git a/chromium/ui/gl/gpu_switching_manager.cc b/chromium/ui/gl/gpu_switching_manager.cc index 36ad7adde2a..a178509dc6b 100644 --- a/chromium/ui/gl/gpu_switching_manager.cc +++ b/chromium/ui/gl/gpu_switching_manager.cc @@ -24,7 +24,7 @@ struct GpuSwitchingManager::PlatformSpecific { // static GpuSwitchingManager* GpuSwitchingManager::GetInstance() { - return Singleton<GpuSwitchingManager>::get(); + return base::Singleton<GpuSwitchingManager>::get(); } GpuSwitchingManager::GpuSwitchingManager() diff --git a/chromium/ui/gl/gpu_switching_manager.h b/chromium/ui/gl/gpu_switching_manager.h index ba60945ea28..6327798132b 100644 --- a/chromium/ui/gl/gpu_switching_manager.h +++ b/chromium/ui/gl/gpu_switching_manager.h @@ -51,7 +51,7 @@ class GL_EXPORT GpuSwitchingManager { void NotifyGpuSwitched(); private: - friend struct DefaultSingletonTraits<GpuSwitchingManager>; + friend struct base::DefaultSingletonTraits<GpuSwitchingManager>; GpuSwitchingManager(); virtual ~GpuSwitchingManager(); diff --git a/chromium/ui/gl/gpu_timing.cc b/chromium/ui/gl/gpu_timing.cc index c90225434d6..e78442e44ab 100644 --- a/chromium/ui/gl/gpu_timing.cc +++ b/chromium/ui/gl/gpu_timing.cc @@ -11,6 +11,9 @@ namespace gfx { +class TimeElapsedTimerQuery; +class TimerQuery; + int64_t NanoToMicro(uint64_t nano_seconds) { const uint64_t up = nano_seconds + base::Time::kNanosecondsPerMicrosecond / 2; return static_cast<int64_t>(up / base::Time::kNanosecondsPerMicrosecond); @@ -313,6 +316,7 @@ GPUTimingImpl::GPUTimingImpl(GLContextReal* context) { timer_type_ = GPUTiming::kTimerTypeARB; } else if (context->HasExtension("GL_EXT_timer_query")) { timer_type_ = GPUTiming::kTimerTypeEXT; + force_time_elapsed_query_ = true; } } @@ -375,8 +379,7 @@ void GPUTimingImpl::EndElapsedTimeQuery(scoped_refptr<QueryResult> result) { } scoped_refptr<QueryResult> GPUTimingImpl::DoTimeStampQuery() { - DCHECK(timer_type_ == GPUTiming::kTimerTypeDisjoint || - timer_type_ == GPUTiming::kTimerTypeARB); + DCHECK(timer_type_ != GPUTiming::kTimerTypeInvalid); if (force_time_elapsed_query_) { // Replace with elapsed timer queries instead. @@ -467,7 +470,7 @@ GPUTimer::~GPUTimer() { void GPUTimer::Destroy(bool have_context) { if (have_context) { - if (!end_requested_) { + if (timer_state_ == kTimerState_WaitingForEnd) { DCHECK(gpu_timing_client_->gpu_timing_); DCHECK(elapsed_timer_result_.get()); gpu_timing_client_->gpu_timing_->EndElapsedTimeQuery( @@ -476,56 +479,81 @@ void GPUTimer::Destroy(bool have_context) { } } +void GPUTimer::Reset() { + // We can reset from any state other than when a Start() is waiting for End(). + DCHECK(timer_state_ != kTimerState_WaitingForEnd); + time_stamp_result_ = nullptr; + elapsed_timer_result_ = nullptr; + timer_state_ = kTimerState_Ready; +} + +void GPUTimer::QueryTimeStamp() { + DCHECK(gpu_timing_client_->gpu_timing_); + Reset(); + time_stamp_result_ = gpu_timing_client_->gpu_timing_->DoTimeStampQuery(); + timer_state_ = kTimerState_WaitingForResult; +} + void GPUTimer::Start() { DCHECK(gpu_timing_client_->gpu_timing_); + Reset(); if (!use_elapsed_timer_) time_stamp_result_ = gpu_timing_client_->gpu_timing_->DoTimeStampQuery(); elapsed_timer_result_ = gpu_timing_client_->gpu_timing_->BeginElapsedTimeQuery(); + timer_state_ = kTimerState_WaitingForEnd; } void GPUTimer::End() { + DCHECK(timer_state_ == kTimerState_WaitingForEnd); DCHECK(elapsed_timer_result_.get()); - end_requested_ = true; gpu_timing_client_->gpu_timing_->EndElapsedTimeQuery(elapsed_timer_result_); + timer_state_ = kTimerState_WaitingForResult; } bool GPUTimer::IsAvailable() { - if (!end_requested_) - return false; - if (!end_available_) { - DCHECK(elapsed_timer_result_.get()); - if (elapsed_timer_result_->IsAvailable()) { - end_available_ = true; + if (timer_state_ == kTimerState_WaitingForResult) { + // Elapsed timer are only used during start/end queries and always after + // the timestamp query. Otherwise only the timestamp is used. + scoped_refptr<QueryResult> result = + elapsed_timer_result_.get() ? + elapsed_timer_result_ : + time_stamp_result_; + + DCHECK(result.get()); + if (result->IsAvailable()) { + timer_state_ = kTimerState_ResultAvailable; } else { gpu_timing_client_->gpu_timing_->UpdateQueryResults(); - end_available_ = elapsed_timer_result_->IsAvailable(); + if (result->IsAvailable()) + timer_state_ = kTimerState_ResultAvailable; } } - return end_available_; + + return (timer_state_ == kTimerState_ResultAvailable); } void GPUTimer::GetStartEndTimestamps(int64* start, int64* end) { DCHECK(start && end); - DCHECK(elapsed_timer_result_.get()); + DCHECK(elapsed_timer_result_.get() || time_stamp_result_.get()); DCHECK(IsAvailable()); - if (time_stamp_result_.get()) { - DCHECK(time_stamp_result_->IsAvailable()); - const int64_t time_stamp = time_stamp_result_->GetStartValue(); - *start = time_stamp; - *end = time_stamp + elapsed_timer_result_->GetDelta(); - } else { - // Use estimation from elasped timer results. - *start = elapsed_timer_result_->GetStartValue(); - *end = elapsed_timer_result_->GetEndValue(); - } + const int64_t time_stamp = time_stamp_result_.get() ? + time_stamp_result_->GetStartValue() : + elapsed_timer_result_->GetStartValue(); + const int64_t elapsed_time = elapsed_timer_result_.get() ? + elapsed_timer_result_->GetDelta() : + 0; + + *start = time_stamp; + *end = time_stamp + elapsed_time; } int64 GPUTimer::GetDeltaElapsed() { - DCHECK(elapsed_timer_result_.get()); DCHECK(IsAvailable()); - return elapsed_timer_result_->GetDelta(); + if (elapsed_timer_result_.get()) + return elapsed_timer_result_->GetDelta(); + return 0; } GPUTimer::GPUTimer(scoped_refptr<GPUTimingClient> gpu_timing_client, diff --git a/chromium/ui/gl/gpu_timing.h b/chromium/ui/gl/gpu_timing.h index 08f9c0377d4..5d72d7cadea 100644 --- a/chromium/ui/gl/gpu_timing.h +++ b/chromium/ui/gl/gpu_timing.h @@ -43,12 +43,9 @@ namespace gfx { class GLContextReal; -class GPUTiming; class GPUTimingClient; class GPUTimingImpl; class QueryResult; -class TimeElapsedTimerQuery; -class TimerQuery; class GPUTiming { public: @@ -86,6 +83,12 @@ class GL_EXPORT GPUTimer { // this object. void Destroy(bool have_context); + // Clears current queries. + void Reset(); + + // Start an instant timer, start and end will be equal. + void QueryTimeStamp(); + // Start a timer range. void Start(); void End(); @@ -102,8 +105,12 @@ class GL_EXPORT GPUTimer { bool use_elapsed_timer); bool use_elapsed_timer_ = false; - bool end_requested_ = false; - bool end_available_ = false; + enum TimerState { + kTimerState_Ready, + kTimerState_WaitingForEnd, + kTimerState_WaitingForResult, + kTimerState_ResultAvailable + } timer_state_ = kTimerState_Ready; scoped_refptr<GPUTimingClient> gpu_timing_client_; scoped_refptr<QueryResult> time_stamp_result_; scoped_refptr<QueryResult> elapsed_timer_result_; diff --git a/chromium/ui/gl/gpu_timing_fake.cc b/chromium/ui/gl/gpu_timing_fake.cc index e7c1df99d06..03f4af3d6ea 100644 --- a/chromium/ui/gl/gpu_timing_fake.cc +++ b/chromium/ui/gl/gpu_timing_fake.cc @@ -4,6 +4,7 @@ #include "ui/gl/gpu_timing_fake.h" +#include "base/time/time.h" #include "testing/gtest/include/gtest/gtest.h" #include "ui/gl/gl_mock.h" @@ -16,6 +17,8 @@ using ::testing::Exactly; using ::testing::Invoke; using ::testing::NotNull; +int64_t GPUTimingFake::fake_cpu_time_ = 0; + GPUTimingFake::GPUTimingFake() { Reset(); } @@ -24,15 +27,34 @@ GPUTimingFake::~GPUTimingFake() { } void GPUTimingFake::Reset() { - current_time_ = 0; + current_gl_time_ = 0; + gl_cpu_time_offset_ = 0; next_query_id_ = 23; allocated_queries_.clear(); query_results_.clear(); current_elapsed_query_.Reset(); + + fake_cpu_time_ = 0; +} + +int64_t GPUTimingFake::GetFakeCPUTime() { + return fake_cpu_time_; +} + +void GPUTimingFake::SetCPUGLOffset(int64_t offset) { + gl_cpu_time_offset_ = offset; +} + +void GPUTimingFake::SetCurrentCPUTime(int64_t current_time) { + fake_cpu_time_ = current_time; + current_gl_time_ = (fake_cpu_time_ + gl_cpu_time_offset_) * + base::Time::kNanosecondsPerMicrosecond; } void GPUTimingFake::SetCurrentGLTime(GLint64 current_time) { - current_time_ = current_time; + current_gl_time_ = current_time; + fake_cpu_time_ = (current_gl_time_ / base::Time::kNanosecondsPerMicrosecond) - + gl_cpu_time_offset_; } void GPUTimingFake::SetDisjoint() { @@ -53,9 +75,48 @@ void GPUTimingFake::ExpectNoDisjointCalls(MockGLInterface& gl) { EXPECT_CALL(gl, GetIntegerv(GL_GPU_DISJOINT_EXT, _)).Times(Exactly(0)); } +void GPUTimingFake::ExpectGPUTimeStampQuery( + MockGLInterface& gl, bool elapsed_query) { + EXPECT_CALL(gl, GenQueries(1, NotNull())).Times(Exactly(1)) + .WillRepeatedly(Invoke(this, &GPUTimingFake::FakeGLGenQueries)); + + if (!elapsed_query) { + // Time Stamp based queries. + EXPECT_CALL(gl, GetInteger64v(GL_TIMESTAMP, _)) + .WillRepeatedly( + Invoke(this, &GPUTimingFake::FakeGLGetInteger64v)); + + EXPECT_CALL(gl, QueryCounter(_, GL_TIMESTAMP)).Times(Exactly(1)) + .WillRepeatedly( + Invoke(this, &GPUTimingFake::FakeGLQueryCounter)); + } else { + // Time Elapsed based queries. + EXPECT_CALL(gl, BeginQuery(GL_TIME_ELAPSED, _)).Times(Exactly(1)) + .WillRepeatedly( + Invoke(this, &GPUTimingFake::FakeGLBeginQuery)); + + EXPECT_CALL(gl, EndQuery(GL_TIME_ELAPSED)).Times(Exactly(1)) + .WillRepeatedly(Invoke(this, &GPUTimingFake::FakeGLEndQuery)); + } + + EXPECT_CALL(gl, GetQueryObjectuiv(_, GL_QUERY_RESULT_AVAILABLE, + NotNull())) + .WillRepeatedly( + Invoke(this, &GPUTimingFake::FakeGLGetQueryObjectuiv)); + + EXPECT_CALL(gl, GetQueryObjectui64v(_, GL_QUERY_RESULT, NotNull())) + .WillRepeatedly( + Invoke(this, &GPUTimingFake::FakeGLGetQueryObjectui64v)); + + EXPECT_CALL(gl, DeleteQueries(1, NotNull())).Times(AtLeast(1)) + .WillRepeatedly( + Invoke(this, &GPUTimingFake::FakeGLDeleteQueries)); +} + void GPUTimingFake::ExpectGPUTimerQuery( MockGLInterface& gl, bool elapsed_query) { - EXPECT_CALL(gl, GenQueries(1, NotNull())).Times(AtLeast(2)) + EXPECT_CALL(gl, GenQueries(1, NotNull())) + .Times(AtLeast(elapsed_query ? 1 : 2)) .WillRepeatedly(Invoke(this, &GPUTimingFake::FakeGLGenQueries)); if (!elapsed_query) { @@ -86,7 +147,8 @@ void GPUTimingFake::ExpectGPUTimerQuery( .WillRepeatedly( Invoke(this, &GPUTimingFake::FakeGLGetQueryObjectui64v)); - EXPECT_CALL(gl, DeleteQueries(1, NotNull())).Times(AtLeast(2)) + EXPECT_CALL(gl, DeleteQueries(1, NotNull())) + .Times(AtLeast(elapsed_query ? 1 : 2)) .WillRepeatedly( Invoke(this, &GPUTimingFake::FakeGLDeleteQueries)); } @@ -127,7 +189,7 @@ void GPUTimingFake::FakeGLBeginQuery(GLenum target, GLuint id) { current_elapsed_query_.Reset(); current_elapsed_query_.active_ = true; current_elapsed_query_.query_id_ = id; - current_elapsed_query_.begin_time_ = current_time_; + current_elapsed_query_.begin_time_ = current_gl_time_; break; default: FAIL() << "Invalid target passed to BeginQuery: " << target; @@ -141,7 +203,7 @@ void GPUTimingFake::FakeGLEndQuery(GLenum target) { QueryResult& query = query_results_[current_elapsed_query_.query_id_]; query.type_ = QueryResult::kQueryResultType_Elapsed; query.begin_time_ = current_elapsed_query_.begin_time_; - query.value_ = current_time_; + query.value_ = current_gl_time_; current_elapsed_query_.active_ = false; } break; default: @@ -154,7 +216,7 @@ void GPUTimingFake::FakeGLGetQueryObjectuiv(GLuint id, GLenum pname, switch (pname) { case GL_QUERY_RESULT_AVAILABLE: { std::map<GLuint, QueryResult>::iterator it = query_results_.find(id); - if (it != query_results_.end() && it->second.value_ <= current_time_) + if (it != query_results_.end() && it->second.value_ <= current_gl_time_) *params = 1; else *params = 0; @@ -170,7 +232,7 @@ void GPUTimingFake::FakeGLQueryCounter(GLuint id, GLenum target) { ASSERT_TRUE(allocated_queries_.find(id) != allocated_queries_.end()); QueryResult& query = query_results_[id]; query.type_ = QueryResult::kQueryResultType_TimeStamp; - query.value_ = current_time_; + query.value_ = current_gl_time_; } break; default: @@ -181,7 +243,7 @@ void GPUTimingFake::FakeGLQueryCounter(GLuint id, GLenum target) { void GPUTimingFake::FakeGLGetInteger64v(GLenum pname, GLint64 * data) { switch (pname) { case GL_TIMESTAMP: - *data = current_time_; + *data = current_gl_time_; break; default: FAIL() << "Invalid variable passed to GetInteger64v: " << pname; diff --git a/chromium/ui/gl/gpu_timing_fake.h b/chromium/ui/gl/gpu_timing_fake.h index 40c93f42576..33d7bc3d817 100644 --- a/chromium/ui/gl/gpu_timing_fake.h +++ b/chromium/ui/gl/gpu_timing_fake.h @@ -21,7 +21,10 @@ class GPUTimingFake { void Reset(); // Used to set the current GPU time queries will return. + static int64_t GetFakeCPUTime(); // Useful for binding for Fake CPU time. + void SetCurrentCPUTime(int64_t current_time); void SetCurrentGLTime(GLint64 current_time); + void SetCPUGLOffset(int64_t offset); // Used to signal a disjoint occurred for disjoint timer queries. void SetDisjoint(); @@ -32,6 +35,7 @@ class GPUTimingFake { void ExpectNoDisjointCalls(MockGLInterface& gl); // GPUTimer fake queries which can only be called once per setup. + void ExpectGPUTimeStampQuery(MockGLInterface& gl, bool elapsed_query); void ExpectGPUTimerQuery(MockGLInterface& gl, bool elapsed_query); void ExpectOffsetCalculationQuery(MockGLInterface& gl); void ExpectNoOffsetCalculationQuery(MockGLInterface& gl); @@ -50,7 +54,9 @@ class GPUTimingFake { protected: bool disjointed_ = false; - GLint64 current_time_ = 0; + static int64_t fake_cpu_time_; + GLint64 current_gl_time_ = 0; + int64_t gl_cpu_time_offset_ = 0; GLuint next_query_id_ = 0; std::set<GLuint> allocated_queries_; struct QueryResult { diff --git a/chromium/ui/gl/gpu_timing_unittest.cc b/chromium/ui/gl/gpu_timing_unittest.cc index 9044394d697..865eb24b049 100644 --- a/chromium/ui/gl/gpu_timing_unittest.cc +++ b/chromium/ui/gl/gpu_timing_unittest.cc @@ -8,9 +8,10 @@ #include "ui/gl/gl_context_stub_with_extensions.h" #include "ui/gl/gl_implementation.h" #include "ui/gl/gl_mock.h" -#include "ui/gl/gl_surface.h" #include "ui/gl/gpu_preference.h" #include "ui/gl/gpu_timing.h" +#include "ui/gl/gpu_timing_fake.h" +#include "ui/gl/test/gl_surface_test_support.h" namespace gfx { @@ -18,25 +19,33 @@ class GPUTimingTest : public testing::Test { public: void SetUp() override { setup_ = false; - fake_cpu_time_ = 0; - - CreateGPUTimingClient()->SetCpuTimeForTesting(base::Bind(&GetFakeCPUTime)); + cpu_time_bounded_ = false; } void TearDown() override { + if (setup_) { + MockGLInterface::SetGLInterface(NULL); + gfx::ClearGLBindings(); + } + setup_ = false; + cpu_time_bounded_ = false; context_ = nullptr; + gl_.reset(); + gpu_timing_fake_queries_.Reset(); } void SetupGLContext(const char* gl_version, const char* gl_extensions) { ASSERT_FALSE(setup_) << "Cannot setup GL context twice."; - gfx::SetGLGetProcAddressProc(gfx::MockGLInterface::GetGLProcAddress); - gfx::GLSurface::InitializeOneOffWithMockBindingsForTests(); - gl_.reset(new ::testing::StrictMock< ::gfx::MockGLInterface>()); - ::gfx::MockGLInterface::SetGLInterface(gl_.get()); + SetGLGetProcAddressProc(MockGLInterface::GetGLProcAddress); + GLSurfaceTestSupport::InitializeOneOffWithMockBindings(); + gl_.reset(new ::testing::StrictMock<MockGLInterface>()); + MockGLInterface::SetGLInterface(gl_.get()); - context_ = new gfx::GLContextStubWithExtensions; + context_ = new GLContextStubWithExtensions; context_->AddExtensionsString(gl_extensions); context_->SetGLVersionString(gl_version); + gpu_timing_fake_queries_.Reset(); + GLSurfaceTestSupport::InitializeDynamicMockBindings(context_.get()); setup_ = true; } @@ -45,33 +54,28 @@ class GPUTimingTest : public testing::Test { if (!setup_) { SetupGLContext("2.0", ""); } - return context_->CreateGPUTimingClient(); - } - void SetFakeCPUTime(int64_t fake_cpu_time) { - fake_cpu_time_ = fake_cpu_time; + scoped_refptr<GPUTimingClient> client = context_->CreateGPUTimingClient(); + if (!cpu_time_bounded_) { + client->SetCpuTimeForTesting(base::Bind(&GPUTimingFake::GetFakeCPUTime)); + cpu_time_bounded_ = true; + } + return client; } protected: - static int64_t GetFakeCPUTime() { - return fake_cpu_time_; - } - - private: - static int64_t fake_cpu_time_; - bool setup_ = false; - scoped_ptr< ::testing::StrictMock< ::gfx::MockGLInterface> > gl_; - scoped_refptr<gfx::GLContextStubWithExtensions> context_; + bool cpu_time_bounded_ = false; + scoped_ptr< ::testing::StrictMock<MockGLInterface> > gl_; + scoped_refptr<GLContextStubWithExtensions> context_; + GPUTimingFake gpu_timing_fake_queries_; }; -int64_t GPUTimingTest::fake_cpu_time_ = 0; - TEST_F(GPUTimingTest, FakeTimerTest) { - // Tests that we can properly set fake cpu times. - SetFakeCPUTime(123); - scoped_refptr<GPUTimingClient> gpu_timing_client = CreateGPUTimingClient(); + + // Tests that we can properly set fake cpu times. + gpu_timing_fake_queries_.SetCurrentCPUTime(123); EXPECT_EQ(123, gpu_timing_client->GetCurrentCPUTime()); base::Callback<int64_t(void)> empty; @@ -95,4 +99,66 @@ TEST_F(GPUTimingTest, ForceTimeElapsedQuery) { EXPECT_TRUE(client2->IsForceTimeElapsedQuery()); } +TEST_F(GPUTimingTest, QueryTimeStampTest) { + SetupGLContext("3.2", "GL_ARB_timer_query"); + scoped_refptr<GPUTimingClient> client = CreateGPUTimingClient(); + scoped_ptr<GPUTimer> gpu_timer = client->CreateGPUTimer(false); + + const int64_t begin_cpu_time = 123; + const int64_t begin_gl_time = 10 * base::Time::kNanosecondsPerMicrosecond; + const int64_t cpu_gl_offset = + begin_gl_time / base::Time::kNanosecondsPerMicrosecond - begin_cpu_time; + gpu_timing_fake_queries_.SetCPUGLOffset(cpu_gl_offset); + gpu_timing_fake_queries_.SetCurrentCPUTime(begin_cpu_time); + gpu_timing_fake_queries_.ExpectGPUTimeStampQuery(*gl_, false); + + gpu_timer->QueryTimeStamp(); + + gpu_timing_fake_queries_.SetCurrentCPUTime(begin_cpu_time - 1); + EXPECT_FALSE(gpu_timer->IsAvailable()); + + gpu_timing_fake_queries_.SetCurrentCPUTime(begin_cpu_time); + EXPECT_TRUE(gpu_timer->IsAvailable()); + + gpu_timing_fake_queries_.SetCurrentCPUTime(begin_cpu_time + 1); + EXPECT_TRUE(gpu_timer->IsAvailable()); + + EXPECT_EQ(0, gpu_timer->GetDeltaElapsed()); + + int64 start, end; + gpu_timer->GetStartEndTimestamps(&start, &end); + EXPECT_EQ(begin_cpu_time, start); + EXPECT_EQ(begin_cpu_time, end); +} + +TEST_F(GPUTimingTest, QueryTimeStampUsingElapsedTest) { + // Test timestamp queries using GL_EXT_timer_query which does not support + // timestamp queries. Internally we fall back to time elapsed queries. + SetupGLContext("3.2", "GL_EXT_timer_query"); + scoped_refptr<GPUTimingClient> client = CreateGPUTimingClient(); + scoped_ptr<GPUTimer> gpu_timer = client->CreateGPUTimer(false); + ASSERT_TRUE(client->IsForceTimeElapsedQuery()); + + const int64_t begin_cpu_time = 123; + const int64_t begin_gl_time = 10 * base::Time::kNanosecondsPerMicrosecond; + const int64_t cpu_gl_offset = begin_gl_time - begin_cpu_time; + gpu_timing_fake_queries_.SetCPUGLOffset(cpu_gl_offset); + gpu_timing_fake_queries_.SetCurrentCPUTime(begin_cpu_time); + gpu_timing_fake_queries_.ExpectGPUTimeStampQuery(*gl_, true); + + gpu_timer->QueryTimeStamp(); + + gpu_timing_fake_queries_.SetCurrentCPUTime(begin_cpu_time - 1); + EXPECT_FALSE(gpu_timer->IsAvailable()); + + gpu_timing_fake_queries_.SetCurrentCPUTime(begin_cpu_time + 1); + EXPECT_TRUE(gpu_timer->IsAvailable()); + EXPECT_EQ(0, gpu_timer->GetDeltaElapsed()); + + int64 start, end; + gpu_timer->GetStartEndTimestamps(&start, &end); + EXPECT_EQ(begin_cpu_time, start); + EXPECT_EQ(begin_cpu_time, end); +} + } // namespace gpu diff --git a/chromium/ui/gl/scoped_api.cc b/chromium/ui/gl/scoped_api.cc new file mode 100644 index 00000000000..f43f692ac0f --- /dev/null +++ b/chromium/ui/gl/scoped_api.cc @@ -0,0 +1,20 @@ +// Copyright 2015 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "ui/gl/scoped_api.h" + +#include "ui/gl/gl_gl_api_implementation.h" + +namespace gfx { + +ScopedSetGLToRealGLApi::ScopedSetGLToRealGLApi() + : old_gl_api_(GetCurrentGLApi()) { + SetGLToRealGLApi(); +} + +ScopedSetGLToRealGLApi::~ScopedSetGLToRealGLApi() { + SetGLApi(old_gl_api_); +} + +} // namespace gfx diff --git a/chromium/ui/gl/scoped_api.h b/chromium/ui/gl/scoped_api.h new file mode 100644 index 00000000000..dd9af506d9d --- /dev/null +++ b/chromium/ui/gl/scoped_api.h @@ -0,0 +1,28 @@ +// Copyright 2015 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef UI_GL_SCOPED_API_H_ +#define UI_GL_SCOPED_API_H_ + +#include "base/basictypes.h" +#include "ui/gl/gl_export.h" + +namespace gfx { + +class GLApi; + +class GL_EXPORT ScopedSetGLToRealGLApi { + public: + ScopedSetGLToRealGLApi(); + ~ScopedSetGLToRealGLApi(); + + private: + GLApi* old_gl_api_; + + DISALLOW_COPY_AND_ASSIGN(ScopedSetGLToRealGLApi); +}; + +} // namespace gfx + +#endif // UI_GL_SCOPED_API_H_ diff --git a/chromium/ui/gl/sync_control_vsync_provider.cc b/chromium/ui/gl/sync_control_vsync_provider.cc index 66d3734f58e..9fee3687dde 100644 --- a/chromium/ui/gl/sync_control_vsync_provider.cc +++ b/chromium/ui/gl/sync_control_vsync_provider.cc @@ -8,6 +8,7 @@ #include "base/logging.h" #include "base/time/time.h" +#include "base/trace_event/trace_event.h" #if defined(OS_LINUX) // These constants define a reasonable range for a calculated refresh interval. @@ -35,6 +36,7 @@ SyncControlVSyncProvider::~SyncControlVSyncProvider() {} void SyncControlVSyncProvider::GetVSyncParameters( const UpdateVSyncCallback& callback) { + TRACE_EVENT0("gpu", "SyncControlVSyncProvider::GetVSyncParameters"); #if defined(OS_LINUX) base::TimeTicks timebase; diff --git a/chromium/ui/gl/trace_util.cc b/chromium/ui/gl/trace_util.cc new file mode 100644 index 00000000000..825de2802bf --- /dev/null +++ b/chromium/ui/gl/trace_util.cc @@ -0,0 +1,43 @@ +// Copyright (c) 2015 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "ui/gl/trace_util.h" + +#include "base/format_macros.h" +#include "base/strings/stringprintf.h" + +namespace gfx { + +base::trace_event::MemoryAllocatorDumpGuid GetGLTextureClientGUIDForTracing( + uint64_t share_group_guid, + uint32_t texture_id) { + return base::trace_event::MemoryAllocatorDumpGuid( + base::StringPrintf("gl-texture-client-x-process/%" PRIx64 "/%d", + share_group_guid, texture_id)); +} + +base::trace_event::MemoryAllocatorDumpGuid GetGLTextureServiceGUIDForTracing( + uint64_t share_group_guid, + uint32_t texture_id) { + return base::trace_event::MemoryAllocatorDumpGuid( + base::StringPrintf("gl-texture-service-x-process/%" PRIx64 "/%d", + share_group_guid, texture_id)); +} + +base::trace_event::MemoryAllocatorDumpGuid GetGLBufferGUIDForTracing( + uint64_t share_group_guid, + uint32_t buffer_id) { + return base::trace_event::MemoryAllocatorDumpGuid(base::StringPrintf( + "gl-buffer-x-process/%" PRIx64 "/%d", share_group_guid, buffer_id)); +} + +base::trace_event::MemoryAllocatorDumpGuid GetGLRenderbufferGUIDForTracing( + uint64_t share_group_guid, + uint32_t renderbuffer_id) { + return base::trace_event::MemoryAllocatorDumpGuid( + base::StringPrintf("gl-renderbuffer-x-process/%" PRIx64 "/%d", + share_group_guid, renderbuffer_id)); +} + +} // namespace ui diff --git a/chromium/ui/gl/trace_util.h b/chromium/ui/gl/trace_util.h new file mode 100644 index 00000000000..fa7ab191d39 --- /dev/null +++ b/chromium/ui/gl/trace_util.h @@ -0,0 +1,31 @@ +// Copyright (c) 2015 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef UI_GL_TRACE_UTIL_H_ +#define UI_GL_TRACE_UTIL_H_ + +#include "base/trace_event/memory_allocator_dump.h" +#include "ui/gl/gl_export.h" + +namespace gfx { + +GL_EXPORT base::trace_event::MemoryAllocatorDumpGuid +GetGLTextureClientGUIDForTracing(uint64_t share_group_guid, + uint32_t texture_client_id); + +GL_EXPORT base::trace_event::MemoryAllocatorDumpGuid +GetGLRenderbufferGUIDForTracing(uint64_t share_group_guid, + uint32_t renderbuffer_id); + +GL_EXPORT base::trace_event::MemoryAllocatorDumpGuid +GetGLTextureServiceGUIDForTracing(uint64_t share_group_guid, + uint32_t texture_service_id); + +GL_EXPORT base::trace_event::MemoryAllocatorDumpGuid GetGLBufferGUIDForTracing( + uint64_t share_group_guid, + uint32_t buffer_id); + +} // namespace ui + +#endif // UI_GL_TRACE_UTIL_H_ |