summaryrefslogtreecommitdiff
path: root/chromium/ui/gl
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2017-04-05 17:15:33 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2017-04-11 07:47:18 +0000
commit7324afb043a0b1e623d8e8eb906cdc53bdeb4685 (patch)
treea3fe2d74ea9c9e142c390dac4ca0e219382ace46 /chromium/ui/gl
parent6a4cabb866f66d4128a97cdc6d9d08ce074f1247 (diff)
downloadqtwebengine-chromium-7324afb043a0b1e623d8e8eb906cdc53bdeb4685.tar.gz
BASELINE: Update Chromium to 58.0.3029.54
Change-Id: I67f57065a7afdc8e4614adb5c0230281428df4d1 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
Diffstat (limited to 'chromium/ui/gl')
-rw-r--r--chromium/ui/gl/BUILD.gn6
-rw-r--r--chromium/ui/gl/DEPS2
-rw-r--r--chromium/ui/gl/OWNERS2
-rw-r--r--chromium/ui/gl/angle_platform_impl.cc105
-rw-r--r--chromium/ui/gl/angle_platform_impl.h47
-rwxr-xr-xchromium/ui/gl/generate_bindings.py155
-rw-r--r--chromium/ui/gl/gl_angle_util_win.cc50
-rw-r--r--chromium/ui/gl/gl_angle_util_win.h7
-rw-r--r--chromium/ui/gl/gl_api_unittest.cc55
-rw-r--r--chromium/ui/gl/gl_bindings.h44
-rw-r--r--chromium/ui/gl/gl_bindings_autogen_egl.cc1654
-rw-r--r--chromium/ui/gl/gl_bindings_autogen_gl.cc10552
-rw-r--r--chromium/ui/gl/gl_bindings_autogen_glx.cc1282
-rw-r--r--chromium/ui/gl/gl_bindings_autogen_osmesa.cc297
-rw-r--r--chromium/ui/gl/gl_bindings_autogen_wgl.cc484
-rw-r--r--chromium/ui/gl/gl_context.cc90
-rw-r--r--chromium/ui/gl/gl_context.h32
-rw-r--r--chromium/ui/gl/gl_context_cgl.cc15
-rw-r--r--chromium/ui/gl/gl_context_egl.cc60
-rw-r--r--chromium/ui/gl/gl_context_glx.cc111
-rw-r--r--chromium/ui/gl/gl_context_osmesa.cc2
-rw-r--r--chromium/ui/gl/gl_context_stub.cc50
-rw-r--r--chromium/ui/gl/gl_context_stub.h13
-rw-r--r--chromium/ui/gl/gl_context_stub_with_extensions.cc36
-rw-r--r--chromium/ui/gl/gl_context_stub_with_extensions.h40
-rw-r--r--chromium/ui/gl/gl_context_wgl.cc2
-rw-r--r--chromium/ui/gl/gl_egl_api_implementation.cc34
-rw-r--r--chromium/ui/gl/gl_egl_api_implementation.h14
-rw-r--r--chromium/ui/gl/gl_fence.cc21
-rw-r--r--chromium/ui/gl/gl_fence_arb.cc6
-rw-r--r--chromium/ui/gl/gl_gl_api_implementation.cc448
-rw-r--r--chromium/ui/gl/gl_gl_api_implementation.h94
-rw-r--r--chromium/ui/gl/gl_glx_api_implementation.cc13
-rw-r--r--chromium/ui/gl/gl_glx_api_implementation.h15
-rw-r--r--chromium/ui/gl/gl_image_io_surface.mm3
-rw-r--r--chromium/ui/gl/gl_image_memory.cc2
-rw-r--r--chromium/ui/gl/gl_implementation.cc64
-rw-r--r--chromium/ui/gl/gl_implementation.h15
-rw-r--r--chromium/ui/gl/gl_osmesa_api_implementation.cc16
-rw-r--r--chromium/ui/gl/gl_osmesa_api_implementation.h15
-rw-r--r--chromium/ui/gl/gl_stub_api.cc3
-rw-r--r--chromium/ui/gl/gl_surface.cc45
-rw-r--r--chromium/ui/gl/gl_surface.h34
-rw-r--r--chromium/ui/gl/gl_surface_egl.cc128
-rw-r--r--chromium/ui/gl/gl_surface_egl.h26
-rw-r--r--chromium/ui/gl/gl_surface_format.h28
-rw-r--r--chromium/ui/gl/gl_surface_glx.cc8
-rw-r--r--chromium/ui/gl/gl_surface_glx.h2
-rw-r--r--chromium/ui/gl/gl_surface_stub.cc4
-rw-r--r--chromium/ui/gl/gl_surface_stub.h1
-rw-r--r--chromium/ui/gl/gl_surface_wgl.cc8
-rw-r--r--chromium/ui/gl/gl_surface_wgl.h2
-rw-r--r--chromium/ui/gl/gl_switches.cc27
-rw-r--r--chromium/ui/gl/gl_switches.h15
-rw-r--r--chromium/ui/gl/gl_wgl_api_implementation.cc16
-rw-r--r--chromium/ui/gl/gl_wgl_api_implementation.h15
-rw-r--r--chromium/ui/gl/gpu_timing_unittest.cc8
-rw-r--r--chromium/ui/gl/init/gl_factory.cc21
-rw-r--r--chromium/ui/gl/init/gl_factory.h21
-rw-r--r--chromium/ui/gl/init/gl_factory_android.cc9
-rw-r--r--chromium/ui/gl/init/gl_factory_mac.cc9
-rw-r--r--chromium/ui/gl/init/gl_factory_ozone.cc43
-rw-r--r--chromium/ui/gl/init/gl_factory_win.cc39
-rw-r--r--chromium/ui/gl/init/gl_factory_x11.cc12
-rw-r--r--chromium/ui/gl/init/gl_initializer_android.cc3
-rw-r--r--chromium/ui/gl/init/gl_initializer_mac.cc3
-rw-r--r--chromium/ui/gl/init/gl_initializer_ozone.cc36
-rw-r--r--chromium/ui/gl/init/gl_initializer_win.cc12
-rw-r--r--chromium/ui/gl/init/gl_initializer_x11.cc17
-rw-r--r--chromium/ui/gl/scoped_api.cc20
-rw-r--r--chromium/ui/gl/scoped_api.h28
-rw-r--r--chromium/ui/gl/sync_control_vsync_provider.cc221
-rw-r--r--chromium/ui/gl/sync_control_vsync_provider.h16
-rw-r--r--chromium/ui/gl/vsync_provider_win.h5
-rw-r--r--chromium/ui/gl/yuv_to_rgb_converter.cc5
75 files changed, 6840 insertions, 10003 deletions
diff --git a/chromium/ui/gl/BUILD.gn b/chromium/ui/gl/BUILD.gn
index 360551d7654..79871957c16 100644
--- a/chromium/ui/gl/BUILD.gn
+++ b/chromium/ui/gl/BUILD.gn
@@ -65,8 +65,6 @@ component("gl") {
"gl_context_osmesa.h",
"gl_context_stub.cc",
"gl_context_stub.h",
- "gl_context_stub_with_extensions.cc",
- "gl_context_stub_with_extensions.h",
"gl_enums.cc",
"gl_enums.h",
"gl_enums_implementation_autogen.h",
@@ -122,8 +120,6 @@ 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",
@@ -328,7 +324,9 @@ static_library("test_support") {
"//ui/gl/init",
]
deps = [
+ "//base/test:test_support",
"//testing/gtest",
+ "//ui/base",
]
if (use_x11) {
diff --git a/chromium/ui/gl/DEPS b/chromium/ui/gl/DEPS
index d2f429d9a3b..4f149287312 100644
--- a/chromium/ui/gl/DEPS
+++ b/chromium/ui/gl/DEPS
@@ -14,7 +14,7 @@ specific_include_rules = {
"+third_party/mesa/src/include/GL/osmesa.h",
],
# Allow us to include ANGLE's base platform implementation.
- "angle_platform_impl.h": [
+ "angle_platform_impl.cc": [
"+third_party/angle/include/platform/Platform.h",
],
"gl_angle_util_win.cc": [
diff --git a/chromium/ui/gl/OWNERS b/chromium/ui/gl/OWNERS
index 476d77949e1..ff0f6be0e38 100644
--- a/chromium/ui/gl/OWNERS
+++ b/chromium/ui/gl/OWNERS
@@ -5,3 +5,5 @@ per-file *gl_image*=reveman@chromium.org
per-file *_ozone*=alexst@chromium.org
per-file *_ozone*=dnicoara@chromium.org
per-file *_ozone*=spang@chromium.org
+
+# COMPONENT: Internals>GPU
diff --git a/chromium/ui/gl/angle_platform_impl.cc b/chromium/ui/gl/angle_platform_impl.cc
index 6a74fc29d04..1363fb97b4e 100644
--- a/chromium/ui/gl/angle_platform_impl.cc
+++ b/chromium/ui/gl/angle_platform_impl.cc
@@ -7,37 +7,42 @@
#include "base/metrics/histogram.h"
#include "base/metrics/histogram_macros.h"
#include "base/trace_event/trace_event.h"
+#include "third_party/angle/include/platform/Platform.h"
+#include "ui/gl/gl_bindings.h"
namespace gl {
-ANGLEPlatformImpl::ANGLEPlatformImpl() {
-}
+namespace {
-ANGLEPlatformImpl::~ANGLEPlatformImpl() {
-}
+angle::ResetDisplayPlatformFunc g_angle_reset_platform = nullptr;
-double ANGLEPlatformImpl::currentTime() {
+double ANGLEPlatformImpl_currentTime(angle::PlatformMethods* platform) {
return base::Time::Now().ToDoubleT();
}
-double ANGLEPlatformImpl::monotonicallyIncreasingTime() {
+double ANGLEPlatformImpl_monotonicallyIncreasingTime(
+ angle::PlatformMethods* platform) {
return (base::TimeTicks::Now() - base::TimeTicks()).InSecondsF();
}
-const unsigned char* ANGLEPlatformImpl::getTraceCategoryEnabledFlag(
+const unsigned char* ANGLEPlatformImpl_getTraceCategoryEnabledFlag(
+ angle::PlatformMethods* platform,
const char* category_group) {
return TRACE_EVENT_API_GET_CATEGORY_GROUP_ENABLED(category_group);
}
-void ANGLEPlatformImpl::logError(const char* errorMessage) {
+void ANGLEPlatformImpl_logError(angle::PlatformMethods* platform,
+ const char* errorMessage) {
LOG(ERROR) << errorMessage;
}
-void ANGLEPlatformImpl::logWarning(const char* warningMessage) {
+void ANGLEPlatformImpl_logWarning(angle::PlatformMethods* platform,
+ const char* warningMessage) {
LOG(WARNING) << warningMessage;
}
-angle::Platform::TraceEventHandle ANGLEPlatformImpl::addTraceEvent(
+angle::TraceEventHandle ANGLEPlatformImpl_addTraceEvent(
+ angle::PlatformMethods* platform,
char phase,
const unsigned char* category_group_enabled,
const char* name,
@@ -56,26 +61,28 @@ angle::Platform::TraceEventHandle ANGLEPlatformImpl::addTraceEvent(
trace_event_internal::kGlobalScope, id, trace_event_internal::kNoId,
base::PlatformThread::CurrentId(), timestamp_tt, num_args, arg_names,
arg_types, arg_values, nullptr, flags);
- angle::Platform::TraceEventHandle result;
+ angle::TraceEventHandle result;
memcpy(&result, &handle, sizeof(result));
return result;
}
-void ANGLEPlatformImpl::updateTraceEventDuration(
+void ANGLEPlatformImpl_updateTraceEventDuration(
+ angle::PlatformMethods* platform,
const unsigned char* category_group_enabled,
const char* name,
- TraceEventHandle handle) {
+ angle::TraceEventHandle handle) {
base::trace_event::TraceEventHandle trace_event_handle;
memcpy(&trace_event_handle, &handle, sizeof(handle));
TRACE_EVENT_API_UPDATE_TRACE_EVENT_DURATION(category_group_enabled, name,
trace_event_handle);
}
-void ANGLEPlatformImpl::histogramCustomCounts(const char* name,
- int sample,
- int min,
- int max,
- int bucket_count) {
+void ANGLEPlatformImpl_histogramCustomCounts(angle::PlatformMethods* platform,
+ const char* name,
+ int sample,
+ int min,
+ int max,
+ int bucket_count) {
// Copied from histogram macro, but without the static variable caching
// the histogram because name is dynamic.
base::HistogramBase* counter = base::Histogram::FactoryGet(
@@ -85,9 +92,10 @@ void ANGLEPlatformImpl::histogramCustomCounts(const char* name,
counter->Add(sample);
}
-void ANGLEPlatformImpl::histogramEnumeration(const char* name,
- int sample,
- int boundary_value) {
+void ANGLEPlatformImpl_histogramEnumeration(angle::PlatformMethods* platform,
+ const char* name,
+ int sample,
+ int boundary_value) {
// Copied from histogram macro, but without the static variable caching
// the histogram because name is dynamic.
base::HistogramBase* counter = base::LinearHistogram::FactoryGet(
@@ -97,14 +105,63 @@ void ANGLEPlatformImpl::histogramEnumeration(const char* name,
counter->Add(sample);
}
-void ANGLEPlatformImpl::histogramSparse(const char* name, int sample) {
+void ANGLEPlatformImpl_histogramSparse(angle::PlatformMethods* platform,
+ const char* name,
+ int sample) {
// For sparse histograms, we can use the macro, as it does not incorporate a
// static.
UMA_HISTOGRAM_SPARSE_SLOWLY(name, sample);
}
-void ANGLEPlatformImpl::histogramBoolean(const char* name, bool sample) {
- histogramEnumeration(name, sample ? 1 : 0, 2);
+void ANGLEPlatformImpl_histogramBoolean(angle::PlatformMethods* platform,
+ const char* name,
+ bool sample) {
+ ANGLEPlatformImpl_histogramEnumeration(platform, name, sample ? 1 : 0, 2);
+}
+
+} // anonymous namespace
+
+bool InitializeANGLEPlatform(EGLDisplay display) {
+ angle::GetDisplayPlatformFunc angle_get_platform =
+ reinterpret_cast<angle::GetDisplayPlatformFunc>(
+ eglGetProcAddress("ANGLEGetDisplayPlatform"));
+ if (!angle_get_platform)
+ return false;
+
+ // Save the pointer to the destroy function here to avoid crash.
+ g_angle_reset_platform = reinterpret_cast<angle::ResetDisplayPlatformFunc>(
+ eglGetProcAddress("ANGLEResetDisplayPlatform"));
+
+ angle::PlatformMethods* platformMethods = nullptr;
+ if (!angle_get_platform(static_cast<angle::EGLDisplayType>(display),
+ angle::g_PlatformMethodNames,
+ angle::g_NumPlatformMethods, nullptr,
+ &platformMethods))
+ return false;
+ platformMethods->currentTime = ANGLEPlatformImpl_currentTime;
+ platformMethods->addTraceEvent = ANGLEPlatformImpl_addTraceEvent;
+ platformMethods->currentTime = ANGLEPlatformImpl_currentTime;
+ platformMethods->getTraceCategoryEnabledFlag =
+ ANGLEPlatformImpl_getTraceCategoryEnabledFlag;
+ platformMethods->histogramBoolean = ANGLEPlatformImpl_histogramBoolean;
+ platformMethods->histogramCustomCounts =
+ ANGLEPlatformImpl_histogramCustomCounts;
+ platformMethods->histogramEnumeration =
+ ANGLEPlatformImpl_histogramEnumeration;
+ platformMethods->histogramSparse = ANGLEPlatformImpl_histogramSparse;
+ platformMethods->logError = ANGLEPlatformImpl_logError;
+ platformMethods->logWarning = ANGLEPlatformImpl_logWarning;
+ platformMethods->monotonicallyIncreasingTime =
+ ANGLEPlatformImpl_monotonicallyIncreasingTime;
+ platformMethods->updateTraceEventDuration =
+ ANGLEPlatformImpl_updateTraceEventDuration;
+ return true;
+}
+
+void ResetANGLEPlatform(EGLDisplay display) {
+ if (!g_angle_reset_platform)
+ return;
+ g_angle_reset_platform(static_cast<angle::EGLDisplayType>(display));
}
} // namespace gl
diff --git a/chromium/ui/gl/angle_platform_impl.h b/chromium/ui/gl/angle_platform_impl.h
index 99c59a6c0bb..38c93ab678a 100644
--- a/chromium/ui/gl/angle_platform_impl.h
+++ b/chromium/ui/gl/angle_platform_impl.h
@@ -8,53 +8,12 @@
// Implements the ANGLE platform interface, for functionality like
// histograms and trace profiling.
-#include "base/compiler_specific.h"
-#include "base/macros.h"
-#include "third_party/angle/include/platform/Platform.h"
-#include "ui/gl/gl_export.h"
+#include "ui/gl/gl_context_egl.h"
namespace gl {
-// Derives the base ANGLE platform and provides implementations
-class GL_EXPORT ANGLEPlatformImpl : NON_EXPORTED_BASE(public angle::Platform) {
- public:
- ANGLEPlatformImpl();
- ~ANGLEPlatformImpl() override;
-
- // angle::Platform:
- double currentTime() override;
- double monotonicallyIncreasingTime() override;
- void logError(const char* errorMessage) override;
- void logWarning(const char* warningMessage) override;
- const unsigned char* getTraceCategoryEnabledFlag(
- const char* category_group) override;
- TraceEventHandle addTraceEvent(char phase,
- const unsigned char* category_group_enabled,
- const char* name,
- unsigned long long id,
- double timestamp,
- int num_args,
- const char** arg_names,
- const unsigned char* arg_types,
- const unsigned long long* arg_values,
- unsigned char flags) override;
- void updateTraceEventDuration(const unsigned char* category_group_enabled,
- const char* name,
- TraceEventHandle handle) override;
- void histogramCustomCounts(const char* name,
- int sample,
- int min,
- int max,
- int bucket_count) override;
- void histogramEnumeration(const char* name,
- int sample,
- int boundary_value) override;
- void histogramSparse(const char* name, int sample) override;
- void histogramBoolean(const char* name, bool sample) override;
-
- private:
- DISALLOW_COPY_AND_ASSIGN(ANGLEPlatformImpl);
-};
+bool InitializeANGLEPlatform(EGLDisplay display);
+void ResetANGLEPlatform(EGLDisplay display);
} // namespace gl
diff --git a/chromium/ui/gl/generate_bindings.py b/chromium/ui/gl/generate_bindings.py
index d06481ab5a7..5ef8b9f2ef0 100755
--- a/chromium/ui/gl/generate_bindings.py
+++ b/chromium/ui/gl/generate_bindings.py
@@ -2556,8 +2556,8 @@ namespace gl {
""" % includes_string)
file.write('\n')
- file.write('static bool g_debugBindingsInitialized;\n')
- file.write('Driver%s g_driver_%s;\n' % (set_name.upper(), set_name.lower()))
+ if set_name != 'gl':
+ file.write('Driver%s g_driver_%s;\n' % (set_name.upper(), set_name.lower()))
file.write('\n')
# Write stub functions that take the place of some functions before a context
@@ -2650,11 +2650,8 @@ namespace gl {
if set_name == 'gl':
file.write("""\
void DriverGL::InitializeDynamicBindings(
- GLContext* context) {
- DCHECK(context && context->IsCurrent(NULL));
- const GLVersionInfo* ver = context->GetVersionInfo();
- ALLOW_UNUSED_LOCAL(ver);
- std::string extensions = context->GetExtensions() + " ";
+ const GLVersionInfo* ver, const std::string& context_extensions) {
+ std::string extensions = context_extensions + " ";
ALLOW_UNUSED_LOCAL(extensions);
""")
@@ -2685,7 +2682,6 @@ void Driver%s::InitializeExtensionBindings() {
for func in extension_funcs:
if not 'static_binding' in func:
file.write('\n')
- file.write(' debug_fn.%sFn = 0;\n' % func['known_as'])
WriteConditionalFuncBinding(file, func)
OutputExtensionBindings(
@@ -2708,22 +2704,67 @@ void DriverEGL::InitializeExtensionBindings() {
'extensions',
sorted(used_extensions),
[ f for f in functions if not IsClientExtensionFunc(f) ])
-
- # Some new function pointers have been added, so update them in debug bindings
- file.write('\n')
- file.write(' if (g_debugBindingsInitialized)\n')
- file.write(' InitializeDebugBindings();\n')
file.write('}\n')
+
+ # Write function to clear all function pointers.
file.write('\n')
+ file.write("""void Driver%s::ClearBindings() {
+ memset(this, 0, sizeof(*this));
+}
+""" % set_name.upper())
+
+ def MakeArgNames(arguments):
+ argument_names = re.sub(
+ r'(const )?[a-zA-Z0-9_]+\** ([a-zA-Z0-9_]+)', r'\2', arguments)
+ argument_names = re.sub(
+ r'(const )?[a-zA-Z0-9_]+\** ([a-zA-Z0-9_]+)', r'\2', argument_names)
+ if argument_names == 'void' or argument_names == '':
+ argument_names = ''
+ return argument_names
+
+ # Write GLApiBase functions
+ for func in functions:
+ function_name = func['known_as']
+ return_type = func['return_type']
+ arguments = func['arguments']
+ file.write('\n')
+ file.write('%s %sApiBase::%sFn(%s) {\n' %
+ (return_type, set_name.upper(), function_name, arguments))
+ argument_names = MakeArgNames(arguments)
+ if return_type == 'void':
+ file.write(' driver_->fn.%sFn(%s);\n' %
+ (function_name, argument_names))
+ else:
+ file.write(' return driver_->fn.%sFn(%s);\n' %
+ (function_name, argument_names))
+ file.write('}\n')
+
+ # Write TraceGLApi functions
+ for func in functions:
+ function_name = func['known_as']
+ return_type = func['return_type']
+ arguments = func['arguments']
+ file.write('\n')
+ file.write('%s Trace%sApi::%sFn(%s) {\n' %
+ (return_type, set_name.upper(), function_name, arguments))
+ argument_names = MakeArgNames(arguments)
+ file.write(' TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::%s")\n' %
+ function_name)
+ if return_type == 'void':
+ file.write(' %s_api_->%sFn(%s);\n' %
+ (set_name.lower(), function_name, argument_names))
+ else:
+ file.write(' return %s_api_->%sFn(%s);\n' %
+ (set_name.lower(), function_name, argument_names))
+ file.write('}\n')
- # Write logging wrappers for each function.
- file.write('extern "C" {\n')
+ # Write DebugGLApi functions
for func in functions:
return_type = func['return_type']
arguments = func['arguments']
file.write('\n')
- file.write('static %s GL_BINDING_CALL Debug_%s(%s) {\n' %
- (return_type, func['known_as'], arguments))
+ file.write('%s Debug%sApi::%sFn(%s) {\n' %
+ (return_type, set_name.upper(), func['known_as'], arguments))
argument_names = re.sub(
r'(const )?[a-zA-Z0-9_]+\** ([a-zA-Z0-9_]+)', r'\2', arguments)
argument_names = re.sub(
@@ -2764,23 +2805,20 @@ void DriverEGL::InitializeExtensionBindings() {
if return_type == 'void':
file.write(' GL_SERVICE_LOG("%s" << "(" %s << ")");\n' %
(function_name, log_argument_names))
- file.write(' DCHECK(g_driver_%s.debug_fn.%sFn != nullptr);\n' %
- (set_name.lower(), function_name))
- file.write(' g_driver_%s.debug_fn.%sFn(%s);\n' %
+ file.write(' %s_api_->%sFn(%s);\n' %
(set_name.lower(), function_name, argument_names))
if 'logging_code' in func:
file.write("%s\n" % func['logging_code'])
if options.generate_dchecks and set_name == 'gl':
file.write(' {\n')
- file.write(' GLenum error = g_driver_gl.debug_fn.glGetErrorFn();\n')
+ file.write(' GLenum error = %s_api_->glGetErrorFn();\n'
+ % set_name.lower())
file.write(' DCHECK(error == 0);\n')
file.write(' }\n')
else:
file.write(' GL_SERVICE_LOG("%s" << "(" %s << ")");\n' %
(function_name, log_argument_names))
- file.write(' DCHECK(g_driver_%s.debug_fn.%sFn != nullptr);\n' %
- (set_name.lower(), function_name))
- file.write(' %s result = g_driver_%s.debug_fn.%sFn(%s);\n' %
+ file.write(' %s result = %s_api_->%sFn(%s);\n' %
(return_type, set_name.lower(), function_name, argument_names))
if 'logging_code' in func:
file.write("%s\n" % func['logging_code'])
@@ -2788,77 +2826,12 @@ void DriverEGL::InitializeExtensionBindings() {
file.write(' GL_SERVICE_LOG("GL_RESULT: " << result);\n')
if options.generate_dchecks and set_name == 'gl':
file.write(' {\n')
- file.write(' GLenum _error = g_driver_gl.debug_fn.glGetErrorFn();\n')
+ file.write(' GLenum _error = %s_api_->glGetErrorFn();\n' %
+ set_name.lower())
file.write(' DCHECK(_error == 0);\n')
file.write(' }\n')
file.write(' return result;\n')
file.write('}\n')
- file.write('} // extern "C"\n')
-
- # Write function to initialize the debug function pointers.
- file.write('\n')
- file.write('void Driver%s::InitializeDebugBindings() {\n' %
- set_name.upper())
- for func in functions:
- first_name = func['known_as']
- file.write(' if (!debug_fn.%sFn) {\n' % first_name)
- file.write(' debug_fn.%sFn = fn.%sFn;\n' % (first_name, first_name))
- file.write(' fn.%sFn = Debug_%s;\n' % (first_name, first_name))
- file.write(' }\n')
- file.write(' g_debugBindingsInitialized = true;\n')
- file.write('}\n')
-
- # Write function to clear all function pointers.
- file.write('\n')
- file.write("""void Driver%s::ClearBindings() {
- memset(this, 0, sizeof(*this));
-}
-""" % set_name.upper())
-
- def MakeArgNames(arguments):
- argument_names = re.sub(
- r'(const )?[a-zA-Z0-9_]+\** ([a-zA-Z0-9_]+)', r'\2', arguments)
- argument_names = re.sub(
- r'(const )?[a-zA-Z0-9_]+\** ([a-zA-Z0-9_]+)', r'\2', argument_names)
- if argument_names == 'void' or argument_names == '':
- argument_names = ''
- return argument_names
-
- # Write GLApiBase functions
- for func in functions:
- function_name = func['known_as']
- return_type = func['return_type']
- arguments = func['arguments']
- file.write('\n')
- file.write('%s %sApiBase::%sFn(%s) {\n' %
- (return_type, set_name.upper(), function_name, arguments))
- argument_names = MakeArgNames(arguments)
- if return_type == 'void':
- file.write(' driver_->fn.%sFn(%s);\n' %
- (function_name, argument_names))
- else:
- file.write(' return driver_->fn.%sFn(%s);\n' %
- (function_name, argument_names))
- file.write('}\n')
-
- # Write TraceGLApi functions
- for func in functions:
- function_name = func['known_as']
- return_type = func['return_type']
- arguments = func['arguments']
- file.write('\n')
- file.write('%s Trace%sApi::%sFn(%s) {\n' %
- (return_type, set_name.upper(), function_name, arguments))
- argument_names = MakeArgNames(arguments)
- file.write(' TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::%s")\n' %
- function_name)
- if return_type == 'void':
- file.write(' %s_api_->%sFn(%s);\n' %
- (set_name.lower(), function_name, argument_names))
- else:
- file.write(' return %s_api_->%sFn(%s);\n' %
- (set_name.lower(), function_name, argument_names))
- file.write('}\n')
# Write NoContextGLApi functions
if set_name.upper() == "GL":
diff --git a/chromium/ui/gl/gl_angle_util_win.cc b/chromium/ui/gl/gl_angle_util_win.cc
index 4a2b37c4252..6bd8faab069 100644
--- a/chromium/ui/gl/gl_angle_util_win.cc
+++ b/chromium/ui/gl/gl_angle_util_win.cc
@@ -82,4 +82,54 @@ base::win::ScopedComPtr<IDirect3DDevice9> QueryD3D9DeviceObjectFromANGLE() {
return d3d9_device;
}
+base::win::ScopedComPtr<IDCompositionDevice2> QueryDirectCompositionDevice(
+ base::win::ScopedComPtr<ID3D11Device> d3d11_device) {
+ // Each D3D11 device will have a DirectComposition device stored in its
+ // private data under this GUID.
+ // {CF81D85A-8D30-4769-8509-B9D73898D870}
+ static const GUID kDirectCompositionGUID = {
+ 0xcf81d85a,
+ 0x8d30,
+ 0x4769,
+ {0x85, 0x9, 0xb9, 0xd7, 0x38, 0x98, 0xd8, 0x70}};
+
+ base::win::ScopedComPtr<IDCompositionDevice2> dcomp_device;
+ if (!d3d11_device)
+ return dcomp_device;
+
+ UINT data_size = sizeof(dcomp_device.get());
+ HRESULT hr = d3d11_device->GetPrivateData(kDirectCompositionGUID, &data_size,
+ dcomp_device.ReceiveVoid());
+ if (SUCCEEDED(hr) && dcomp_device)
+ return dcomp_device;
+
+ // Allocate a new DirectComposition device if none currently exists.
+ HMODULE dcomp_module = ::GetModuleHandle(L"dcomp.dll");
+ if (!dcomp_module)
+ return dcomp_device;
+
+ using PFN_DCOMPOSITION_CREATE_DEVICE2 = HRESULT(WINAPI*)(
+ IUnknown * renderingDevice, REFIID iid, void** dcompositionDevice);
+ PFN_DCOMPOSITION_CREATE_DEVICE2 create_device_function =
+ reinterpret_cast<PFN_DCOMPOSITION_CREATE_DEVICE2>(
+ ::GetProcAddress(dcomp_module, "DCompositionCreateDevice2"));
+ if (!create_device_function)
+ return dcomp_device;
+
+ base::win::ScopedComPtr<IDXGIDevice> dxgi_device;
+ d3d11_device.QueryInterface(dxgi_device.Receive());
+ base::win::ScopedComPtr<IDCompositionDesktopDevice> desktop_device;
+ hr = create_device_function(dxgi_device.get(),
+ IID_PPV_ARGS(desktop_device.Receive()));
+ if (FAILED(hr))
+ return dcomp_device;
+
+ hr = desktop_device.QueryInterface(dcomp_device.Receive());
+ CHECK(SUCCEEDED(hr));
+ d3d11_device->SetPrivateDataInterface(kDirectCompositionGUID,
+ dcomp_device.get());
+
+ return dcomp_device;
+}
+
} // namespace gl
diff --git a/chromium/ui/gl/gl_angle_util_win.h b/chromium/ui/gl/gl_angle_util_win.h
index 6f08f9132a4..b0a4a802181 100644
--- a/chromium/ui/gl/gl_angle_util_win.h
+++ b/chromium/ui/gl/gl_angle_util_win.h
@@ -7,6 +7,7 @@
#include <d3d11.h>
#include <d3d9.h>
+#include <dcomp.h>
#include "base/win/scoped_comptr.h"
#include "ui/gl/gl_export.h"
@@ -18,6 +19,12 @@ QueryD3D11DeviceObjectFromANGLE();
GL_EXPORT base::win::ScopedComPtr<IDirect3DDevice9>
QueryD3D9DeviceObjectFromANGLE();
+// Query the DirectComposition device associated with a D3D11 device. May
+// create a new one if none exists.
+GL_EXPORT base::win::ScopedComPtr<IDCompositionDevice2>
+QueryDirectCompositionDevice(
+ base::win::ScopedComPtr<ID3D11Device> d3d11_device);
+
} // namespace gl
#endif // UI_GL_GL_ANGLE_UTIL_WIN_H_
diff --git a/chromium/ui/gl/gl_api_unittest.cc b/chromium/ui/gl/gl_api_unittest.cc
index 6f274b46734..f0185c670e1 100644
--- a/chromium/ui/gl/gl_api_unittest.cc
+++ b/chromium/ui/gl/gl_api_unittest.cc
@@ -13,29 +13,11 @@
#include "ui/gl/gl_gl_api_implementation.h"
#include "ui/gl/gl_implementation.h"
#include "ui/gl/gl_switches.h"
+#include "ui/gl/gl_version_info.h"
#include "ui/gl/gpu_timing.h"
namespace gl {
-class GLContextFake : public GLContext {
- public:
- bool Initialize(GLSurface* compatible_surface,
- const GLContextAttribs& attribs) override {
- return true;
- }
- bool MakeCurrent(GLSurface* surface) override { return true; }
- void ReleaseCurrent(GLSurface* surface) override {}
- bool IsCurrent(GLSurface* surface) override { return true; }
- void* GetHandle() override { return NULL; }
- scoped_refptr<GPUTimingClient> CreateGPUTimingClient() override {
- return NULL;
- }
- void OnSetSwapInterval(int interval) override {}
- GLContextFake() : GLContext(NULL) {}
- protected:
- ~GLContextFake() override {}
-};
-
class GLApiTest : public testing::Test {
public:
void SetUp() override {
@@ -44,9 +26,6 @@ class GLApiTest : public testing::Test {
num_fake_extension_strings_ = 0;
fake_extension_strings_ = nullptr;
- DCHECK(!g_current_gl_context_tls);
- g_current_gl_context_tls = new base::ThreadLocalPointer<GLApi>;
-
SetGLGetProcAddressProc(
static_cast<GLGetProcAddressProc>(&FakeGLGetProcAddress));
}
@@ -58,8 +37,7 @@ class GLApiTest : public testing::Test {
void TearDown() override {
api_.reset(nullptr);
- delete g_current_gl_context_tls;
- g_current_gl_context_tls = nullptr;
+ driver_.reset(nullptr);
SetGLImplementation(kGLImplementationNone);
fake_extension_string_ = "";
@@ -69,21 +47,23 @@ class GLApiTest : public testing::Test {
}
void InitializeAPI(base::CommandLine* command_line) {
- 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;
+ driver_.reset(new DriverGL());
+ driver_->fn.glGetStringFn = &FakeGetString;
+ driver_->fn.glGetStringiFn = &FakeGetStringi;
+ driver_->fn.glGetIntegervFn = &FakeGetIntegervFn;
- fake_context_ = new GLContextFake();
+ api_.reset(new RealGLApi());
if (command_line)
- api_->InitializeWithCommandLine(&g_driver_gl, command_line);
+ api_->InitializeWithCommandLine(driver_.get(), command_line);
else
- api_->Initialize(&g_driver_gl);
+ api_->Initialize(driver_.get());
+
api_->InitializeFilteredExtensions();
- g_driver_gl.InitializeCustomDynamicBindings(fake_context_.get());
+ std::unique_ptr<GLVersionInfo> version =
+ GetVersionInfoFromContext(api_.get());
+ driver_->InitializeDynamicBindings(
+ version.get(), GetGLExtensionsFromCurrentContext(api_.get()));
+ api_->set_version(std::move(version));
}
void SetFakeExtensionString(const char* fake_string) {
@@ -138,7 +118,6 @@ class GLApiTest : public testing::Test {
static uint32_t num_fake_extension_strings_;
static const char** fake_extension_strings_;
- scoped_refptr<GLContext> fake_context_;
std::unique_ptr<DriverGL> driver_;
std::unique_ptr<RealGLApi> api_;
};
@@ -176,14 +155,14 @@ TEST_F(GLApiTest, DisabledExtensionBitTest) {
SetFakeExtensionStrings(kFakeExtensions, arraysize(kFakeExtensions));
InitializeAPI(nullptr);
- EXPECT_TRUE(g_driver_gl.ext.b_GL_ARB_timer_query);
+ EXPECT_TRUE(driver_->ext.b_GL_ARB_timer_query);
base::CommandLine command_line(base::CommandLine::NO_PROGRAM);
command_line.AppendSwitchASCII(switches::kDisableGLExtensions,
kFakeDisabledExtensions);
InitializeAPI(&command_line);
- EXPECT_FALSE(g_driver_gl.ext.b_GL_ARB_timer_query);
+ EXPECT_FALSE(driver_->ext.b_GL_ARB_timer_query);
}
TEST_F(GLApiTest, DisabledExtensionStringIndexTest) {
diff --git a/chromium/ui/gl/gl_bindings.h b/chromium/ui/gl/gl_bindings.h
index b1044f8f4fa..3592fd1457d 100644
--- a/chromium/ui/gl/gl_bindings.h
+++ b/chromium/ui/gl/gl_bindings.h
@@ -110,6 +110,9 @@
// GL_ANGLE_instanced_arrays
#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE 0x88FE
+// GL_ANGLE_client_arrays
+#define GL_CLIENT_ARRAYS_ANGLE 0x93AA
+
// GL_EXT_occlusion_query_boolean
#define GL_ANY_SAMPLES_PASSED_EXT 0x8C2F
#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT 0x8D6A
@@ -117,6 +120,9 @@
#define GL_QUERY_RESULT_EXT 0x8866
#define GL_QUERY_RESULT_AVAILABLE_EXT 0x8867
+// GL_ARB_occlusion_query
+#define GL_SAMPLES_PASSED_ARB 0x8914
+
// GL_CHROMIUM_command_buffer_query
#define GL_COMMANDS_ISSUED_CHROMIUM 0x6004
@@ -132,9 +138,6 @@
// GL_CHROMIUM_sync_query
#define GL_COMMANDS_COMPLETED_CHROMIUM 0x84F7
-// GL_CHROMIUM_gpu_memory_buffer_image
-#define GL_READ_WRITE_CHROMIUM 0x78F2
-
// GL_CHROMIUM_ycrcb_420_image
#define GL_RGB_YCRCB_420_CHROMIUM 0x78FA
@@ -394,34 +397,30 @@ typedef uint64_t EGLuint64CHROMIUM;
namespace gl {
+struct GLVersionInfo;
+
struct GL_EXPORT DriverGL {
void InitializeStaticBindings();
- void InitializeCustomDynamicBindings(GLContext* context);
- void InitializeDebugBindings();
- void InitializeNullDrawBindings();
- // TODO(danakj): Remove this when all test suites are using null-draw.
- bool HasInitializedNullDrawBindings();
- bool SetNullDrawBindingsEnabled(bool enabled);
+ void InitializeDynamicBindings(const GLVersionInfo* ver,
+ const std::string& context_extensions);
void ClearBindings();
ProcsGL fn;
- ProcsGL orig_fn;
- ProcsGL debug_fn;
ExtensionsGL ext;
- bool null_draw_bindings_enabled;
+};
- private:
- void InitializeDynamicBindings(GLContext* context);
+struct GL_EXPORT CurrentGL {
+ GLApi* Api = nullptr;
+ DriverGL* Driver = nullptr;
+ const GLVersionInfo* Version = nullptr;
};
struct GL_EXPORT DriverOSMESA {
void InitializeStaticBindings();
void InitializeExtensionBindings();
- void InitializeDebugBindings();
void ClearBindings();
ProcsOSMESA fn;
- ProcsOSMESA debug_fn;
ExtensionsOSMESA ext;
private:
@@ -432,11 +431,9 @@ struct GL_EXPORT DriverOSMESA {
struct GL_EXPORT DriverWGL {
void InitializeStaticBindings();
void InitializeExtensionBindings();
- void InitializeDebugBindings();
void ClearBindings();
ProcsWGL fn;
- ProcsWGL debug_fn;
ExtensionsWGL ext;
private:
@@ -449,11 +446,9 @@ struct GL_EXPORT DriverEGL {
void InitializeStaticBindings();
void InitializeClientExtensionBindings();
void InitializeExtensionBindings();
- void InitializeDebugBindings();
void ClearBindings();
ProcsEGL fn;
- ProcsEGL debug_fn;
ExtensionsEGL ext;
static std::string GetPlatformExtensions();
@@ -465,11 +460,9 @@ struct GL_EXPORT DriverEGL {
struct GL_EXPORT DriverGLX {
void InitializeStaticBindings();
void InitializeExtensionBindings();
- void InitializeDebugBindings();
void ClearBindings();
ProcsGLX fn;
- ProcsGLX debug_fn;
ExtensionsGLX ext;
private:
@@ -478,11 +471,12 @@ struct GL_EXPORT DriverGLX {
#endif
// This #define is here to support autogenerated code.
-#define g_current_gl_context g_current_gl_context_tls->Get()
-GL_EXPORT extern base::ThreadLocalPointer<GLApi>* g_current_gl_context_tls;
+#define g_current_gl_context g_current_gl_context_tls->Get()->Api
+#define g_current_gl_driver g_current_gl_context_tls->Get()->Driver
+#define g_current_gl_version g_current_gl_context_tls->Get()->Version
+GL_EXPORT extern base::ThreadLocalPointer<CurrentGL>* g_current_gl_context_tls;
GL_EXPORT extern OSMESAApi* g_current_osmesa_context;
-GL_EXPORT extern DriverGL g_driver_gl;
GL_EXPORT extern DriverOSMESA g_driver_osmesa;
#if defined(USE_EGL)
diff --git a/chromium/ui/gl/gl_bindings_autogen_egl.cc b/chromium/ui/gl/gl_bindings_autogen_egl.cc
index ed0a6cf5ab8..79cc51cc5ba 100644
--- a/chromium/ui/gl/gl_bindings_autogen_egl.cc
+++ b/chromium/ui/gl/gl_bindings_autogen_egl.cc
@@ -20,7 +20,6 @@
namespace gl {
-static bool g_debugBindingsInitialized;
DriverEGL g_driver_egl;
void DriverEGL::InitializeStaticBindings() {
@@ -131,7 +130,6 @@ void DriverEGL::InitializeClientExtensionBindings() {
ext.b_EGL_EXT_platform_base =
client_extensions.find("EGL_EXT_platform_base ") != std::string::npos;
- debug_fn.eglGetPlatformDisplayEXTFn = 0;
if (ext.b_EGL_EXT_platform_base) {
fn.eglGetPlatformDisplayEXTFn =
reinterpret_cast<eglGetPlatformDisplayEXTProc>(
@@ -186,1119 +184,111 @@ void DriverEGL::InitializeExtensionBindings() {
extensions.find("GL_CHROMIUM_egl_khr_fence_sync_hack ") !=
std::string::npos;
- debug_fn.eglCreateImageKHRFn = 0;
if (ext.b_EGL_KHR_image || ext.b_EGL_KHR_image_base ||
ext.b_EGL_KHR_gl_texture_2D_image) {
fn.eglCreateImageKHRFn = reinterpret_cast<eglCreateImageKHRProc>(
GetGLProcAddress("eglCreateImageKHR"));
}
- debug_fn.eglCreateStreamKHRFn = 0;
if (ext.b_EGL_KHR_stream) {
fn.eglCreateStreamKHRFn = reinterpret_cast<eglCreateStreamKHRProc>(
GetGLProcAddress("eglCreateStreamKHR"));
}
- debug_fn.eglCreateStreamProducerD3DTextureNV12ANGLEFn = 0;
if (ext.b_EGL_ANGLE_stream_producer_d3d_texture_nv12) {
fn.eglCreateStreamProducerD3DTextureNV12ANGLEFn =
reinterpret_cast<eglCreateStreamProducerD3DTextureNV12ANGLEProc>(
GetGLProcAddress("eglCreateStreamProducerD3DTextureNV12ANGLE"));
}
- debug_fn.eglDestroyImageKHRFn = 0;
if (ext.b_EGL_KHR_image || ext.b_EGL_KHR_image_base) {
fn.eglDestroyImageKHRFn = reinterpret_cast<eglDestroyImageKHRProc>(
GetGLProcAddress("eglDestroyImageKHR"));
}
- debug_fn.eglDestroyStreamKHRFn = 0;
if (ext.b_EGL_KHR_stream) {
fn.eglDestroyStreamKHRFn = reinterpret_cast<eglDestroyStreamKHRProc>(
GetGLProcAddress("eglDestroyStreamKHR"));
}
- debug_fn.eglGetSyncValuesCHROMIUMFn = 0;
if (ext.b_EGL_CHROMIUM_sync_control) {
fn.eglGetSyncValuesCHROMIUMFn =
reinterpret_cast<eglGetSyncValuesCHROMIUMProc>(
GetGLProcAddress("eglGetSyncValuesCHROMIUM"));
}
- debug_fn.eglImageFlushExternalEXTFn = 0;
if (ext.b_EGL_EXT_image_flush_external) {
fn.eglImageFlushExternalEXTFn =
reinterpret_cast<eglImageFlushExternalEXTProc>(
GetGLProcAddress("eglImageFlushExternalEXT"));
}
- debug_fn.eglPostSubBufferNVFn = 0;
if (ext.b_EGL_NV_post_sub_buffer) {
fn.eglPostSubBufferNVFn = reinterpret_cast<eglPostSubBufferNVProc>(
GetGLProcAddress("eglPostSubBufferNV"));
}
- debug_fn.eglQueryStreamKHRFn = 0;
if (ext.b_EGL_KHR_stream) {
fn.eglQueryStreamKHRFn = reinterpret_cast<eglQueryStreamKHRProc>(
GetGLProcAddress("eglQueryStreamKHR"));
}
- debug_fn.eglQueryStreamu64KHRFn = 0;
if (ext.b_EGL_KHR_stream) {
fn.eglQueryStreamu64KHRFn = reinterpret_cast<eglQueryStreamu64KHRProc>(
GetGLProcAddress("eglQueryStreamu64KHR"));
}
- debug_fn.eglQuerySurfacePointerANGLEFn = 0;
if (ext.b_EGL_ANGLE_query_surface_pointer) {
fn.eglQuerySurfacePointerANGLEFn =
reinterpret_cast<eglQuerySurfacePointerANGLEProc>(
GetGLProcAddress("eglQuerySurfacePointerANGLE"));
}
- debug_fn.eglStreamAttribKHRFn = 0;
if (ext.b_EGL_KHR_stream) {
fn.eglStreamAttribKHRFn = reinterpret_cast<eglStreamAttribKHRProc>(
GetGLProcAddress("eglStreamAttribKHR"));
}
- debug_fn.eglStreamConsumerAcquireKHRFn = 0;
if (ext.b_EGL_KHR_stream_consumer_gltexture) {
fn.eglStreamConsumerAcquireKHRFn =
reinterpret_cast<eglStreamConsumerAcquireKHRProc>(
GetGLProcAddress("eglStreamConsumerAcquireKHR"));
}
- debug_fn.eglStreamConsumerGLTextureExternalAttribsNVFn = 0;
if (ext.b_EGL_NV_stream_consumer_gltexture_yuv) {
fn.eglStreamConsumerGLTextureExternalAttribsNVFn =
reinterpret_cast<eglStreamConsumerGLTextureExternalAttribsNVProc>(
GetGLProcAddress("eglStreamConsumerGLTextureExternalAttribsNV"));
}
- debug_fn.eglStreamConsumerGLTextureExternalKHRFn = 0;
if (ext.b_EGL_KHR_stream_consumer_gltexture) {
fn.eglStreamConsumerGLTextureExternalKHRFn =
reinterpret_cast<eglStreamConsumerGLTextureExternalKHRProc>(
GetGLProcAddress("eglStreamConsumerGLTextureExternalKHR"));
}
- debug_fn.eglStreamConsumerReleaseKHRFn = 0;
if (ext.b_EGL_KHR_stream_consumer_gltexture) {
fn.eglStreamConsumerReleaseKHRFn =
reinterpret_cast<eglStreamConsumerReleaseKHRProc>(
GetGLProcAddress("eglStreamConsumerReleaseKHR"));
}
- debug_fn.eglStreamPostD3DTextureNV12ANGLEFn = 0;
if (ext.b_EGL_ANGLE_stream_producer_d3d_texture_nv12) {
fn.eglStreamPostD3DTextureNV12ANGLEFn =
reinterpret_cast<eglStreamPostD3DTextureNV12ANGLEProc>(
GetGLProcAddress("eglStreamPostD3DTextureNV12ANGLE"));
}
- debug_fn.eglSwapBuffersWithDamageKHRFn = 0;
if (ext.b_EGL_KHR_swap_buffers_with_damage) {
fn.eglSwapBuffersWithDamageKHRFn =
reinterpret_cast<eglSwapBuffersWithDamageKHRProc>(
GetGLProcAddress("eglSwapBuffersWithDamageKHR"));
}
- debug_fn.eglWaitSyncKHRFn = 0;
if (ext.b_EGL_KHR_wait_sync) {
fn.eglWaitSyncKHRFn = reinterpret_cast<eglWaitSyncKHRProc>(
GetGLProcAddress("eglWaitSyncKHR"));
}
-
- if (g_debugBindingsInitialized)
- InitializeDebugBindings();
-}
-
-extern "C" {
-
-static EGLBoolean GL_BINDING_CALL Debug_eglBindAPI(EGLenum api) {
- GL_SERVICE_LOG("eglBindAPI"
- << "(" << api << ")");
- DCHECK(g_driver_egl.debug_fn.eglBindAPIFn != nullptr);
- EGLBoolean result = g_driver_egl.debug_fn.eglBindAPIFn(api);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLBoolean GL_BINDING_CALL Debug_eglBindTexImage(EGLDisplay dpy,
- EGLSurface surface,
- EGLint buffer) {
- GL_SERVICE_LOG("eglBindTexImage"
- << "(" << dpy << ", " << surface << ", " << buffer << ")");
- DCHECK(g_driver_egl.debug_fn.eglBindTexImageFn != nullptr);
- EGLBoolean result =
- g_driver_egl.debug_fn.eglBindTexImageFn(dpy, surface, buffer);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLBoolean GL_BINDING_CALL
-Debug_eglChooseConfig(EGLDisplay dpy,
- const EGLint* attrib_list,
- EGLConfig* configs,
- EGLint config_size,
- EGLint* num_config) {
- GL_SERVICE_LOG("eglChooseConfig"
- << "(" << dpy << ", " << static_cast<const void*>(attrib_list)
- << ", " << static_cast<const void*>(configs) << ", "
- << config_size << ", " << static_cast<const void*>(num_config)
- << ")");
- DCHECK(g_driver_egl.debug_fn.eglChooseConfigFn != nullptr);
- EGLBoolean result = g_driver_egl.debug_fn.eglChooseConfigFn(
- dpy, attrib_list, configs, config_size, num_config);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLint GL_BINDING_CALL Debug_eglClientWaitSyncKHR(EGLDisplay dpy,
- EGLSyncKHR sync,
- EGLint flags,
- EGLTimeKHR timeout) {
- GL_SERVICE_LOG("eglClientWaitSyncKHR"
- << "(" << dpy << ", " << sync << ", " << flags << ", "
- << timeout << ")");
- DCHECK(g_driver_egl.debug_fn.eglClientWaitSyncKHRFn != nullptr);
- EGLint result =
- g_driver_egl.debug_fn.eglClientWaitSyncKHRFn(dpy, sync, flags, timeout);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLBoolean GL_BINDING_CALL
-Debug_eglCopyBuffers(EGLDisplay dpy,
- EGLSurface surface,
- EGLNativePixmapType target) {
- GL_SERVICE_LOG("eglCopyBuffers"
- << "(" << dpy << ", " << surface << ", " << target << ")");
- DCHECK(g_driver_egl.debug_fn.eglCopyBuffersFn != nullptr);
- EGLBoolean result =
- g_driver_egl.debug_fn.eglCopyBuffersFn(dpy, surface, target);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLContext GL_BINDING_CALL
-Debug_eglCreateContext(EGLDisplay dpy,
- EGLConfig config,
- EGLContext share_context,
- const EGLint* attrib_list) {
- GL_SERVICE_LOG("eglCreateContext"
- << "(" << dpy << ", " << config << ", " << share_context
- << ", " << static_cast<const void*>(attrib_list) << ")");
- DCHECK(g_driver_egl.debug_fn.eglCreateContextFn != nullptr);
- EGLContext result = g_driver_egl.debug_fn.eglCreateContextFn(
- dpy, config, share_context, attrib_list);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLImageKHR GL_BINDING_CALL
-Debug_eglCreateImageKHR(EGLDisplay dpy,
- EGLContext ctx,
- EGLenum target,
- EGLClientBuffer buffer,
- const EGLint* attrib_list) {
- GL_SERVICE_LOG("eglCreateImageKHR"
- << "(" << dpy << ", " << ctx << ", " << target << ", "
- << buffer << ", " << static_cast<const void*>(attrib_list)
- << ")");
- DCHECK(g_driver_egl.debug_fn.eglCreateImageKHRFn != nullptr);
- EGLImageKHR result = g_driver_egl.debug_fn.eglCreateImageKHRFn(
- dpy, ctx, target, buffer, attrib_list);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLSurface GL_BINDING_CALL
-Debug_eglCreatePbufferFromClientBuffer(EGLDisplay dpy,
- EGLenum buftype,
- void* buffer,
- EGLConfig config,
- const EGLint* attrib_list) {
- GL_SERVICE_LOG("eglCreatePbufferFromClientBuffer"
- << "(" << dpy << ", " << buftype << ", "
- << static_cast<const void*>(buffer) << ", " << config << ", "
- << static_cast<const void*>(attrib_list) << ")");
- DCHECK(g_driver_egl.debug_fn.eglCreatePbufferFromClientBufferFn != nullptr);
- EGLSurface result = g_driver_egl.debug_fn.eglCreatePbufferFromClientBufferFn(
- dpy, buftype, buffer, config, attrib_list);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLSurface GL_BINDING_CALL
-Debug_eglCreatePbufferSurface(EGLDisplay dpy,
- EGLConfig config,
- const EGLint* attrib_list) {
- GL_SERVICE_LOG("eglCreatePbufferSurface"
- << "(" << dpy << ", " << config << ", "
- << static_cast<const void*>(attrib_list) << ")");
- DCHECK(g_driver_egl.debug_fn.eglCreatePbufferSurfaceFn != nullptr);
- EGLSurface result =
- g_driver_egl.debug_fn.eglCreatePbufferSurfaceFn(dpy, config, attrib_list);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLSurface GL_BINDING_CALL
-Debug_eglCreatePixmapSurface(EGLDisplay dpy,
- EGLConfig config,
- EGLNativePixmapType pixmap,
- const EGLint* attrib_list) {
- GL_SERVICE_LOG("eglCreatePixmapSurface"
- << "(" << dpy << ", " << config << ", " << pixmap << ", "
- << static_cast<const void*>(attrib_list) << ")");
- DCHECK(g_driver_egl.debug_fn.eglCreatePixmapSurfaceFn != nullptr);
- EGLSurface result = g_driver_egl.debug_fn.eglCreatePixmapSurfaceFn(
- dpy, config, pixmap, attrib_list);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLStreamKHR GL_BINDING_CALL
-Debug_eglCreateStreamKHR(EGLDisplay dpy, const EGLint* attrib_list) {
- GL_SERVICE_LOG("eglCreateStreamKHR"
- << "(" << dpy << ", " << static_cast<const void*>(attrib_list)
- << ")");
- DCHECK(g_driver_egl.debug_fn.eglCreateStreamKHRFn != nullptr);
- EGLStreamKHR result =
- g_driver_egl.debug_fn.eglCreateStreamKHRFn(dpy, attrib_list);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLBoolean GL_BINDING_CALL
-Debug_eglCreateStreamProducerD3DTextureNV12ANGLE(EGLDisplay dpy,
- EGLStreamKHR stream,
- EGLAttrib* attrib_list) {
- GL_SERVICE_LOG("eglCreateStreamProducerD3DTextureNV12ANGLE"
- << "(" << dpy << ", " << stream << ", "
- << static_cast<const void*>(attrib_list) << ")");
- DCHECK(g_driver_egl.debug_fn.eglCreateStreamProducerD3DTextureNV12ANGLEFn !=
- nullptr);
- EGLBoolean result =
- g_driver_egl.debug_fn.eglCreateStreamProducerD3DTextureNV12ANGLEFn(
- dpy, stream, attrib_list);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLSyncKHR GL_BINDING_CALL
-Debug_eglCreateSyncKHR(EGLDisplay dpy,
- EGLenum type,
- const EGLint* attrib_list) {
- GL_SERVICE_LOG("eglCreateSyncKHR"
- << "(" << dpy << ", " << type << ", "
- << static_cast<const void*>(attrib_list) << ")");
- DCHECK(g_driver_egl.debug_fn.eglCreateSyncKHRFn != nullptr);
- EGLSyncKHR result =
- g_driver_egl.debug_fn.eglCreateSyncKHRFn(dpy, type, attrib_list);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLSurface GL_BINDING_CALL
-Debug_eglCreateWindowSurface(EGLDisplay dpy,
- EGLConfig config,
- EGLNativeWindowType win,
- const EGLint* attrib_list) {
- GL_SERVICE_LOG("eglCreateWindowSurface"
- << "(" << dpy << ", " << config << ", " << win << ", "
- << static_cast<const void*>(attrib_list) << ")");
- DCHECK(g_driver_egl.debug_fn.eglCreateWindowSurfaceFn != nullptr);
- EGLSurface result = g_driver_egl.debug_fn.eglCreateWindowSurfaceFn(
- dpy, config, win, attrib_list);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLBoolean GL_BINDING_CALL Debug_eglDestroyContext(EGLDisplay dpy,
- EGLContext ctx) {
- GL_SERVICE_LOG("eglDestroyContext"
- << "(" << dpy << ", " << ctx << ")");
- DCHECK(g_driver_egl.debug_fn.eglDestroyContextFn != nullptr);
- EGLBoolean result = g_driver_egl.debug_fn.eglDestroyContextFn(dpy, ctx);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLBoolean GL_BINDING_CALL Debug_eglDestroyImageKHR(EGLDisplay dpy,
- EGLImageKHR image) {
- GL_SERVICE_LOG("eglDestroyImageKHR"
- << "(" << dpy << ", " << image << ")");
- DCHECK(g_driver_egl.debug_fn.eglDestroyImageKHRFn != nullptr);
- EGLBoolean result = g_driver_egl.debug_fn.eglDestroyImageKHRFn(dpy, image);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLBoolean GL_BINDING_CALL
-Debug_eglDestroyStreamKHR(EGLDisplay dpy, EGLStreamKHR stream) {
- GL_SERVICE_LOG("eglDestroyStreamKHR"
- << "(" << dpy << ", " << stream << ")");
- DCHECK(g_driver_egl.debug_fn.eglDestroyStreamKHRFn != nullptr);
- EGLBoolean result = g_driver_egl.debug_fn.eglDestroyStreamKHRFn(dpy, stream);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLBoolean GL_BINDING_CALL Debug_eglDestroySurface(EGLDisplay dpy,
- EGLSurface surface) {
- GL_SERVICE_LOG("eglDestroySurface"
- << "(" << dpy << ", " << surface << ")");
- DCHECK(g_driver_egl.debug_fn.eglDestroySurfaceFn != nullptr);
- EGLBoolean result = g_driver_egl.debug_fn.eglDestroySurfaceFn(dpy, surface);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLBoolean GL_BINDING_CALL Debug_eglDestroySyncKHR(EGLDisplay dpy,
- EGLSyncKHR sync) {
- GL_SERVICE_LOG("eglDestroySyncKHR"
- << "(" << dpy << ", " << sync << ")");
- DCHECK(g_driver_egl.debug_fn.eglDestroySyncKHRFn != nullptr);
- EGLBoolean result = g_driver_egl.debug_fn.eglDestroySyncKHRFn(dpy, sync);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLBoolean GL_BINDING_CALL Debug_eglGetConfigAttrib(EGLDisplay dpy,
- EGLConfig config,
- EGLint attribute,
- EGLint* value) {
- GL_SERVICE_LOG("eglGetConfigAttrib"
- << "(" << dpy << ", " << config << ", " << attribute << ", "
- << static_cast<const void*>(value) << ")");
- DCHECK(g_driver_egl.debug_fn.eglGetConfigAttribFn != nullptr);
- EGLBoolean result =
- g_driver_egl.debug_fn.eglGetConfigAttribFn(dpy, config, attribute, value);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLBoolean GL_BINDING_CALL Debug_eglGetConfigs(EGLDisplay dpy,
- EGLConfig* configs,
- EGLint config_size,
- EGLint* num_config) {
- GL_SERVICE_LOG("eglGetConfigs"
- << "(" << dpy << ", " << static_cast<const void*>(configs)
- << ", " << config_size << ", "
- << static_cast<const void*>(num_config) << ")");
- DCHECK(g_driver_egl.debug_fn.eglGetConfigsFn != nullptr);
- EGLBoolean result = g_driver_egl.debug_fn.eglGetConfigsFn(
- dpy, configs, config_size, num_config);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLContext GL_BINDING_CALL Debug_eglGetCurrentContext(void) {
- GL_SERVICE_LOG("eglGetCurrentContext"
- << "("
- << ")");
- DCHECK(g_driver_egl.debug_fn.eglGetCurrentContextFn != nullptr);
- EGLContext result = g_driver_egl.debug_fn.eglGetCurrentContextFn();
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLDisplay GL_BINDING_CALL Debug_eglGetCurrentDisplay(void) {
- GL_SERVICE_LOG("eglGetCurrentDisplay"
- << "("
- << ")");
- DCHECK(g_driver_egl.debug_fn.eglGetCurrentDisplayFn != nullptr);
- EGLDisplay result = g_driver_egl.debug_fn.eglGetCurrentDisplayFn();
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLSurface GL_BINDING_CALL Debug_eglGetCurrentSurface(EGLint readdraw) {
- GL_SERVICE_LOG("eglGetCurrentSurface"
- << "(" << readdraw << ")");
- DCHECK(g_driver_egl.debug_fn.eglGetCurrentSurfaceFn != nullptr);
- EGLSurface result = g_driver_egl.debug_fn.eglGetCurrentSurfaceFn(readdraw);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLDisplay GL_BINDING_CALL
-Debug_eglGetDisplay(EGLNativeDisplayType display_id) {
- GL_SERVICE_LOG("eglGetDisplay"
- << "(" << display_id << ")");
- DCHECK(g_driver_egl.debug_fn.eglGetDisplayFn != nullptr);
- EGLDisplay result = g_driver_egl.debug_fn.eglGetDisplayFn(display_id);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLint GL_BINDING_CALL Debug_eglGetError(void) {
- GL_SERVICE_LOG("eglGetError"
- << "("
- << ")");
- DCHECK(g_driver_egl.debug_fn.eglGetErrorFn != nullptr);
- EGLint result = g_driver_egl.debug_fn.eglGetErrorFn();
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLDisplay GL_BINDING_CALL
-Debug_eglGetPlatformDisplayEXT(EGLenum platform,
- void* native_display,
- const EGLint* attrib_list) {
- GL_SERVICE_LOG("eglGetPlatformDisplayEXT"
- << "(" << platform << ", "
- << static_cast<const void*>(native_display) << ", "
- << static_cast<const void*>(attrib_list) << ")");
- DCHECK(g_driver_egl.debug_fn.eglGetPlatformDisplayEXTFn != nullptr);
- EGLDisplay result = g_driver_egl.debug_fn.eglGetPlatformDisplayEXTFn(
- platform, native_display, attrib_list);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static __eglMustCastToProperFunctionPointerType GL_BINDING_CALL
-Debug_eglGetProcAddress(const char* procname) {
- GL_SERVICE_LOG("eglGetProcAddress"
- << "(" << procname << ")");
- DCHECK(g_driver_egl.debug_fn.eglGetProcAddressFn != nullptr);
- __eglMustCastToProperFunctionPointerType result =
- g_driver_egl.debug_fn.eglGetProcAddressFn(procname);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLBoolean GL_BINDING_CALL Debug_eglGetSyncAttribKHR(EGLDisplay dpy,
- EGLSyncKHR sync,
- EGLint attribute,
- EGLint* value) {
- GL_SERVICE_LOG("eglGetSyncAttribKHR"
- << "(" << dpy << ", " << sync << ", " << attribute << ", "
- << static_cast<const void*>(value) << ")");
- DCHECK(g_driver_egl.debug_fn.eglGetSyncAttribKHRFn != nullptr);
- EGLBoolean result =
- g_driver_egl.debug_fn.eglGetSyncAttribKHRFn(dpy, sync, attribute, value);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLBoolean GL_BINDING_CALL
-Debug_eglGetSyncValuesCHROMIUM(EGLDisplay dpy,
- EGLSurface surface,
- EGLuint64CHROMIUM* ust,
- EGLuint64CHROMIUM* msc,
- EGLuint64CHROMIUM* sbc) {
- GL_SERVICE_LOG("eglGetSyncValuesCHROMIUM"
- << "(" << dpy << ", " << surface << ", "
- << static_cast<const void*>(ust) << ", "
- << static_cast<const void*>(msc) << ", "
- << static_cast<const void*>(sbc) << ")");
- DCHECK(g_driver_egl.debug_fn.eglGetSyncValuesCHROMIUMFn != nullptr);
- EGLBoolean result = g_driver_egl.debug_fn.eglGetSyncValuesCHROMIUMFn(
- dpy, surface, ust, msc, sbc);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLBoolean GL_BINDING_CALL
-Debug_eglImageFlushExternalEXT(EGLDisplay dpy,
- EGLImageKHR image,
- const EGLAttrib* attrib_list) {
- GL_SERVICE_LOG("eglImageFlushExternalEXT"
- << "(" << dpy << ", " << image << ", "
- << static_cast<const void*>(attrib_list) << ")");
- DCHECK(g_driver_egl.debug_fn.eglImageFlushExternalEXTFn != nullptr);
- EGLBoolean result =
- g_driver_egl.debug_fn.eglImageFlushExternalEXTFn(dpy, image, attrib_list);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-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) << ")");
- DCHECK(g_driver_egl.debug_fn.eglInitializeFn != nullptr);
- EGLBoolean result = g_driver_egl.debug_fn.eglInitializeFn(dpy, major, minor);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLBoolean GL_BINDING_CALL Debug_eglMakeCurrent(EGLDisplay dpy,
- EGLSurface draw,
- EGLSurface read,
- EGLContext ctx) {
- GL_SERVICE_LOG("eglMakeCurrent"
- << "(" << dpy << ", " << draw << ", " << read << ", " << ctx
- << ")");
- DCHECK(g_driver_egl.debug_fn.eglMakeCurrentFn != nullptr);
- EGLBoolean result =
- g_driver_egl.debug_fn.eglMakeCurrentFn(dpy, draw, read, ctx);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLBoolean GL_BINDING_CALL Debug_eglPostSubBufferNV(EGLDisplay dpy,
- EGLSurface surface,
- EGLint x,
- EGLint y,
- EGLint width,
- EGLint height) {
- GL_SERVICE_LOG("eglPostSubBufferNV"
- << "(" << dpy << ", " << surface << ", " << x << ", " << y
- << ", " << width << ", " << height << ")");
- DCHECK(g_driver_egl.debug_fn.eglPostSubBufferNVFn != nullptr);
- EGLBoolean result = g_driver_egl.debug_fn.eglPostSubBufferNVFn(
- dpy, surface, x, y, width, height);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLenum GL_BINDING_CALL Debug_eglQueryAPI(void) {
- GL_SERVICE_LOG("eglQueryAPI"
- << "("
- << ")");
- DCHECK(g_driver_egl.debug_fn.eglQueryAPIFn != nullptr);
- EGLenum result = g_driver_egl.debug_fn.eglQueryAPIFn();
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLBoolean GL_BINDING_CALL Debug_eglQueryContext(EGLDisplay dpy,
- EGLContext ctx,
- EGLint attribute,
- EGLint* value) {
- GL_SERVICE_LOG("eglQueryContext"
- << "(" << dpy << ", " << ctx << ", " << attribute << ", "
- << static_cast<const void*>(value) << ")");
- DCHECK(g_driver_egl.debug_fn.eglQueryContextFn != nullptr);
- EGLBoolean result =
- g_driver_egl.debug_fn.eglQueryContextFn(dpy, ctx, attribute, value);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLBoolean GL_BINDING_CALL Debug_eglQueryStreamKHR(EGLDisplay dpy,
- EGLStreamKHR stream,
- EGLenum attribute,
- EGLint* value) {
- GL_SERVICE_LOG("eglQueryStreamKHR"
- << "(" << dpy << ", " << stream << ", " << attribute << ", "
- << static_cast<const void*>(value) << ")");
- DCHECK(g_driver_egl.debug_fn.eglQueryStreamKHRFn != nullptr);
- EGLBoolean result =
- g_driver_egl.debug_fn.eglQueryStreamKHRFn(dpy, stream, attribute, value);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLBoolean GL_BINDING_CALL
-Debug_eglQueryStreamu64KHR(EGLDisplay dpy,
- EGLStreamKHR stream,
- EGLenum attribute,
- EGLuint64KHR* value) {
- GL_SERVICE_LOG("eglQueryStreamu64KHR"
- << "(" << dpy << ", " << stream << ", " << attribute << ", "
- << static_cast<const void*>(value) << ")");
- DCHECK(g_driver_egl.debug_fn.eglQueryStreamu64KHRFn != nullptr);
- EGLBoolean result = g_driver_egl.debug_fn.eglQueryStreamu64KHRFn(
- dpy, stream, attribute, value);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static const char* GL_BINDING_CALL Debug_eglQueryString(EGLDisplay dpy,
- EGLint name) {
- GL_SERVICE_LOG("eglQueryString"
- << "(" << dpy << ", " << name << ")");
- DCHECK(g_driver_egl.debug_fn.eglQueryStringFn != nullptr);
- const char* result = g_driver_egl.debug_fn.eglQueryStringFn(dpy, name);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLBoolean GL_BINDING_CALL Debug_eglQuerySurface(EGLDisplay dpy,
- EGLSurface surface,
- EGLint attribute,
- EGLint* value) {
- GL_SERVICE_LOG("eglQuerySurface"
- << "(" << dpy << ", " << surface << ", " << attribute << ", "
- << static_cast<const void*>(value) << ")");
- DCHECK(g_driver_egl.debug_fn.eglQuerySurfaceFn != nullptr);
- EGLBoolean result =
- g_driver_egl.debug_fn.eglQuerySurfaceFn(dpy, surface, attribute, value);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLBoolean GL_BINDING_CALL
-Debug_eglQuerySurfacePointerANGLE(EGLDisplay dpy,
- EGLSurface surface,
- EGLint attribute,
- void** value) {
- GL_SERVICE_LOG("eglQuerySurfacePointerANGLE"
- << "(" << dpy << ", " << surface << ", " << attribute << ", "
- << value << ")");
- DCHECK(g_driver_egl.debug_fn.eglQuerySurfacePointerANGLEFn != nullptr);
- EGLBoolean result = g_driver_egl.debug_fn.eglQuerySurfacePointerANGLEFn(
- dpy, surface, attribute, value);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLBoolean GL_BINDING_CALL Debug_eglReleaseTexImage(EGLDisplay dpy,
- EGLSurface surface,
- EGLint buffer) {
- GL_SERVICE_LOG("eglReleaseTexImage"
- << "(" << dpy << ", " << surface << ", " << buffer << ")");
- DCHECK(g_driver_egl.debug_fn.eglReleaseTexImageFn != nullptr);
- EGLBoolean result =
- g_driver_egl.debug_fn.eglReleaseTexImageFn(dpy, surface, buffer);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLBoolean GL_BINDING_CALL Debug_eglReleaseThread(void) {
- GL_SERVICE_LOG("eglReleaseThread"
- << "("
- << ")");
- DCHECK(g_driver_egl.debug_fn.eglReleaseThreadFn != nullptr);
- EGLBoolean result = g_driver_egl.debug_fn.eglReleaseThreadFn();
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLBoolean GL_BINDING_CALL Debug_eglStreamAttribKHR(EGLDisplay dpy,
- EGLStreamKHR stream,
- EGLenum attribute,
- EGLint value) {
- GL_SERVICE_LOG("eglStreamAttribKHR"
- << "(" << dpy << ", " << stream << ", " << attribute << ", "
- << value << ")");
- DCHECK(g_driver_egl.debug_fn.eglStreamAttribKHRFn != nullptr);
- EGLBoolean result =
- g_driver_egl.debug_fn.eglStreamAttribKHRFn(dpy, stream, attribute, value);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLBoolean GL_BINDING_CALL
-Debug_eglStreamConsumerAcquireKHR(EGLDisplay dpy, EGLStreamKHR stream) {
- GL_SERVICE_LOG("eglStreamConsumerAcquireKHR"
- << "(" << dpy << ", " << stream << ")");
- DCHECK(g_driver_egl.debug_fn.eglStreamConsumerAcquireKHRFn != nullptr);
- EGLBoolean result =
- g_driver_egl.debug_fn.eglStreamConsumerAcquireKHRFn(dpy, stream);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLBoolean GL_BINDING_CALL
-Debug_eglStreamConsumerGLTextureExternalAttribsNV(EGLDisplay dpy,
- EGLStreamKHR stream,
- EGLAttrib* attrib_list) {
- GL_SERVICE_LOG("eglStreamConsumerGLTextureExternalAttribsNV"
- << "(" << dpy << ", " << stream << ", "
- << static_cast<const void*>(attrib_list) << ")");
- DCHECK(g_driver_egl.debug_fn.eglStreamConsumerGLTextureExternalAttribsNVFn !=
- nullptr);
- EGLBoolean result =
- g_driver_egl.debug_fn.eglStreamConsumerGLTextureExternalAttribsNVFn(
- dpy, stream, attrib_list);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLBoolean GL_BINDING_CALL
-Debug_eglStreamConsumerGLTextureExternalKHR(EGLDisplay dpy,
- EGLStreamKHR stream) {
- GL_SERVICE_LOG("eglStreamConsumerGLTextureExternalKHR"
- << "(" << dpy << ", " << stream << ")");
- DCHECK(g_driver_egl.debug_fn.eglStreamConsumerGLTextureExternalKHRFn !=
- nullptr);
- EGLBoolean result =
- g_driver_egl.debug_fn.eglStreamConsumerGLTextureExternalKHRFn(dpy,
- stream);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLBoolean GL_BINDING_CALL
-Debug_eglStreamConsumerReleaseKHR(EGLDisplay dpy, EGLStreamKHR stream) {
- GL_SERVICE_LOG("eglStreamConsumerReleaseKHR"
- << "(" << dpy << ", " << stream << ")");
- DCHECK(g_driver_egl.debug_fn.eglStreamConsumerReleaseKHRFn != nullptr);
- EGLBoolean result =
- g_driver_egl.debug_fn.eglStreamConsumerReleaseKHRFn(dpy, stream);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLBoolean GL_BINDING_CALL
-Debug_eglStreamPostD3DTextureNV12ANGLE(EGLDisplay dpy,
- EGLStreamKHR stream,
- void* texture,
- const EGLAttrib* attrib_list) {
- GL_SERVICE_LOG("eglStreamPostD3DTextureNV12ANGLE"
- << "(" << dpy << ", " << stream << ", "
- << static_cast<const void*>(texture) << ", "
- << static_cast<const void*>(attrib_list) << ")");
- DCHECK(g_driver_egl.debug_fn.eglStreamPostD3DTextureNV12ANGLEFn != nullptr);
- EGLBoolean result = g_driver_egl.debug_fn.eglStreamPostD3DTextureNV12ANGLEFn(
- dpy, stream, texture, attrib_list);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLBoolean GL_BINDING_CALL Debug_eglSurfaceAttrib(EGLDisplay dpy,
- EGLSurface surface,
- EGLint attribute,
- EGLint value) {
- GL_SERVICE_LOG("eglSurfaceAttrib"
- << "(" << dpy << ", " << surface << ", " << attribute << ", "
- << value << ")");
- DCHECK(g_driver_egl.debug_fn.eglSurfaceAttribFn != nullptr);
- EGLBoolean result =
- g_driver_egl.debug_fn.eglSurfaceAttribFn(dpy, surface, attribute, value);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLBoolean GL_BINDING_CALL Debug_eglSwapBuffers(EGLDisplay dpy,
- EGLSurface surface) {
- GL_SERVICE_LOG("eglSwapBuffers"
- << "(" << dpy << ", " << surface << ")");
- DCHECK(g_driver_egl.debug_fn.eglSwapBuffersFn != nullptr);
- EGLBoolean result = g_driver_egl.debug_fn.eglSwapBuffersFn(dpy, surface);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLBoolean GL_BINDING_CALL
-Debug_eglSwapBuffersWithDamageKHR(EGLDisplay dpy,
- EGLSurface surface,
- EGLint* rects,
- EGLint n_rects) {
- GL_SERVICE_LOG("eglSwapBuffersWithDamageKHR"
- << "(" << dpy << ", " << surface << ", "
- << static_cast<const void*>(rects) << ", " << n_rects << ")");
- DCHECK(g_driver_egl.debug_fn.eglSwapBuffersWithDamageKHRFn != nullptr);
- EGLBoolean result = g_driver_egl.debug_fn.eglSwapBuffersWithDamageKHRFn(
- dpy, surface, rects, n_rects);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLBoolean GL_BINDING_CALL Debug_eglSwapInterval(EGLDisplay dpy,
- EGLint interval) {
- GL_SERVICE_LOG("eglSwapInterval"
- << "(" << dpy << ", " << interval << ")");
- DCHECK(g_driver_egl.debug_fn.eglSwapIntervalFn != nullptr);
- EGLBoolean result = g_driver_egl.debug_fn.eglSwapIntervalFn(dpy, interval);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLBoolean GL_BINDING_CALL Debug_eglTerminate(EGLDisplay dpy) {
- GL_SERVICE_LOG("eglTerminate"
- << "(" << dpy << ")");
- DCHECK(g_driver_egl.debug_fn.eglTerminateFn != nullptr);
- EGLBoolean result = g_driver_egl.debug_fn.eglTerminateFn(dpy);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLBoolean GL_BINDING_CALL Debug_eglWaitClient(void) {
- GL_SERVICE_LOG("eglWaitClient"
- << "("
- << ")");
- DCHECK(g_driver_egl.debug_fn.eglWaitClientFn != nullptr);
- EGLBoolean result = g_driver_egl.debug_fn.eglWaitClientFn();
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLBoolean GL_BINDING_CALL Debug_eglWaitGL(void) {
- GL_SERVICE_LOG("eglWaitGL"
- << "("
- << ")");
- DCHECK(g_driver_egl.debug_fn.eglWaitGLFn != nullptr);
- EGLBoolean result = g_driver_egl.debug_fn.eglWaitGLFn();
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLBoolean GL_BINDING_CALL Debug_eglWaitNative(EGLint engine) {
- GL_SERVICE_LOG("eglWaitNative"
- << "(" << engine << ")");
- DCHECK(g_driver_egl.debug_fn.eglWaitNativeFn != nullptr);
- EGLBoolean result = g_driver_egl.debug_fn.eglWaitNativeFn(engine);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static EGLint GL_BINDING_CALL Debug_eglWaitSyncKHR(EGLDisplay dpy,
- EGLSyncKHR sync,
- EGLint flags) {
- GL_SERVICE_LOG("eglWaitSyncKHR"
- << "(" << dpy << ", " << sync << ", " << flags << ")");
- DCHECK(g_driver_egl.debug_fn.eglWaitSyncKHRFn != nullptr);
- EGLint result = g_driver_egl.debug_fn.eglWaitSyncKHRFn(dpy, sync, flags);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-} // extern "C"
-
-void DriverEGL::InitializeDebugBindings() {
- if (!debug_fn.eglBindAPIFn) {
- debug_fn.eglBindAPIFn = fn.eglBindAPIFn;
- fn.eglBindAPIFn = Debug_eglBindAPI;
- }
- if (!debug_fn.eglBindTexImageFn) {
- debug_fn.eglBindTexImageFn = fn.eglBindTexImageFn;
- fn.eglBindTexImageFn = Debug_eglBindTexImage;
- }
- if (!debug_fn.eglChooseConfigFn) {
- debug_fn.eglChooseConfigFn = fn.eglChooseConfigFn;
- fn.eglChooseConfigFn = Debug_eglChooseConfig;
- }
- if (!debug_fn.eglClientWaitSyncKHRFn) {
- debug_fn.eglClientWaitSyncKHRFn = fn.eglClientWaitSyncKHRFn;
- fn.eglClientWaitSyncKHRFn = Debug_eglClientWaitSyncKHR;
- }
- if (!debug_fn.eglCopyBuffersFn) {
- debug_fn.eglCopyBuffersFn = fn.eglCopyBuffersFn;
- fn.eglCopyBuffersFn = Debug_eglCopyBuffers;
- }
- if (!debug_fn.eglCreateContextFn) {
- debug_fn.eglCreateContextFn = fn.eglCreateContextFn;
- fn.eglCreateContextFn = Debug_eglCreateContext;
- }
- if (!debug_fn.eglCreateImageKHRFn) {
- debug_fn.eglCreateImageKHRFn = fn.eglCreateImageKHRFn;
- fn.eglCreateImageKHRFn = Debug_eglCreateImageKHR;
- }
- if (!debug_fn.eglCreatePbufferFromClientBufferFn) {
- debug_fn.eglCreatePbufferFromClientBufferFn =
- fn.eglCreatePbufferFromClientBufferFn;
- fn.eglCreatePbufferFromClientBufferFn =
- Debug_eglCreatePbufferFromClientBuffer;
- }
- if (!debug_fn.eglCreatePbufferSurfaceFn) {
- debug_fn.eglCreatePbufferSurfaceFn = fn.eglCreatePbufferSurfaceFn;
- fn.eglCreatePbufferSurfaceFn = Debug_eglCreatePbufferSurface;
- }
- if (!debug_fn.eglCreatePixmapSurfaceFn) {
- debug_fn.eglCreatePixmapSurfaceFn = fn.eglCreatePixmapSurfaceFn;
- fn.eglCreatePixmapSurfaceFn = Debug_eglCreatePixmapSurface;
- }
- if (!debug_fn.eglCreateStreamKHRFn) {
- debug_fn.eglCreateStreamKHRFn = fn.eglCreateStreamKHRFn;
- fn.eglCreateStreamKHRFn = Debug_eglCreateStreamKHR;
- }
- if (!debug_fn.eglCreateStreamProducerD3DTextureNV12ANGLEFn) {
- debug_fn.eglCreateStreamProducerD3DTextureNV12ANGLEFn =
- fn.eglCreateStreamProducerD3DTextureNV12ANGLEFn;
- fn.eglCreateStreamProducerD3DTextureNV12ANGLEFn =
- Debug_eglCreateStreamProducerD3DTextureNV12ANGLE;
- }
- if (!debug_fn.eglCreateSyncKHRFn) {
- debug_fn.eglCreateSyncKHRFn = fn.eglCreateSyncKHRFn;
- fn.eglCreateSyncKHRFn = Debug_eglCreateSyncKHR;
- }
- if (!debug_fn.eglCreateWindowSurfaceFn) {
- debug_fn.eglCreateWindowSurfaceFn = fn.eglCreateWindowSurfaceFn;
- fn.eglCreateWindowSurfaceFn = Debug_eglCreateWindowSurface;
- }
- if (!debug_fn.eglDestroyContextFn) {
- debug_fn.eglDestroyContextFn = fn.eglDestroyContextFn;
- fn.eglDestroyContextFn = Debug_eglDestroyContext;
- }
- if (!debug_fn.eglDestroyImageKHRFn) {
- debug_fn.eglDestroyImageKHRFn = fn.eglDestroyImageKHRFn;
- fn.eglDestroyImageKHRFn = Debug_eglDestroyImageKHR;
- }
- if (!debug_fn.eglDestroyStreamKHRFn) {
- debug_fn.eglDestroyStreamKHRFn = fn.eglDestroyStreamKHRFn;
- fn.eglDestroyStreamKHRFn = Debug_eglDestroyStreamKHR;
- }
- if (!debug_fn.eglDestroySurfaceFn) {
- debug_fn.eglDestroySurfaceFn = fn.eglDestroySurfaceFn;
- fn.eglDestroySurfaceFn = Debug_eglDestroySurface;
- }
- if (!debug_fn.eglDestroySyncKHRFn) {
- debug_fn.eglDestroySyncKHRFn = fn.eglDestroySyncKHRFn;
- fn.eglDestroySyncKHRFn = Debug_eglDestroySyncKHR;
- }
- if (!debug_fn.eglGetConfigAttribFn) {
- debug_fn.eglGetConfigAttribFn = fn.eglGetConfigAttribFn;
- fn.eglGetConfigAttribFn = Debug_eglGetConfigAttrib;
- }
- if (!debug_fn.eglGetConfigsFn) {
- debug_fn.eglGetConfigsFn = fn.eglGetConfigsFn;
- fn.eglGetConfigsFn = Debug_eglGetConfigs;
- }
- if (!debug_fn.eglGetCurrentContextFn) {
- debug_fn.eglGetCurrentContextFn = fn.eglGetCurrentContextFn;
- fn.eglGetCurrentContextFn = Debug_eglGetCurrentContext;
- }
- if (!debug_fn.eglGetCurrentDisplayFn) {
- debug_fn.eglGetCurrentDisplayFn = fn.eglGetCurrentDisplayFn;
- fn.eglGetCurrentDisplayFn = Debug_eglGetCurrentDisplay;
- }
- if (!debug_fn.eglGetCurrentSurfaceFn) {
- debug_fn.eglGetCurrentSurfaceFn = fn.eglGetCurrentSurfaceFn;
- fn.eglGetCurrentSurfaceFn = Debug_eglGetCurrentSurface;
- }
- if (!debug_fn.eglGetDisplayFn) {
- debug_fn.eglGetDisplayFn = fn.eglGetDisplayFn;
- fn.eglGetDisplayFn = Debug_eglGetDisplay;
- }
- if (!debug_fn.eglGetErrorFn) {
- debug_fn.eglGetErrorFn = fn.eglGetErrorFn;
- fn.eglGetErrorFn = Debug_eglGetError;
- }
- if (!debug_fn.eglGetPlatformDisplayEXTFn) {
- debug_fn.eglGetPlatformDisplayEXTFn = fn.eglGetPlatformDisplayEXTFn;
- fn.eglGetPlatformDisplayEXTFn = Debug_eglGetPlatformDisplayEXT;
- }
- if (!debug_fn.eglGetProcAddressFn) {
- debug_fn.eglGetProcAddressFn = fn.eglGetProcAddressFn;
- fn.eglGetProcAddressFn = Debug_eglGetProcAddress;
- }
- if (!debug_fn.eglGetSyncAttribKHRFn) {
- debug_fn.eglGetSyncAttribKHRFn = fn.eglGetSyncAttribKHRFn;
- fn.eglGetSyncAttribKHRFn = Debug_eglGetSyncAttribKHR;
- }
- if (!debug_fn.eglGetSyncValuesCHROMIUMFn) {
- debug_fn.eglGetSyncValuesCHROMIUMFn = fn.eglGetSyncValuesCHROMIUMFn;
- fn.eglGetSyncValuesCHROMIUMFn = Debug_eglGetSyncValuesCHROMIUM;
- }
- if (!debug_fn.eglImageFlushExternalEXTFn) {
- debug_fn.eglImageFlushExternalEXTFn = fn.eglImageFlushExternalEXTFn;
- fn.eglImageFlushExternalEXTFn = Debug_eglImageFlushExternalEXT;
- }
- if (!debug_fn.eglInitializeFn) {
- debug_fn.eglInitializeFn = fn.eglInitializeFn;
- fn.eglInitializeFn = Debug_eglInitialize;
- }
- if (!debug_fn.eglMakeCurrentFn) {
- debug_fn.eglMakeCurrentFn = fn.eglMakeCurrentFn;
- fn.eglMakeCurrentFn = Debug_eglMakeCurrent;
- }
- if (!debug_fn.eglPostSubBufferNVFn) {
- debug_fn.eglPostSubBufferNVFn = fn.eglPostSubBufferNVFn;
- fn.eglPostSubBufferNVFn = Debug_eglPostSubBufferNV;
- }
- if (!debug_fn.eglQueryAPIFn) {
- debug_fn.eglQueryAPIFn = fn.eglQueryAPIFn;
- fn.eglQueryAPIFn = Debug_eglQueryAPI;
- }
- if (!debug_fn.eglQueryContextFn) {
- debug_fn.eglQueryContextFn = fn.eglQueryContextFn;
- fn.eglQueryContextFn = Debug_eglQueryContext;
- }
- if (!debug_fn.eglQueryStreamKHRFn) {
- debug_fn.eglQueryStreamKHRFn = fn.eglQueryStreamKHRFn;
- fn.eglQueryStreamKHRFn = Debug_eglQueryStreamKHR;
- }
- if (!debug_fn.eglQueryStreamu64KHRFn) {
- debug_fn.eglQueryStreamu64KHRFn = fn.eglQueryStreamu64KHRFn;
- fn.eglQueryStreamu64KHRFn = Debug_eglQueryStreamu64KHR;
- }
- if (!debug_fn.eglQueryStringFn) {
- debug_fn.eglQueryStringFn = fn.eglQueryStringFn;
- fn.eglQueryStringFn = Debug_eglQueryString;
- }
- if (!debug_fn.eglQuerySurfaceFn) {
- debug_fn.eglQuerySurfaceFn = fn.eglQuerySurfaceFn;
- fn.eglQuerySurfaceFn = Debug_eglQuerySurface;
- }
- if (!debug_fn.eglQuerySurfacePointerANGLEFn) {
- debug_fn.eglQuerySurfacePointerANGLEFn = fn.eglQuerySurfacePointerANGLEFn;
- fn.eglQuerySurfacePointerANGLEFn = Debug_eglQuerySurfacePointerANGLE;
- }
- if (!debug_fn.eglReleaseTexImageFn) {
- debug_fn.eglReleaseTexImageFn = fn.eglReleaseTexImageFn;
- fn.eglReleaseTexImageFn = Debug_eglReleaseTexImage;
- }
- if (!debug_fn.eglReleaseThreadFn) {
- debug_fn.eglReleaseThreadFn = fn.eglReleaseThreadFn;
- fn.eglReleaseThreadFn = Debug_eglReleaseThread;
- }
- if (!debug_fn.eglStreamAttribKHRFn) {
- debug_fn.eglStreamAttribKHRFn = fn.eglStreamAttribKHRFn;
- fn.eglStreamAttribKHRFn = Debug_eglStreamAttribKHR;
- }
- if (!debug_fn.eglStreamConsumerAcquireKHRFn) {
- debug_fn.eglStreamConsumerAcquireKHRFn = fn.eglStreamConsumerAcquireKHRFn;
- fn.eglStreamConsumerAcquireKHRFn = Debug_eglStreamConsumerAcquireKHR;
- }
- if (!debug_fn.eglStreamConsumerGLTextureExternalAttribsNVFn) {
- debug_fn.eglStreamConsumerGLTextureExternalAttribsNVFn =
- fn.eglStreamConsumerGLTextureExternalAttribsNVFn;
- fn.eglStreamConsumerGLTextureExternalAttribsNVFn =
- Debug_eglStreamConsumerGLTextureExternalAttribsNV;
- }
- if (!debug_fn.eglStreamConsumerGLTextureExternalKHRFn) {
- debug_fn.eglStreamConsumerGLTextureExternalKHRFn =
- fn.eglStreamConsumerGLTextureExternalKHRFn;
- fn.eglStreamConsumerGLTextureExternalKHRFn =
- Debug_eglStreamConsumerGLTextureExternalKHR;
- }
- if (!debug_fn.eglStreamConsumerReleaseKHRFn) {
- debug_fn.eglStreamConsumerReleaseKHRFn = fn.eglStreamConsumerReleaseKHRFn;
- fn.eglStreamConsumerReleaseKHRFn = Debug_eglStreamConsumerReleaseKHR;
- }
- if (!debug_fn.eglStreamPostD3DTextureNV12ANGLEFn) {
- debug_fn.eglStreamPostD3DTextureNV12ANGLEFn =
- fn.eglStreamPostD3DTextureNV12ANGLEFn;
- fn.eglStreamPostD3DTextureNV12ANGLEFn =
- Debug_eglStreamPostD3DTextureNV12ANGLE;
- }
- if (!debug_fn.eglSurfaceAttribFn) {
- debug_fn.eglSurfaceAttribFn = fn.eglSurfaceAttribFn;
- fn.eglSurfaceAttribFn = Debug_eglSurfaceAttrib;
- }
- if (!debug_fn.eglSwapBuffersFn) {
- debug_fn.eglSwapBuffersFn = fn.eglSwapBuffersFn;
- fn.eglSwapBuffersFn = Debug_eglSwapBuffers;
- }
- if (!debug_fn.eglSwapBuffersWithDamageKHRFn) {
- debug_fn.eglSwapBuffersWithDamageKHRFn = fn.eglSwapBuffersWithDamageKHRFn;
- fn.eglSwapBuffersWithDamageKHRFn = Debug_eglSwapBuffersWithDamageKHR;
- }
- if (!debug_fn.eglSwapIntervalFn) {
- debug_fn.eglSwapIntervalFn = fn.eglSwapIntervalFn;
- fn.eglSwapIntervalFn = Debug_eglSwapInterval;
- }
- if (!debug_fn.eglTerminateFn) {
- debug_fn.eglTerminateFn = fn.eglTerminateFn;
- fn.eglTerminateFn = Debug_eglTerminate;
- }
- if (!debug_fn.eglWaitClientFn) {
- debug_fn.eglWaitClientFn = fn.eglWaitClientFn;
- fn.eglWaitClientFn = Debug_eglWaitClient;
- }
- if (!debug_fn.eglWaitGLFn) {
- debug_fn.eglWaitGLFn = fn.eglWaitGLFn;
- fn.eglWaitGLFn = Debug_eglWaitGL;
- }
- if (!debug_fn.eglWaitNativeFn) {
- debug_fn.eglWaitNativeFn = fn.eglWaitNativeFn;
- fn.eglWaitNativeFn = Debug_eglWaitNative;
- }
- if (!debug_fn.eglWaitSyncKHRFn) {
- debug_fn.eglWaitSyncKHRFn = fn.eglWaitSyncKHRFn;
- fn.eglWaitSyncKHRFn = Debug_eglWaitSyncKHR;
- }
- g_debugBindingsInitialized = true;
}
void DriverEGL::ClearBindings() {
@@ -2066,4 +1056,648 @@ EGLint TraceEGLApi::eglWaitSyncKHRFn(EGLDisplay dpy,
return egl_api_->eglWaitSyncKHRFn(dpy, sync, flags);
}
+EGLBoolean DebugEGLApi::eglBindAPIFn(EGLenum api) {
+ GL_SERVICE_LOG("eglBindAPI"
+ << "(" << api << ")");
+ EGLBoolean result = egl_api_->eglBindAPIFn(api);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLBoolean DebugEGLApi::eglBindTexImageFn(EGLDisplay dpy,
+ EGLSurface surface,
+ EGLint buffer) {
+ GL_SERVICE_LOG("eglBindTexImage"
+ << "(" << dpy << ", " << surface << ", " << buffer << ")");
+ EGLBoolean result = egl_api_->eglBindTexImageFn(dpy, surface, buffer);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLBoolean DebugEGLApi::eglChooseConfigFn(EGLDisplay dpy,
+ const EGLint* attrib_list,
+ EGLConfig* configs,
+ EGLint config_size,
+ EGLint* num_config) {
+ GL_SERVICE_LOG("eglChooseConfig"
+ << "(" << dpy << ", " << static_cast<const void*>(attrib_list)
+ << ", " << static_cast<const void*>(configs) << ", "
+ << config_size << ", " << static_cast<const void*>(num_config)
+ << ")");
+ EGLBoolean result = egl_api_->eglChooseConfigFn(dpy, attrib_list, configs,
+ config_size, num_config);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLint DebugEGLApi::eglClientWaitSyncKHRFn(EGLDisplay dpy,
+ EGLSyncKHR sync,
+ EGLint flags,
+ EGLTimeKHR timeout) {
+ GL_SERVICE_LOG("eglClientWaitSyncKHR"
+ << "(" << dpy << ", " << sync << ", " << flags << ", "
+ << timeout << ")");
+ EGLint result = egl_api_->eglClientWaitSyncKHRFn(dpy, sync, flags, timeout);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLBoolean DebugEGLApi::eglCopyBuffersFn(EGLDisplay dpy,
+ EGLSurface surface,
+ EGLNativePixmapType target) {
+ GL_SERVICE_LOG("eglCopyBuffers"
+ << "(" << dpy << ", " << surface << ", " << target << ")");
+ EGLBoolean result = egl_api_->eglCopyBuffersFn(dpy, surface, target);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLContext DebugEGLApi::eglCreateContextFn(EGLDisplay dpy,
+ EGLConfig config,
+ EGLContext share_context,
+ const EGLint* attrib_list) {
+ GL_SERVICE_LOG("eglCreateContext"
+ << "(" << dpy << ", " << config << ", " << share_context
+ << ", " << static_cast<const void*>(attrib_list) << ")");
+ EGLContext result =
+ egl_api_->eglCreateContextFn(dpy, config, share_context, attrib_list);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLImageKHR DebugEGLApi::eglCreateImageKHRFn(EGLDisplay dpy,
+ EGLContext ctx,
+ EGLenum target,
+ EGLClientBuffer buffer,
+ const EGLint* attrib_list) {
+ GL_SERVICE_LOG("eglCreateImageKHR"
+ << "(" << dpy << ", " << ctx << ", " << target << ", "
+ << buffer << ", " << static_cast<const void*>(attrib_list)
+ << ")");
+ EGLImageKHR result =
+ egl_api_->eglCreateImageKHRFn(dpy, ctx, target, buffer, attrib_list);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLSurface DebugEGLApi::eglCreatePbufferFromClientBufferFn(
+ EGLDisplay dpy,
+ EGLenum buftype,
+ void* buffer,
+ EGLConfig config,
+ const EGLint* attrib_list) {
+ GL_SERVICE_LOG("eglCreatePbufferFromClientBuffer"
+ << "(" << dpy << ", " << buftype << ", "
+ << static_cast<const void*>(buffer) << ", " << config << ", "
+ << static_cast<const void*>(attrib_list) << ")");
+ EGLSurface result = egl_api_->eglCreatePbufferFromClientBufferFn(
+ dpy, buftype, buffer, config, attrib_list);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLSurface DebugEGLApi::eglCreatePbufferSurfaceFn(EGLDisplay dpy,
+ EGLConfig config,
+ const EGLint* attrib_list) {
+ GL_SERVICE_LOG("eglCreatePbufferSurface"
+ << "(" << dpy << ", " << config << ", "
+ << static_cast<const void*>(attrib_list) << ")");
+ EGLSurface result =
+ egl_api_->eglCreatePbufferSurfaceFn(dpy, config, attrib_list);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLSurface DebugEGLApi::eglCreatePixmapSurfaceFn(EGLDisplay dpy,
+ EGLConfig config,
+ EGLNativePixmapType pixmap,
+ const EGLint* attrib_list) {
+ GL_SERVICE_LOG("eglCreatePixmapSurface"
+ << "(" << dpy << ", " << config << ", " << pixmap << ", "
+ << static_cast<const void*>(attrib_list) << ")");
+ EGLSurface result =
+ egl_api_->eglCreatePixmapSurfaceFn(dpy, config, pixmap, attrib_list);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLStreamKHR DebugEGLApi::eglCreateStreamKHRFn(EGLDisplay dpy,
+ const EGLint* attrib_list) {
+ GL_SERVICE_LOG("eglCreateStreamKHR"
+ << "(" << dpy << ", " << static_cast<const void*>(attrib_list)
+ << ")");
+ EGLStreamKHR result = egl_api_->eglCreateStreamKHRFn(dpy, attrib_list);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLBoolean DebugEGLApi::eglCreateStreamProducerD3DTextureNV12ANGLEFn(
+ EGLDisplay dpy,
+ EGLStreamKHR stream,
+ EGLAttrib* attrib_list) {
+ GL_SERVICE_LOG("eglCreateStreamProducerD3DTextureNV12ANGLE"
+ << "(" << dpy << ", " << stream << ", "
+ << static_cast<const void*>(attrib_list) << ")");
+ EGLBoolean result = egl_api_->eglCreateStreamProducerD3DTextureNV12ANGLEFn(
+ dpy, stream, attrib_list);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLSyncKHR DebugEGLApi::eglCreateSyncKHRFn(EGLDisplay dpy,
+ EGLenum type,
+ const EGLint* attrib_list) {
+ GL_SERVICE_LOG("eglCreateSyncKHR"
+ << "(" << dpy << ", " << type << ", "
+ << static_cast<const void*>(attrib_list) << ")");
+ EGLSyncKHR result = egl_api_->eglCreateSyncKHRFn(dpy, type, attrib_list);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLSurface DebugEGLApi::eglCreateWindowSurfaceFn(EGLDisplay dpy,
+ EGLConfig config,
+ EGLNativeWindowType win,
+ const EGLint* attrib_list) {
+ GL_SERVICE_LOG("eglCreateWindowSurface"
+ << "(" << dpy << ", " << config << ", " << win << ", "
+ << static_cast<const void*>(attrib_list) << ")");
+ EGLSurface result =
+ egl_api_->eglCreateWindowSurfaceFn(dpy, config, win, attrib_list);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLBoolean DebugEGLApi::eglDestroyContextFn(EGLDisplay dpy, EGLContext ctx) {
+ GL_SERVICE_LOG("eglDestroyContext"
+ << "(" << dpy << ", " << ctx << ")");
+ EGLBoolean result = egl_api_->eglDestroyContextFn(dpy, ctx);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLBoolean DebugEGLApi::eglDestroyImageKHRFn(EGLDisplay dpy,
+ EGLImageKHR image) {
+ GL_SERVICE_LOG("eglDestroyImageKHR"
+ << "(" << dpy << ", " << image << ")");
+ EGLBoolean result = egl_api_->eglDestroyImageKHRFn(dpy, image);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLBoolean DebugEGLApi::eglDestroyStreamKHRFn(EGLDisplay dpy,
+ EGLStreamKHR stream) {
+ GL_SERVICE_LOG("eglDestroyStreamKHR"
+ << "(" << dpy << ", " << stream << ")");
+ EGLBoolean result = egl_api_->eglDestroyStreamKHRFn(dpy, stream);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLBoolean DebugEGLApi::eglDestroySurfaceFn(EGLDisplay dpy,
+ EGLSurface surface) {
+ GL_SERVICE_LOG("eglDestroySurface"
+ << "(" << dpy << ", " << surface << ")");
+ EGLBoolean result = egl_api_->eglDestroySurfaceFn(dpy, surface);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLBoolean DebugEGLApi::eglDestroySyncKHRFn(EGLDisplay dpy, EGLSyncKHR sync) {
+ GL_SERVICE_LOG("eglDestroySyncKHR"
+ << "(" << dpy << ", " << sync << ")");
+ EGLBoolean result = egl_api_->eglDestroySyncKHRFn(dpy, sync);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLBoolean DebugEGLApi::eglGetConfigAttribFn(EGLDisplay dpy,
+ EGLConfig config,
+ EGLint attribute,
+ EGLint* value) {
+ GL_SERVICE_LOG("eglGetConfigAttrib"
+ << "(" << dpy << ", " << config << ", " << attribute << ", "
+ << static_cast<const void*>(value) << ")");
+ EGLBoolean result =
+ egl_api_->eglGetConfigAttribFn(dpy, config, attribute, value);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLBoolean DebugEGLApi::eglGetConfigsFn(EGLDisplay dpy,
+ EGLConfig* configs,
+ EGLint config_size,
+ EGLint* num_config) {
+ GL_SERVICE_LOG("eglGetConfigs"
+ << "(" << dpy << ", " << static_cast<const void*>(configs)
+ << ", " << config_size << ", "
+ << static_cast<const void*>(num_config) << ")");
+ EGLBoolean result =
+ egl_api_->eglGetConfigsFn(dpy, configs, config_size, num_config);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLContext DebugEGLApi::eglGetCurrentContextFn(void) {
+ GL_SERVICE_LOG("eglGetCurrentContext"
+ << "("
+ << ")");
+ EGLContext result = egl_api_->eglGetCurrentContextFn();
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLDisplay DebugEGLApi::eglGetCurrentDisplayFn(void) {
+ GL_SERVICE_LOG("eglGetCurrentDisplay"
+ << "("
+ << ")");
+ EGLDisplay result = egl_api_->eglGetCurrentDisplayFn();
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLSurface DebugEGLApi::eglGetCurrentSurfaceFn(EGLint readdraw) {
+ GL_SERVICE_LOG("eglGetCurrentSurface"
+ << "(" << readdraw << ")");
+ EGLSurface result = egl_api_->eglGetCurrentSurfaceFn(readdraw);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLDisplay DebugEGLApi::eglGetDisplayFn(EGLNativeDisplayType display_id) {
+ GL_SERVICE_LOG("eglGetDisplay"
+ << "(" << display_id << ")");
+ EGLDisplay result = egl_api_->eglGetDisplayFn(display_id);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLint DebugEGLApi::eglGetErrorFn(void) {
+ GL_SERVICE_LOG("eglGetError"
+ << "("
+ << ")");
+ EGLint result = egl_api_->eglGetErrorFn();
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLDisplay DebugEGLApi::eglGetPlatformDisplayEXTFn(EGLenum platform,
+ void* native_display,
+ const EGLint* attrib_list) {
+ GL_SERVICE_LOG("eglGetPlatformDisplayEXT"
+ << "(" << platform << ", "
+ << static_cast<const void*>(native_display) << ", "
+ << static_cast<const void*>(attrib_list) << ")");
+ EGLDisplay result = egl_api_->eglGetPlatformDisplayEXTFn(
+ platform, native_display, attrib_list);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+__eglMustCastToProperFunctionPointerType DebugEGLApi::eglGetProcAddressFn(
+ const char* procname) {
+ GL_SERVICE_LOG("eglGetProcAddress"
+ << "(" << procname << ")");
+ __eglMustCastToProperFunctionPointerType result =
+ egl_api_->eglGetProcAddressFn(procname);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLBoolean DebugEGLApi::eglGetSyncAttribKHRFn(EGLDisplay dpy,
+ EGLSyncKHR sync,
+ EGLint attribute,
+ EGLint* value) {
+ GL_SERVICE_LOG("eglGetSyncAttribKHR"
+ << "(" << dpy << ", " << sync << ", " << attribute << ", "
+ << static_cast<const void*>(value) << ")");
+ EGLBoolean result =
+ egl_api_->eglGetSyncAttribKHRFn(dpy, sync, attribute, value);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLBoolean DebugEGLApi::eglGetSyncValuesCHROMIUMFn(EGLDisplay dpy,
+ EGLSurface surface,
+ EGLuint64CHROMIUM* ust,
+ EGLuint64CHROMIUM* msc,
+ EGLuint64CHROMIUM* sbc) {
+ GL_SERVICE_LOG("eglGetSyncValuesCHROMIUM"
+ << "(" << dpy << ", " << surface << ", "
+ << static_cast<const void*>(ust) << ", "
+ << static_cast<const void*>(msc) << ", "
+ << static_cast<const void*>(sbc) << ")");
+ EGLBoolean result =
+ egl_api_->eglGetSyncValuesCHROMIUMFn(dpy, surface, ust, msc, sbc);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLBoolean DebugEGLApi::eglImageFlushExternalEXTFn(
+ EGLDisplay dpy,
+ EGLImageKHR image,
+ const EGLAttrib* attrib_list) {
+ GL_SERVICE_LOG("eglImageFlushExternalEXT"
+ << "(" << dpy << ", " << image << ", "
+ << static_cast<const void*>(attrib_list) << ")");
+ EGLBoolean result =
+ egl_api_->eglImageFlushExternalEXTFn(dpy, image, attrib_list);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLBoolean DebugEGLApi::eglInitializeFn(EGLDisplay dpy,
+ EGLint* major,
+ EGLint* minor) {
+ GL_SERVICE_LOG("eglInitialize"
+ << "(" << dpy << ", " << static_cast<const void*>(major)
+ << ", " << static_cast<const void*>(minor) << ")");
+ EGLBoolean result = egl_api_->eglInitializeFn(dpy, major, minor);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLBoolean DebugEGLApi::eglMakeCurrentFn(EGLDisplay dpy,
+ EGLSurface draw,
+ EGLSurface read,
+ EGLContext ctx) {
+ GL_SERVICE_LOG("eglMakeCurrent"
+ << "(" << dpy << ", " << draw << ", " << read << ", " << ctx
+ << ")");
+ EGLBoolean result = egl_api_->eglMakeCurrentFn(dpy, draw, read, ctx);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLBoolean DebugEGLApi::eglPostSubBufferNVFn(EGLDisplay dpy,
+ EGLSurface surface,
+ EGLint x,
+ EGLint y,
+ EGLint width,
+ EGLint height) {
+ GL_SERVICE_LOG("eglPostSubBufferNV"
+ << "(" << dpy << ", " << surface << ", " << x << ", " << y
+ << ", " << width << ", " << height << ")");
+ EGLBoolean result =
+ egl_api_->eglPostSubBufferNVFn(dpy, surface, x, y, width, height);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLenum DebugEGLApi::eglQueryAPIFn(void) {
+ GL_SERVICE_LOG("eglQueryAPI"
+ << "("
+ << ")");
+ EGLenum result = egl_api_->eglQueryAPIFn();
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLBoolean DebugEGLApi::eglQueryContextFn(EGLDisplay dpy,
+ EGLContext ctx,
+ EGLint attribute,
+ EGLint* value) {
+ GL_SERVICE_LOG("eglQueryContext"
+ << "(" << dpy << ", " << ctx << ", " << attribute << ", "
+ << static_cast<const void*>(value) << ")");
+ EGLBoolean result = egl_api_->eglQueryContextFn(dpy, ctx, attribute, value);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLBoolean DebugEGLApi::eglQueryStreamKHRFn(EGLDisplay dpy,
+ EGLStreamKHR stream,
+ EGLenum attribute,
+ EGLint* value) {
+ GL_SERVICE_LOG("eglQueryStreamKHR"
+ << "(" << dpy << ", " << stream << ", " << attribute << ", "
+ << static_cast<const void*>(value) << ")");
+ EGLBoolean result =
+ egl_api_->eglQueryStreamKHRFn(dpy, stream, attribute, value);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLBoolean DebugEGLApi::eglQueryStreamu64KHRFn(EGLDisplay dpy,
+ EGLStreamKHR stream,
+ EGLenum attribute,
+ EGLuint64KHR* value) {
+ GL_SERVICE_LOG("eglQueryStreamu64KHR"
+ << "(" << dpy << ", " << stream << ", " << attribute << ", "
+ << static_cast<const void*>(value) << ")");
+ EGLBoolean result =
+ egl_api_->eglQueryStreamu64KHRFn(dpy, stream, attribute, value);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+const char* DebugEGLApi::eglQueryStringFn(EGLDisplay dpy, EGLint name) {
+ GL_SERVICE_LOG("eglQueryString"
+ << "(" << dpy << ", " << name << ")");
+ const char* result = egl_api_->eglQueryStringFn(dpy, name);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLBoolean DebugEGLApi::eglQuerySurfaceFn(EGLDisplay dpy,
+ EGLSurface surface,
+ EGLint attribute,
+ EGLint* value) {
+ GL_SERVICE_LOG("eglQuerySurface"
+ << "(" << dpy << ", " << surface << ", " << attribute << ", "
+ << static_cast<const void*>(value) << ")");
+ EGLBoolean result =
+ egl_api_->eglQuerySurfaceFn(dpy, surface, attribute, value);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLBoolean DebugEGLApi::eglQuerySurfacePointerANGLEFn(EGLDisplay dpy,
+ EGLSurface surface,
+ EGLint attribute,
+ void** value) {
+ GL_SERVICE_LOG("eglQuerySurfacePointerANGLE"
+ << "(" << dpy << ", " << surface << ", " << attribute << ", "
+ << value << ")");
+ EGLBoolean result =
+ egl_api_->eglQuerySurfacePointerANGLEFn(dpy, surface, attribute, value);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLBoolean DebugEGLApi::eglReleaseTexImageFn(EGLDisplay dpy,
+ EGLSurface surface,
+ EGLint buffer) {
+ GL_SERVICE_LOG("eglReleaseTexImage"
+ << "(" << dpy << ", " << surface << ", " << buffer << ")");
+ EGLBoolean result = egl_api_->eglReleaseTexImageFn(dpy, surface, buffer);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLBoolean DebugEGLApi::eglReleaseThreadFn(void) {
+ GL_SERVICE_LOG("eglReleaseThread"
+ << "("
+ << ")");
+ EGLBoolean result = egl_api_->eglReleaseThreadFn();
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLBoolean DebugEGLApi::eglStreamAttribKHRFn(EGLDisplay dpy,
+ EGLStreamKHR stream,
+ EGLenum attribute,
+ EGLint value) {
+ GL_SERVICE_LOG("eglStreamAttribKHR"
+ << "(" << dpy << ", " << stream << ", " << attribute << ", "
+ << value << ")");
+ EGLBoolean result =
+ egl_api_->eglStreamAttribKHRFn(dpy, stream, attribute, value);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLBoolean DebugEGLApi::eglStreamConsumerAcquireKHRFn(EGLDisplay dpy,
+ EGLStreamKHR stream) {
+ GL_SERVICE_LOG("eglStreamConsumerAcquireKHR"
+ << "(" << dpy << ", " << stream << ")");
+ EGLBoolean result = egl_api_->eglStreamConsumerAcquireKHRFn(dpy, stream);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLBoolean DebugEGLApi::eglStreamConsumerGLTextureExternalAttribsNVFn(
+ EGLDisplay dpy,
+ EGLStreamKHR stream,
+ EGLAttrib* attrib_list) {
+ GL_SERVICE_LOG("eglStreamConsumerGLTextureExternalAttribsNV"
+ << "(" << dpy << ", " << stream << ", "
+ << static_cast<const void*>(attrib_list) << ")");
+ EGLBoolean result = egl_api_->eglStreamConsumerGLTextureExternalAttribsNVFn(
+ dpy, stream, attrib_list);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLBoolean DebugEGLApi::eglStreamConsumerGLTextureExternalKHRFn(
+ EGLDisplay dpy,
+ EGLStreamKHR stream) {
+ GL_SERVICE_LOG("eglStreamConsumerGLTextureExternalKHR"
+ << "(" << dpy << ", " << stream << ")");
+ EGLBoolean result =
+ egl_api_->eglStreamConsumerGLTextureExternalKHRFn(dpy, stream);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLBoolean DebugEGLApi::eglStreamConsumerReleaseKHRFn(EGLDisplay dpy,
+ EGLStreamKHR stream) {
+ GL_SERVICE_LOG("eglStreamConsumerReleaseKHR"
+ << "(" << dpy << ", " << stream << ")");
+ EGLBoolean result = egl_api_->eglStreamConsumerReleaseKHRFn(dpy, stream);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLBoolean DebugEGLApi::eglStreamPostD3DTextureNV12ANGLEFn(
+ EGLDisplay dpy,
+ EGLStreamKHR stream,
+ void* texture,
+ const EGLAttrib* attrib_list) {
+ GL_SERVICE_LOG("eglStreamPostD3DTextureNV12ANGLE"
+ << "(" << dpy << ", " << stream << ", "
+ << static_cast<const void*>(texture) << ", "
+ << static_cast<const void*>(attrib_list) << ")");
+ EGLBoolean result = egl_api_->eglStreamPostD3DTextureNV12ANGLEFn(
+ dpy, stream, texture, attrib_list);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLBoolean DebugEGLApi::eglSurfaceAttribFn(EGLDisplay dpy,
+ EGLSurface surface,
+ EGLint attribute,
+ EGLint value) {
+ GL_SERVICE_LOG("eglSurfaceAttrib"
+ << "(" << dpy << ", " << surface << ", " << attribute << ", "
+ << value << ")");
+ EGLBoolean result =
+ egl_api_->eglSurfaceAttribFn(dpy, surface, attribute, value);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLBoolean DebugEGLApi::eglSwapBuffersFn(EGLDisplay dpy, EGLSurface surface) {
+ GL_SERVICE_LOG("eglSwapBuffers"
+ << "(" << dpy << ", " << surface << ")");
+ EGLBoolean result = egl_api_->eglSwapBuffersFn(dpy, surface);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLBoolean DebugEGLApi::eglSwapBuffersWithDamageKHRFn(EGLDisplay dpy,
+ EGLSurface surface,
+ EGLint* rects,
+ EGLint n_rects) {
+ GL_SERVICE_LOG("eglSwapBuffersWithDamageKHR"
+ << "(" << dpy << ", " << surface << ", "
+ << static_cast<const void*>(rects) << ", " << n_rects << ")");
+ EGLBoolean result =
+ egl_api_->eglSwapBuffersWithDamageKHRFn(dpy, surface, rects, n_rects);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLBoolean DebugEGLApi::eglSwapIntervalFn(EGLDisplay dpy, EGLint interval) {
+ GL_SERVICE_LOG("eglSwapInterval"
+ << "(" << dpy << ", " << interval << ")");
+ EGLBoolean result = egl_api_->eglSwapIntervalFn(dpy, interval);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLBoolean DebugEGLApi::eglTerminateFn(EGLDisplay dpy) {
+ GL_SERVICE_LOG("eglTerminate"
+ << "(" << dpy << ")");
+ EGLBoolean result = egl_api_->eglTerminateFn(dpy);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLBoolean DebugEGLApi::eglWaitClientFn(void) {
+ GL_SERVICE_LOG("eglWaitClient"
+ << "("
+ << ")");
+ EGLBoolean result = egl_api_->eglWaitClientFn();
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLBoolean DebugEGLApi::eglWaitGLFn(void) {
+ GL_SERVICE_LOG("eglWaitGL"
+ << "("
+ << ")");
+ EGLBoolean result = egl_api_->eglWaitGLFn();
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLBoolean DebugEGLApi::eglWaitNativeFn(EGLint engine) {
+ GL_SERVICE_LOG("eglWaitNative"
+ << "(" << engine << ")");
+ EGLBoolean result = egl_api_->eglWaitNativeFn(engine);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+EGLint DebugEGLApi::eglWaitSyncKHRFn(EGLDisplay dpy,
+ EGLSyncKHR sync,
+ EGLint flags) {
+ GL_SERVICE_LOG("eglWaitSyncKHR"
+ << "(" << dpy << ", " << sync << ", " << flags << ")");
+ EGLint result = egl_api_->eglWaitSyncKHRFn(dpy, sync, flags);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
} // namespace gl
diff --git a/chromium/ui/gl/gl_bindings_autogen_gl.cc b/chromium/ui/gl/gl_bindings_autogen_gl.cc
index 55f17a8c713..5257bd5dc32 100644
--- a/chromium/ui/gl/gl_bindings_autogen_gl.cc
+++ b/chromium/ui/gl/gl_bindings_autogen_gl.cc
@@ -20,9 +20,6 @@
namespace gl {
-static bool g_debugBindingsInitialized;
-DriverGL g_driver_gl;
-
void DriverGL::InitializeStaticBindings() {
fn.glActiveTextureFn = reinterpret_cast<glActiveTextureProc>(
GetGLProcAddress("glActiveTexture"));
@@ -541,11 +538,10 @@ void DriverGL::InitializeStaticBindings() {
fn.glWaitSyncFn = 0;
}
-void DriverGL::InitializeDynamicBindings(GLContext* context) {
- DCHECK(context && context->IsCurrent(NULL));
- const GLVersionInfo* ver = context->GetVersionInfo();
- ALLOW_UNUSED_LOCAL(ver);
- std::string extensions = context->GetExtensions() + " ";
+void DriverGL::InitializeDynamicBindings(
+ const GLVersionInfo* ver,
+ const std::string& context_extensions) {
+ std::string extensions = context_extensions + " ";
ALLOW_UNUSED_LOCAL(extensions);
ext.b_GL_ANGLE_framebuffer_blit =
@@ -675,14 +671,12 @@ 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"));
}
- debug_fn.glBeginQueryFn = 0;
if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
fn.glBeginQueryFn =
reinterpret_cast<glBeginQueryProc>(GetGLProcAddress("glBeginQuery"));
@@ -695,7 +689,6 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
reinterpret_cast<glBeginQueryProc>(GetGLProcAddress("glBeginQueryEXT"));
}
- debug_fn.glBeginTransformFeedbackFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
fn.glBeginTransformFeedbackFn =
reinterpret_cast<glBeginTransformFeedbackProc>(
@@ -706,7 +699,6 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glBeginTransformFeedbackEXT"));
}
- debug_fn.glBindBufferBaseFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
fn.glBindBufferBaseFn = reinterpret_cast<glBindBufferBaseProc>(
GetGLProcAddress("glBindBufferBase"));
@@ -715,7 +707,6 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glBindBufferBaseEXT"));
}
- debug_fn.glBindBufferRangeFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
fn.glBindBufferRangeFn = reinterpret_cast<glBindBufferRangeProc>(
GetGLProcAddress("glBindBufferRange"));
@@ -724,7 +715,6 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glBindBufferRangeEXT"));
}
- debug_fn.glBindFragDataLocationFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ext.b_GL_ARB_blend_func_extended) {
fn.glBindFragDataLocationFn = reinterpret_cast<glBindFragDataLocationProc>(
GetGLProcAddress("glBindFragDataLocation"));
@@ -733,7 +723,6 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glBindFragDataLocationEXT"));
}
- debug_fn.glBindFragDataLocationIndexedFn = 0;
if (ver->IsAtLeastGL(3u, 3u) || ext.b_GL_ARB_blend_func_extended) {
fn.glBindFragDataLocationIndexedFn =
reinterpret_cast<glBindFragDataLocationIndexedProc>(
@@ -744,7 +733,6 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glBindFragDataLocationIndexedEXT"));
}
- debug_fn.glBindFramebufferEXTFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->is_es) {
fn.glBindFramebufferEXTFn = reinterpret_cast<glBindFramebufferEXTProc>(
GetGLProcAddress("glBindFramebuffer"));
@@ -753,7 +741,6 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glBindFramebufferEXT"));
}
- debug_fn.glBindImageTextureEXTFn = 0;
if (ver->IsAtLeastGL(4u, 2u) || ver->IsAtLeastGLES(3u, 1u) ||
ext.b_GL_ARB_shader_image_load_store) {
fn.glBindImageTextureEXTFn = reinterpret_cast<glBindImageTextureEXTProc>(
@@ -763,7 +750,6 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glBindImageTextureEXT"));
}
- debug_fn.glBindRenderbufferEXTFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->is_es) {
fn.glBindRenderbufferEXTFn = reinterpret_cast<glBindRenderbufferEXTProc>(
GetGLProcAddress("glBindRenderbuffer"));
@@ -772,14 +758,12 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glBindRenderbufferEXT"));
}
- debug_fn.glBindSamplerFn = 0;
if (ver->IsAtLeastGL(3u, 3u) || ver->IsAtLeastGLES(3u, 0u) ||
ext.b_GL_ARB_sampler_objects) {
fn.glBindSamplerFn =
reinterpret_cast<glBindSamplerProc>(GetGLProcAddress("glBindSampler"));
}
- debug_fn.glBindTransformFeedbackFn = 0;
if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(4u, 0u) ||
ext.b_GL_ARB_transform_feedback2) {
fn.glBindTransformFeedbackFn =
@@ -787,14 +771,12 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glBindTransformFeedback"));
}
- debug_fn.glBindUniformLocationCHROMIUMFn = 0;
if (ext.b_GL_CHROMIUM_bind_uniform_location) {
fn.glBindUniformLocationCHROMIUMFn =
reinterpret_cast<glBindUniformLocationCHROMIUMProc>(
GetGLProcAddress("glBindUniformLocationCHROMIUM"));
}
- debug_fn.glBindVertexArrayOESFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u) ||
ext.b_GL_ARB_vertex_array_object) {
fn.glBindVertexArrayOESFn = reinterpret_cast<glBindVertexArrayOESProc>(
@@ -807,7 +789,6 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glBindVertexArrayAPPLE"));
}
- debug_fn.glBlendBarrierKHRFn = 0;
if (ext.b_GL_NV_blend_equation_advanced) {
fn.glBlendBarrierKHRFn = reinterpret_cast<glBlendBarrierKHRProc>(
GetGLProcAddress("glBlendBarrierNV"));
@@ -816,13 +797,11 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glBlendBarrierKHR"));
}
- debug_fn.glBlitFramebufferFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
fn.glBlitFramebufferFn = reinterpret_cast<glBlitFramebufferProc>(
GetGLProcAddress("glBlitFramebuffer"));
}
- debug_fn.glBlitFramebufferANGLEFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
fn.glBlitFramebufferANGLEFn = reinterpret_cast<glBlitFramebufferANGLEProc>(
GetGLProcAddress("glBlitFramebuffer"));
@@ -831,7 +810,6 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glBlitFramebufferANGLE"));
}
- debug_fn.glBlitFramebufferEXTFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
fn.glBlitFramebufferEXTFn = reinterpret_cast<glBlitFramebufferEXTProc>(
GetGLProcAddress("glBlitFramebuffer"));
@@ -840,7 +818,6 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glBlitFramebufferEXT"));
}
- debug_fn.glCheckFramebufferStatusEXTFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->is_es) {
fn.glCheckFramebufferStatusEXTFn =
reinterpret_cast<glCheckFramebufferStatusEXTProc>(
@@ -851,44 +828,37 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glCheckFramebufferStatusEXT"));
}
- debug_fn.glClearBufferfiFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
fn.glClearBufferfiFn = reinterpret_cast<glClearBufferfiProc>(
GetGLProcAddress("glClearBufferfi"));
}
- debug_fn.glClearBufferfvFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
fn.glClearBufferfvFn = reinterpret_cast<glClearBufferfvProc>(
GetGLProcAddress("glClearBufferfv"));
}
- debug_fn.glClearBufferivFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
fn.glClearBufferivFn = reinterpret_cast<glClearBufferivProc>(
GetGLProcAddress("glClearBufferiv"));
}
- debug_fn.glClearBufferuivFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
fn.glClearBufferuivFn = reinterpret_cast<glClearBufferuivProc>(
GetGLProcAddress("glClearBufferuiv"));
}
- debug_fn.glClearDepthfFn = 0;
if (ver->IsAtLeastGL(4u, 1u) || ver->is_es) {
fn.glClearDepthfFn =
reinterpret_cast<glClearDepthfProc>(GetGLProcAddress("glClearDepthf"));
}
- debug_fn.glClientWaitSyncFn = 0;
if (ver->IsAtLeastGL(3u, 2u) || ver->IsAtLeastGLES(3u, 0u) ||
ext.b_GL_ARB_sync) {
fn.glClientWaitSyncFn = reinterpret_cast<glClientWaitSyncProc>(
GetGLProcAddress("glClientWaitSync"));
}
- debug_fn.glCompressedCopyTextureCHROMIUMFn = 0;
if (ext.b_GL_CHROMIUM_copy_compressed_texture ||
ext.b_GL_CHROMIUM_compressed_copy_texture) {
fn.glCompressedCopyTextureCHROMIUMFn =
@@ -896,77 +866,65 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glCompressedCopyTextureCHROMIUM"));
}
- debug_fn.glCompressedTexImage3DFn = 0;
if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
fn.glCompressedTexImage3DFn = reinterpret_cast<glCompressedTexImage3DProc>(
GetGLProcAddress("glCompressedTexImage3D"));
}
- debug_fn.glCompressedTexSubImage3DFn = 0;
if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
fn.glCompressedTexSubImage3DFn =
reinterpret_cast<glCompressedTexSubImage3DProc>(
GetGLProcAddress("glCompressedTexSubImage3D"));
}
- debug_fn.glCopyBufferSubDataFn = 0;
if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(3u, 1u)) {
fn.glCopyBufferSubDataFn = reinterpret_cast<glCopyBufferSubDataProc>(
GetGLProcAddress("glCopyBufferSubData"));
}
- debug_fn.glCopySubTextureCHROMIUMFn = 0;
if (ext.b_GL_CHROMIUM_copy_texture) {
fn.glCopySubTextureCHROMIUMFn =
reinterpret_cast<glCopySubTextureCHROMIUMProc>(
GetGLProcAddress("glCopySubTextureCHROMIUM"));
}
- debug_fn.glCopyTexSubImage3DFn = 0;
if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
fn.glCopyTexSubImage3DFn = reinterpret_cast<glCopyTexSubImage3DProc>(
GetGLProcAddress("glCopyTexSubImage3D"));
}
- debug_fn.glCopyTextureCHROMIUMFn = 0;
if (ext.b_GL_CHROMIUM_copy_texture) {
fn.glCopyTextureCHROMIUMFn = reinterpret_cast<glCopyTextureCHROMIUMProc>(
GetGLProcAddress("glCopyTextureCHROMIUM"));
}
- debug_fn.glCoverageModulationNVFn = 0;
if (ext.b_GL_NV_framebuffer_mixed_samples) {
fn.glCoverageModulationNVFn = reinterpret_cast<glCoverageModulationNVProc>(
GetGLProcAddress("glCoverageModulationNV"));
}
- debug_fn.glCoverFillPathInstancedNVFn = 0;
if (ext.b_GL_NV_path_rendering) {
fn.glCoverFillPathInstancedNVFn =
reinterpret_cast<glCoverFillPathInstancedNVProc>(
GetGLProcAddress("glCoverFillPathInstancedNV"));
}
- debug_fn.glCoverFillPathNVFn = 0;
if (ext.b_GL_NV_path_rendering) {
fn.glCoverFillPathNVFn = reinterpret_cast<glCoverFillPathNVProc>(
GetGLProcAddress("glCoverFillPathNV"));
}
- debug_fn.glCoverStrokePathInstancedNVFn = 0;
if (ext.b_GL_NV_path_rendering) {
fn.glCoverStrokePathInstancedNVFn =
reinterpret_cast<glCoverStrokePathInstancedNVProc>(
GetGLProcAddress("glCoverStrokePathInstancedNV"));
}
- debug_fn.glCoverStrokePathNVFn = 0;
if (ext.b_GL_NV_path_rendering) {
fn.glCoverStrokePathNVFn = reinterpret_cast<glCoverStrokePathNVProc>(
GetGLProcAddress("glCoverStrokePathNV"));
}
- debug_fn.glDebugMessageCallbackFn = 0;
if (ver->IsAtLeastGL(4u, 3u) || ver->IsAtLeastGLES(3u, 2u)) {
fn.glDebugMessageCallbackFn = reinterpret_cast<glDebugMessageCallbackProc>(
GetGLProcAddress("glDebugMessageCallback"));
@@ -975,7 +933,6 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glDebugMessageCallbackKHR"));
}
- debug_fn.glDebugMessageControlFn = 0;
if (ver->IsAtLeastGL(4u, 3u) || ver->IsAtLeastGLES(3u, 2u)) {
fn.glDebugMessageControlFn = reinterpret_cast<glDebugMessageControlProc>(
GetGLProcAddress("glDebugMessageControl"));
@@ -984,7 +941,6 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glDebugMessageControlKHR"));
}
- debug_fn.glDebugMessageInsertFn = 0;
if (ver->IsAtLeastGL(4u, 3u) || ver->IsAtLeastGLES(3u, 2u)) {
fn.glDebugMessageInsertFn = reinterpret_cast<glDebugMessageInsertProc>(
GetGLProcAddress("glDebugMessageInsert"));
@@ -993,19 +949,16 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glDebugMessageInsertKHR"));
}
- debug_fn.glDeleteFencesAPPLEFn = 0;
if (ext.b_GL_APPLE_fence) {
fn.glDeleteFencesAPPLEFn = reinterpret_cast<glDeleteFencesAPPLEProc>(
GetGLProcAddress("glDeleteFencesAPPLE"));
}
- debug_fn.glDeleteFencesNVFn = 0;
if (ext.b_GL_NV_fence) {
fn.glDeleteFencesNVFn = reinterpret_cast<glDeleteFencesNVProc>(
GetGLProcAddress("glDeleteFencesNV"));
}
- debug_fn.glDeleteFramebuffersEXTFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->is_es) {
fn.glDeleteFramebuffersEXTFn =
reinterpret_cast<glDeleteFramebuffersEXTProc>(
@@ -1016,13 +969,11 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glDeleteFramebuffersEXT"));
}
- debug_fn.glDeletePathsNVFn = 0;
if (ext.b_GL_NV_path_rendering) {
fn.glDeletePathsNVFn = reinterpret_cast<glDeletePathsNVProc>(
GetGLProcAddress("glDeletePathsNV"));
}
- debug_fn.glDeleteQueriesFn = 0;
if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
fn.glDeleteQueriesFn = reinterpret_cast<glDeleteQueriesProc>(
GetGLProcAddress("glDeleteQueries"));
@@ -1035,7 +986,6 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glDeleteQueriesEXT"));
}
- debug_fn.glDeleteRenderbuffersEXTFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->is_es) {
fn.glDeleteRenderbuffersEXTFn =
reinterpret_cast<glDeleteRenderbuffersEXTProc>(
@@ -1046,21 +996,18 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glDeleteRenderbuffersEXT"));
}
- debug_fn.glDeleteSamplersFn = 0;
if (ver->IsAtLeastGL(3u, 3u) || ver->IsAtLeastGLES(3u, 0u) ||
ext.b_GL_ARB_sampler_objects) {
fn.glDeleteSamplersFn = reinterpret_cast<glDeleteSamplersProc>(
GetGLProcAddress("glDeleteSamplers"));
}
- debug_fn.glDeleteSyncFn = 0;
if (ver->IsAtLeastGL(3u, 2u) || ver->IsAtLeastGLES(3u, 0u) ||
ext.b_GL_ARB_sync) {
fn.glDeleteSyncFn =
reinterpret_cast<glDeleteSyncProc>(GetGLProcAddress("glDeleteSync"));
}
- debug_fn.glDeleteTransformFeedbacksFn = 0;
if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(4u, 0u) ||
ext.b_GL_ARB_transform_feedback2) {
fn.glDeleteTransformFeedbacksFn =
@@ -1068,7 +1015,6 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glDeleteTransformFeedbacks"));
}
- debug_fn.glDeleteVertexArraysOESFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u) ||
ext.b_GL_ARB_vertex_array_object) {
fn.glDeleteVertexArraysOESFn =
@@ -1084,20 +1030,17 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glDeleteVertexArraysAPPLE"));
}
- debug_fn.glDepthRangefFn = 0;
if (ver->IsAtLeastGL(4u, 1u) || ver->is_es) {
fn.glDepthRangefFn =
reinterpret_cast<glDepthRangefProc>(GetGLProcAddress("glDepthRangef"));
}
- debug_fn.glDiscardFramebufferEXTFn = 0;
if (ext.b_GL_EXT_discard_framebuffer) {
fn.glDiscardFramebufferEXTFn =
reinterpret_cast<glDiscardFramebufferEXTProc>(
GetGLProcAddress("glDiscardFramebufferEXT"));
}
- debug_fn.glDrawArraysInstancedANGLEFn = 0;
if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(3u, 1u)) {
fn.glDrawArraysInstancedANGLEFn =
reinterpret_cast<glDrawArraysInstancedANGLEProc>(
@@ -1112,13 +1055,11 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glDrawArraysInstancedANGLE"));
}
- debug_fn.glDrawBufferFn = 0;
if (!ver->is_es) {
fn.glDrawBufferFn =
reinterpret_cast<glDrawBufferProc>(GetGLProcAddress("glDrawBuffer"));
}
- debug_fn.glDrawBuffersARBFn = 0;
if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
fn.glDrawBuffersARBFn = reinterpret_cast<glDrawBuffersARBProc>(
GetGLProcAddress("glDrawBuffers"));
@@ -1130,7 +1071,6 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glDrawBuffersEXT"));
}
- debug_fn.glDrawElementsInstancedANGLEFn = 0;
if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(3u, 1u)) {
fn.glDrawElementsInstancedANGLEFn =
reinterpret_cast<glDrawElementsInstancedANGLEProc>(
@@ -1145,27 +1085,23 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glDrawElementsInstancedANGLE"));
}
- debug_fn.glDrawRangeElementsFn = 0;
if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
fn.glDrawRangeElementsFn = reinterpret_cast<glDrawRangeElementsProc>(
GetGLProcAddress("glDrawRangeElements"));
}
- debug_fn.glEGLImageTargetRenderbufferStorageOESFn = 0;
if (ext.b_GL_OES_EGL_image) {
fn.glEGLImageTargetRenderbufferStorageOESFn =
reinterpret_cast<glEGLImageTargetRenderbufferStorageOESProc>(
GetGLProcAddress("glEGLImageTargetRenderbufferStorageOES"));
}
- debug_fn.glEGLImageTargetTexture2DOESFn = 0;
if (ext.b_GL_OES_EGL_image) {
fn.glEGLImageTargetTexture2DOESFn =
reinterpret_cast<glEGLImageTargetTexture2DOESProc>(
GetGLProcAddress("glEGLImageTargetTexture2DOES"));
}
- debug_fn.glEndQueryFn = 0;
if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
fn.glEndQueryFn =
reinterpret_cast<glEndQueryProc>(GetGLProcAddress("glEndQuery"));
@@ -1178,7 +1114,6 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
reinterpret_cast<glEndQueryProc>(GetGLProcAddress("glEndQueryEXT"));
}
- debug_fn.glEndTransformFeedbackFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
fn.glEndTransformFeedbackFn = reinterpret_cast<glEndTransformFeedbackProc>(
GetGLProcAddress("glEndTransformFeedback"));
@@ -1187,33 +1122,28 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glEndTransformFeedbackEXT"));
}
- debug_fn.glFenceSyncFn = 0;
if (ver->IsAtLeastGL(3u, 2u) || ver->IsAtLeastGLES(3u, 0u) ||
ext.b_GL_ARB_sync) {
fn.glFenceSyncFn =
reinterpret_cast<glFenceSyncProc>(GetGLProcAddress("glFenceSync"));
}
- debug_fn.glFinishFenceAPPLEFn = 0;
if (ext.b_GL_APPLE_fence) {
fn.glFinishFenceAPPLEFn = reinterpret_cast<glFinishFenceAPPLEProc>(
GetGLProcAddress("glFinishFenceAPPLE"));
}
- debug_fn.glFinishFenceNVFn = 0;
if (ext.b_GL_NV_fence) {
fn.glFinishFenceNVFn = reinterpret_cast<glFinishFenceNVProc>(
GetGLProcAddress("glFinishFenceNV"));
}
- debug_fn.glFlushMappedBufferRangeFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
fn.glFlushMappedBufferRangeFn =
reinterpret_cast<glFlushMappedBufferRangeProc>(
GetGLProcAddress("glFlushMappedBufferRange"));
}
- debug_fn.glFramebufferRenderbufferEXTFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->is_es) {
fn.glFramebufferRenderbufferEXTFn =
reinterpret_cast<glFramebufferRenderbufferEXTProc>(
@@ -1224,7 +1154,6 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glFramebufferRenderbufferEXT"));
}
- debug_fn.glFramebufferTexture2DEXTFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->is_es) {
fn.glFramebufferTexture2DEXTFn =
reinterpret_cast<glFramebufferTexture2DEXTProc>(
@@ -1235,28 +1164,24 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glFramebufferTexture2DEXT"));
}
- debug_fn.glFramebufferTexture2DMultisampleEXTFn = 0;
if (ext.b_GL_EXT_multisampled_render_to_texture) {
fn.glFramebufferTexture2DMultisampleEXTFn =
reinterpret_cast<glFramebufferTexture2DMultisampleEXTProc>(
GetGLProcAddress("glFramebufferTexture2DMultisampleEXT"));
}
- debug_fn.glFramebufferTexture2DMultisampleIMGFn = 0;
if (ext.b_GL_IMG_multisampled_render_to_texture) {
fn.glFramebufferTexture2DMultisampleIMGFn =
reinterpret_cast<glFramebufferTexture2DMultisampleIMGProc>(
GetGLProcAddress("glFramebufferTexture2DMultisampleIMG"));
}
- debug_fn.glFramebufferTextureLayerFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
fn.glFramebufferTextureLayerFn =
reinterpret_cast<glFramebufferTextureLayerProc>(
GetGLProcAddress("glFramebufferTextureLayer"));
}
- debug_fn.glGenerateMipmapEXTFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->is_es) {
fn.glGenerateMipmapEXTFn = reinterpret_cast<glGenerateMipmapEXTProc>(
GetGLProcAddress("glGenerateMipmap"));
@@ -1265,19 +1190,16 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glGenerateMipmapEXT"));
}
- debug_fn.glGenFencesAPPLEFn = 0;
if (ext.b_GL_APPLE_fence) {
fn.glGenFencesAPPLEFn = reinterpret_cast<glGenFencesAPPLEProc>(
GetGLProcAddress("glGenFencesAPPLE"));
}
- debug_fn.glGenFencesNVFn = 0;
if (ext.b_GL_NV_fence) {
fn.glGenFencesNVFn =
reinterpret_cast<glGenFencesNVProc>(GetGLProcAddress("glGenFencesNV"));
}
- debug_fn.glGenFramebuffersEXTFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->is_es) {
fn.glGenFramebuffersEXTFn = reinterpret_cast<glGenFramebuffersEXTProc>(
GetGLProcAddress("glGenFramebuffers"));
@@ -1286,13 +1208,11 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glGenFramebuffersEXT"));
}
- debug_fn.glGenPathsNVFn = 0;
if (ext.b_GL_NV_path_rendering) {
fn.glGenPathsNVFn =
reinterpret_cast<glGenPathsNVProc>(GetGLProcAddress("glGenPathsNV"));
}
- debug_fn.glGenQueriesFn = 0;
if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
fn.glGenQueriesFn =
reinterpret_cast<glGenQueriesProc>(GetGLProcAddress("glGenQueries"));
@@ -1305,7 +1225,6 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
reinterpret_cast<glGenQueriesProc>(GetGLProcAddress("glGenQueriesEXT"));
}
- debug_fn.glGenRenderbuffersEXTFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->is_es) {
fn.glGenRenderbuffersEXTFn = reinterpret_cast<glGenRenderbuffersEXTProc>(
GetGLProcAddress("glGenRenderbuffers"));
@@ -1314,14 +1233,12 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glGenRenderbuffersEXT"));
}
- debug_fn.glGenSamplersFn = 0;
if (ver->IsAtLeastGL(3u, 3u) || ver->IsAtLeastGLES(3u, 0u) ||
ext.b_GL_ARB_sampler_objects) {
fn.glGenSamplersFn =
reinterpret_cast<glGenSamplersProc>(GetGLProcAddress("glGenSamplers"));
}
- debug_fn.glGenTransformFeedbacksFn = 0;
if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(4u, 0u) ||
ext.b_GL_ARB_transform_feedback2) {
fn.glGenTransformFeedbacksFn =
@@ -1329,7 +1246,6 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glGenTransformFeedbacks"));
}
- debug_fn.glGenVertexArraysOESFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u) ||
ext.b_GL_ARB_vertex_array_object) {
fn.glGenVertexArraysOESFn = reinterpret_cast<glGenVertexArraysOESProc>(
@@ -1342,69 +1258,59 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glGenVertexArraysAPPLE"));
}
- debug_fn.glGetActiveUniformBlockivFn = 0;
if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(3u, 1u)) {
fn.glGetActiveUniformBlockivFn =
reinterpret_cast<glGetActiveUniformBlockivProc>(
GetGLProcAddress("glGetActiveUniformBlockiv"));
}
- debug_fn.glGetActiveUniformBlockivRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glGetActiveUniformBlockivRobustANGLEFn =
reinterpret_cast<glGetActiveUniformBlockivRobustANGLEProc>(
GetGLProcAddress("glGetActiveUniformBlockivRobustANGLE"));
}
- debug_fn.glGetActiveUniformBlockNameFn = 0;
if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(3u, 1u)) {
fn.glGetActiveUniformBlockNameFn =
reinterpret_cast<glGetActiveUniformBlockNameProc>(
GetGLProcAddress("glGetActiveUniformBlockName"));
}
- debug_fn.glGetActiveUniformsivFn = 0;
if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(3u, 1u)) {
fn.glGetActiveUniformsivFn = reinterpret_cast<glGetActiveUniformsivProc>(
GetGLProcAddress("glGetActiveUniformsiv"));
}
- debug_fn.glGetBooleani_vRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glGetBooleani_vRobustANGLEFn =
reinterpret_cast<glGetBooleani_vRobustANGLEProc>(
GetGLProcAddress("glGetBooleani_vRobustANGLE"));
}
- debug_fn.glGetBooleanvRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glGetBooleanvRobustANGLEFn =
reinterpret_cast<glGetBooleanvRobustANGLEProc>(
GetGLProcAddress("glGetBooleanvRobustANGLE"));
}
- debug_fn.glGetBufferParameteri64vRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glGetBufferParameteri64vRobustANGLEFn =
reinterpret_cast<glGetBufferParameteri64vRobustANGLEProc>(
GetGLProcAddress("glGetBufferParameteri64vRobustANGLE"));
}
- debug_fn.glGetBufferParameterivRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glGetBufferParameterivRobustANGLEFn =
reinterpret_cast<glGetBufferParameterivRobustANGLEProc>(
GetGLProcAddress("glGetBufferParameterivRobustANGLE"));
}
- debug_fn.glGetBufferPointervRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glGetBufferPointervRobustANGLEFn =
reinterpret_cast<glGetBufferPointervRobustANGLEProc>(
GetGLProcAddress("glGetBufferPointervRobustANGLE"));
}
- debug_fn.glGetDebugMessageLogFn = 0;
if (ver->IsAtLeastGL(4u, 3u) || ver->IsAtLeastGLES(3u, 2u)) {
fn.glGetDebugMessageLogFn = reinterpret_cast<glGetDebugMessageLogProc>(
GetGLProcAddress("glGetDebugMessageLog"));
@@ -1413,19 +1319,16 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glGetDebugMessageLogKHR"));
}
- debug_fn.glGetFenceivNVFn = 0;
if (ext.b_GL_NV_fence) {
fn.glGetFenceivNVFn = reinterpret_cast<glGetFenceivNVProc>(
GetGLProcAddress("glGetFenceivNV"));
}
- debug_fn.glGetFloatvRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glGetFloatvRobustANGLEFn = reinterpret_cast<glGetFloatvRobustANGLEProc>(
GetGLProcAddress("glGetFloatvRobustANGLE"));
}
- debug_fn.glGetFragDataIndexFn = 0;
if (ver->IsAtLeastGL(3u, 3u) || ext.b_GL_ARB_blend_func_extended) {
fn.glGetFragDataIndexFn = reinterpret_cast<glGetFragDataIndexProc>(
GetGLProcAddress("glGetFragDataIndex"));
@@ -1434,13 +1337,11 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glGetFragDataIndexEXT"));
}
- debug_fn.glGetFragDataLocationFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
fn.glGetFragDataLocationFn = reinterpret_cast<glGetFragDataLocationProc>(
GetGLProcAddress("glGetFragDataLocation"));
}
- debug_fn.glGetFramebufferAttachmentParameterivEXTFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->is_es) {
fn.glGetFramebufferAttachmentParameterivEXTFn =
reinterpret_cast<glGetFramebufferAttachmentParameterivEXTProc>(
@@ -1451,7 +1352,6 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glGetFramebufferAttachmentParameterivEXT"));
}
- debug_fn.glGetFramebufferAttachmentParameterivRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glGetFramebufferAttachmentParameterivRobustANGLEFn =
reinterpret_cast<glGetFramebufferAttachmentParameterivRobustANGLEProc>(
@@ -1459,14 +1359,12 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
"glGetFramebufferAttachmentParameterivRobustANGLE"));
}
- debug_fn.glGetFramebufferParameterivRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glGetFramebufferParameterivRobustANGLEFn =
reinterpret_cast<glGetFramebufferParameterivRobustANGLEProc>(
GetGLProcAddress("glGetFramebufferParameterivRobustANGLE"));
}
- debug_fn.glGetGraphicsResetStatusARBFn = 0;
if (ver->IsAtLeastGL(4u, 5u) || ver->IsAtLeastGLES(3u, 2u)) {
fn.glGetGraphicsResetStatusARBFn =
reinterpret_cast<glGetGraphicsResetStatusARBProc>(
@@ -1485,94 +1383,80 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glGetGraphicsResetStatusEXT"));
}
- debug_fn.glGetInteger64i_vFn = 0;
if (ver->IsAtLeastGL(3u, 2u) || ver->IsAtLeastGLES(3u, 0u)) {
fn.glGetInteger64i_vFn = reinterpret_cast<glGetInteger64i_vProc>(
GetGLProcAddress("glGetInteger64i_v"));
}
- debug_fn.glGetInteger64i_vRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glGetInteger64i_vRobustANGLEFn =
reinterpret_cast<glGetInteger64i_vRobustANGLEProc>(
GetGLProcAddress("glGetInteger64i_vRobustANGLE"));
}
- debug_fn.glGetInteger64vFn = 0;
if (ver->IsAtLeastGL(3u, 2u) || ver->IsAtLeastGLES(3u, 0u)) {
fn.glGetInteger64vFn = reinterpret_cast<glGetInteger64vProc>(
GetGLProcAddress("glGetInteger64v"));
}
- debug_fn.glGetInteger64vRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glGetInteger64vRobustANGLEFn =
reinterpret_cast<glGetInteger64vRobustANGLEProc>(
GetGLProcAddress("glGetInteger64vRobustANGLE"));
}
- debug_fn.glGetIntegeri_vFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
fn.glGetIntegeri_vFn = reinterpret_cast<glGetIntegeri_vProc>(
GetGLProcAddress("glGetIntegeri_v"));
}
- debug_fn.glGetIntegeri_vRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glGetIntegeri_vRobustANGLEFn =
reinterpret_cast<glGetIntegeri_vRobustANGLEProc>(
GetGLProcAddress("glGetIntegeri_vRobustANGLE"));
}
- debug_fn.glGetIntegervRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glGetIntegervRobustANGLEFn =
reinterpret_cast<glGetIntegervRobustANGLEProc>(
GetGLProcAddress("glGetIntegervRobustANGLE"));
}
- debug_fn.glGetInternalformativFn = 0;
if (ver->IsAtLeastGL(4u, 2u) || ver->IsAtLeastGLES(3u, 0u)) {
fn.glGetInternalformativFn = reinterpret_cast<glGetInternalformativProc>(
GetGLProcAddress("glGetInternalformativ"));
}
- debug_fn.glGetInternalformativRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glGetInternalformativRobustANGLEFn =
reinterpret_cast<glGetInternalformativRobustANGLEProc>(
GetGLProcAddress("glGetInternalformativRobustANGLE"));
}
- debug_fn.glGetMultisamplefvRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glGetMultisamplefvRobustANGLEFn =
reinterpret_cast<glGetMultisamplefvRobustANGLEProc>(
GetGLProcAddress("glGetMultisamplefvRobustANGLE"));
}
- debug_fn.glGetnUniformfvRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glGetnUniformfvRobustANGLEFn =
reinterpret_cast<glGetnUniformfvRobustANGLEProc>(
GetGLProcAddress("glGetnUniformfvRobustANGLE"));
}
- debug_fn.glGetnUniformivRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glGetnUniformivRobustANGLEFn =
reinterpret_cast<glGetnUniformivRobustANGLEProc>(
GetGLProcAddress("glGetnUniformivRobustANGLE"));
}
- debug_fn.glGetnUniformuivRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glGetnUniformuivRobustANGLEFn =
reinterpret_cast<glGetnUniformuivRobustANGLEProc>(
GetGLProcAddress("glGetnUniformuivRobustANGLE"));
}
- debug_fn.glGetObjectLabelFn = 0;
if (ver->IsAtLeastGL(4u, 3u) || ver->IsAtLeastGLES(3u, 2u)) {
fn.glGetObjectLabelFn = reinterpret_cast<glGetObjectLabelProc>(
GetGLProcAddress("glGetObjectLabel"));
@@ -1581,7 +1465,6 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glGetObjectLabelKHR"));
}
- debug_fn.glGetObjectPtrLabelFn = 0;
if (ver->IsAtLeastGL(4u, 3u) || ver->IsAtLeastGLES(3u, 2u)) {
fn.glGetObjectPtrLabelFn = reinterpret_cast<glGetObjectPtrLabelProc>(
GetGLProcAddress("glGetObjectPtrLabel"));
@@ -1590,7 +1473,6 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glGetObjectPtrLabelKHR"));
}
- debug_fn.glGetPointervFn = 0;
if (!ver->is_es || ver->IsAtLeastGLES(3u, 2u)) {
fn.glGetPointervFn =
reinterpret_cast<glGetPointervProc>(GetGLProcAddress("glGetPointerv"));
@@ -1599,14 +1481,12 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glGetPointervKHR"));
}
- debug_fn.glGetPointervRobustANGLERobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glGetPointervRobustANGLERobustANGLEFn =
reinterpret_cast<glGetPointervRobustANGLERobustANGLEProc>(
GetGLProcAddress("glGetPointervRobustANGLERobustANGLE"));
}
- debug_fn.glGetProgramBinaryFn = 0;
if (ver->IsAtLeastGL(4u, 1u) || ver->IsAtLeastGLES(3u, 0u) ||
ext.b_GL_ARB_get_program_binary) {
fn.glGetProgramBinaryFn = reinterpret_cast<glGetProgramBinaryProc>(
@@ -1616,7 +1496,6 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glGetProgramBinaryOES"));
}
- debug_fn.glGetProgramInterfaceivFn = 0;
if (ver->IsAtLeastGL(4u, 3u) || ver->IsAtLeastGLES(3u, 1u) ||
ext.b_GL_ARB_program_interface_query) {
fn.glGetProgramInterfaceivFn =
@@ -1624,35 +1503,30 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glGetProgramInterfaceiv"));
}
- debug_fn.glGetProgramInterfaceivRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glGetProgramInterfaceivRobustANGLEFn =
reinterpret_cast<glGetProgramInterfaceivRobustANGLEProc>(
GetGLProcAddress("glGetProgramInterfaceivRobustANGLE"));
}
- debug_fn.glGetProgramivRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glGetProgramivRobustANGLEFn =
reinterpret_cast<glGetProgramivRobustANGLEProc>(
GetGLProcAddress("glGetProgramivRobustANGLE"));
}
- debug_fn.glGetProgramResourceivFn = 0;
if (ver->IsAtLeastGL(4u, 3u) || ver->IsAtLeastGLES(3u, 1u) ||
ext.b_GL_ARB_program_interface_query) {
fn.glGetProgramResourceivFn = reinterpret_cast<glGetProgramResourceivProc>(
GetGLProcAddress("glGetProgramResourceiv"));
}
- debug_fn.glGetProgramResourceLocationFn = 0;
if (ver->IsAtLeastGL(4u, 3u) || ver->IsAtLeastGLES(3u, 1u)) {
fn.glGetProgramResourceLocationFn =
reinterpret_cast<glGetProgramResourceLocationProc>(
GetGLProcAddress("glGetProgramResourceLocation"));
}
- debug_fn.glGetProgramResourceNameFn = 0;
if (ver->IsAtLeastGL(4u, 3u) || ver->IsAtLeastGLES(3u, 1u) ||
ext.b_GL_ARB_program_interface_query) {
fn.glGetProgramResourceNameFn =
@@ -1660,7 +1534,6 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glGetProgramResourceName"));
}
- debug_fn.glGetQueryivFn = 0;
if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
fn.glGetQueryivFn =
reinterpret_cast<glGetQueryivProc>(GetGLProcAddress("glGetQueryiv"));
@@ -1673,14 +1546,12 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
reinterpret_cast<glGetQueryivProc>(GetGLProcAddress("glGetQueryivEXT"));
}
- debug_fn.glGetQueryivRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glGetQueryivRobustANGLEFn =
reinterpret_cast<glGetQueryivRobustANGLEProc>(
GetGLProcAddress("glGetQueryivRobustANGLE"));
}
- debug_fn.glGetQueryObjecti64vFn = 0;
if (ver->IsAtLeastGL(3u, 3u) || ext.b_GL_ARB_timer_query) {
fn.glGetQueryObjecti64vFn = reinterpret_cast<glGetQueryObjecti64vProc>(
GetGLProcAddress("glGetQueryObjecti64v"));
@@ -1689,14 +1560,12 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glGetQueryObjecti64vEXT"));
}
- debug_fn.glGetQueryObjecti64vRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glGetQueryObjecti64vRobustANGLEFn =
reinterpret_cast<glGetQueryObjecti64vRobustANGLEProc>(
GetGLProcAddress("glGetQueryObjecti64vRobustANGLE"));
}
- debug_fn.glGetQueryObjectivFn = 0;
if (!ver->is_es) {
fn.glGetQueryObjectivFn = reinterpret_cast<glGetQueryObjectivProc>(
GetGLProcAddress("glGetQueryObjectiv"));
@@ -1708,14 +1577,12 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glGetQueryObjectivEXT"));
}
- debug_fn.glGetQueryObjectivRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glGetQueryObjectivRobustANGLEFn =
reinterpret_cast<glGetQueryObjectivRobustANGLEProc>(
GetGLProcAddress("glGetQueryObjectivRobustANGLE"));
}
- debug_fn.glGetQueryObjectui64vFn = 0;
if (ver->IsAtLeastGL(3u, 3u) || ext.b_GL_ARB_timer_query) {
fn.glGetQueryObjectui64vFn = reinterpret_cast<glGetQueryObjectui64vProc>(
GetGLProcAddress("glGetQueryObjectui64v"));
@@ -1724,14 +1591,12 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glGetQueryObjectui64vEXT"));
}
- debug_fn.glGetQueryObjectui64vRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glGetQueryObjectui64vRobustANGLEFn =
reinterpret_cast<glGetQueryObjectui64vRobustANGLEProc>(
GetGLProcAddress("glGetQueryObjectui64vRobustANGLE"));
}
- debug_fn.glGetQueryObjectuivFn = 0;
if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
fn.glGetQueryObjectuivFn = reinterpret_cast<glGetQueryObjectuivProc>(
GetGLProcAddress("glGetQueryObjectuiv"));
@@ -1744,14 +1609,12 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glGetQueryObjectuivEXT"));
}
- debug_fn.glGetQueryObjectuivRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glGetQueryObjectuivRobustANGLEFn =
reinterpret_cast<glGetQueryObjectuivRobustANGLEProc>(
GetGLProcAddress("glGetQueryObjectuivRobustANGLE"));
}
- debug_fn.glGetRenderbufferParameterivEXTFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->is_es) {
fn.glGetRenderbufferParameterivEXTFn =
reinterpret_cast<glGetRenderbufferParameterivEXTProc>(
@@ -1762,14 +1625,12 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glGetRenderbufferParameterivEXT"));
}
- debug_fn.glGetRenderbufferParameterivRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glGetRenderbufferParameterivRobustANGLEFn =
reinterpret_cast<glGetRenderbufferParameterivRobustANGLEProc>(
GetGLProcAddress("glGetRenderbufferParameterivRobustANGLE"));
}
- debug_fn.glGetSamplerParameterfvFn = 0;
if (ver->IsAtLeastGL(3u, 3u) || ver->IsAtLeastGLES(3u, 0u) ||
ext.b_GL_ARB_sampler_objects) {
fn.glGetSamplerParameterfvFn =
@@ -1777,28 +1638,24 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glGetSamplerParameterfv"));
}
- debug_fn.glGetSamplerParameterfvRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glGetSamplerParameterfvRobustANGLEFn =
reinterpret_cast<glGetSamplerParameterfvRobustANGLEProc>(
GetGLProcAddress("glGetSamplerParameterfvRobustANGLE"));
}
- debug_fn.glGetSamplerParameterIivRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glGetSamplerParameterIivRobustANGLEFn =
reinterpret_cast<glGetSamplerParameterIivRobustANGLEProc>(
GetGLProcAddress("glGetSamplerParameterIivRobustANGLE"));
}
- debug_fn.glGetSamplerParameterIuivRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glGetSamplerParameterIuivRobustANGLEFn =
reinterpret_cast<glGetSamplerParameterIuivRobustANGLEProc>(
GetGLProcAddress("glGetSamplerParameterIuivRobustANGLE"));
}
- debug_fn.glGetSamplerParameterivFn = 0;
if (ver->IsAtLeastGL(3u, 3u) || ver->IsAtLeastGLES(3u, 0u) ||
ext.b_GL_ARB_sampler_objects) {
fn.glGetSamplerParameterivFn =
@@ -1806,91 +1663,78 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glGetSamplerParameteriv"));
}
- debug_fn.glGetSamplerParameterivRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glGetSamplerParameterivRobustANGLEFn =
reinterpret_cast<glGetSamplerParameterivRobustANGLEProc>(
GetGLProcAddress("glGetSamplerParameterivRobustANGLE"));
}
- debug_fn.glGetShaderivRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glGetShaderivRobustANGLEFn =
reinterpret_cast<glGetShaderivRobustANGLEProc>(
GetGLProcAddress("glGetShaderivRobustANGLE"));
}
- debug_fn.glGetShaderPrecisionFormatFn = 0;
if (ver->IsAtLeastGL(4u, 1u) || ver->is_es) {
fn.glGetShaderPrecisionFormatFn =
reinterpret_cast<glGetShaderPrecisionFormatProc>(
GetGLProcAddress("glGetShaderPrecisionFormat"));
}
- debug_fn.glGetSyncivFn = 0;
if (ver->IsAtLeastGL(3u, 2u) || ver->IsAtLeastGLES(3u, 0u) ||
ext.b_GL_ARB_sync) {
fn.glGetSyncivFn =
reinterpret_cast<glGetSyncivProc>(GetGLProcAddress("glGetSynciv"));
}
- debug_fn.glGetTexLevelParameterfvFn = 0;
if (!ver->is_es || ver->IsAtLeastGLES(3u, 1u)) {
fn.glGetTexLevelParameterfvFn =
reinterpret_cast<glGetTexLevelParameterfvProc>(
GetGLProcAddress("glGetTexLevelParameterfv"));
}
- debug_fn.glGetTexLevelParameterfvRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glGetTexLevelParameterfvRobustANGLEFn =
reinterpret_cast<glGetTexLevelParameterfvRobustANGLEProc>(
GetGLProcAddress("glGetTexLevelParameterfvRobustANGLE"));
}
- debug_fn.glGetTexLevelParameterivFn = 0;
if (!ver->is_es || ver->IsAtLeastGLES(3u, 1u)) {
fn.glGetTexLevelParameterivFn =
reinterpret_cast<glGetTexLevelParameterivProc>(
GetGLProcAddress("glGetTexLevelParameteriv"));
}
- debug_fn.glGetTexLevelParameterivRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glGetTexLevelParameterivRobustANGLEFn =
reinterpret_cast<glGetTexLevelParameterivRobustANGLEProc>(
GetGLProcAddress("glGetTexLevelParameterivRobustANGLE"));
}
- debug_fn.glGetTexParameterfvRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glGetTexParameterfvRobustANGLEFn =
reinterpret_cast<glGetTexParameterfvRobustANGLEProc>(
GetGLProcAddress("glGetTexParameterfvRobustANGLE"));
}
- debug_fn.glGetTexParameterIivRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glGetTexParameterIivRobustANGLEFn =
reinterpret_cast<glGetTexParameterIivRobustANGLEProc>(
GetGLProcAddress("glGetTexParameterIivRobustANGLE"));
}
- debug_fn.glGetTexParameterIuivRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glGetTexParameterIuivRobustANGLEFn =
reinterpret_cast<glGetTexParameterIuivRobustANGLEProc>(
GetGLProcAddress("glGetTexParameterIuivRobustANGLE"));
}
- debug_fn.glGetTexParameterivRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glGetTexParameterivRobustANGLEFn =
reinterpret_cast<glGetTexParameterivRobustANGLEProc>(
GetGLProcAddress("glGetTexParameterivRobustANGLE"));
}
- debug_fn.glGetTransformFeedbackVaryingFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
fn.glGetTransformFeedbackVaryingFn =
reinterpret_cast<glGetTransformFeedbackVaryingProc>(
@@ -1901,120 +1745,102 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glGetTransformFeedbackVaryingEXT"));
}
- debug_fn.glGetTranslatedShaderSourceANGLEFn = 0;
if (ext.b_GL_ANGLE_translated_shader_source) {
fn.glGetTranslatedShaderSourceANGLEFn =
reinterpret_cast<glGetTranslatedShaderSourceANGLEProc>(
GetGLProcAddress("glGetTranslatedShaderSourceANGLE"));
}
- debug_fn.glGetUniformBlockIndexFn = 0;
if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(3u, 1u)) {
fn.glGetUniformBlockIndexFn = reinterpret_cast<glGetUniformBlockIndexProc>(
GetGLProcAddress("glGetUniformBlockIndex"));
}
- debug_fn.glGetUniformfvRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glGetUniformfvRobustANGLEFn =
reinterpret_cast<glGetUniformfvRobustANGLEProc>(
GetGLProcAddress("glGetUniformfvRobustANGLE"));
}
- debug_fn.glGetUniformIndicesFn = 0;
if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(3u, 1u)) {
fn.glGetUniformIndicesFn = reinterpret_cast<glGetUniformIndicesProc>(
GetGLProcAddress("glGetUniformIndices"));
}
- debug_fn.glGetUniformivRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glGetUniformivRobustANGLEFn =
reinterpret_cast<glGetUniformivRobustANGLEProc>(
GetGLProcAddress("glGetUniformivRobustANGLE"));
}
- debug_fn.glGetUniformuivFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
fn.glGetUniformuivFn = reinterpret_cast<glGetUniformuivProc>(
GetGLProcAddress("glGetUniformuiv"));
}
- debug_fn.glGetUniformuivRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glGetUniformuivRobustANGLEFn =
reinterpret_cast<glGetUniformuivRobustANGLEProc>(
GetGLProcAddress("glGetUniformuivRobustANGLE"));
}
- debug_fn.glGetVertexAttribfvRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glGetVertexAttribfvRobustANGLEFn =
reinterpret_cast<glGetVertexAttribfvRobustANGLEProc>(
GetGLProcAddress("glGetVertexAttribfvRobustANGLE"));
}
- debug_fn.glGetVertexAttribIivRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glGetVertexAttribIivRobustANGLEFn =
reinterpret_cast<glGetVertexAttribIivRobustANGLEProc>(
GetGLProcAddress("glGetVertexAttribIivRobustANGLE"));
}
- debug_fn.glGetVertexAttribIuivRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glGetVertexAttribIuivRobustANGLEFn =
reinterpret_cast<glGetVertexAttribIuivRobustANGLEProc>(
GetGLProcAddress("glGetVertexAttribIuivRobustANGLE"));
}
- debug_fn.glGetVertexAttribivRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glGetVertexAttribivRobustANGLEFn =
reinterpret_cast<glGetVertexAttribivRobustANGLEProc>(
GetGLProcAddress("glGetVertexAttribivRobustANGLE"));
}
- debug_fn.glGetVertexAttribPointervRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glGetVertexAttribPointervRobustANGLEFn =
reinterpret_cast<glGetVertexAttribPointervRobustANGLEProc>(
GetGLProcAddress("glGetVertexAttribPointervRobustANGLE"));
}
- debug_fn.glInsertEventMarkerEXTFn = 0;
if (ext.b_GL_EXT_debug_marker) {
fn.glInsertEventMarkerEXTFn = reinterpret_cast<glInsertEventMarkerEXTProc>(
GetGLProcAddress("glInsertEventMarkerEXT"));
}
- debug_fn.glInvalidateFramebufferFn = 0;
if (ver->IsAtLeastGL(4u, 3u) || ver->IsAtLeastGLES(3u, 0u)) {
fn.glInvalidateFramebufferFn =
reinterpret_cast<glInvalidateFramebufferProc>(
GetGLProcAddress("glInvalidateFramebuffer"));
}
- debug_fn.glInvalidateSubFramebufferFn = 0;
if (ver->IsAtLeastGL(4u, 3u) || ver->IsAtLeastGLES(3u, 0u)) {
fn.glInvalidateSubFramebufferFn =
reinterpret_cast<glInvalidateSubFramebufferProc>(
GetGLProcAddress("glInvalidateSubFramebuffer"));
}
- debug_fn.glIsFenceAPPLEFn = 0;
if (ext.b_GL_APPLE_fence) {
fn.glIsFenceAPPLEFn = reinterpret_cast<glIsFenceAPPLEProc>(
GetGLProcAddress("glIsFenceAPPLE"));
}
- debug_fn.glIsFenceNVFn = 0;
if (ext.b_GL_NV_fence) {
fn.glIsFenceNVFn =
reinterpret_cast<glIsFenceNVProc>(GetGLProcAddress("glIsFenceNV"));
}
- debug_fn.glIsFramebufferEXTFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->is_es) {
fn.glIsFramebufferEXTFn = reinterpret_cast<glIsFramebufferEXTProc>(
GetGLProcAddress("glIsFramebuffer"));
@@ -2023,13 +1849,11 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glIsFramebufferEXT"));
}
- debug_fn.glIsPathNVFn = 0;
if (ext.b_GL_NV_path_rendering) {
fn.glIsPathNVFn =
reinterpret_cast<glIsPathNVProc>(GetGLProcAddress("glIsPathNV"));
}
- debug_fn.glIsQueryFn = 0;
if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
fn.glIsQueryFn =
reinterpret_cast<glIsQueryProc>(GetGLProcAddress("glIsQuery"));
@@ -2042,7 +1866,6 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
reinterpret_cast<glIsQueryProc>(GetGLProcAddress("glIsQueryEXT"));
}
- debug_fn.glIsRenderbufferEXTFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->is_es) {
fn.glIsRenderbufferEXTFn = reinterpret_cast<glIsRenderbufferEXTProc>(
GetGLProcAddress("glIsRenderbuffer"));
@@ -2051,28 +1874,24 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glIsRenderbufferEXT"));
}
- debug_fn.glIsSamplerFn = 0;
if (ver->IsAtLeastGL(3u, 3u) || ver->IsAtLeastGLES(3u, 0u) ||
ext.b_GL_ARB_sampler_objects) {
fn.glIsSamplerFn =
reinterpret_cast<glIsSamplerProc>(GetGLProcAddress("glIsSampler"));
}
- debug_fn.glIsSyncFn = 0;
if (ver->IsAtLeastGL(3u, 2u) || ver->IsAtLeastGLES(3u, 0u) ||
ext.b_GL_ARB_sync) {
fn.glIsSyncFn =
reinterpret_cast<glIsSyncProc>(GetGLProcAddress("glIsSync"));
}
- debug_fn.glIsTransformFeedbackFn = 0;
if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(4u, 0u) ||
ext.b_GL_ARB_transform_feedback2) {
fn.glIsTransformFeedbackFn = reinterpret_cast<glIsTransformFeedbackProc>(
GetGLProcAddress("glIsTransformFeedback"));
}
- debug_fn.glIsVertexArrayOESFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u) ||
ext.b_GL_ARB_vertex_array_object) {
fn.glIsVertexArrayOESFn = reinterpret_cast<glIsVertexArrayOESProc>(
@@ -2085,7 +1904,6 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glIsVertexArrayAPPLE"));
}
- debug_fn.glMapBufferFn = 0;
if (!ver->is_es) {
fn.glMapBufferFn =
reinterpret_cast<glMapBufferProc>(GetGLProcAddress("glMapBuffer"));
@@ -2094,7 +1912,6 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
reinterpret_cast<glMapBufferProc>(GetGLProcAddress("glMapBufferOES"));
}
- debug_fn.glMapBufferRangeFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u) ||
ext.b_GL_ARB_map_buffer_range) {
fn.glMapBufferRangeFn = reinterpret_cast<glMapBufferRangeProc>(
@@ -2104,20 +1921,17 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glMapBufferRangeEXT"));
}
- debug_fn.glMatrixLoadfEXTFn = 0;
if (ext.b_GL_EXT_direct_state_access || ext.b_GL_NV_path_rendering) {
fn.glMatrixLoadfEXTFn = reinterpret_cast<glMatrixLoadfEXTProc>(
GetGLProcAddress("glMatrixLoadfEXT"));
}
- debug_fn.glMatrixLoadIdentityEXTFn = 0;
if (ext.b_GL_EXT_direct_state_access || ext.b_GL_NV_path_rendering) {
fn.glMatrixLoadIdentityEXTFn =
reinterpret_cast<glMatrixLoadIdentityEXTProc>(
GetGLProcAddress("glMatrixLoadIdentityEXT"));
}
- debug_fn.glMemoryBarrierEXTFn = 0;
if (ver->IsAtLeastGL(4u, 2u) || ver->IsAtLeastGLES(3u, 1u) ||
ext.b_GL_ARB_shader_image_load_store) {
fn.glMemoryBarrierEXTFn = reinterpret_cast<glMemoryBarrierEXTProc>(
@@ -2127,7 +1941,6 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glMemoryBarrierEXT"));
}
- debug_fn.glObjectLabelFn = 0;
if (ver->IsAtLeastGL(4u, 3u) || ver->IsAtLeastGLES(3u, 2u)) {
fn.glObjectLabelFn =
reinterpret_cast<glObjectLabelProc>(GetGLProcAddress("glObjectLabel"));
@@ -2136,7 +1949,6 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glObjectLabelKHR"));
}
- debug_fn.glObjectPtrLabelFn = 0;
if (ver->IsAtLeastGL(4u, 3u) || ver->IsAtLeastGLES(3u, 2u)) {
fn.glObjectPtrLabelFn = reinterpret_cast<glObjectPtrLabelProc>(
GetGLProcAddress("glObjectPtrLabel"));
@@ -2145,31 +1957,26 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glObjectPtrLabelKHR"));
}
- debug_fn.glPathCommandsNVFn = 0;
if (ext.b_GL_NV_path_rendering) {
fn.glPathCommandsNVFn = reinterpret_cast<glPathCommandsNVProc>(
GetGLProcAddress("glPathCommandsNV"));
}
- debug_fn.glPathParameterfNVFn = 0;
if (ext.b_GL_NV_path_rendering) {
fn.glPathParameterfNVFn = reinterpret_cast<glPathParameterfNVProc>(
GetGLProcAddress("glPathParameterfNV"));
}
- debug_fn.glPathParameteriNVFn = 0;
if (ext.b_GL_NV_path_rendering) {
fn.glPathParameteriNVFn = reinterpret_cast<glPathParameteriNVProc>(
GetGLProcAddress("glPathParameteriNV"));
}
- debug_fn.glPathStencilFuncNVFn = 0;
if (ext.b_GL_NV_path_rendering) {
fn.glPathStencilFuncNVFn = reinterpret_cast<glPathStencilFuncNVProc>(
GetGLProcAddress("glPathStencilFuncNV"));
}
- debug_fn.glPauseTransformFeedbackFn = 0;
if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(4u, 0u) ||
ext.b_GL_ARB_transform_feedback2) {
fn.glPauseTransformFeedbackFn =
@@ -2177,13 +1984,11 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glPauseTransformFeedback"));
}
- debug_fn.glPointParameteriFn = 0;
if (!ver->is_es) {
fn.glPointParameteriFn = reinterpret_cast<glPointParameteriProc>(
GetGLProcAddress("glPointParameteri"));
}
- debug_fn.glPopDebugGroupFn = 0;
if (ver->IsAtLeastGL(4u, 3u) || ver->IsAtLeastGLES(3u, 2u)) {
fn.glPopDebugGroupFn = reinterpret_cast<glPopDebugGroupProc>(
GetGLProcAddress("glPopDebugGroup"));
@@ -2192,20 +1997,17 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glPopDebugGroupKHR"));
}
- debug_fn.glPopGroupMarkerEXTFn = 0;
if (ext.b_GL_EXT_debug_marker) {
fn.glPopGroupMarkerEXTFn = reinterpret_cast<glPopGroupMarkerEXTProc>(
GetGLProcAddress("glPopGroupMarkerEXT"));
}
- debug_fn.glPrimitiveRestartIndexFn = 0;
if (ver->IsAtLeastGL(3u, 1u)) {
fn.glPrimitiveRestartIndexFn =
reinterpret_cast<glPrimitiveRestartIndexProc>(
GetGLProcAddress("glPrimitiveRestartIndex"));
}
- debug_fn.glProgramBinaryFn = 0;
if (ver->IsAtLeastGL(4u, 1u) || ver->IsAtLeastGLES(3u, 0u) ||
ext.b_GL_ARB_get_program_binary) {
fn.glProgramBinaryFn = reinterpret_cast<glProgramBinaryProc>(
@@ -2215,21 +2017,18 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glProgramBinaryOES"));
}
- debug_fn.glProgramParameteriFn = 0;
if (ver->IsAtLeastGL(4u, 1u) || ver->IsAtLeastGLES(3u, 0u) ||
ext.b_GL_ARB_get_program_binary) {
fn.glProgramParameteriFn = reinterpret_cast<glProgramParameteriProc>(
GetGLProcAddress("glProgramParameteri"));
}
- debug_fn.glProgramPathFragmentInputGenNVFn = 0;
if (ext.b_GL_NV_path_rendering) {
fn.glProgramPathFragmentInputGenNVFn =
reinterpret_cast<glProgramPathFragmentInputGenNVProc>(
GetGLProcAddress("glProgramPathFragmentInputGenNV"));
}
- debug_fn.glPushDebugGroupFn = 0;
if (ver->IsAtLeastGL(4u, 3u) || ver->IsAtLeastGLES(3u, 2u)) {
fn.glPushDebugGroupFn = reinterpret_cast<glPushDebugGroupProc>(
GetGLProcAddress("glPushDebugGroup"));
@@ -2238,13 +2037,11 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glPushDebugGroupKHR"));
}
- debug_fn.glPushGroupMarkerEXTFn = 0;
if (ext.b_GL_EXT_debug_marker) {
fn.glPushGroupMarkerEXTFn = reinterpret_cast<glPushGroupMarkerEXTProc>(
GetGLProcAddress("glPushGroupMarkerEXT"));
}
- debug_fn.glQueryCounterFn = 0;
if (ver->IsAtLeastGL(3u, 3u) || ext.b_GL_ARB_timer_query) {
fn.glQueryCounterFn = reinterpret_cast<glQueryCounterProc>(
GetGLProcAddress("glQueryCounter"));
@@ -2253,34 +2050,29 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glQueryCounterEXT"));
}
- debug_fn.glReadBufferFn = 0;
if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
fn.glReadBufferFn =
reinterpret_cast<glReadBufferProc>(GetGLProcAddress("glReadBuffer"));
}
- debug_fn.glReadnPixelsRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glReadnPixelsRobustANGLEFn =
reinterpret_cast<glReadnPixelsRobustANGLEProc>(
GetGLProcAddress("glReadnPixelsRobustANGLE"));
}
- debug_fn.glReadPixelsRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glReadPixelsRobustANGLEFn =
reinterpret_cast<glReadPixelsRobustANGLEProc>(
GetGLProcAddress("glReadPixelsRobustANGLE"));
}
- debug_fn.glReleaseShaderCompilerFn = 0;
if (ver->IsAtLeastGL(4u, 1u) || ver->is_es) {
fn.glReleaseShaderCompilerFn =
reinterpret_cast<glReleaseShaderCompilerProc>(
GetGLProcAddress("glReleaseShaderCompiler"));
}
- debug_fn.glRenderbufferStorageEXTFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->is_es) {
fn.glRenderbufferStorageEXTFn =
reinterpret_cast<glRenderbufferStorageEXTProc>(
@@ -2291,21 +2083,18 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glRenderbufferStorageEXT"));
}
- debug_fn.glRenderbufferStorageMultisampleFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
fn.glRenderbufferStorageMultisampleFn =
reinterpret_cast<glRenderbufferStorageMultisampleProc>(
GetGLProcAddress("glRenderbufferStorageMultisample"));
}
- debug_fn.glRenderbufferStorageMultisampleANGLEFn = 0;
if (ext.b_GL_ANGLE_framebuffer_multisample) {
fn.glRenderbufferStorageMultisampleANGLEFn =
reinterpret_cast<glRenderbufferStorageMultisampleANGLEProc>(
GetGLProcAddress("glRenderbufferStorageMultisampleANGLE"));
}
- debug_fn.glRenderbufferStorageMultisampleEXTFn = 0;
if (ext.b_GL_EXT_multisampled_render_to_texture ||
ext.b_GL_EXT_framebuffer_multisample) {
fn.glRenderbufferStorageMultisampleEXTFn =
@@ -2313,14 +2102,12 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glRenderbufferStorageMultisampleEXT"));
}
- debug_fn.glRenderbufferStorageMultisampleIMGFn = 0;
if (ext.b_GL_IMG_multisampled_render_to_texture) {
fn.glRenderbufferStorageMultisampleIMGFn =
reinterpret_cast<glRenderbufferStorageMultisampleIMGProc>(
GetGLProcAddress("glRenderbufferStorageMultisampleIMG"));
}
- debug_fn.glResumeTransformFeedbackFn = 0;
if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(4u, 0u) ||
ext.b_GL_ARB_transform_feedback2) {
fn.glResumeTransformFeedbackFn =
@@ -2328,195 +2115,166 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glResumeTransformFeedback"));
}
- debug_fn.glSamplerParameterfFn = 0;
if (ver->IsAtLeastGL(3u, 3u) || ver->IsAtLeastGLES(3u, 0u) ||
ext.b_GL_ARB_sampler_objects) {
fn.glSamplerParameterfFn = reinterpret_cast<glSamplerParameterfProc>(
GetGLProcAddress("glSamplerParameterf"));
}
- debug_fn.glSamplerParameterfvFn = 0;
if (ver->IsAtLeastGL(3u, 3u) || ver->IsAtLeastGLES(3u, 0u) ||
ext.b_GL_ARB_sampler_objects) {
fn.glSamplerParameterfvFn = reinterpret_cast<glSamplerParameterfvProc>(
GetGLProcAddress("glSamplerParameterfv"));
}
- debug_fn.glSamplerParameterfvRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glSamplerParameterfvRobustANGLEFn =
reinterpret_cast<glSamplerParameterfvRobustANGLEProc>(
GetGLProcAddress("glSamplerParameterfvRobustANGLE"));
}
- debug_fn.glSamplerParameteriFn = 0;
if (ver->IsAtLeastGL(3u, 3u) || ver->IsAtLeastGLES(3u, 0u) ||
ext.b_GL_ARB_sampler_objects) {
fn.glSamplerParameteriFn = reinterpret_cast<glSamplerParameteriProc>(
GetGLProcAddress("glSamplerParameteri"));
}
- debug_fn.glSamplerParameterIivRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glSamplerParameterIivRobustANGLEFn =
reinterpret_cast<glSamplerParameterIivRobustANGLEProc>(
GetGLProcAddress("glSamplerParameterIivRobustANGLE"));
}
- debug_fn.glSamplerParameterIuivRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glSamplerParameterIuivRobustANGLEFn =
reinterpret_cast<glSamplerParameterIuivRobustANGLEProc>(
GetGLProcAddress("glSamplerParameterIuivRobustANGLE"));
}
- debug_fn.glSamplerParameterivFn = 0;
if (ver->IsAtLeastGL(3u, 3u) || ver->IsAtLeastGLES(3u, 0u) ||
ext.b_GL_ARB_sampler_objects) {
fn.glSamplerParameterivFn = reinterpret_cast<glSamplerParameterivProc>(
GetGLProcAddress("glSamplerParameteriv"));
}
- debug_fn.glSamplerParameterivRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glSamplerParameterivRobustANGLEFn =
reinterpret_cast<glSamplerParameterivRobustANGLEProc>(
GetGLProcAddress("glSamplerParameterivRobustANGLE"));
}
- debug_fn.glSetFenceAPPLEFn = 0;
if (ext.b_GL_APPLE_fence) {
fn.glSetFenceAPPLEFn = reinterpret_cast<glSetFenceAPPLEProc>(
GetGLProcAddress("glSetFenceAPPLE"));
}
- debug_fn.glSetFenceNVFn = 0;
if (ext.b_GL_NV_fence) {
fn.glSetFenceNVFn =
reinterpret_cast<glSetFenceNVProc>(GetGLProcAddress("glSetFenceNV"));
}
- debug_fn.glShaderBinaryFn = 0;
if (ver->IsAtLeastGL(4u, 1u) || ver->is_es) {
fn.glShaderBinaryFn = reinterpret_cast<glShaderBinaryProc>(
GetGLProcAddress("glShaderBinary"));
}
- debug_fn.glStencilFillPathInstancedNVFn = 0;
if (ext.b_GL_NV_path_rendering) {
fn.glStencilFillPathInstancedNVFn =
reinterpret_cast<glStencilFillPathInstancedNVProc>(
GetGLProcAddress("glStencilFillPathInstancedNV"));
}
- debug_fn.glStencilFillPathNVFn = 0;
if (ext.b_GL_NV_path_rendering) {
fn.glStencilFillPathNVFn = reinterpret_cast<glStencilFillPathNVProc>(
GetGLProcAddress("glStencilFillPathNV"));
}
- debug_fn.glStencilStrokePathInstancedNVFn = 0;
if (ext.b_GL_NV_path_rendering) {
fn.glStencilStrokePathInstancedNVFn =
reinterpret_cast<glStencilStrokePathInstancedNVProc>(
GetGLProcAddress("glStencilStrokePathInstancedNV"));
}
- debug_fn.glStencilStrokePathNVFn = 0;
if (ext.b_GL_NV_path_rendering) {
fn.glStencilStrokePathNVFn = reinterpret_cast<glStencilStrokePathNVProc>(
GetGLProcAddress("glStencilStrokePathNV"));
}
- debug_fn.glStencilThenCoverFillPathInstancedNVFn = 0;
if (ext.b_GL_NV_path_rendering) {
fn.glStencilThenCoverFillPathInstancedNVFn =
reinterpret_cast<glStencilThenCoverFillPathInstancedNVProc>(
GetGLProcAddress("glStencilThenCoverFillPathInstancedNV"));
}
- debug_fn.glStencilThenCoverFillPathNVFn = 0;
if (ext.b_GL_NV_path_rendering) {
fn.glStencilThenCoverFillPathNVFn =
reinterpret_cast<glStencilThenCoverFillPathNVProc>(
GetGLProcAddress("glStencilThenCoverFillPathNV"));
}
- debug_fn.glStencilThenCoverStrokePathInstancedNVFn = 0;
if (ext.b_GL_NV_path_rendering) {
fn.glStencilThenCoverStrokePathInstancedNVFn =
reinterpret_cast<glStencilThenCoverStrokePathInstancedNVProc>(
GetGLProcAddress("glStencilThenCoverStrokePathInstancedNV"));
}
- 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>(
GetGLProcAddress("glTestFenceAPPLE"));
}
- debug_fn.glTestFenceNVFn = 0;
if (ext.b_GL_NV_fence) {
fn.glTestFenceNVFn =
reinterpret_cast<glTestFenceNVProc>(GetGLProcAddress("glTestFenceNV"));
}
- debug_fn.glTexImage2DRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glTexImage2DRobustANGLEFn =
reinterpret_cast<glTexImage2DRobustANGLEProc>(
GetGLProcAddress("glTexImage2DRobustANGLE"));
}
- debug_fn.glTexImage3DFn = 0;
if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
fn.glTexImage3DFn =
reinterpret_cast<glTexImage3DProc>(GetGLProcAddress("glTexImage3D"));
}
- debug_fn.glTexImage3DRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glTexImage3DRobustANGLEFn =
reinterpret_cast<glTexImage3DRobustANGLEProc>(
GetGLProcAddress("glTexImage3DRobustANGLE"));
}
- debug_fn.glTexParameterfvRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glTexParameterfvRobustANGLEFn =
reinterpret_cast<glTexParameterfvRobustANGLEProc>(
GetGLProcAddress("glTexParameterfvRobustANGLE"));
}
- debug_fn.glTexParameterIivRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glTexParameterIivRobustANGLEFn =
reinterpret_cast<glTexParameterIivRobustANGLEProc>(
GetGLProcAddress("glTexParameterIivRobustANGLE"));
}
- debug_fn.glTexParameterIuivRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glTexParameterIuivRobustANGLEFn =
reinterpret_cast<glTexParameterIuivRobustANGLEProc>(
GetGLProcAddress("glTexParameterIuivRobustANGLE"));
}
- debug_fn.glTexParameterivRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glTexParameterivRobustANGLEFn =
reinterpret_cast<glTexParameterivRobustANGLEProc>(
GetGLProcAddress("glTexParameterivRobustANGLE"));
}
- debug_fn.glTexStorage2DEXTFn = 0;
if (ver->IsAtLeastGL(4u, 2u) || ver->IsAtLeastGLES(3u, 0u) ||
ext.b_GL_ARB_texture_storage) {
fn.glTexStorage2DEXTFn = reinterpret_cast<glTexStorage2DEXTProc>(
@@ -2526,34 +2284,29 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glTexStorage2DEXT"));
}
- debug_fn.glTexStorage3DFn = 0;
if (ver->IsAtLeastGL(4u, 2u) || ver->IsAtLeastGLES(3u, 0u) ||
ext.b_GL_ARB_texture_storage) {
fn.glTexStorage3DFn = reinterpret_cast<glTexStorage3DProc>(
GetGLProcAddress("glTexStorage3D"));
}
- debug_fn.glTexSubImage2DRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glTexSubImage2DRobustANGLEFn =
reinterpret_cast<glTexSubImage2DRobustANGLEProc>(
GetGLProcAddress("glTexSubImage2DRobustANGLE"));
}
- debug_fn.glTexSubImage3DFn = 0;
if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
fn.glTexSubImage3DFn = reinterpret_cast<glTexSubImage3DProc>(
GetGLProcAddress("glTexSubImage3D"));
}
- debug_fn.glTexSubImage3DRobustANGLEFn = 0;
if (ext.b_GL_ANGLE_robust_client_memory) {
fn.glTexSubImage3DRobustANGLEFn =
reinterpret_cast<glTexSubImage3DRobustANGLEProc>(
GetGLProcAddress("glTexSubImage3DRobustANGLE"));
}
- debug_fn.glTransformFeedbackVaryingsFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
fn.glTransformFeedbackVaryingsFn =
reinterpret_cast<glTransformFeedbackVaryingsProc>(
@@ -2564,97 +2317,81 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glTransformFeedbackVaryingsEXT"));
}
- debug_fn.glUniform1uiFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
fn.glUniform1uiFn =
reinterpret_cast<glUniform1uiProc>(GetGLProcAddress("glUniform1ui"));
}
- debug_fn.glUniform1uivFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
fn.glUniform1uivFn =
reinterpret_cast<glUniform1uivProc>(GetGLProcAddress("glUniform1uiv"));
}
- debug_fn.glUniform2uiFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
fn.glUniform2uiFn =
reinterpret_cast<glUniform2uiProc>(GetGLProcAddress("glUniform2ui"));
}
- debug_fn.glUniform2uivFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
fn.glUniform2uivFn =
reinterpret_cast<glUniform2uivProc>(GetGLProcAddress("glUniform2uiv"));
}
- debug_fn.glUniform3uiFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
fn.glUniform3uiFn =
reinterpret_cast<glUniform3uiProc>(GetGLProcAddress("glUniform3ui"));
}
- debug_fn.glUniform3uivFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
fn.glUniform3uivFn =
reinterpret_cast<glUniform3uivProc>(GetGLProcAddress("glUniform3uiv"));
}
- debug_fn.glUniform4uiFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
fn.glUniform4uiFn =
reinterpret_cast<glUniform4uiProc>(GetGLProcAddress("glUniform4ui"));
}
- debug_fn.glUniform4uivFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
fn.glUniform4uivFn =
reinterpret_cast<glUniform4uivProc>(GetGLProcAddress("glUniform4uiv"));
}
- debug_fn.glUniformBlockBindingFn = 0;
if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(3u, 1u)) {
fn.glUniformBlockBindingFn = reinterpret_cast<glUniformBlockBindingProc>(
GetGLProcAddress("glUniformBlockBinding"));
}
- debug_fn.glUniformMatrix2x3fvFn = 0;
if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
fn.glUniformMatrix2x3fvFn = reinterpret_cast<glUniformMatrix2x3fvProc>(
GetGLProcAddress("glUniformMatrix2x3fv"));
}
- debug_fn.glUniformMatrix2x4fvFn = 0;
if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
fn.glUniformMatrix2x4fvFn = reinterpret_cast<glUniformMatrix2x4fvProc>(
GetGLProcAddress("glUniformMatrix2x4fv"));
}
- debug_fn.glUniformMatrix3x2fvFn = 0;
if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
fn.glUniformMatrix3x2fvFn = reinterpret_cast<glUniformMatrix3x2fvProc>(
GetGLProcAddress("glUniformMatrix3x2fv"));
}
- debug_fn.glUniformMatrix3x4fvFn = 0;
if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
fn.glUniformMatrix3x4fvFn = reinterpret_cast<glUniformMatrix3x4fvProc>(
GetGLProcAddress("glUniformMatrix3x4fv"));
}
- debug_fn.glUniformMatrix4x2fvFn = 0;
if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
fn.glUniformMatrix4x2fvFn = reinterpret_cast<glUniformMatrix4x2fvProc>(
GetGLProcAddress("glUniformMatrix4x2fv"));
}
- debug_fn.glUniformMatrix4x3fvFn = 0;
if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
fn.glUniformMatrix4x3fvFn = reinterpret_cast<glUniformMatrix4x3fvProc>(
GetGLProcAddress("glUniformMatrix4x3fv"));
}
- debug_fn.glUnmapBufferFn = 0;
if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
fn.glUnmapBufferFn =
reinterpret_cast<glUnmapBufferProc>(GetGLProcAddress("glUnmapBuffer"));
@@ -2663,7 +2400,6 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glUnmapBufferOES"));
}
- debug_fn.glVertexAttribDivisorANGLEFn = 0;
if (ver->IsAtLeastGL(3u, 3u) || ver->IsAtLeastGLES(3u, 0u)) {
fn.glVertexAttribDivisorANGLEFn =
reinterpret_cast<glVertexAttribDivisorANGLEProc>(
@@ -2678,6319 +2414,36 @@ void DriverGL::InitializeDynamicBindings(GLContext* context) {
GetGLProcAddress("glVertexAttribDivisorANGLE"));
}
- debug_fn.glVertexAttribI4iFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
fn.glVertexAttribI4iFn = reinterpret_cast<glVertexAttribI4iProc>(
GetGLProcAddress("glVertexAttribI4i"));
}
- debug_fn.glVertexAttribI4ivFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
fn.glVertexAttribI4ivFn = reinterpret_cast<glVertexAttribI4ivProc>(
GetGLProcAddress("glVertexAttribI4iv"));
}
- debug_fn.glVertexAttribI4uiFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
fn.glVertexAttribI4uiFn = reinterpret_cast<glVertexAttribI4uiProc>(
GetGLProcAddress("glVertexAttribI4ui"));
}
- debug_fn.glVertexAttribI4uivFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
fn.glVertexAttribI4uivFn = reinterpret_cast<glVertexAttribI4uivProc>(
GetGLProcAddress("glVertexAttribI4uiv"));
}
- debug_fn.glVertexAttribIPointerFn = 0;
if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
fn.glVertexAttribIPointerFn = reinterpret_cast<glVertexAttribIPointerProc>(
GetGLProcAddress("glVertexAttribIPointer"));
}
- debug_fn.glWaitSyncFn = 0;
if (ver->IsAtLeastGL(3u, 2u) || ver->IsAtLeastGLES(3u, 0u) ||
ext.b_GL_ARB_sync) {
fn.glWaitSyncFn =
reinterpret_cast<glWaitSyncProc>(GetGLProcAddress("glWaitSync"));
}
-
- if (g_debugBindingsInitialized)
- InitializeDebugBindings();
-}
-
-extern "C" {
-
-static void GL_BINDING_CALL Debug_glActiveTexture(GLenum texture) {
- GL_SERVICE_LOG("glActiveTexture"
- << "(" << GLEnums::GetStringEnum(texture) << ")");
- DCHECK(g_driver_gl.debug_fn.glActiveTextureFn != nullptr);
- g_driver_gl.debug_fn.glActiveTextureFn(texture);
-}
-
-static void GL_BINDING_CALL Debug_glApplyFramebufferAttachmentCMAAINTEL(void) {
- GL_SERVICE_LOG("glApplyFramebufferAttachmentCMAAINTEL"
- << "("
- << ")");
- DCHECK(g_driver_gl.debug_fn.glApplyFramebufferAttachmentCMAAINTELFn !=
- nullptr);
- g_driver_gl.debug_fn.glApplyFramebufferAttachmentCMAAINTELFn();
-}
-
-static void GL_BINDING_CALL Debug_glAttachShader(GLuint program,
- GLuint shader) {
- GL_SERVICE_LOG("glAttachShader"
- << "(" << program << ", " << shader << ")");
- DCHECK(g_driver_gl.debug_fn.glAttachShaderFn != nullptr);
- g_driver_gl.debug_fn.glAttachShaderFn(program, shader);
-}
-
-static void GL_BINDING_CALL Debug_glBeginQuery(GLenum target, GLuint id) {
- GL_SERVICE_LOG("glBeginQuery"
- << "(" << GLEnums::GetStringEnum(target) << ", " << id << ")");
- DCHECK(g_driver_gl.debug_fn.glBeginQueryFn != nullptr);
- g_driver_gl.debug_fn.glBeginQueryFn(target, id);
-}
-
-static void GL_BINDING_CALL
-Debug_glBeginTransformFeedback(GLenum primitiveMode) {
- GL_SERVICE_LOG("glBeginTransformFeedback"
- << "(" << GLEnums::GetStringEnum(primitiveMode) << ")");
- DCHECK(g_driver_gl.debug_fn.glBeginTransformFeedbackFn != nullptr);
- g_driver_gl.debug_fn.glBeginTransformFeedbackFn(primitiveMode);
-}
-
-static void GL_BINDING_CALL Debug_glBindAttribLocation(GLuint program,
- GLuint index,
- const char* name) {
- GL_SERVICE_LOG("glBindAttribLocation"
- << "(" << program << ", " << index << ", " << name << ")");
- DCHECK(g_driver_gl.debug_fn.glBindAttribLocationFn != nullptr);
- g_driver_gl.debug_fn.glBindAttribLocationFn(program, index, name);
-}
-
-static void GL_BINDING_CALL Debug_glBindBuffer(GLenum target, GLuint buffer) {
- GL_SERVICE_LOG("glBindBuffer"
- << "(" << GLEnums::GetStringEnum(target) << ", " << buffer
- << ")");
- DCHECK(g_driver_gl.debug_fn.glBindBufferFn != nullptr);
- g_driver_gl.debug_fn.glBindBufferFn(target, buffer);
-}
-
-static void GL_BINDING_CALL Debug_glBindBufferBase(GLenum target,
- GLuint index,
- GLuint buffer) {
- GL_SERVICE_LOG("glBindBufferBase"
- << "(" << GLEnums::GetStringEnum(target) << ", " << index
- << ", " << buffer << ")");
- DCHECK(g_driver_gl.debug_fn.glBindBufferBaseFn != nullptr);
- g_driver_gl.debug_fn.glBindBufferBaseFn(target, index, buffer);
-}
-
-static void GL_BINDING_CALL Debug_glBindBufferRange(GLenum target,
- GLuint index,
- GLuint buffer,
- GLintptr offset,
- GLsizeiptr size) {
- GL_SERVICE_LOG("glBindBufferRange"
- << "(" << GLEnums::GetStringEnum(target) << ", " << index
- << ", " << buffer << ", " << offset << ", " << size << ")");
- DCHECK(g_driver_gl.debug_fn.glBindBufferRangeFn != nullptr);
- g_driver_gl.debug_fn.glBindBufferRangeFn(target, index, buffer, offset, size);
-}
-
-static void GL_BINDING_CALL Debug_glBindFragDataLocation(GLuint program,
- GLuint colorNumber,
- const char* name) {
- GL_SERVICE_LOG("glBindFragDataLocation"
- << "(" << program << ", " << colorNumber << ", " << name
- << ")");
- DCHECK(g_driver_gl.debug_fn.glBindFragDataLocationFn != nullptr);
- g_driver_gl.debug_fn.glBindFragDataLocationFn(program, colorNumber, name);
-}
-
-static void GL_BINDING_CALL
-Debug_glBindFragDataLocationIndexed(GLuint program,
- GLuint colorNumber,
- GLuint index,
- const char* name) {
- GL_SERVICE_LOG("glBindFragDataLocationIndexed"
- << "(" << program << ", " << colorNumber << ", " << index
- << ", " << name << ")");
- DCHECK(g_driver_gl.debug_fn.glBindFragDataLocationIndexedFn != nullptr);
- g_driver_gl.debug_fn.glBindFragDataLocationIndexedFn(program, colorNumber,
- index, name);
-}
-
-static void GL_BINDING_CALL Debug_glBindFramebufferEXT(GLenum target,
- GLuint framebuffer) {
- GL_SERVICE_LOG("glBindFramebufferEXT"
- << "(" << GLEnums::GetStringEnum(target) << ", " << framebuffer
- << ")");
- DCHECK(g_driver_gl.debug_fn.glBindFramebufferEXTFn != nullptr);
- g_driver_gl.debug_fn.glBindFramebufferEXTFn(target, framebuffer);
-}
-
-static void GL_BINDING_CALL Debug_glBindImageTextureEXT(GLuint index,
- GLuint texture,
- GLint level,
- GLboolean layered,
- GLint layer,
- GLenum access,
- GLint format) {
- GL_SERVICE_LOG("glBindImageTextureEXT"
- << "(" << index << ", " << texture << ", " << level << ", "
- << GLEnums::GetStringBool(layered) << ", " << layer << ", "
- << GLEnums::GetStringEnum(access) << ", " << format << ")");
- DCHECK(g_driver_gl.debug_fn.glBindImageTextureEXTFn != nullptr);
- g_driver_gl.debug_fn.glBindImageTextureEXTFn(index, texture, level, layered,
- layer, access, format);
-}
-
-static void GL_BINDING_CALL Debug_glBindRenderbufferEXT(GLenum target,
- GLuint renderbuffer) {
- GL_SERVICE_LOG("glBindRenderbufferEXT"
- << "(" << GLEnums::GetStringEnum(target) << ", "
- << renderbuffer << ")");
- DCHECK(g_driver_gl.debug_fn.glBindRenderbufferEXTFn != nullptr);
- g_driver_gl.debug_fn.glBindRenderbufferEXTFn(target, renderbuffer);
-}
-
-static void GL_BINDING_CALL Debug_glBindSampler(GLuint unit, GLuint sampler) {
- GL_SERVICE_LOG("glBindSampler"
- << "(" << unit << ", " << sampler << ")");
- DCHECK(g_driver_gl.debug_fn.glBindSamplerFn != nullptr);
- g_driver_gl.debug_fn.glBindSamplerFn(unit, sampler);
-}
-
-static void GL_BINDING_CALL Debug_glBindTexture(GLenum target, GLuint texture) {
- GL_SERVICE_LOG("glBindTexture"
- << "(" << GLEnums::GetStringEnum(target) << ", " << texture
- << ")");
- DCHECK(g_driver_gl.debug_fn.glBindTextureFn != nullptr);
- g_driver_gl.debug_fn.glBindTextureFn(target, texture);
-}
-
-static void GL_BINDING_CALL Debug_glBindTransformFeedback(GLenum target,
- GLuint id) {
- GL_SERVICE_LOG("glBindTransformFeedback"
- << "(" << GLEnums::GetStringEnum(target) << ", " << id << ")");
- DCHECK(g_driver_gl.debug_fn.glBindTransformFeedbackFn != nullptr);
- g_driver_gl.debug_fn.glBindTransformFeedbackFn(target, id);
-}
-
-static void GL_BINDING_CALL
-Debug_glBindUniformLocationCHROMIUM(GLuint program,
- GLint location,
- const char* name) {
- GL_SERVICE_LOG("glBindUniformLocationCHROMIUM"
- << "(" << program << ", " << location << ", " << name << ")");
- DCHECK(g_driver_gl.debug_fn.glBindUniformLocationCHROMIUMFn != nullptr);
- g_driver_gl.debug_fn.glBindUniformLocationCHROMIUMFn(program, location, name);
-}
-
-static void GL_BINDING_CALL Debug_glBindVertexArrayOES(GLuint array) {
- GL_SERVICE_LOG("glBindVertexArrayOES"
- << "(" << array << ")");
- DCHECK(g_driver_gl.debug_fn.glBindVertexArrayOESFn != nullptr);
- g_driver_gl.debug_fn.glBindVertexArrayOESFn(array);
-}
-
-static void GL_BINDING_CALL Debug_glBlendBarrierKHR(void) {
- GL_SERVICE_LOG("glBlendBarrierKHR"
- << "("
- << ")");
- DCHECK(g_driver_gl.debug_fn.glBlendBarrierKHRFn != nullptr);
- g_driver_gl.debug_fn.glBlendBarrierKHRFn();
-}
-
-static void GL_BINDING_CALL Debug_glBlendColor(GLclampf red,
- GLclampf green,
- GLclampf blue,
- GLclampf alpha) {
- GL_SERVICE_LOG("glBlendColor"
- << "(" << red << ", " << green << ", " << blue << ", " << alpha
- << ")");
- DCHECK(g_driver_gl.debug_fn.glBlendColorFn != nullptr);
- g_driver_gl.debug_fn.glBlendColorFn(red, green, blue, alpha);
-}
-
-static void GL_BINDING_CALL Debug_glBlendEquation(GLenum mode) {
- GL_SERVICE_LOG("glBlendEquation"
- << "(" << GLEnums::GetStringEnum(mode) << ")");
- DCHECK(g_driver_gl.debug_fn.glBlendEquationFn != nullptr);
- g_driver_gl.debug_fn.glBlendEquationFn(mode);
-}
-
-static void GL_BINDING_CALL Debug_glBlendEquationSeparate(GLenum modeRGB,
- GLenum modeAlpha) {
- GL_SERVICE_LOG("glBlendEquationSeparate"
- << "(" << GLEnums::GetStringEnum(modeRGB) << ", "
- << GLEnums::GetStringEnum(modeAlpha) << ")");
- DCHECK(g_driver_gl.debug_fn.glBlendEquationSeparateFn != nullptr);
- g_driver_gl.debug_fn.glBlendEquationSeparateFn(modeRGB, modeAlpha);
-}
-
-static void GL_BINDING_CALL Debug_glBlendFunc(GLenum sfactor, GLenum dfactor) {
- GL_SERVICE_LOG("glBlendFunc"
- << "(" << GLEnums::GetStringEnum(sfactor) << ", "
- << GLEnums::GetStringEnum(dfactor) << ")");
- DCHECK(g_driver_gl.debug_fn.glBlendFuncFn != nullptr);
- g_driver_gl.debug_fn.glBlendFuncFn(sfactor, dfactor);
-}
-
-static void GL_BINDING_CALL Debug_glBlendFuncSeparate(GLenum srcRGB,
- GLenum dstRGB,
- GLenum srcAlpha,
- GLenum dstAlpha) {
- GL_SERVICE_LOG("glBlendFuncSeparate"
- << "(" << GLEnums::GetStringEnum(srcRGB) << ", "
- << GLEnums::GetStringEnum(dstRGB) << ", "
- << GLEnums::GetStringEnum(srcAlpha) << ", "
- << GLEnums::GetStringEnum(dstAlpha) << ")");
- DCHECK(g_driver_gl.debug_fn.glBlendFuncSeparateFn != nullptr);
- g_driver_gl.debug_fn.glBlendFuncSeparateFn(srcRGB, dstRGB, srcAlpha,
- dstAlpha);
-}
-
-static void GL_BINDING_CALL Debug_glBlitFramebuffer(GLint srcX0,
- GLint srcY0,
- GLint srcX1,
- GLint srcY1,
- GLint dstX0,
- GLint dstY0,
- GLint dstX1,
- GLint dstY1,
- GLbitfield mask,
- GLenum filter) {
- GL_SERVICE_LOG("glBlitFramebuffer"
- << "(" << srcX0 << ", " << srcY0 << ", " << srcX1 << ", "
- << srcY1 << ", " << dstX0 << ", " << dstY0 << ", " << dstX1
- << ", " << dstY1 << ", " << mask << ", "
- << GLEnums::GetStringEnum(filter) << ")");
- DCHECK(g_driver_gl.debug_fn.glBlitFramebufferFn != nullptr);
- g_driver_gl.debug_fn.glBlitFramebufferFn(srcX0, srcY0, srcX1, srcY1, dstX0,
- dstY0, dstX1, dstY1, mask, filter);
-}
-
-static void GL_BINDING_CALL Debug_glBlitFramebufferANGLE(GLint srcX0,
- GLint srcY0,
- GLint srcX1,
- GLint srcY1,
- GLint dstX0,
- GLint dstY0,
- GLint dstX1,
- GLint dstY1,
- GLbitfield mask,
- GLenum filter) {
- GL_SERVICE_LOG("glBlitFramebufferANGLE"
- << "(" << srcX0 << ", " << srcY0 << ", " << srcX1 << ", "
- << srcY1 << ", " << dstX0 << ", " << dstY0 << ", " << dstX1
- << ", " << dstY1 << ", " << mask << ", "
- << GLEnums::GetStringEnum(filter) << ")");
- DCHECK(g_driver_gl.debug_fn.glBlitFramebufferANGLEFn != nullptr);
- g_driver_gl.debug_fn.glBlitFramebufferANGLEFn(
- srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
-}
-
-static void GL_BINDING_CALL Debug_glBlitFramebufferEXT(GLint srcX0,
- GLint srcY0,
- GLint srcX1,
- GLint srcY1,
- GLint dstX0,
- GLint dstY0,
- GLint dstX1,
- GLint dstY1,
- GLbitfield mask,
- GLenum filter) {
- GL_SERVICE_LOG("glBlitFramebufferEXT"
- << "(" << srcX0 << ", " << srcY0 << ", " << srcX1 << ", "
- << srcY1 << ", " << dstX0 << ", " << dstY0 << ", " << dstX1
- << ", " << dstY1 << ", " << mask << ", "
- << GLEnums::GetStringEnum(filter) << ")");
- DCHECK(g_driver_gl.debug_fn.glBlitFramebufferEXTFn != nullptr);
- g_driver_gl.debug_fn.glBlitFramebufferEXTFn(
- srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
-}
-
-static void GL_BINDING_CALL Debug_glBufferData(GLenum target,
- GLsizeiptr size,
- const void* data,
- GLenum usage) {
- GL_SERVICE_LOG("glBufferData"
- << "(" << GLEnums::GetStringEnum(target) << ", " << size
- << ", " << static_cast<const void*>(data) << ", "
- << GLEnums::GetStringEnum(usage) << ")");
- DCHECK(g_driver_gl.debug_fn.glBufferDataFn != nullptr);
- g_driver_gl.debug_fn.glBufferDataFn(target, size, data, usage);
-}
-
-static void GL_BINDING_CALL Debug_glBufferSubData(GLenum target,
- GLintptr offset,
- GLsizeiptr size,
- const void* data) {
- GL_SERVICE_LOG("glBufferSubData"
- << "(" << GLEnums::GetStringEnum(target) << ", " << offset
- << ", " << size << ", " << static_cast<const void*>(data)
- << ")");
- DCHECK(g_driver_gl.debug_fn.glBufferSubDataFn != nullptr);
- g_driver_gl.debug_fn.glBufferSubDataFn(target, offset, size, data);
-}
-
-static GLenum GL_BINDING_CALL Debug_glCheckFramebufferStatusEXT(GLenum target) {
- GL_SERVICE_LOG("glCheckFramebufferStatusEXT"
- << "(" << GLEnums::GetStringEnum(target) << ")");
- DCHECK(g_driver_gl.debug_fn.glCheckFramebufferStatusEXTFn != nullptr);
- GLenum result = g_driver_gl.debug_fn.glCheckFramebufferStatusEXTFn(target);
-
- GL_SERVICE_LOG("GL_RESULT: " << GLEnums::GetStringEnum(result));
-
- return result;
-}
-
-static void GL_BINDING_CALL Debug_glClear(GLbitfield mask) {
- GL_SERVICE_LOG("glClear"
- << "(" << mask << ")");
- DCHECK(g_driver_gl.debug_fn.glClearFn != nullptr);
- g_driver_gl.debug_fn.glClearFn(mask);
-}
-
-static void GL_BINDING_CALL Debug_glClearBufferfi(GLenum buffer,
- GLint drawbuffer,
- const GLfloat depth,
- GLint stencil) {
- GL_SERVICE_LOG("glClearBufferfi"
- << "(" << GLEnums::GetStringEnum(buffer) << ", " << drawbuffer
- << ", " << depth << ", " << stencil << ")");
- DCHECK(g_driver_gl.debug_fn.glClearBufferfiFn != nullptr);
- g_driver_gl.debug_fn.glClearBufferfiFn(buffer, drawbuffer, depth, stencil);
-}
-
-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) << ")");
- DCHECK(g_driver_gl.debug_fn.glClearBufferfvFn != nullptr);
- g_driver_gl.debug_fn.glClearBufferfvFn(buffer, drawbuffer, 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) << ")");
- DCHECK(g_driver_gl.debug_fn.glClearBufferivFn != nullptr);
- g_driver_gl.debug_fn.glClearBufferivFn(buffer, drawbuffer, 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) << ")");
- DCHECK(g_driver_gl.debug_fn.glClearBufferuivFn != nullptr);
- g_driver_gl.debug_fn.glClearBufferuivFn(buffer, drawbuffer, value);
-}
-
-static void GL_BINDING_CALL Debug_glClearColor(GLclampf red,
- GLclampf green,
- GLclampf blue,
- GLclampf alpha) {
- GL_SERVICE_LOG("glClearColor"
- << "(" << red << ", " << green << ", " << blue << ", " << alpha
- << ")");
- DCHECK(g_driver_gl.debug_fn.glClearColorFn != nullptr);
- g_driver_gl.debug_fn.glClearColorFn(red, green, blue, alpha);
-}
-
-static void GL_BINDING_CALL Debug_glClearDepth(GLclampd depth) {
- GL_SERVICE_LOG("glClearDepth"
- << "(" << depth << ")");
- DCHECK(g_driver_gl.debug_fn.glClearDepthFn != nullptr);
- g_driver_gl.debug_fn.glClearDepthFn(depth);
-}
-
-static void GL_BINDING_CALL Debug_glClearDepthf(GLclampf depth) {
- GL_SERVICE_LOG("glClearDepthf"
- << "(" << depth << ")");
- DCHECK(g_driver_gl.debug_fn.glClearDepthfFn != nullptr);
- g_driver_gl.debug_fn.glClearDepthfFn(depth);
-}
-
-static void GL_BINDING_CALL Debug_glClearStencil(GLint s) {
- GL_SERVICE_LOG("glClearStencil"
- << "(" << s << ")");
- DCHECK(g_driver_gl.debug_fn.glClearStencilFn != nullptr);
- g_driver_gl.debug_fn.glClearStencilFn(s);
-}
-
-static GLenum GL_BINDING_CALL Debug_glClientWaitSync(GLsync sync,
- GLbitfield flags,
- GLuint64 timeout) {
- GL_SERVICE_LOG("glClientWaitSync"
- << "(" << sync << ", " << flags << ", " << timeout << ")");
- DCHECK(g_driver_gl.debug_fn.glClientWaitSyncFn != nullptr);
- GLenum result = g_driver_gl.debug_fn.glClientWaitSyncFn(sync, flags, timeout);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static void GL_BINDING_CALL Debug_glColorMask(GLboolean red,
- GLboolean green,
- GLboolean blue,
- GLboolean alpha) {
- GL_SERVICE_LOG("glColorMask"
- << "(" << GLEnums::GetStringBool(red) << ", "
- << GLEnums::GetStringBool(green) << ", "
- << GLEnums::GetStringBool(blue) << ", "
- << GLEnums::GetStringBool(alpha) << ")");
- DCHECK(g_driver_gl.debug_fn.glColorMaskFn != nullptr);
- g_driver_gl.debug_fn.glColorMaskFn(red, green, blue, alpha);
-}
-
-static void GL_BINDING_CALL Debug_glCompileShader(GLuint shader) {
- GL_SERVICE_LOG("glCompileShader"
- << "(" << shader << ")");
- DCHECK(g_driver_gl.debug_fn.glCompileShaderFn != nullptr);
- g_driver_gl.debug_fn.glCompileShaderFn(shader);
-}
-
-static void GL_BINDING_CALL
-Debug_glCompressedCopyTextureCHROMIUM(GLuint sourceId, GLuint destId) {
- GL_SERVICE_LOG("glCompressedCopyTextureCHROMIUM"
- << "(" << sourceId << ", " << destId << ")");
- DCHECK(g_driver_gl.debug_fn.glCompressedCopyTextureCHROMIUMFn != nullptr);
- g_driver_gl.debug_fn.glCompressedCopyTextureCHROMIUMFn(sourceId, destId);
-}
-
-static void GL_BINDING_CALL Debug_glCompressedTexImage2D(GLenum target,
- GLint level,
- GLenum internalformat,
- GLsizei width,
- GLsizei height,
- GLint border,
- GLsizei imageSize,
- const void* data) {
- GL_SERVICE_LOG("glCompressedTexImage2D"
- << "(" << GLEnums::GetStringEnum(target) << ", " << level
- << ", " << GLEnums::GetStringEnum(internalformat) << ", "
- << width << ", " << height << ", " << border << ", "
- << imageSize << ", " << static_cast<const void*>(data) << ")");
- DCHECK(g_driver_gl.debug_fn.glCompressedTexImage2DFn != nullptr);
- g_driver_gl.debug_fn.glCompressedTexImage2DFn(
- target, level, internalformat, width, height, border, imageSize, data);
-}
-
-static void GL_BINDING_CALL Debug_glCompressedTexImage3D(GLenum target,
- GLint level,
- GLenum internalformat,
- GLsizei width,
- GLsizei height,
- GLsizei depth,
- GLint border,
- GLsizei imageSize,
- const void* data) {
- GL_SERVICE_LOG("glCompressedTexImage3D"
- << "(" << GLEnums::GetStringEnum(target) << ", " << level
- << ", " << GLEnums::GetStringEnum(internalformat) << ", "
- << width << ", " << height << ", " << depth << ", " << border
- << ", " << imageSize << ", " << static_cast<const void*>(data)
- << ")");
- DCHECK(g_driver_gl.debug_fn.glCompressedTexImage3DFn != nullptr);
- g_driver_gl.debug_fn.glCompressedTexImage3DFn(target, level, internalformat,
- width, height, depth, border,
- imageSize, data);
-}
-
-static void GL_BINDING_CALL Debug_glCompressedTexSubImage2D(GLenum target,
- GLint level,
- GLint xoffset,
- GLint yoffset,
- GLsizei width,
- GLsizei height,
- GLenum format,
- GLsizei imageSize,
- const void* data) {
- GL_SERVICE_LOG("glCompressedTexSubImage2D"
- << "(" << GLEnums::GetStringEnum(target) << ", " << level
- << ", " << xoffset << ", " << yoffset << ", " << width << ", "
- << height << ", " << GLEnums::GetStringEnum(format) << ", "
- << imageSize << ", " << static_cast<const void*>(data) << ")");
- DCHECK(g_driver_gl.debug_fn.glCompressedTexSubImage2DFn != nullptr);
- g_driver_gl.debug_fn.glCompressedTexSubImage2DFn(
- target, level, xoffset, yoffset, width, height, format, imageSize, data);
-}
-
-static void GL_BINDING_CALL Debug_glCompressedTexSubImage3D(GLenum target,
- GLint level,
- GLint xoffset,
- GLint yoffset,
- GLint zoffset,
- GLsizei width,
- GLsizei height,
- GLsizei depth,
- GLenum format,
- GLsizei imageSize,
- const void* data) {
- GL_SERVICE_LOG("glCompressedTexSubImage3D"
- << "(" << GLEnums::GetStringEnum(target) << ", " << level
- << ", " << xoffset << ", " << yoffset << ", " << zoffset
- << ", " << width << ", " << height << ", " << depth << ", "
- << GLEnums::GetStringEnum(format) << ", " << imageSize << ", "
- << static_cast<const void*>(data) << ")");
- DCHECK(g_driver_gl.debug_fn.glCompressedTexSubImage3DFn != nullptr);
- g_driver_gl.debug_fn.glCompressedTexSubImage3DFn(
- target, level, xoffset, yoffset, zoffset, width, height, depth, format,
- imageSize, data);
-}
-
-static void GL_BINDING_CALL Debug_glCopyBufferSubData(GLenum readTarget,
- GLenum writeTarget,
- GLintptr readOffset,
- GLintptr writeOffset,
- GLsizeiptr size) {
- GL_SERVICE_LOG("glCopyBufferSubData"
- << "(" << GLEnums::GetStringEnum(readTarget) << ", "
- << GLEnums::GetStringEnum(writeTarget) << ", " << readOffset
- << ", " << writeOffset << ", " << size << ")");
- DCHECK(g_driver_gl.debug_fn.glCopyBufferSubDataFn != nullptr);
- g_driver_gl.debug_fn.glCopyBufferSubDataFn(readTarget, writeTarget,
- readOffset, writeOffset, size);
-}
-
-static void GL_BINDING_CALL
-Debug_glCopySubTextureCHROMIUM(GLuint sourceId,
- GLuint destId,
- GLint xoffset,
- GLint yoffset,
- GLint x,
- GLint y,
- GLsizei width,
- GLsizei height,
- GLboolean unpackFlipY,
- GLboolean unpackPremultiplyAlpha,
- GLboolean unpackUnmultiplyAlpha) {
- GL_SERVICE_LOG("glCopySubTextureCHROMIUM"
- << "(" << sourceId << ", " << destId << ", " << xoffset << ", "
- << yoffset << ", " << x << ", " << y << ", " << width << ", "
- << height << ", " << GLEnums::GetStringBool(unpackFlipY)
- << ", " << GLEnums::GetStringBool(unpackPremultiplyAlpha)
- << ", " << GLEnums::GetStringBool(unpackUnmultiplyAlpha)
- << ")");
- DCHECK(g_driver_gl.debug_fn.glCopySubTextureCHROMIUMFn != nullptr);
- g_driver_gl.debug_fn.glCopySubTextureCHROMIUMFn(
- sourceId, destId, xoffset, yoffset, x, y, width, height, unpackFlipY,
- unpackPremultiplyAlpha, unpackUnmultiplyAlpha);
-}
-
-static void GL_BINDING_CALL Debug_glCopyTexImage2D(GLenum target,
- GLint level,
- GLenum internalformat,
- GLint x,
- GLint y,
- GLsizei width,
- GLsizei height,
- GLint border) {
- GL_SERVICE_LOG("glCopyTexImage2D"
- << "(" << GLEnums::GetStringEnum(target) << ", " << level
- << ", " << GLEnums::GetStringEnum(internalformat) << ", " << x
- << ", " << y << ", " << width << ", " << height << ", "
- << border << ")");
- DCHECK(g_driver_gl.debug_fn.glCopyTexImage2DFn != nullptr);
- g_driver_gl.debug_fn.glCopyTexImage2DFn(target, level, internalformat, x, y,
- width, height, border);
-}
-
-static void GL_BINDING_CALL Debug_glCopyTexSubImage2D(GLenum target,
- GLint level,
- GLint xoffset,
- GLint yoffset,
- GLint x,
- GLint y,
- GLsizei width,
- GLsizei height) {
- GL_SERVICE_LOG("glCopyTexSubImage2D"
- << "(" << GLEnums::GetStringEnum(target) << ", " << level
- << ", " << xoffset << ", " << yoffset << ", " << x << ", " << y
- << ", " << width << ", " << height << ")");
- DCHECK(g_driver_gl.debug_fn.glCopyTexSubImage2DFn != nullptr);
- g_driver_gl.debug_fn.glCopyTexSubImage2DFn(target, level, xoffset, yoffset, x,
- y, width, height);
-}
-
-static void GL_BINDING_CALL Debug_glCopyTexSubImage3D(GLenum target,
- GLint level,
- GLint xoffset,
- GLint yoffset,
- GLint zoffset,
- GLint x,
- GLint y,
- GLsizei width,
- GLsizei height) {
- GL_SERVICE_LOG("glCopyTexSubImage3D"
- << "(" << GLEnums::GetStringEnum(target) << ", " << level
- << ", " << xoffset << ", " << yoffset << ", " << zoffset
- << ", " << x << ", " << y << ", " << width << ", " << height
- << ")");
- DCHECK(g_driver_gl.debug_fn.glCopyTexSubImage3DFn != nullptr);
- g_driver_gl.debug_fn.glCopyTexSubImage3DFn(target, level, xoffset, yoffset,
- zoffset, x, y, width, height);
-}
-
-static void GL_BINDING_CALL
-Debug_glCopyTextureCHROMIUM(GLuint sourceId,
- GLuint destId,
- GLint internalFormat,
- GLenum destType,
- GLboolean unpackFlipY,
- GLboolean unpackPremultiplyAlpha,
- GLboolean unpackUnmultiplyAlpha) {
- GL_SERVICE_LOG("glCopyTextureCHROMIUM"
- << "(" << sourceId << ", " << destId << ", " << internalFormat
- << ", " << GLEnums::GetStringEnum(destType) << ", "
- << GLEnums::GetStringBool(unpackFlipY) << ", "
- << GLEnums::GetStringBool(unpackPremultiplyAlpha) << ", "
- << GLEnums::GetStringBool(unpackUnmultiplyAlpha) << ")");
- DCHECK(g_driver_gl.debug_fn.glCopyTextureCHROMIUMFn != nullptr);
- g_driver_gl.debug_fn.glCopyTextureCHROMIUMFn(
- sourceId, destId, internalFormat, destType, unpackFlipY,
- unpackPremultiplyAlpha, unpackUnmultiplyAlpha);
-}
-
-static void GL_BINDING_CALL Debug_glCoverageModulationNV(GLenum components) {
- GL_SERVICE_LOG("glCoverageModulationNV"
- << "(" << GLEnums::GetStringEnum(components) << ")");
- DCHECK(g_driver_gl.debug_fn.glCoverageModulationNVFn != nullptr);
- g_driver_gl.debug_fn.glCoverageModulationNVFn(components);
-}
-
-static void GL_BINDING_CALL
-Debug_glCoverFillPathInstancedNV(GLsizei numPaths,
- GLenum pathNameType,
- const void* paths,
- GLuint pathBase,
- GLenum coverMode,
- GLenum transformType,
- const GLfloat* transformValues) {
- GL_SERVICE_LOG("glCoverFillPathInstancedNV"
- << "(" << numPaths << ", "
- << GLEnums::GetStringEnum(pathNameType) << ", "
- << static_cast<const void*>(paths) << ", " << pathBase << ", "
- << GLEnums::GetStringEnum(coverMode) << ", "
- << GLEnums::GetStringEnum(transformType) << ", "
- << static_cast<const void*>(transformValues) << ")");
- DCHECK(g_driver_gl.debug_fn.glCoverFillPathInstancedNVFn != nullptr);
- g_driver_gl.debug_fn.glCoverFillPathInstancedNVFn(
- numPaths, pathNameType, paths, pathBase, coverMode, transformType,
- transformValues);
-}
-
-static void GL_BINDING_CALL Debug_glCoverFillPathNV(GLuint path,
- GLenum coverMode) {
- GL_SERVICE_LOG("glCoverFillPathNV"
- << "(" << path << ", " << GLEnums::GetStringEnum(coverMode)
- << ")");
- DCHECK(g_driver_gl.debug_fn.glCoverFillPathNVFn != nullptr);
- g_driver_gl.debug_fn.glCoverFillPathNVFn(path, coverMode);
-}
-
-static void GL_BINDING_CALL
-Debug_glCoverStrokePathInstancedNV(GLsizei numPaths,
- GLenum pathNameType,
- const void* paths,
- GLuint pathBase,
- GLenum coverMode,
- GLenum transformType,
- const GLfloat* transformValues) {
- GL_SERVICE_LOG("glCoverStrokePathInstancedNV"
- << "(" << numPaths << ", "
- << GLEnums::GetStringEnum(pathNameType) << ", "
- << static_cast<const void*>(paths) << ", " << pathBase << ", "
- << GLEnums::GetStringEnum(coverMode) << ", "
- << GLEnums::GetStringEnum(transformType) << ", "
- << static_cast<const void*>(transformValues) << ")");
- DCHECK(g_driver_gl.debug_fn.glCoverStrokePathInstancedNVFn != nullptr);
- g_driver_gl.debug_fn.glCoverStrokePathInstancedNVFn(
- numPaths, pathNameType, paths, pathBase, coverMode, transformType,
- transformValues);
-}
-
-static void GL_BINDING_CALL Debug_glCoverStrokePathNV(GLuint name,
- GLenum coverMode) {
- GL_SERVICE_LOG("glCoverStrokePathNV"
- << "(" << name << ", " << GLEnums::GetStringEnum(coverMode)
- << ")");
- DCHECK(g_driver_gl.debug_fn.glCoverStrokePathNVFn != nullptr);
- g_driver_gl.debug_fn.glCoverStrokePathNVFn(name, coverMode);
-}
-
-static GLuint GL_BINDING_CALL Debug_glCreateProgram(void) {
- GL_SERVICE_LOG("glCreateProgram"
- << "("
- << ")");
- DCHECK(g_driver_gl.debug_fn.glCreateProgramFn != nullptr);
- GLuint result = g_driver_gl.debug_fn.glCreateProgramFn();
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static GLuint GL_BINDING_CALL Debug_glCreateShader(GLenum type) {
- GL_SERVICE_LOG("glCreateShader"
- << "(" << GLEnums::GetStringEnum(type) << ")");
- DCHECK(g_driver_gl.debug_fn.glCreateShaderFn != nullptr);
- GLuint result = g_driver_gl.debug_fn.glCreateShaderFn(type);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static void GL_BINDING_CALL Debug_glCullFace(GLenum mode) {
- GL_SERVICE_LOG("glCullFace"
- << "(" << GLEnums::GetStringEnum(mode) << ")");
- DCHECK(g_driver_gl.debug_fn.glCullFaceFn != nullptr);
- g_driver_gl.debug_fn.glCullFaceFn(mode);
-}
-
-static void GL_BINDING_CALL
-Debug_glDebugMessageCallback(GLDEBUGPROC callback, const void* userParam) {
- GL_SERVICE_LOG("glDebugMessageCallback"
- << "(" << callback << ", "
- << static_cast<const void*>(userParam) << ")");
- DCHECK(g_driver_gl.debug_fn.glDebugMessageCallbackFn != nullptr);
- g_driver_gl.debug_fn.glDebugMessageCallbackFn(callback, userParam);
-}
-
-static void GL_BINDING_CALL Debug_glDebugMessageControl(GLenum source,
- GLenum type,
- GLenum severity,
- GLsizei count,
- const GLuint* ids,
- GLboolean enabled) {
- GL_SERVICE_LOG("glDebugMessageControl"
- << "(" << GLEnums::GetStringEnum(source) << ", "
- << GLEnums::GetStringEnum(type) << ", "
- << GLEnums::GetStringEnum(severity) << ", " << count << ", "
- << static_cast<const void*>(ids) << ", "
- << GLEnums::GetStringBool(enabled) << ")");
- DCHECK(g_driver_gl.debug_fn.glDebugMessageControlFn != nullptr);
- g_driver_gl.debug_fn.glDebugMessageControlFn(source, type, severity, count,
- ids, enabled);
-}
-
-static void GL_BINDING_CALL Debug_glDebugMessageInsert(GLenum source,
- GLenum type,
- GLuint id,
- GLenum severity,
- GLsizei length,
- const char* buf) {
- GL_SERVICE_LOG("glDebugMessageInsert"
- << "(" << GLEnums::GetStringEnum(source) << ", "
- << GLEnums::GetStringEnum(type) << ", " << id << ", "
- << GLEnums::GetStringEnum(severity) << ", " << length << ", "
- << buf << ")");
- DCHECK(g_driver_gl.debug_fn.glDebugMessageInsertFn != nullptr);
- g_driver_gl.debug_fn.glDebugMessageInsertFn(source, type, id, severity,
- length, buf);
-}
-
-static void GL_BINDING_CALL Debug_glDeleteBuffersARB(GLsizei n,
- const GLuint* buffers) {
- GL_SERVICE_LOG("glDeleteBuffersARB"
- << "(" << n << ", " << static_cast<const void*>(buffers)
- << ")");
- DCHECK(g_driver_gl.debug_fn.glDeleteBuffersARBFn != nullptr);
- g_driver_gl.debug_fn.glDeleteBuffersARBFn(n, buffers);
-}
-
-static void GL_BINDING_CALL Debug_glDeleteFencesAPPLE(GLsizei n,
- const GLuint* fences) {
- GL_SERVICE_LOG("glDeleteFencesAPPLE"
- << "(" << n << ", " << static_cast<const void*>(fences)
- << ")");
- DCHECK(g_driver_gl.debug_fn.glDeleteFencesAPPLEFn != nullptr);
- g_driver_gl.debug_fn.glDeleteFencesAPPLEFn(n, fences);
-}
-
-static void GL_BINDING_CALL Debug_glDeleteFencesNV(GLsizei n,
- const GLuint* fences) {
- GL_SERVICE_LOG("glDeleteFencesNV"
- << "(" << n << ", " << static_cast<const void*>(fences)
- << ")");
- DCHECK(g_driver_gl.debug_fn.glDeleteFencesNVFn != nullptr);
- g_driver_gl.debug_fn.glDeleteFencesNVFn(n, fences);
-}
-
-static void GL_BINDING_CALL
-Debug_glDeleteFramebuffersEXT(GLsizei n, const GLuint* framebuffers) {
- GL_SERVICE_LOG("glDeleteFramebuffersEXT"
- << "(" << n << ", " << static_cast<const void*>(framebuffers)
- << ")");
- DCHECK(g_driver_gl.debug_fn.glDeleteFramebuffersEXTFn != nullptr);
- 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 << ")");
- DCHECK(g_driver_gl.debug_fn.glDeletePathsNVFn != nullptr);
- g_driver_gl.debug_fn.glDeletePathsNVFn(path, range);
-}
-
-static void GL_BINDING_CALL Debug_glDeleteProgram(GLuint program) {
- GL_SERVICE_LOG("glDeleteProgram"
- << "(" << program << ")");
- DCHECK(g_driver_gl.debug_fn.glDeleteProgramFn != nullptr);
- g_driver_gl.debug_fn.glDeleteProgramFn(program);
-}
-
-static void GL_BINDING_CALL Debug_glDeleteQueries(GLsizei n,
- const GLuint* ids) {
- GL_SERVICE_LOG("glDeleteQueries"
- << "(" << n << ", " << static_cast<const void*>(ids) << ")");
- DCHECK(g_driver_gl.debug_fn.glDeleteQueriesFn != nullptr);
- g_driver_gl.debug_fn.glDeleteQueriesFn(n, ids);
-}
-
-static void GL_BINDING_CALL
-Debug_glDeleteRenderbuffersEXT(GLsizei n, const GLuint* renderbuffers) {
- GL_SERVICE_LOG("glDeleteRenderbuffersEXT"
- << "(" << n << ", " << static_cast<const void*>(renderbuffers)
- << ")");
- DCHECK(g_driver_gl.debug_fn.glDeleteRenderbuffersEXTFn != nullptr);
- g_driver_gl.debug_fn.glDeleteRenderbuffersEXTFn(n, renderbuffers);
-}
-
-static void GL_BINDING_CALL Debug_glDeleteSamplers(GLsizei n,
- const GLuint* samplers) {
- GL_SERVICE_LOG("glDeleteSamplers"
- << "(" << n << ", " << static_cast<const void*>(samplers)
- << ")");
- DCHECK(g_driver_gl.debug_fn.glDeleteSamplersFn != nullptr);
- g_driver_gl.debug_fn.glDeleteSamplersFn(n, samplers);
-}
-
-static void GL_BINDING_CALL Debug_glDeleteShader(GLuint shader) {
- GL_SERVICE_LOG("glDeleteShader"
- << "(" << shader << ")");
- DCHECK(g_driver_gl.debug_fn.glDeleteShaderFn != nullptr);
- g_driver_gl.debug_fn.glDeleteShaderFn(shader);
-}
-
-static void GL_BINDING_CALL Debug_glDeleteSync(GLsync sync) {
- GL_SERVICE_LOG("glDeleteSync"
- << "(" << sync << ")");
- DCHECK(g_driver_gl.debug_fn.glDeleteSyncFn != nullptr);
- g_driver_gl.debug_fn.glDeleteSyncFn(sync);
-}
-
-static void GL_BINDING_CALL Debug_glDeleteTextures(GLsizei n,
- const GLuint* textures) {
- GL_SERVICE_LOG("glDeleteTextures"
- << "(" << n << ", " << static_cast<const void*>(textures)
- << ")");
- DCHECK(g_driver_gl.debug_fn.glDeleteTexturesFn != nullptr);
- g_driver_gl.debug_fn.glDeleteTexturesFn(n, textures);
-}
-
-static void GL_BINDING_CALL
-Debug_glDeleteTransformFeedbacks(GLsizei n, const GLuint* ids) {
- GL_SERVICE_LOG("glDeleteTransformFeedbacks"
- << "(" << n << ", " << static_cast<const void*>(ids) << ")");
- DCHECK(g_driver_gl.debug_fn.glDeleteTransformFeedbacksFn != nullptr);
- g_driver_gl.debug_fn.glDeleteTransformFeedbacksFn(n, ids);
-}
-
-static void GL_BINDING_CALL
-Debug_glDeleteVertexArraysOES(GLsizei n, const GLuint* arrays) {
- GL_SERVICE_LOG("glDeleteVertexArraysOES"
- << "(" << n << ", " << static_cast<const void*>(arrays)
- << ")");
- DCHECK(g_driver_gl.debug_fn.glDeleteVertexArraysOESFn != nullptr);
- g_driver_gl.debug_fn.glDeleteVertexArraysOESFn(n, arrays);
-}
-
-static void GL_BINDING_CALL Debug_glDepthFunc(GLenum func) {
- GL_SERVICE_LOG("glDepthFunc"
- << "(" << GLEnums::GetStringEnum(func) << ")");
- DCHECK(g_driver_gl.debug_fn.glDepthFuncFn != nullptr);
- g_driver_gl.debug_fn.glDepthFuncFn(func);
-}
-
-static void GL_BINDING_CALL Debug_glDepthMask(GLboolean flag) {
- GL_SERVICE_LOG("glDepthMask"
- << "(" << GLEnums::GetStringBool(flag) << ")");
- DCHECK(g_driver_gl.debug_fn.glDepthMaskFn != nullptr);
- g_driver_gl.debug_fn.glDepthMaskFn(flag);
-}
-
-static void GL_BINDING_CALL Debug_glDepthRange(GLclampd zNear, GLclampd zFar) {
- GL_SERVICE_LOG("glDepthRange"
- << "(" << zNear << ", " << zFar << ")");
- DCHECK(g_driver_gl.debug_fn.glDepthRangeFn != nullptr);
- g_driver_gl.debug_fn.glDepthRangeFn(zNear, zFar);
-}
-
-static void GL_BINDING_CALL Debug_glDepthRangef(GLclampf zNear, GLclampf zFar) {
- GL_SERVICE_LOG("glDepthRangef"
- << "(" << zNear << ", " << zFar << ")");
- DCHECK(g_driver_gl.debug_fn.glDepthRangefFn != nullptr);
- g_driver_gl.debug_fn.glDepthRangefFn(zNear, zFar);
-}
-
-static void GL_BINDING_CALL Debug_glDetachShader(GLuint program,
- GLuint shader) {
- GL_SERVICE_LOG("glDetachShader"
- << "(" << program << ", " << shader << ")");
- DCHECK(g_driver_gl.debug_fn.glDetachShaderFn != nullptr);
- g_driver_gl.debug_fn.glDetachShaderFn(program, shader);
-}
-
-static void GL_BINDING_CALL Debug_glDisable(GLenum cap) {
- GL_SERVICE_LOG("glDisable"
- << "(" << GLEnums::GetStringEnum(cap) << ")");
- DCHECK(g_driver_gl.debug_fn.glDisableFn != nullptr);
- g_driver_gl.debug_fn.glDisableFn(cap);
-}
-
-static void GL_BINDING_CALL Debug_glDisableVertexAttribArray(GLuint index) {
- GL_SERVICE_LOG("glDisableVertexAttribArray"
- << "(" << index << ")");
- DCHECK(g_driver_gl.debug_fn.glDisableVertexAttribArrayFn != nullptr);
- g_driver_gl.debug_fn.glDisableVertexAttribArrayFn(index);
-}
-
-static void GL_BINDING_CALL
-Debug_glDiscardFramebufferEXT(GLenum target,
- GLsizei numAttachments,
- const GLenum* attachments) {
- GL_SERVICE_LOG("glDiscardFramebufferEXT"
- << "(" << GLEnums::GetStringEnum(target) << ", "
- << numAttachments << ", "
- << static_cast<const void*>(attachments) << ")");
- DCHECK(g_driver_gl.debug_fn.glDiscardFramebufferEXTFn != nullptr);
- g_driver_gl.debug_fn.glDiscardFramebufferEXTFn(target, numAttachments,
- attachments);
-}
-
-static void GL_BINDING_CALL Debug_glDrawArrays(GLenum mode,
- GLint first,
- GLsizei count) {
- GL_SERVICE_LOG("glDrawArrays"
- << "(" << GLEnums::GetStringEnum(mode) << ", " << first << ", "
- << count << ")");
- DCHECK(g_driver_gl.debug_fn.glDrawArraysFn != nullptr);
- g_driver_gl.debug_fn.glDrawArraysFn(mode, first, count);
-}
-
-static void GL_BINDING_CALL
-Debug_glDrawArraysInstancedANGLE(GLenum mode,
- GLint first,
- GLsizei count,
- GLsizei primcount) {
- GL_SERVICE_LOG("glDrawArraysInstancedANGLE"
- << "(" << GLEnums::GetStringEnum(mode) << ", " << first << ", "
- << count << ", " << primcount << ")");
- DCHECK(g_driver_gl.debug_fn.glDrawArraysInstancedANGLEFn != nullptr);
- g_driver_gl.debug_fn.glDrawArraysInstancedANGLEFn(mode, first, count,
- primcount);
-}
-
-static void GL_BINDING_CALL Debug_glDrawBuffer(GLenum mode) {
- GL_SERVICE_LOG("glDrawBuffer"
- << "(" << GLEnums::GetStringEnum(mode) << ")");
- DCHECK(g_driver_gl.debug_fn.glDrawBufferFn != nullptr);
- g_driver_gl.debug_fn.glDrawBufferFn(mode);
-}
-
-static void GL_BINDING_CALL Debug_glDrawBuffersARB(GLsizei n,
- const GLenum* bufs) {
- GL_SERVICE_LOG("glDrawBuffersARB"
- << "(" << n << ", " << static_cast<const void*>(bufs) << ")");
- DCHECK(g_driver_gl.debug_fn.glDrawBuffersARBFn != nullptr);
- g_driver_gl.debug_fn.glDrawBuffersARBFn(n, bufs);
-}
-
-static void GL_BINDING_CALL Debug_glDrawElements(GLenum mode,
- GLsizei count,
- GLenum type,
- const void* indices) {
- GL_SERVICE_LOG("glDrawElements"
- << "(" << GLEnums::GetStringEnum(mode) << ", " << count << ", "
- << GLEnums::GetStringEnum(type) << ", "
- << static_cast<const void*>(indices) << ")");
- DCHECK(g_driver_gl.debug_fn.glDrawElementsFn != nullptr);
- g_driver_gl.debug_fn.glDrawElementsFn(mode, count, type, indices);
-}
-
-static void GL_BINDING_CALL
-Debug_glDrawElementsInstancedANGLE(GLenum mode,
- GLsizei count,
- GLenum type,
- const void* indices,
- GLsizei primcount) {
- GL_SERVICE_LOG("glDrawElementsInstancedANGLE"
- << "(" << GLEnums::GetStringEnum(mode) << ", " << count << ", "
- << GLEnums::GetStringEnum(type) << ", "
- << static_cast<const void*>(indices) << ", " << primcount
- << ")");
- DCHECK(g_driver_gl.debug_fn.glDrawElementsInstancedANGLEFn != nullptr);
- g_driver_gl.debug_fn.glDrawElementsInstancedANGLEFn(mode, count, type,
- indices, primcount);
-}
-
-static void GL_BINDING_CALL Debug_glDrawRangeElements(GLenum mode,
- GLuint start,
- GLuint end,
- GLsizei count,
- GLenum type,
- const void* indices) {
- GL_SERVICE_LOG("glDrawRangeElements"
- << "(" << GLEnums::GetStringEnum(mode) << ", " << start << ", "
- << end << ", " << count << ", " << GLEnums::GetStringEnum(type)
- << ", " << static_cast<const void*>(indices) << ")");
- DCHECK(g_driver_gl.debug_fn.glDrawRangeElementsFn != nullptr);
- g_driver_gl.debug_fn.glDrawRangeElementsFn(mode, start, end, count, type,
- indices);
-}
-
-static void GL_BINDING_CALL
-Debug_glEGLImageTargetRenderbufferStorageOES(GLenum target,
- GLeglImageOES image) {
- GL_SERVICE_LOG("glEGLImageTargetRenderbufferStorageOES"
- << "(" << GLEnums::GetStringEnum(target) << ", " << image
- << ")");
- DCHECK(g_driver_gl.debug_fn.glEGLImageTargetRenderbufferStorageOESFn !=
- nullptr);
- g_driver_gl.debug_fn.glEGLImageTargetRenderbufferStorageOESFn(target, image);
-}
-
-static void GL_BINDING_CALL
-Debug_glEGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image) {
- GL_SERVICE_LOG("glEGLImageTargetTexture2DOES"
- << "(" << GLEnums::GetStringEnum(target) << ", " << image
- << ")");
- DCHECK(g_driver_gl.debug_fn.glEGLImageTargetTexture2DOESFn != nullptr);
- g_driver_gl.debug_fn.glEGLImageTargetTexture2DOESFn(target, image);
-}
-
-static void GL_BINDING_CALL Debug_glEnable(GLenum cap) {
- GL_SERVICE_LOG("glEnable"
- << "(" << GLEnums::GetStringEnum(cap) << ")");
- DCHECK(g_driver_gl.debug_fn.glEnableFn != nullptr);
- g_driver_gl.debug_fn.glEnableFn(cap);
-}
-
-static void GL_BINDING_CALL Debug_glEnableVertexAttribArray(GLuint index) {
- GL_SERVICE_LOG("glEnableVertexAttribArray"
- << "(" << index << ")");
- DCHECK(g_driver_gl.debug_fn.glEnableVertexAttribArrayFn != nullptr);
- g_driver_gl.debug_fn.glEnableVertexAttribArrayFn(index);
-}
-
-static void GL_BINDING_CALL Debug_glEndQuery(GLenum target) {
- GL_SERVICE_LOG("glEndQuery"
- << "(" << GLEnums::GetStringEnum(target) << ")");
- DCHECK(g_driver_gl.debug_fn.glEndQueryFn != nullptr);
- g_driver_gl.debug_fn.glEndQueryFn(target);
-}
-
-static void GL_BINDING_CALL Debug_glEndTransformFeedback(void) {
- GL_SERVICE_LOG("glEndTransformFeedback"
- << "("
- << ")");
- DCHECK(g_driver_gl.debug_fn.glEndTransformFeedbackFn != nullptr);
- g_driver_gl.debug_fn.glEndTransformFeedbackFn();
-}
-
-static GLsync GL_BINDING_CALL Debug_glFenceSync(GLenum condition,
- GLbitfield flags) {
- GL_SERVICE_LOG("glFenceSync"
- << "(" << GLEnums::GetStringEnum(condition) << ", " << flags
- << ")");
- DCHECK(g_driver_gl.debug_fn.glFenceSyncFn != nullptr);
- GLsync result = g_driver_gl.debug_fn.glFenceSyncFn(condition, flags);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static void GL_BINDING_CALL Debug_glFinish(void) {
- GL_SERVICE_LOG("glFinish"
- << "("
- << ")");
- DCHECK(g_driver_gl.debug_fn.glFinishFn != nullptr);
- g_driver_gl.debug_fn.glFinishFn();
-}
-
-static void GL_BINDING_CALL Debug_glFinishFenceAPPLE(GLuint fence) {
- GL_SERVICE_LOG("glFinishFenceAPPLE"
- << "(" << fence << ")");
- DCHECK(g_driver_gl.debug_fn.glFinishFenceAPPLEFn != nullptr);
- g_driver_gl.debug_fn.glFinishFenceAPPLEFn(fence);
-}
-
-static void GL_BINDING_CALL Debug_glFinishFenceNV(GLuint fence) {
- GL_SERVICE_LOG("glFinishFenceNV"
- << "(" << fence << ")");
- DCHECK(g_driver_gl.debug_fn.glFinishFenceNVFn != nullptr);
- g_driver_gl.debug_fn.glFinishFenceNVFn(fence);
-}
-
-static void GL_BINDING_CALL Debug_glFlush(void) {
- GL_SERVICE_LOG("glFlush"
- << "("
- << ")");
- DCHECK(g_driver_gl.debug_fn.glFlushFn != nullptr);
- g_driver_gl.debug_fn.glFlushFn();
-}
-
-static void GL_BINDING_CALL Debug_glFlushMappedBufferRange(GLenum target,
- GLintptr offset,
- GLsizeiptr length) {
- GL_SERVICE_LOG("glFlushMappedBufferRange"
- << "(" << GLEnums::GetStringEnum(target) << ", " << offset
- << ", " << length << ")");
- DCHECK(g_driver_gl.debug_fn.glFlushMappedBufferRangeFn != nullptr);
- g_driver_gl.debug_fn.glFlushMappedBufferRangeFn(target, offset, length);
-}
-
-static void GL_BINDING_CALL
-Debug_glFramebufferRenderbufferEXT(GLenum target,
- GLenum attachment,
- GLenum renderbuffertarget,
- GLuint renderbuffer) {
- GL_SERVICE_LOG("glFramebufferRenderbufferEXT"
- << "(" << GLEnums::GetStringEnum(target) << ", "
- << GLEnums::GetStringEnum(attachment) << ", "
- << GLEnums::GetStringEnum(renderbuffertarget) << ", "
- << renderbuffer << ")");
- DCHECK(g_driver_gl.debug_fn.glFramebufferRenderbufferEXTFn != nullptr);
- g_driver_gl.debug_fn.glFramebufferRenderbufferEXTFn(
- target, attachment, renderbuffertarget, renderbuffer);
-}
-
-static void GL_BINDING_CALL Debug_glFramebufferTexture2DEXT(GLenum target,
- GLenum attachment,
- GLenum textarget,
- GLuint texture,
- GLint level) {
- GL_SERVICE_LOG("glFramebufferTexture2DEXT"
- << "(" << GLEnums::GetStringEnum(target) << ", "
- << GLEnums::GetStringEnum(attachment) << ", "
- << GLEnums::GetStringEnum(textarget) << ", " << texture << ", "
- << level << ")");
- DCHECK(g_driver_gl.debug_fn.glFramebufferTexture2DEXTFn != nullptr);
- g_driver_gl.debug_fn.glFramebufferTexture2DEXTFn(target, attachment,
- textarget, texture, level);
-}
-
-static void GL_BINDING_CALL
-Debug_glFramebufferTexture2DMultisampleEXT(GLenum target,
- GLenum attachment,
- GLenum textarget,
- GLuint texture,
- GLint level,
- GLsizei samples) {
- GL_SERVICE_LOG("glFramebufferTexture2DMultisampleEXT"
- << "(" << GLEnums::GetStringEnum(target) << ", "
- << GLEnums::GetStringEnum(attachment) << ", "
- << GLEnums::GetStringEnum(textarget) << ", " << texture << ", "
- << level << ", " << samples << ")");
- DCHECK(g_driver_gl.debug_fn.glFramebufferTexture2DMultisampleEXTFn !=
- nullptr);
- g_driver_gl.debug_fn.glFramebufferTexture2DMultisampleEXTFn(
- target, attachment, textarget, texture, level, samples);
-}
-
-static void GL_BINDING_CALL
-Debug_glFramebufferTexture2DMultisampleIMG(GLenum target,
- GLenum attachment,
- GLenum textarget,
- GLuint texture,
- GLint level,
- GLsizei samples) {
- GL_SERVICE_LOG("glFramebufferTexture2DMultisampleIMG"
- << "(" << GLEnums::GetStringEnum(target) << ", "
- << GLEnums::GetStringEnum(attachment) << ", "
- << GLEnums::GetStringEnum(textarget) << ", " << texture << ", "
- << level << ", " << samples << ")");
- DCHECK(g_driver_gl.debug_fn.glFramebufferTexture2DMultisampleIMGFn !=
- nullptr);
- g_driver_gl.debug_fn.glFramebufferTexture2DMultisampleIMGFn(
- target, attachment, textarget, texture, level, samples);
-}
-
-static void GL_BINDING_CALL Debug_glFramebufferTextureLayer(GLenum target,
- GLenum attachment,
- GLuint texture,
- GLint level,
- GLint layer) {
- GL_SERVICE_LOG("glFramebufferTextureLayer"
- << "(" << GLEnums::GetStringEnum(target) << ", "
- << GLEnums::GetStringEnum(attachment) << ", " << texture
- << ", " << level << ", " << layer << ")");
- DCHECK(g_driver_gl.debug_fn.glFramebufferTextureLayerFn != nullptr);
- g_driver_gl.debug_fn.glFramebufferTextureLayerFn(target, attachment, texture,
- level, layer);
-}
-
-static void GL_BINDING_CALL Debug_glFrontFace(GLenum mode) {
- GL_SERVICE_LOG("glFrontFace"
- << "(" << GLEnums::GetStringEnum(mode) << ")");
- DCHECK(g_driver_gl.debug_fn.glFrontFaceFn != nullptr);
- g_driver_gl.debug_fn.glFrontFaceFn(mode);
-}
-
-static void GL_BINDING_CALL Debug_glGenBuffersARB(GLsizei n, GLuint* buffers) {
- GL_SERVICE_LOG("glGenBuffersARB"
- << "(" << n << ", " << static_cast<const void*>(buffers)
- << ")");
- DCHECK(g_driver_gl.debug_fn.glGenBuffersARBFn != nullptr);
- g_driver_gl.debug_fn.glGenBuffersARBFn(n, buffers);
-}
-
-static void GL_BINDING_CALL Debug_glGenerateMipmapEXT(GLenum target) {
- GL_SERVICE_LOG("glGenerateMipmapEXT"
- << "(" << GLEnums::GetStringEnum(target) << ")");
- DCHECK(g_driver_gl.debug_fn.glGenerateMipmapEXTFn != nullptr);
- g_driver_gl.debug_fn.glGenerateMipmapEXTFn(target);
-}
-
-static void GL_BINDING_CALL Debug_glGenFencesAPPLE(GLsizei n, GLuint* fences) {
- GL_SERVICE_LOG("glGenFencesAPPLE"
- << "(" << n << ", " << static_cast<const void*>(fences)
- << ")");
- DCHECK(g_driver_gl.debug_fn.glGenFencesAPPLEFn != nullptr);
- g_driver_gl.debug_fn.glGenFencesAPPLEFn(n, fences);
-}
-
-static void GL_BINDING_CALL Debug_glGenFencesNV(GLsizei n, GLuint* fences) {
- GL_SERVICE_LOG("glGenFencesNV"
- << "(" << n << ", " << static_cast<const void*>(fences)
- << ")");
- DCHECK(g_driver_gl.debug_fn.glGenFencesNVFn != nullptr);
- g_driver_gl.debug_fn.glGenFencesNVFn(n, fences);
-}
-
-static void GL_BINDING_CALL Debug_glGenFramebuffersEXT(GLsizei n,
- GLuint* framebuffers) {
- GL_SERVICE_LOG("glGenFramebuffersEXT"
- << "(" << n << ", " << static_cast<const void*>(framebuffers)
- << ")");
- DCHECK(g_driver_gl.debug_fn.glGenFramebuffersEXTFn != nullptr);
- g_driver_gl.debug_fn.glGenFramebuffersEXTFn(n, framebuffers);
-}
-
-static GLuint GL_BINDING_CALL Debug_glGenPathsNV(GLsizei range) {
- GL_SERVICE_LOG("glGenPathsNV"
- << "(" << range << ")");
- DCHECK(g_driver_gl.debug_fn.glGenPathsNVFn != nullptr);
- 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) << ")");
- DCHECK(g_driver_gl.debug_fn.glGenQueriesFn != nullptr);
- g_driver_gl.debug_fn.glGenQueriesFn(n, ids);
-}
-
-static void GL_BINDING_CALL Debug_glGenRenderbuffersEXT(GLsizei n,
- GLuint* renderbuffers) {
- GL_SERVICE_LOG("glGenRenderbuffersEXT"
- << "(" << n << ", " << static_cast<const void*>(renderbuffers)
- << ")");
- DCHECK(g_driver_gl.debug_fn.glGenRenderbuffersEXTFn != nullptr);
- g_driver_gl.debug_fn.glGenRenderbuffersEXTFn(n, renderbuffers);
-}
-
-static void GL_BINDING_CALL Debug_glGenSamplers(GLsizei n, GLuint* samplers) {
- GL_SERVICE_LOG("glGenSamplers"
- << "(" << n << ", " << static_cast<const void*>(samplers)
- << ")");
- DCHECK(g_driver_gl.debug_fn.glGenSamplersFn != nullptr);
- g_driver_gl.debug_fn.glGenSamplersFn(n, samplers);
-}
-
-static void GL_BINDING_CALL Debug_glGenTextures(GLsizei n, GLuint* textures) {
- GL_SERVICE_LOG("glGenTextures"
- << "(" << n << ", " << static_cast<const void*>(textures)
- << ")");
- DCHECK(g_driver_gl.debug_fn.glGenTexturesFn != nullptr);
- g_driver_gl.debug_fn.glGenTexturesFn(n, textures);
-}
-
-static void GL_BINDING_CALL Debug_glGenTransformFeedbacks(GLsizei n,
- GLuint* ids) {
- GL_SERVICE_LOG("glGenTransformFeedbacks"
- << "(" << n << ", " << static_cast<const void*>(ids) << ")");
- DCHECK(g_driver_gl.debug_fn.glGenTransformFeedbacksFn != nullptr);
- g_driver_gl.debug_fn.glGenTransformFeedbacksFn(n, ids);
-}
-
-static void GL_BINDING_CALL Debug_glGenVertexArraysOES(GLsizei n,
- GLuint* arrays) {
- GL_SERVICE_LOG("glGenVertexArraysOES"
- << "(" << n << ", " << static_cast<const void*>(arrays)
- << ")");
- DCHECK(g_driver_gl.debug_fn.glGenVertexArraysOESFn != nullptr);
- g_driver_gl.debug_fn.glGenVertexArraysOESFn(n, arrays);
-}
-
-static void GL_BINDING_CALL Debug_glGetActiveAttrib(GLuint program,
- GLuint index,
- GLsizei bufsize,
- GLsizei* length,
- GLint* size,
- GLenum* type,
- char* name) {
- GL_SERVICE_LOG("glGetActiveAttrib"
- << "(" << program << ", " << index << ", " << bufsize << ", "
- << static_cast<const void*>(length) << ", "
- << static_cast<const void*>(size) << ", "
- << static_cast<const void*>(type) << ", "
- << static_cast<const void*>(name) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetActiveAttribFn != nullptr);
- g_driver_gl.debug_fn.glGetActiveAttribFn(program, index, bufsize, length,
- size, type, name);
-}
-
-static void GL_BINDING_CALL Debug_glGetActiveUniform(GLuint program,
- GLuint index,
- GLsizei bufsize,
- GLsizei* length,
- GLint* size,
- GLenum* type,
- char* name) {
- GL_SERVICE_LOG("glGetActiveUniform"
- << "(" << program << ", " << index << ", " << bufsize << ", "
- << static_cast<const void*>(length) << ", "
- << static_cast<const void*>(size) << ", "
- << static_cast<const void*>(type) << ", "
- << static_cast<const void*>(name) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetActiveUniformFn != nullptr);
- g_driver_gl.debug_fn.glGetActiveUniformFn(program, index, bufsize, length,
- size, type, name);
-}
-
-static void GL_BINDING_CALL
-Debug_glGetActiveUniformBlockiv(GLuint program,
- GLuint uniformBlockIndex,
- GLenum pname,
- GLint* params) {
- GL_SERVICE_LOG("glGetActiveUniformBlockiv"
- << "(" << program << ", " << uniformBlockIndex << ", "
- << GLEnums::GetStringEnum(pname) << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetActiveUniformBlockivFn != nullptr);
- g_driver_gl.debug_fn.glGetActiveUniformBlockivFn(program, uniformBlockIndex,
- pname, params);
-}
-
-static void GL_BINDING_CALL
-Debug_glGetActiveUniformBlockivRobustANGLE(GLuint program,
- GLuint uniformBlockIndex,
- GLenum pname,
- GLsizei bufSize,
- GLsizei* length,
- GLint* params) {
- GL_SERVICE_LOG("glGetActiveUniformBlockivRobustANGLE"
- << "(" << program << ", " << uniformBlockIndex << ", "
- << GLEnums::GetStringEnum(pname) << ", " << bufSize << ", "
- << static_cast<const void*>(length) << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetActiveUniformBlockivRobustANGLEFn !=
- nullptr);
- g_driver_gl.debug_fn.glGetActiveUniformBlockivRobustANGLEFn(
- program, uniformBlockIndex, pname, bufSize, length, params);
-}
-
-static void GL_BINDING_CALL
-Debug_glGetActiveUniformBlockName(GLuint program,
- GLuint uniformBlockIndex,
- GLsizei bufSize,
- GLsizei* length,
- char* uniformBlockName) {
- GL_SERVICE_LOG("glGetActiveUniformBlockName"
- << "(" << program << ", " << uniformBlockIndex << ", "
- << bufSize << ", " << static_cast<const void*>(length) << ", "
- << static_cast<const void*>(uniformBlockName) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetActiveUniformBlockNameFn != nullptr);
- g_driver_gl.debug_fn.glGetActiveUniformBlockNameFn(
- program, uniformBlockIndex, bufSize, length, uniformBlockName);
-}
-
-static void GL_BINDING_CALL
-Debug_glGetActiveUniformsiv(GLuint program,
- GLsizei uniformCount,
- const GLuint* uniformIndices,
- GLenum pname,
- GLint* params) {
- GL_SERVICE_LOG("glGetActiveUniformsiv"
- << "(" << program << ", " << uniformCount << ", "
- << static_cast<const void*>(uniformIndices) << ", "
- << GLEnums::GetStringEnum(pname) << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetActiveUniformsivFn != nullptr);
- g_driver_gl.debug_fn.glGetActiveUniformsivFn(program, uniformCount,
- uniformIndices, pname, params);
-}
-
-static void GL_BINDING_CALL Debug_glGetAttachedShaders(GLuint program,
- GLsizei maxcount,
- GLsizei* count,
- GLuint* shaders) {
- GL_SERVICE_LOG("glGetAttachedShaders"
- << "(" << program << ", " << maxcount << ", "
- << static_cast<const void*>(count) << ", "
- << static_cast<const void*>(shaders) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetAttachedShadersFn != nullptr);
- g_driver_gl.debug_fn.glGetAttachedShadersFn(program, maxcount, count,
- shaders);
-}
-
-static GLint GL_BINDING_CALL Debug_glGetAttribLocation(GLuint program,
- const char* name) {
- GL_SERVICE_LOG("glGetAttribLocation"
- << "(" << program << ", " << name << ")");
- DCHECK(g_driver_gl.debug_fn.glGetAttribLocationFn != nullptr);
- GLint result = g_driver_gl.debug_fn.glGetAttribLocationFn(program, name);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static void GL_BINDING_CALL Debug_glGetBooleani_vRobustANGLE(GLenum target,
- GLuint index,
- GLsizei bufSize,
- GLsizei* length,
- GLboolean* data) {
- GL_SERVICE_LOG("glGetBooleani_vRobustANGLE"
- << "(" << GLEnums::GetStringEnum(target) << ", " << index
- << ", " << bufSize << ", " << static_cast<const void*>(length)
- << ", " << static_cast<const void*>(data) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetBooleani_vRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glGetBooleani_vRobustANGLEFn(target, index, bufSize,
- length, data);
-}
-
-static void GL_BINDING_CALL Debug_glGetBooleanv(GLenum pname,
- GLboolean* params) {
- GL_SERVICE_LOG("glGetBooleanv"
- << "(" << GLEnums::GetStringEnum(pname) << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetBooleanvFn != nullptr);
- g_driver_gl.debug_fn.glGetBooleanvFn(pname, params);
-}
-
-static void GL_BINDING_CALL Debug_glGetBooleanvRobustANGLE(GLenum pname,
- GLsizei bufSize,
- GLsizei* length,
- GLboolean* data) {
- GL_SERVICE_LOG("glGetBooleanvRobustANGLE"
- << "(" << GLEnums::GetStringEnum(pname) << ", " << bufSize
- << ", " << static_cast<const void*>(length) << ", "
- << static_cast<const void*>(data) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetBooleanvRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glGetBooleanvRobustANGLEFn(pname, bufSize, length, data);
-}
-
-static void GL_BINDING_CALL
-Debug_glGetBufferParameteri64vRobustANGLE(GLenum target,
- GLenum pname,
- GLsizei bufSize,
- GLsizei* length,
- GLint64* params) {
- GL_SERVICE_LOG("glGetBufferParameteri64vRobustANGLE"
- << "(" << GLEnums::GetStringEnum(target) << ", "
- << GLEnums::GetStringEnum(pname) << ", " << bufSize << ", "
- << static_cast<const void*>(length) << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetBufferParameteri64vRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glGetBufferParameteri64vRobustANGLEFn(
- target, pname, bufSize, length, params);
-}
-
-static void GL_BINDING_CALL Debug_glGetBufferParameteriv(GLenum target,
- GLenum pname,
- GLint* params) {
- GL_SERVICE_LOG("glGetBufferParameteriv"
- << "(" << GLEnums::GetStringEnum(target) << ", "
- << GLEnums::GetStringEnum(pname) << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetBufferParameterivFn != nullptr);
- g_driver_gl.debug_fn.glGetBufferParameterivFn(target, pname, params);
-}
-
-static void GL_BINDING_CALL
-Debug_glGetBufferParameterivRobustANGLE(GLenum target,
- GLenum pname,
- GLsizei bufSize,
- GLsizei* length,
- GLint* params) {
- GL_SERVICE_LOG("glGetBufferParameterivRobustANGLE"
- << "(" << GLEnums::GetStringEnum(target) << ", "
- << GLEnums::GetStringEnum(pname) << ", " << bufSize << ", "
- << static_cast<const void*>(length) << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetBufferParameterivRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glGetBufferParameterivRobustANGLEFn(
- target, pname, bufSize, length, params);
-}
-
-static void GL_BINDING_CALL
-Debug_glGetBufferPointervRobustANGLE(GLenum target,
- GLenum pname,
- GLsizei bufSize,
- GLsizei* length,
- void** params) {
- GL_SERVICE_LOG("glGetBufferPointervRobustANGLE"
- << "(" << GLEnums::GetStringEnum(target) << ", "
- << GLEnums::GetStringEnum(pname) << ", " << bufSize << ", "
- << static_cast<const void*>(length) << ", " << params << ")");
- DCHECK(g_driver_gl.debug_fn.glGetBufferPointervRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glGetBufferPointervRobustANGLEFn(target, pname, bufSize,
- length, params);
-}
-
-static void GL_BINDING_CALL Debug_glGetDebugMessageLog(GLuint count,
- GLsizei bufSize,
- GLenum* sources,
- GLenum* types,
- GLuint* ids,
- GLenum* severities,
- GLsizei* lengths,
- char* messageLog) {
- GL_SERVICE_LOG("glGetDebugMessageLog"
- << "(" << count << ", " << bufSize << ", "
- << static_cast<const void*>(sources) << ", "
- << static_cast<const void*>(types) << ", "
- << static_cast<const void*>(ids) << ", "
- << static_cast<const void*>(severities) << ", "
- << static_cast<const void*>(lengths) << ", "
- << static_cast<const void*>(messageLog) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetDebugMessageLogFn != nullptr);
- g_driver_gl.debug_fn.glGetDebugMessageLogFn(
- count, bufSize, sources, types, ids, severities, lengths, messageLog);
-}
-
-static GLenum GL_BINDING_CALL Debug_glGetError(void) {
- GL_SERVICE_LOG("glGetError"
- << "("
- << ")");
- DCHECK(g_driver_gl.debug_fn.glGetErrorFn != nullptr);
- GLenum result = g_driver_gl.debug_fn.glGetErrorFn();
-
- GL_SERVICE_LOG("GL_RESULT: " << GLEnums::GetStringError(result));
-
- return result;
-}
-
-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) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetFenceivNVFn != nullptr);
- g_driver_gl.debug_fn.glGetFenceivNVFn(fence, pname, params);
-}
-
-static void GL_BINDING_CALL Debug_glGetFloatv(GLenum pname, GLfloat* params) {
- GL_SERVICE_LOG("glGetFloatv"
- << "(" << GLEnums::GetStringEnum(pname) << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetFloatvFn != nullptr);
- g_driver_gl.debug_fn.glGetFloatvFn(pname, params);
-}
-
-static void GL_BINDING_CALL Debug_glGetFloatvRobustANGLE(GLenum pname,
- GLsizei bufSize,
- GLsizei* length,
- GLfloat* data) {
- GL_SERVICE_LOG("glGetFloatvRobustANGLE"
- << "(" << GLEnums::GetStringEnum(pname) << ", " << bufSize
- << ", " << static_cast<const void*>(length) << ", "
- << static_cast<const void*>(data) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetFloatvRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glGetFloatvRobustANGLEFn(pname, bufSize, length, data);
-}
-
-static GLint GL_BINDING_CALL Debug_glGetFragDataIndex(GLuint program,
- const char* name) {
- GL_SERVICE_LOG("glGetFragDataIndex"
- << "(" << program << ", " << name << ")");
- DCHECK(g_driver_gl.debug_fn.glGetFragDataIndexFn != nullptr);
- GLint result = g_driver_gl.debug_fn.glGetFragDataIndexFn(program, name);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static GLint GL_BINDING_CALL Debug_glGetFragDataLocation(GLuint program,
- const char* name) {
- GL_SERVICE_LOG("glGetFragDataLocation"
- << "(" << program << ", " << name << ")");
- DCHECK(g_driver_gl.debug_fn.glGetFragDataLocationFn != nullptr);
- GLint result = g_driver_gl.debug_fn.glGetFragDataLocationFn(program, name);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static void GL_BINDING_CALL
-Debug_glGetFramebufferAttachmentParameterivEXT(GLenum target,
- GLenum attachment,
- GLenum pname,
- GLint* params) {
- GL_SERVICE_LOG("glGetFramebufferAttachmentParameterivEXT"
- << "(" << GLEnums::GetStringEnum(target) << ", "
- << GLEnums::GetStringEnum(attachment) << ", "
- << GLEnums::GetStringEnum(pname) << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetFramebufferAttachmentParameterivEXTFn !=
- nullptr);
- g_driver_gl.debug_fn.glGetFramebufferAttachmentParameterivEXTFn(
- target, attachment, pname, params);
-}
-
-static void GL_BINDING_CALL
-Debug_glGetFramebufferAttachmentParameterivRobustANGLE(GLenum target,
- GLenum attachment,
- GLenum pname,
- GLsizei bufSize,
- GLsizei* length,
- GLint* params) {
- GL_SERVICE_LOG("glGetFramebufferAttachmentParameterivRobustANGLE"
- << "(" << GLEnums::GetStringEnum(target) << ", "
- << GLEnums::GetStringEnum(attachment) << ", "
- << GLEnums::GetStringEnum(pname) << ", " << bufSize << ", "
- << static_cast<const void*>(length) << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(
- g_driver_gl.debug_fn.glGetFramebufferAttachmentParameterivRobustANGLEFn !=
- nullptr);
- g_driver_gl.debug_fn.glGetFramebufferAttachmentParameterivRobustANGLEFn(
- target, attachment, pname, bufSize, length, params);
-}
-
-static void GL_BINDING_CALL
-Debug_glGetFramebufferParameterivRobustANGLE(GLenum target,
- GLenum pname,
- GLsizei bufSize,
- GLsizei* length,
- GLint* params) {
- GL_SERVICE_LOG("glGetFramebufferParameterivRobustANGLE"
- << "(" << GLEnums::GetStringEnum(target) << ", "
- << GLEnums::GetStringEnum(pname) << ", " << bufSize << ", "
- << static_cast<const void*>(length) << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetFramebufferParameterivRobustANGLEFn !=
- nullptr);
- g_driver_gl.debug_fn.glGetFramebufferParameterivRobustANGLEFn(
- target, pname, bufSize, length, params);
-}
-
-static GLenum GL_BINDING_CALL Debug_glGetGraphicsResetStatusARB(void) {
- GL_SERVICE_LOG("glGetGraphicsResetStatusARB"
- << "("
- << ")");
- DCHECK(g_driver_gl.debug_fn.glGetGraphicsResetStatusARBFn != nullptr);
- GLenum result = g_driver_gl.debug_fn.glGetGraphicsResetStatusARBFn();
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-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) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetInteger64i_vFn != nullptr);
- g_driver_gl.debug_fn.glGetInteger64i_vFn(target, index, data);
-}
-
-static void GL_BINDING_CALL Debug_glGetInteger64i_vRobustANGLE(GLenum target,
- GLuint index,
- GLsizei bufSize,
- GLsizei* length,
- GLint64* data) {
- GL_SERVICE_LOG("glGetInteger64i_vRobustANGLE"
- << "(" << GLEnums::GetStringEnum(target) << ", " << index
- << ", " << bufSize << ", " << static_cast<const void*>(length)
- << ", " << static_cast<const void*>(data) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetInteger64i_vRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glGetInteger64i_vRobustANGLEFn(target, index, bufSize,
- length, data);
-}
-
-static void GL_BINDING_CALL Debug_glGetInteger64v(GLenum pname,
- GLint64* params) {
- GL_SERVICE_LOG("glGetInteger64v"
- << "(" << GLEnums::GetStringEnum(pname) << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetInteger64vFn != nullptr);
- g_driver_gl.debug_fn.glGetInteger64vFn(pname, params);
-}
-
-static void GL_BINDING_CALL Debug_glGetInteger64vRobustANGLE(GLenum pname,
- GLsizei bufSize,
- GLsizei* length,
- GLint64* data) {
- GL_SERVICE_LOG("glGetInteger64vRobustANGLE"
- << "(" << GLEnums::GetStringEnum(pname) << ", " << bufSize
- << ", " << static_cast<const void*>(length) << ", "
- << static_cast<const void*>(data) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetInteger64vRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glGetInteger64vRobustANGLEFn(pname, bufSize, length,
- 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) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetIntegeri_vFn != nullptr);
- g_driver_gl.debug_fn.glGetIntegeri_vFn(target, index, data);
-}
-
-static void GL_BINDING_CALL Debug_glGetIntegeri_vRobustANGLE(GLenum target,
- GLuint index,
- GLsizei bufSize,
- GLsizei* length,
- GLint* data) {
- GL_SERVICE_LOG("glGetIntegeri_vRobustANGLE"
- << "(" << GLEnums::GetStringEnum(target) << ", " << index
- << ", " << bufSize << ", " << static_cast<const void*>(length)
- << ", " << static_cast<const void*>(data) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetIntegeri_vRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glGetIntegeri_vRobustANGLEFn(target, index, bufSize,
- length, data);
-}
-
-static void GL_BINDING_CALL Debug_glGetIntegerv(GLenum pname, GLint* params) {
- GL_SERVICE_LOG("glGetIntegerv"
- << "(" << GLEnums::GetStringEnum(pname) << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetIntegervFn != nullptr);
- g_driver_gl.debug_fn.glGetIntegervFn(pname, params);
-}
-
-static void GL_BINDING_CALL Debug_glGetIntegervRobustANGLE(GLenum pname,
- GLsizei bufSize,
- GLsizei* length,
- GLint* data) {
- GL_SERVICE_LOG("glGetIntegervRobustANGLE"
- << "(" << GLEnums::GetStringEnum(pname) << ", " << bufSize
- << ", " << static_cast<const void*>(length) << ", "
- << static_cast<const void*>(data) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetIntegervRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glGetIntegervRobustANGLEFn(pname, bufSize, length, data);
-}
-
-static void GL_BINDING_CALL Debug_glGetInternalformativ(GLenum target,
- GLenum internalformat,
- GLenum pname,
- GLsizei bufSize,
- GLint* params) {
- GL_SERVICE_LOG("glGetInternalformativ"
- << "(" << GLEnums::GetStringEnum(target) << ", "
- << GLEnums::GetStringEnum(internalformat) << ", "
- << GLEnums::GetStringEnum(pname) << ", " << bufSize << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetInternalformativFn != nullptr);
- g_driver_gl.debug_fn.glGetInternalformativFn(target, internalformat, pname,
- bufSize, params);
-}
-
-static void GL_BINDING_CALL
-Debug_glGetInternalformativRobustANGLE(GLenum target,
- GLenum internalformat,
- GLenum pname,
- GLsizei bufSize,
- GLsizei* length,
- GLint* params) {
- GL_SERVICE_LOG("glGetInternalformativRobustANGLE"
- << "(" << GLEnums::GetStringEnum(target) << ", "
- << GLEnums::GetStringEnum(internalformat) << ", "
- << GLEnums::GetStringEnum(pname) << ", " << bufSize << ", "
- << static_cast<const void*>(length) << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetInternalformativRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glGetInternalformativRobustANGLEFn(
- target, internalformat, pname, bufSize, length, params);
-}
-
-static void GL_BINDING_CALL Debug_glGetMultisamplefvRobustANGLE(GLenum pname,
- GLuint index,
- GLsizei bufSize,
- GLsizei* length,
- GLfloat* val) {
- GL_SERVICE_LOG("glGetMultisamplefvRobustANGLE"
- << "(" << GLEnums::GetStringEnum(pname) << ", " << index
- << ", " << bufSize << ", " << static_cast<const void*>(length)
- << ", " << static_cast<const void*>(val) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetMultisamplefvRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glGetMultisamplefvRobustANGLEFn(pname, index, bufSize,
- length, val);
-}
-
-static void GL_BINDING_CALL Debug_glGetnUniformfvRobustANGLE(GLuint program,
- GLint location,
- GLsizei bufSize,
- GLsizei* length,
- GLfloat* params) {
- GL_SERVICE_LOG("glGetnUniformfvRobustANGLE"
- << "(" << program << ", " << location << ", " << bufSize
- << ", " << static_cast<const void*>(length) << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetnUniformfvRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glGetnUniformfvRobustANGLEFn(program, location, bufSize,
- length, params);
-}
-
-static void GL_BINDING_CALL Debug_glGetnUniformivRobustANGLE(GLuint program,
- GLint location,
- GLsizei bufSize,
- GLsizei* length,
- GLint* params) {
- GL_SERVICE_LOG("glGetnUniformivRobustANGLE"
- << "(" << program << ", " << location << ", " << bufSize
- << ", " << static_cast<const void*>(length) << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetnUniformivRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glGetnUniformivRobustANGLEFn(program, location, bufSize,
- length, params);
-}
-
-static void GL_BINDING_CALL Debug_glGetnUniformuivRobustANGLE(GLuint program,
- GLint location,
- GLsizei bufSize,
- GLsizei* length,
- GLuint* params) {
- GL_SERVICE_LOG("glGetnUniformuivRobustANGLE"
- << "(" << program << ", " << location << ", " << bufSize
- << ", " << static_cast<const void*>(length) << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetnUniformuivRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glGetnUniformuivRobustANGLEFn(program, location, bufSize,
- length, params);
-}
-
-static void GL_BINDING_CALL Debug_glGetObjectLabel(GLenum identifier,
- GLuint name,
- GLsizei bufSize,
- GLsizei* length,
- char* label) {
- GL_SERVICE_LOG("glGetObjectLabel"
- << "(" << GLEnums::GetStringEnum(identifier) << ", " << name
- << ", " << bufSize << ", " << static_cast<const void*>(length)
- << ", " << static_cast<const void*>(label) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetObjectLabelFn != nullptr);
- g_driver_gl.debug_fn.glGetObjectLabelFn(identifier, name, bufSize, length,
- label);
-}
-
-static void GL_BINDING_CALL Debug_glGetObjectPtrLabel(void* ptr,
- GLsizei bufSize,
- GLsizei* length,
- char* label) {
- GL_SERVICE_LOG("glGetObjectPtrLabel"
- << "(" << static_cast<const void*>(ptr) << ", " << bufSize
- << ", " << static_cast<const void*>(length) << ", "
- << static_cast<const void*>(label) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetObjectPtrLabelFn != nullptr);
- g_driver_gl.debug_fn.glGetObjectPtrLabelFn(ptr, bufSize, length, label);
-}
-
-static void GL_BINDING_CALL Debug_glGetPointerv(GLenum pname, void** params) {
- GL_SERVICE_LOG("glGetPointerv"
- << "(" << GLEnums::GetStringEnum(pname) << ", " << params
- << ")");
- DCHECK(g_driver_gl.debug_fn.glGetPointervFn != nullptr);
- g_driver_gl.debug_fn.glGetPointervFn(pname, params);
-}
-
-static void GL_BINDING_CALL
-Debug_glGetPointervRobustANGLERobustANGLE(GLenum pname,
- GLsizei bufSize,
- GLsizei* length,
- void** params) {
- GL_SERVICE_LOG("glGetPointervRobustANGLERobustANGLE"
- << "(" << GLEnums::GetStringEnum(pname) << ", " << bufSize
- << ", " << static_cast<const void*>(length) << ", " << params
- << ")");
- DCHECK(g_driver_gl.debug_fn.glGetPointervRobustANGLERobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glGetPointervRobustANGLERobustANGLEFn(pname, bufSize,
- length, params);
-}
-
-static void GL_BINDING_CALL Debug_glGetProgramBinary(GLuint program,
- GLsizei bufSize,
- GLsizei* length,
- GLenum* binaryFormat,
- GLvoid* binary) {
- GL_SERVICE_LOG("glGetProgramBinary"
- << "(" << program << ", " << bufSize << ", "
- << static_cast<const void*>(length) << ", "
- << static_cast<const void*>(binaryFormat) << ", "
- << static_cast<const void*>(binary) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetProgramBinaryFn != nullptr);
- g_driver_gl.debug_fn.glGetProgramBinaryFn(program, bufSize, length,
- binaryFormat, binary);
-}
-
-static void GL_BINDING_CALL Debug_glGetProgramInfoLog(GLuint program,
- GLsizei bufsize,
- GLsizei* length,
- char* infolog) {
- GL_SERVICE_LOG("glGetProgramInfoLog"
- << "(" << program << ", " << bufsize << ", "
- << static_cast<const void*>(length) << ", "
- << static_cast<const void*>(infolog) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetProgramInfoLogFn != nullptr);
- g_driver_gl.debug_fn.glGetProgramInfoLogFn(program, bufsize, length, infolog);
-}
-
-static void GL_BINDING_CALL
-Debug_glGetProgramInterfaceiv(GLuint program,
- GLenum programInterface,
- GLenum pname,
- GLint* params) {
- GL_SERVICE_LOG("glGetProgramInterfaceiv"
- << "(" << program << ", "
- << GLEnums::GetStringEnum(programInterface) << ", "
- << GLEnums::GetStringEnum(pname) << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetProgramInterfaceivFn != nullptr);
- g_driver_gl.debug_fn.glGetProgramInterfaceivFn(program, programInterface,
- pname, params);
-}
-
-static void GL_BINDING_CALL
-Debug_glGetProgramInterfaceivRobustANGLE(GLuint program,
- GLenum programInterface,
- GLenum pname,
- GLsizei bufSize,
- GLsizei* length,
- GLint* params) {
- GL_SERVICE_LOG("glGetProgramInterfaceivRobustANGLE"
- << "(" << program << ", "
- << GLEnums::GetStringEnum(programInterface) << ", "
- << GLEnums::GetStringEnum(pname) << ", " << bufSize << ", "
- << static_cast<const void*>(length) << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetProgramInterfaceivRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glGetProgramInterfaceivRobustANGLEFn(
- program, programInterface, pname, bufSize, length, 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) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetProgramivFn != nullptr);
- g_driver_gl.debug_fn.glGetProgramivFn(program, pname, params);
-}
-
-static void GL_BINDING_CALL Debug_glGetProgramivRobustANGLE(GLuint program,
- GLenum pname,
- GLsizei bufSize,
- GLsizei* length,
- GLint* params) {
- GL_SERVICE_LOG("glGetProgramivRobustANGLE"
- << "(" << program << ", " << GLEnums::GetStringEnum(pname)
- << ", " << bufSize << ", " << static_cast<const void*>(length)
- << ", " << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetProgramivRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glGetProgramivRobustANGLEFn(program, pname, bufSize,
- length, params);
-}
-
-static void GL_BINDING_CALL
-Debug_glGetProgramResourceiv(GLuint program,
- GLenum programInterface,
- GLuint index,
- GLsizei propCount,
- const GLenum* props,
- GLsizei bufSize,
- GLsizei* length,
- GLint* params) {
- GL_SERVICE_LOG("glGetProgramResourceiv"
- << "(" << program << ", "
- << GLEnums::GetStringEnum(programInterface) << ", " << index
- << ", " << propCount << ", " << static_cast<const void*>(props)
- << ", " << bufSize << ", " << static_cast<const void*>(length)
- << ", " << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetProgramResourceivFn != nullptr);
- g_driver_gl.debug_fn.glGetProgramResourceivFn(program, programInterface,
- index, propCount, props,
- bufSize, length, params);
-}
-
-static GLint GL_BINDING_CALL
-Debug_glGetProgramResourceLocation(GLuint program,
- GLenum programInterface,
- const char* name) {
- GL_SERVICE_LOG("glGetProgramResourceLocation"
- << "(" << program << ", "
- << GLEnums::GetStringEnum(programInterface) << ", " << name
- << ")");
- DCHECK(g_driver_gl.debug_fn.glGetProgramResourceLocationFn != nullptr);
- GLint result = g_driver_gl.debug_fn.glGetProgramResourceLocationFn(
- program, programInterface, name);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static void GL_BINDING_CALL
-Debug_glGetProgramResourceName(GLuint program,
- GLenum programInterface,
- GLuint index,
- GLsizei bufSize,
- GLsizei* length,
- GLchar* name) {
- GL_SERVICE_LOG("glGetProgramResourceName"
- << "(" << program << ", "
- << GLEnums::GetStringEnum(programInterface) << ", " << index
- << ", " << bufSize << ", " << static_cast<const void*>(length)
- << ", " << static_cast<const void*>(name) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetProgramResourceNameFn != nullptr);
- g_driver_gl.debug_fn.glGetProgramResourceNameFn(program, programInterface,
- index, bufSize, length, name);
-}
-
-static void GL_BINDING_CALL Debug_glGetQueryiv(GLenum target,
- GLenum pname,
- GLint* params) {
- GL_SERVICE_LOG("glGetQueryiv"
- << "(" << GLEnums::GetStringEnum(target) << ", "
- << GLEnums::GetStringEnum(pname) << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetQueryivFn != nullptr);
- g_driver_gl.debug_fn.glGetQueryivFn(target, pname, params);
-}
-
-static void GL_BINDING_CALL Debug_glGetQueryivRobustANGLE(GLenum target,
- GLenum pname,
- GLsizei bufSize,
- GLsizei* length,
- GLint* params) {
- GL_SERVICE_LOG("glGetQueryivRobustANGLE"
- << "(" << GLEnums::GetStringEnum(target) << ", "
- << GLEnums::GetStringEnum(pname) << ", " << bufSize << ", "
- << static_cast<const void*>(length) << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetQueryivRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glGetQueryivRobustANGLEFn(target, pname, bufSize, length,
- 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) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetQueryObjecti64vFn != nullptr);
- g_driver_gl.debug_fn.glGetQueryObjecti64vFn(id, pname, params);
-}
-
-static void GL_BINDING_CALL
-Debug_glGetQueryObjecti64vRobustANGLE(GLuint id,
- GLenum pname,
- GLsizei bufSize,
- GLsizei* length,
- GLint64* params) {
- GL_SERVICE_LOG("glGetQueryObjecti64vRobustANGLE"
- << "(" << id << ", " << GLEnums::GetStringEnum(pname) << ", "
- << bufSize << ", " << static_cast<const void*>(length) << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetQueryObjecti64vRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glGetQueryObjecti64vRobustANGLEFn(id, pname, bufSize,
- length, 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) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetQueryObjectivFn != nullptr);
- g_driver_gl.debug_fn.glGetQueryObjectivFn(id, pname, params);
-}
-
-static void GL_BINDING_CALL Debug_glGetQueryObjectivRobustANGLE(GLuint id,
- GLenum pname,
- GLsizei bufSize,
- GLsizei* length,
- GLint* params) {
- GL_SERVICE_LOG("glGetQueryObjectivRobustANGLE"
- << "(" << id << ", " << GLEnums::GetStringEnum(pname) << ", "
- << bufSize << ", " << static_cast<const void*>(length) << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetQueryObjectivRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glGetQueryObjectivRobustANGLEFn(id, pname, bufSize,
- length, 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) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetQueryObjectui64vFn != nullptr);
- g_driver_gl.debug_fn.glGetQueryObjectui64vFn(id, pname, params);
-}
-
-static void GL_BINDING_CALL
-Debug_glGetQueryObjectui64vRobustANGLE(GLuint id,
- GLenum pname,
- GLsizei bufSize,
- GLsizei* length,
- GLuint64* params) {
- GL_SERVICE_LOG("glGetQueryObjectui64vRobustANGLE"
- << "(" << id << ", " << GLEnums::GetStringEnum(pname) << ", "
- << bufSize << ", " << static_cast<const void*>(length) << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetQueryObjectui64vRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glGetQueryObjectui64vRobustANGLEFn(id, pname, bufSize,
- length, 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) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetQueryObjectuivFn != nullptr);
- g_driver_gl.debug_fn.glGetQueryObjectuivFn(id, pname, params);
-}
-
-static void GL_BINDING_CALL
-Debug_glGetQueryObjectuivRobustANGLE(GLuint id,
- GLenum pname,
- GLsizei bufSize,
- GLsizei* length,
- GLuint* params) {
- GL_SERVICE_LOG("glGetQueryObjectuivRobustANGLE"
- << "(" << id << ", " << GLEnums::GetStringEnum(pname) << ", "
- << bufSize << ", " << static_cast<const void*>(length) << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetQueryObjectuivRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glGetQueryObjectuivRobustANGLEFn(id, pname, bufSize,
- length, params);
-}
-
-static void GL_BINDING_CALL
-Debug_glGetRenderbufferParameterivEXT(GLenum target,
- GLenum pname,
- GLint* params) {
- GL_SERVICE_LOG("glGetRenderbufferParameterivEXT"
- << "(" << GLEnums::GetStringEnum(target) << ", "
- << GLEnums::GetStringEnum(pname) << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetRenderbufferParameterivEXTFn != nullptr);
- g_driver_gl.debug_fn.glGetRenderbufferParameterivEXTFn(target, pname, params);
-}
-
-static void GL_BINDING_CALL
-Debug_glGetRenderbufferParameterivRobustANGLE(GLenum target,
- GLenum pname,
- GLsizei bufSize,
- GLsizei* length,
- GLint* params) {
- GL_SERVICE_LOG("glGetRenderbufferParameterivRobustANGLE"
- << "(" << GLEnums::GetStringEnum(target) << ", "
- << GLEnums::GetStringEnum(pname) << ", " << bufSize << ", "
- << static_cast<const void*>(length) << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetRenderbufferParameterivRobustANGLEFn !=
- nullptr);
- g_driver_gl.debug_fn.glGetRenderbufferParameterivRobustANGLEFn(
- target, pname, bufSize, length, 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) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetSamplerParameterfvFn != nullptr);
- g_driver_gl.debug_fn.glGetSamplerParameterfvFn(sampler, pname, params);
-}
-
-static void GL_BINDING_CALL
-Debug_glGetSamplerParameterfvRobustANGLE(GLuint sampler,
- GLenum pname,
- GLsizei bufSize,
- GLsizei* length,
- GLfloat* params) {
- GL_SERVICE_LOG("glGetSamplerParameterfvRobustANGLE"
- << "(" << sampler << ", " << GLEnums::GetStringEnum(pname)
- << ", " << bufSize << ", " << static_cast<const void*>(length)
- << ", " << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetSamplerParameterfvRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glGetSamplerParameterfvRobustANGLEFn(
- sampler, pname, bufSize, length, params);
-}
-
-static void GL_BINDING_CALL
-Debug_glGetSamplerParameterIivRobustANGLE(GLuint sampler,
- GLenum pname,
- GLsizei bufSize,
- GLsizei* length,
- GLint* params) {
- GL_SERVICE_LOG("glGetSamplerParameterIivRobustANGLE"
- << "(" << sampler << ", " << GLEnums::GetStringEnum(pname)
- << ", " << bufSize << ", " << static_cast<const void*>(length)
- << ", " << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetSamplerParameterIivRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glGetSamplerParameterIivRobustANGLEFn(
- sampler, pname, bufSize, length, params);
-}
-
-static void GL_BINDING_CALL
-Debug_glGetSamplerParameterIuivRobustANGLE(GLuint sampler,
- GLenum pname,
- GLsizei bufSize,
- GLsizei* length,
- GLuint* params) {
- GL_SERVICE_LOG("glGetSamplerParameterIuivRobustANGLE"
- << "(" << sampler << ", " << GLEnums::GetStringEnum(pname)
- << ", " << bufSize << ", " << static_cast<const void*>(length)
- << ", " << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetSamplerParameterIuivRobustANGLEFn !=
- nullptr);
- g_driver_gl.debug_fn.glGetSamplerParameterIuivRobustANGLEFn(
- sampler, pname, bufSize, length, 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) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetSamplerParameterivFn != nullptr);
- g_driver_gl.debug_fn.glGetSamplerParameterivFn(sampler, pname, params);
-}
-
-static void GL_BINDING_CALL
-Debug_glGetSamplerParameterivRobustANGLE(GLuint sampler,
- GLenum pname,
- GLsizei bufSize,
- GLsizei* length,
- GLint* params) {
- GL_SERVICE_LOG("glGetSamplerParameterivRobustANGLE"
- << "(" << sampler << ", " << GLEnums::GetStringEnum(pname)
- << ", " << bufSize << ", " << static_cast<const void*>(length)
- << ", " << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetSamplerParameterivRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glGetSamplerParameterivRobustANGLEFn(
- sampler, pname, bufSize, length, params);
-}
-
-static void GL_BINDING_CALL Debug_glGetShaderInfoLog(GLuint shader,
- GLsizei bufsize,
- GLsizei* length,
- char* infolog) {
- GL_SERVICE_LOG("glGetShaderInfoLog"
- << "(" << shader << ", " << bufsize << ", "
- << static_cast<const void*>(length) << ", "
- << static_cast<const void*>(infolog) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetShaderInfoLogFn != nullptr);
- g_driver_gl.debug_fn.glGetShaderInfoLogFn(shader, bufsize, length, infolog);
-}
-
-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) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetShaderivFn != nullptr);
- g_driver_gl.debug_fn.glGetShaderivFn(shader, pname, params);
-}
-
-static void GL_BINDING_CALL Debug_glGetShaderivRobustANGLE(GLuint shader,
- GLenum pname,
- GLsizei bufSize,
- GLsizei* length,
- GLint* params) {
- GL_SERVICE_LOG("glGetShaderivRobustANGLE"
- << "(" << shader << ", " << GLEnums::GetStringEnum(pname)
- << ", " << bufSize << ", " << static_cast<const void*>(length)
- << ", " << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetShaderivRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glGetShaderivRobustANGLEFn(shader, pname, bufSize,
- length, params);
-}
-
-static void GL_BINDING_CALL
-Debug_glGetShaderPrecisionFormat(GLenum shadertype,
- GLenum precisiontype,
- GLint* range,
- GLint* precision) {
- GL_SERVICE_LOG("glGetShaderPrecisionFormat"
- << "(" << GLEnums::GetStringEnum(shadertype) << ", "
- << GLEnums::GetStringEnum(precisiontype) << ", "
- << static_cast<const void*>(range) << ", "
- << static_cast<const void*>(precision) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetShaderPrecisionFormatFn != nullptr);
- g_driver_gl.debug_fn.glGetShaderPrecisionFormatFn(shadertype, precisiontype,
- range, precision);
-}
-
-static void GL_BINDING_CALL Debug_glGetShaderSource(GLuint shader,
- GLsizei bufsize,
- GLsizei* length,
- char* source) {
- GL_SERVICE_LOG("glGetShaderSource"
- << "(" << shader << ", " << bufsize << ", "
- << static_cast<const void*>(length) << ", "
- << static_cast<const void*>(source) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetShaderSourceFn != nullptr);
- g_driver_gl.debug_fn.glGetShaderSourceFn(shader, bufsize, length, source);
-}
-
-static const GLubyte* GL_BINDING_CALL Debug_glGetString(GLenum name) {
- GL_SERVICE_LOG("glGetString"
- << "(" << GLEnums::GetStringEnum(name) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetStringFn != nullptr);
- const GLubyte* result = g_driver_gl.debug_fn.glGetStringFn(name);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static const GLubyte* GL_BINDING_CALL Debug_glGetStringi(GLenum name,
- GLuint index) {
- GL_SERVICE_LOG("glGetStringi"
- << "(" << GLEnums::GetStringEnum(name) << ", " << index
- << ")");
- DCHECK(g_driver_gl.debug_fn.glGetStringiFn != nullptr);
- const GLubyte* result = g_driver_gl.debug_fn.glGetStringiFn(name, index);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static void GL_BINDING_CALL Debug_glGetSynciv(GLsync sync,
- GLenum pname,
- GLsizei bufSize,
- GLsizei* length,
- GLint* values) {
- GL_SERVICE_LOG("glGetSynciv"
- << "(" << sync << ", " << GLEnums::GetStringEnum(pname) << ", "
- << bufSize << ", " << static_cast<const void*>(length) << ", "
- << static_cast<const void*>(values) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetSyncivFn != nullptr);
- g_driver_gl.debug_fn.glGetSyncivFn(sync, pname, bufSize, length, values);
-}
-
-static void GL_BINDING_CALL Debug_glGetTexLevelParameterfv(GLenum target,
- GLint level,
- GLenum pname,
- GLfloat* params) {
- GL_SERVICE_LOG("glGetTexLevelParameterfv"
- << "(" << GLEnums::GetStringEnum(target) << ", " << level
- << ", " << GLEnums::GetStringEnum(pname) << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetTexLevelParameterfvFn != nullptr);
- g_driver_gl.debug_fn.glGetTexLevelParameterfvFn(target, level, pname, params);
-}
-
-static void GL_BINDING_CALL
-Debug_glGetTexLevelParameterfvRobustANGLE(GLenum target,
- GLint level,
- GLenum pname,
- GLsizei bufSize,
- GLsizei* length,
- GLfloat* params) {
- GL_SERVICE_LOG("glGetTexLevelParameterfvRobustANGLE"
- << "(" << GLEnums::GetStringEnum(target) << ", " << level
- << ", " << GLEnums::GetStringEnum(pname) << ", " << bufSize
- << ", " << static_cast<const void*>(length) << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetTexLevelParameterfvRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glGetTexLevelParameterfvRobustANGLEFn(
- target, level, pname, bufSize, length, params);
-}
-
-static void GL_BINDING_CALL Debug_glGetTexLevelParameteriv(GLenum target,
- GLint level,
- GLenum pname,
- GLint* params) {
- GL_SERVICE_LOG("glGetTexLevelParameteriv"
- << "(" << GLEnums::GetStringEnum(target) << ", " << level
- << ", " << GLEnums::GetStringEnum(pname) << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetTexLevelParameterivFn != nullptr);
- g_driver_gl.debug_fn.glGetTexLevelParameterivFn(target, level, pname, params);
-}
-
-static void GL_BINDING_CALL
-Debug_glGetTexLevelParameterivRobustANGLE(GLenum target,
- GLint level,
- GLenum pname,
- GLsizei bufSize,
- GLsizei* length,
- GLint* params) {
- GL_SERVICE_LOG("glGetTexLevelParameterivRobustANGLE"
- << "(" << GLEnums::GetStringEnum(target) << ", " << level
- << ", " << GLEnums::GetStringEnum(pname) << ", " << bufSize
- << ", " << static_cast<const void*>(length) << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetTexLevelParameterivRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glGetTexLevelParameterivRobustANGLEFn(
- target, level, pname, bufSize, length, params);
-}
-
-static void GL_BINDING_CALL Debug_glGetTexParameterfv(GLenum target,
- GLenum pname,
- GLfloat* params) {
- GL_SERVICE_LOG("glGetTexParameterfv"
- << "(" << GLEnums::GetStringEnum(target) << ", "
- << GLEnums::GetStringEnum(pname) << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetTexParameterfvFn != nullptr);
- g_driver_gl.debug_fn.glGetTexParameterfvFn(target, pname, params);
-}
-
-static void GL_BINDING_CALL
-Debug_glGetTexParameterfvRobustANGLE(GLenum target,
- GLenum pname,
- GLsizei bufSize,
- GLsizei* length,
- GLfloat* params) {
- GL_SERVICE_LOG("glGetTexParameterfvRobustANGLE"
- << "(" << GLEnums::GetStringEnum(target) << ", "
- << GLEnums::GetStringEnum(pname) << ", " << bufSize << ", "
- << static_cast<const void*>(length) << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetTexParameterfvRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glGetTexParameterfvRobustANGLEFn(target, pname, bufSize,
- length, params);
-}
-
-static void GL_BINDING_CALL
-Debug_glGetTexParameterIivRobustANGLE(GLenum target,
- GLenum pname,
- GLsizei bufSize,
- GLsizei* length,
- GLint* params) {
- GL_SERVICE_LOG("glGetTexParameterIivRobustANGLE"
- << "(" << GLEnums::GetStringEnum(target) << ", "
- << GLEnums::GetStringEnum(pname) << ", " << bufSize << ", "
- << static_cast<const void*>(length) << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetTexParameterIivRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glGetTexParameterIivRobustANGLEFn(target, pname, bufSize,
- length, params);
-}
-
-static void GL_BINDING_CALL
-Debug_glGetTexParameterIuivRobustANGLE(GLenum target,
- GLenum pname,
- GLsizei bufSize,
- GLsizei* length,
- GLuint* params) {
- GL_SERVICE_LOG("glGetTexParameterIuivRobustANGLE"
- << "(" << GLEnums::GetStringEnum(target) << ", "
- << GLEnums::GetStringEnum(pname) << ", " << bufSize << ", "
- << static_cast<const void*>(length) << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetTexParameterIuivRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glGetTexParameterIuivRobustANGLEFn(
- target, pname, bufSize, length, params);
-}
-
-static void GL_BINDING_CALL Debug_glGetTexParameteriv(GLenum target,
- GLenum pname,
- GLint* params) {
- GL_SERVICE_LOG("glGetTexParameteriv"
- << "(" << GLEnums::GetStringEnum(target) << ", "
- << GLEnums::GetStringEnum(pname) << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetTexParameterivFn != nullptr);
- g_driver_gl.debug_fn.glGetTexParameterivFn(target, pname, params);
-}
-
-static void GL_BINDING_CALL
-Debug_glGetTexParameterivRobustANGLE(GLenum target,
- GLenum pname,
- GLsizei bufSize,
- GLsizei* length,
- GLint* params) {
- GL_SERVICE_LOG("glGetTexParameterivRobustANGLE"
- << "(" << GLEnums::GetStringEnum(target) << ", "
- << GLEnums::GetStringEnum(pname) << ", " << bufSize << ", "
- << static_cast<const void*>(length) << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetTexParameterivRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glGetTexParameterivRobustANGLEFn(target, pname, bufSize,
- length, params);
-}
-
-static void GL_BINDING_CALL Debug_glGetTransformFeedbackVarying(GLuint program,
- GLuint index,
- GLsizei bufSize,
- GLsizei* length,
- GLsizei* size,
- GLenum* type,
- char* name) {
- GL_SERVICE_LOG("glGetTransformFeedbackVarying"
- << "(" << program << ", " << index << ", " << bufSize << ", "
- << static_cast<const void*>(length) << ", "
- << static_cast<const void*>(size) << ", "
- << static_cast<const void*>(type) << ", "
- << static_cast<const void*>(name) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetTransformFeedbackVaryingFn != nullptr);
- g_driver_gl.debug_fn.glGetTransformFeedbackVaryingFn(
- program, index, bufSize, length, size, type, name);
-}
-
-static void GL_BINDING_CALL
-Debug_glGetTranslatedShaderSourceANGLE(GLuint shader,
- GLsizei bufsize,
- GLsizei* length,
- char* source) {
- GL_SERVICE_LOG("glGetTranslatedShaderSourceANGLE"
- << "(" << shader << ", " << bufsize << ", "
- << static_cast<const void*>(length) << ", "
- << static_cast<const void*>(source) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetTranslatedShaderSourceANGLEFn != nullptr);
- g_driver_gl.debug_fn.glGetTranslatedShaderSourceANGLEFn(shader, bufsize,
- length, source);
-}
-
-static GLuint GL_BINDING_CALL
-Debug_glGetUniformBlockIndex(GLuint program, const char* uniformBlockName) {
- GL_SERVICE_LOG("glGetUniformBlockIndex"
- << "(" << program << ", " << uniformBlockName << ")");
- DCHECK(g_driver_gl.debug_fn.glGetUniformBlockIndexFn != nullptr);
- GLuint result =
- g_driver_gl.debug_fn.glGetUniformBlockIndexFn(program, uniformBlockName);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static void GL_BINDING_CALL Debug_glGetUniformfv(GLuint program,
- GLint location,
- GLfloat* params) {
- GL_SERVICE_LOG("glGetUniformfv"
- << "(" << program << ", " << location << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetUniformfvFn != nullptr);
- g_driver_gl.debug_fn.glGetUniformfvFn(program, location, params);
-}
-
-static void GL_BINDING_CALL Debug_glGetUniformfvRobustANGLE(GLuint program,
- GLint location,
- GLsizei bufSize,
- GLsizei* length,
- GLfloat* params) {
- GL_SERVICE_LOG("glGetUniformfvRobustANGLE"
- << "(" << program << ", " << location << ", " << bufSize
- << ", " << static_cast<const void*>(length) << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetUniformfvRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glGetUniformfvRobustANGLEFn(program, location, bufSize,
- length, params);
-}
-
-static void GL_BINDING_CALL
-Debug_glGetUniformIndices(GLuint program,
- GLsizei uniformCount,
- const char* const* uniformNames,
- GLuint* uniformIndices) {
- GL_SERVICE_LOG("glGetUniformIndices"
- << "(" << program << ", " << uniformCount << ", "
- << static_cast<const void*>(uniformNames) << ", "
- << static_cast<const void*>(uniformIndices) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetUniformIndicesFn != nullptr);
- g_driver_gl.debug_fn.glGetUniformIndicesFn(program, uniformCount,
- uniformNames, uniformIndices);
-}
-
-static void GL_BINDING_CALL Debug_glGetUniformiv(GLuint program,
- GLint location,
- GLint* params) {
- GL_SERVICE_LOG("glGetUniformiv"
- << "(" << program << ", " << location << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetUniformivFn != nullptr);
- g_driver_gl.debug_fn.glGetUniformivFn(program, location, params);
-}
-
-static void GL_BINDING_CALL Debug_glGetUniformivRobustANGLE(GLuint program,
- GLint location,
- GLsizei bufSize,
- GLsizei* length,
- GLint* params) {
- GL_SERVICE_LOG("glGetUniformivRobustANGLE"
- << "(" << program << ", " << location << ", " << bufSize
- << ", " << static_cast<const void*>(length) << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetUniformivRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glGetUniformivRobustANGLEFn(program, location, bufSize,
- length, params);
-}
-
-static GLint GL_BINDING_CALL Debug_glGetUniformLocation(GLuint program,
- const char* name) {
- GL_SERVICE_LOG("glGetUniformLocation"
- << "(" << program << ", " << name << ")");
- DCHECK(g_driver_gl.debug_fn.glGetUniformLocationFn != nullptr);
- GLint result = g_driver_gl.debug_fn.glGetUniformLocationFn(program, name);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static void GL_BINDING_CALL Debug_glGetUniformuiv(GLuint program,
- GLint location,
- GLuint* params) {
- GL_SERVICE_LOG("glGetUniformuiv"
- << "(" << program << ", " << location << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetUniformuivFn != nullptr);
- g_driver_gl.debug_fn.glGetUniformuivFn(program, location, params);
-}
-
-static void GL_BINDING_CALL Debug_glGetUniformuivRobustANGLE(GLuint program,
- GLint location,
- GLsizei bufSize,
- GLsizei* length,
- GLuint* params) {
- GL_SERVICE_LOG("glGetUniformuivRobustANGLE"
- << "(" << program << ", " << location << ", " << bufSize
- << ", " << static_cast<const void*>(length) << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetUniformuivRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glGetUniformuivRobustANGLEFn(program, location, bufSize,
- length, 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) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetVertexAttribfvFn != nullptr);
- g_driver_gl.debug_fn.glGetVertexAttribfvFn(index, pname, params);
-}
-
-static void GL_BINDING_CALL
-Debug_glGetVertexAttribfvRobustANGLE(GLuint index,
- GLenum pname,
- GLsizei bufSize,
- GLsizei* length,
- GLfloat* params) {
- GL_SERVICE_LOG("glGetVertexAttribfvRobustANGLE"
- << "(" << index << ", " << GLEnums::GetStringEnum(pname)
- << ", " << bufSize << ", " << static_cast<const void*>(length)
- << ", " << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetVertexAttribfvRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glGetVertexAttribfvRobustANGLEFn(index, pname, bufSize,
- length, params);
-}
-
-static void GL_BINDING_CALL
-Debug_glGetVertexAttribIivRobustANGLE(GLuint index,
- GLenum pname,
- GLsizei bufSize,
- GLsizei* length,
- GLint* params) {
- GL_SERVICE_LOG("glGetVertexAttribIivRobustANGLE"
- << "(" << index << ", " << GLEnums::GetStringEnum(pname)
- << ", " << bufSize << ", " << static_cast<const void*>(length)
- << ", " << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetVertexAttribIivRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glGetVertexAttribIivRobustANGLEFn(index, pname, bufSize,
- length, params);
-}
-
-static void GL_BINDING_CALL
-Debug_glGetVertexAttribIuivRobustANGLE(GLuint index,
- GLenum pname,
- GLsizei bufSize,
- GLsizei* length,
- GLuint* params) {
- GL_SERVICE_LOG("glGetVertexAttribIuivRobustANGLE"
- << "(" << index << ", " << GLEnums::GetStringEnum(pname)
- << ", " << bufSize << ", " << static_cast<const void*>(length)
- << ", " << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetVertexAttribIuivRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glGetVertexAttribIuivRobustANGLEFn(index, pname, bufSize,
- length, 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) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetVertexAttribivFn != nullptr);
- g_driver_gl.debug_fn.glGetVertexAttribivFn(index, pname, params);
-}
-
-static void GL_BINDING_CALL
-Debug_glGetVertexAttribivRobustANGLE(GLuint index,
- GLenum pname,
- GLsizei bufSize,
- GLsizei* length,
- GLint* params) {
- GL_SERVICE_LOG("glGetVertexAttribivRobustANGLE"
- << "(" << index << ", " << GLEnums::GetStringEnum(pname)
- << ", " << bufSize << ", " << static_cast<const void*>(length)
- << ", " << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glGetVertexAttribivRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glGetVertexAttribivRobustANGLEFn(index, pname, bufSize,
- length, params);
-}
-
-static void GL_BINDING_CALL Debug_glGetVertexAttribPointerv(GLuint index,
- GLenum pname,
- void** pointer) {
- GL_SERVICE_LOG("glGetVertexAttribPointerv"
- << "(" << index << ", " << GLEnums::GetStringEnum(pname)
- << ", " << pointer << ")");
- DCHECK(g_driver_gl.debug_fn.glGetVertexAttribPointervFn != nullptr);
- g_driver_gl.debug_fn.glGetVertexAttribPointervFn(index, pname, pointer);
-}
-
-static void GL_BINDING_CALL
-Debug_glGetVertexAttribPointervRobustANGLE(GLuint index,
- GLenum pname,
- GLsizei bufSize,
- GLsizei* length,
- void** pointer) {
- GL_SERVICE_LOG("glGetVertexAttribPointervRobustANGLE"
- << "(" << index << ", " << GLEnums::GetStringEnum(pname)
- << ", " << bufSize << ", " << static_cast<const void*>(length)
- << ", " << pointer << ")");
- DCHECK(g_driver_gl.debug_fn.glGetVertexAttribPointervRobustANGLEFn !=
- nullptr);
- g_driver_gl.debug_fn.glGetVertexAttribPointervRobustANGLEFn(
- index, pname, bufSize, length, pointer);
-}
-
-static void GL_BINDING_CALL Debug_glHint(GLenum target, GLenum mode) {
- GL_SERVICE_LOG("glHint"
- << "(" << GLEnums::GetStringEnum(target) << ", "
- << GLEnums::GetStringEnum(mode) << ")");
- DCHECK(g_driver_gl.debug_fn.glHintFn != nullptr);
- g_driver_gl.debug_fn.glHintFn(target, mode);
-}
-
-static void GL_BINDING_CALL Debug_glInsertEventMarkerEXT(GLsizei length,
- const char* marker) {
- GL_SERVICE_LOG("glInsertEventMarkerEXT"
- << "(" << length << ", " << marker << ")");
- DCHECK(g_driver_gl.debug_fn.glInsertEventMarkerEXTFn != nullptr);
- g_driver_gl.debug_fn.glInsertEventMarkerEXTFn(length, marker);
-}
-
-static void GL_BINDING_CALL
-Debug_glInvalidateFramebuffer(GLenum target,
- GLsizei numAttachments,
- const GLenum* attachments) {
- GL_SERVICE_LOG("glInvalidateFramebuffer"
- << "(" << GLEnums::GetStringEnum(target) << ", "
- << numAttachments << ", "
- << static_cast<const void*>(attachments) << ")");
- DCHECK(g_driver_gl.debug_fn.glInvalidateFramebufferFn != nullptr);
- g_driver_gl.debug_fn.glInvalidateFramebufferFn(target, numAttachments,
- attachments);
-}
-
-static void GL_BINDING_CALL
-Debug_glInvalidateSubFramebuffer(GLenum target,
- GLsizei numAttachments,
- const GLenum* attachments,
- GLint x,
- GLint y,
- GLint width,
- GLint height) {
- GL_SERVICE_LOG("glInvalidateSubFramebuffer"
- << "(" << GLEnums::GetStringEnum(target) << ", "
- << numAttachments << ", "
- << static_cast<const void*>(attachments) << ", " << x << ", "
- << y << ", " << width << ", " << height << ")");
- DCHECK(g_driver_gl.debug_fn.glInvalidateSubFramebufferFn != nullptr);
- g_driver_gl.debug_fn.glInvalidateSubFramebufferFn(
- target, numAttachments, attachments, x, y, width, height);
-}
-
-static GLboolean GL_BINDING_CALL Debug_glIsBuffer(GLuint buffer) {
- GL_SERVICE_LOG("glIsBuffer"
- << "(" << buffer << ")");
- DCHECK(g_driver_gl.debug_fn.glIsBufferFn != nullptr);
- GLboolean result = g_driver_gl.debug_fn.glIsBufferFn(buffer);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static GLboolean GL_BINDING_CALL Debug_glIsEnabled(GLenum cap) {
- GL_SERVICE_LOG("glIsEnabled"
- << "(" << GLEnums::GetStringEnum(cap) << ")");
- DCHECK(g_driver_gl.debug_fn.glIsEnabledFn != nullptr);
- GLboolean result = g_driver_gl.debug_fn.glIsEnabledFn(cap);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static GLboolean GL_BINDING_CALL Debug_glIsFenceAPPLE(GLuint fence) {
- GL_SERVICE_LOG("glIsFenceAPPLE"
- << "(" << fence << ")");
- DCHECK(g_driver_gl.debug_fn.glIsFenceAPPLEFn != nullptr);
- GLboolean result = g_driver_gl.debug_fn.glIsFenceAPPLEFn(fence);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static GLboolean GL_BINDING_CALL Debug_glIsFenceNV(GLuint fence) {
- GL_SERVICE_LOG("glIsFenceNV"
- << "(" << fence << ")");
- DCHECK(g_driver_gl.debug_fn.glIsFenceNVFn != nullptr);
- GLboolean result = g_driver_gl.debug_fn.glIsFenceNVFn(fence);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static GLboolean GL_BINDING_CALL Debug_glIsFramebufferEXT(GLuint framebuffer) {
- GL_SERVICE_LOG("glIsFramebufferEXT"
- << "(" << framebuffer << ")");
- DCHECK(g_driver_gl.debug_fn.glIsFramebufferEXTFn != nullptr);
- GLboolean result = g_driver_gl.debug_fn.glIsFramebufferEXTFn(framebuffer);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static GLboolean GL_BINDING_CALL Debug_glIsPathNV(GLuint path) {
- GL_SERVICE_LOG("glIsPathNV"
- << "(" << path << ")");
- DCHECK(g_driver_gl.debug_fn.glIsPathNVFn != nullptr);
- 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 << ")");
- DCHECK(g_driver_gl.debug_fn.glIsProgramFn != nullptr);
- GLboolean result = g_driver_gl.debug_fn.glIsProgramFn(program);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static GLboolean GL_BINDING_CALL Debug_glIsQuery(GLuint query) {
- GL_SERVICE_LOG("glIsQuery"
- << "(" << query << ")");
- DCHECK(g_driver_gl.debug_fn.glIsQueryFn != nullptr);
- GLboolean result = g_driver_gl.debug_fn.glIsQueryFn(query);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static GLboolean GL_BINDING_CALL
-Debug_glIsRenderbufferEXT(GLuint renderbuffer) {
- GL_SERVICE_LOG("glIsRenderbufferEXT"
- << "(" << renderbuffer << ")");
- DCHECK(g_driver_gl.debug_fn.glIsRenderbufferEXTFn != nullptr);
- GLboolean result = g_driver_gl.debug_fn.glIsRenderbufferEXTFn(renderbuffer);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static GLboolean GL_BINDING_CALL Debug_glIsSampler(GLuint sampler) {
- GL_SERVICE_LOG("glIsSampler"
- << "(" << sampler << ")");
- DCHECK(g_driver_gl.debug_fn.glIsSamplerFn != nullptr);
- GLboolean result = g_driver_gl.debug_fn.glIsSamplerFn(sampler);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static GLboolean GL_BINDING_CALL Debug_glIsShader(GLuint shader) {
- GL_SERVICE_LOG("glIsShader"
- << "(" << shader << ")");
- DCHECK(g_driver_gl.debug_fn.glIsShaderFn != nullptr);
- GLboolean result = g_driver_gl.debug_fn.glIsShaderFn(shader);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static GLboolean GL_BINDING_CALL Debug_glIsSync(GLsync sync) {
- GL_SERVICE_LOG("glIsSync"
- << "(" << sync << ")");
- DCHECK(g_driver_gl.debug_fn.glIsSyncFn != nullptr);
- GLboolean result = g_driver_gl.debug_fn.glIsSyncFn(sync);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static GLboolean GL_BINDING_CALL Debug_glIsTexture(GLuint texture) {
- GL_SERVICE_LOG("glIsTexture"
- << "(" << texture << ")");
- DCHECK(g_driver_gl.debug_fn.glIsTextureFn != nullptr);
- GLboolean result = g_driver_gl.debug_fn.glIsTextureFn(texture);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static GLboolean GL_BINDING_CALL Debug_glIsTransformFeedback(GLuint id) {
- GL_SERVICE_LOG("glIsTransformFeedback"
- << "(" << id << ")");
- DCHECK(g_driver_gl.debug_fn.glIsTransformFeedbackFn != nullptr);
- GLboolean result = g_driver_gl.debug_fn.glIsTransformFeedbackFn(id);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static GLboolean GL_BINDING_CALL Debug_glIsVertexArrayOES(GLuint array) {
- GL_SERVICE_LOG("glIsVertexArrayOES"
- << "(" << array << ")");
- DCHECK(g_driver_gl.debug_fn.glIsVertexArrayOESFn != nullptr);
- GLboolean result = g_driver_gl.debug_fn.glIsVertexArrayOESFn(array);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static void GL_BINDING_CALL Debug_glLineWidth(GLfloat width) {
- GL_SERVICE_LOG("glLineWidth"
- << "(" << width << ")");
- DCHECK(g_driver_gl.debug_fn.glLineWidthFn != nullptr);
- g_driver_gl.debug_fn.glLineWidthFn(width);
-}
-
-static void GL_BINDING_CALL Debug_glLinkProgram(GLuint program) {
- GL_SERVICE_LOG("glLinkProgram"
- << "(" << program << ")");
- DCHECK(g_driver_gl.debug_fn.glLinkProgramFn != nullptr);
- g_driver_gl.debug_fn.glLinkProgramFn(program);
-}
-
-static void* GL_BINDING_CALL Debug_glMapBuffer(GLenum target, GLenum access) {
- GL_SERVICE_LOG("glMapBuffer"
- << "(" << GLEnums::GetStringEnum(target) << ", "
- << GLEnums::GetStringEnum(access) << ")");
- DCHECK(g_driver_gl.debug_fn.glMapBufferFn != nullptr);
- void* result = g_driver_gl.debug_fn.glMapBufferFn(target, access);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static void* GL_BINDING_CALL Debug_glMapBufferRange(GLenum target,
- GLintptr offset,
- GLsizeiptr length,
- GLbitfield access) {
- GL_SERVICE_LOG("glMapBufferRange"
- << "(" << GLEnums::GetStringEnum(target) << ", " << offset
- << ", " << length << ", " << access << ")");
- DCHECK(g_driver_gl.debug_fn.glMapBufferRangeFn != nullptr);
- void* result =
- g_driver_gl.debug_fn.glMapBufferRangeFn(target, offset, length, access);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static void GL_BINDING_CALL Debug_glMatrixLoadfEXT(GLenum matrixMode,
- const GLfloat* m) {
- GL_SERVICE_LOG("glMatrixLoadfEXT"
- << "(" << GLEnums::GetStringEnum(matrixMode) << ", "
- << static_cast<const void*>(m) << ")");
- DCHECK(g_driver_gl.debug_fn.glMatrixLoadfEXTFn != nullptr);
- g_driver_gl.debug_fn.glMatrixLoadfEXTFn(matrixMode, m);
-}
-
-static void GL_BINDING_CALL Debug_glMatrixLoadIdentityEXT(GLenum matrixMode) {
- GL_SERVICE_LOG("glMatrixLoadIdentityEXT"
- << "(" << GLEnums::GetStringEnum(matrixMode) << ")");
- DCHECK(g_driver_gl.debug_fn.glMatrixLoadIdentityEXTFn != nullptr);
- g_driver_gl.debug_fn.glMatrixLoadIdentityEXTFn(matrixMode);
-}
-
-static void GL_BINDING_CALL Debug_glMemoryBarrierEXT(GLbitfield barriers) {
- GL_SERVICE_LOG("glMemoryBarrierEXT"
- << "(" << barriers << ")");
- DCHECK(g_driver_gl.debug_fn.glMemoryBarrierEXTFn != nullptr);
- g_driver_gl.debug_fn.glMemoryBarrierEXTFn(barriers);
-}
-
-static void GL_BINDING_CALL Debug_glObjectLabel(GLenum identifier,
- GLuint name,
- GLsizei length,
- const char* label) {
- GL_SERVICE_LOG("glObjectLabel"
- << "(" << GLEnums::GetStringEnum(identifier) << ", " << name
- << ", " << length << ", " << label << ")");
- DCHECK(g_driver_gl.debug_fn.glObjectLabelFn != nullptr);
- g_driver_gl.debug_fn.glObjectLabelFn(identifier, name, length, label);
-}
-
-static void GL_BINDING_CALL Debug_glObjectPtrLabel(void* ptr,
- GLsizei length,
- const char* label) {
- GL_SERVICE_LOG("glObjectPtrLabel"
- << "(" << static_cast<const void*>(ptr) << ", " << length
- << ", " << label << ")");
- DCHECK(g_driver_gl.debug_fn.glObjectPtrLabelFn != nullptr);
- g_driver_gl.debug_fn.glObjectPtrLabelFn(ptr, length, label);
-}
-
-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) << ")");
- DCHECK(g_driver_gl.debug_fn.glPathCommandsNVFn != nullptr);
- 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 << ")");
- DCHECK(g_driver_gl.debug_fn.glPathParameterfNVFn != nullptr);
- 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 << ")");
- DCHECK(g_driver_gl.debug_fn.glPathParameteriNVFn != nullptr);
- 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 << ")");
- DCHECK(g_driver_gl.debug_fn.glPathStencilFuncNVFn != nullptr);
- g_driver_gl.debug_fn.glPathStencilFuncNVFn(func, ref, mask);
-}
-
-static void GL_BINDING_CALL Debug_glPauseTransformFeedback(void) {
- GL_SERVICE_LOG("glPauseTransformFeedback"
- << "("
- << ")");
- DCHECK(g_driver_gl.debug_fn.glPauseTransformFeedbackFn != nullptr);
- g_driver_gl.debug_fn.glPauseTransformFeedbackFn();
-}
-
-static void GL_BINDING_CALL Debug_glPixelStorei(GLenum pname, GLint param) {
- GL_SERVICE_LOG("glPixelStorei"
- << "(" << GLEnums::GetStringEnum(pname) << ", " << param
- << ")");
- DCHECK(g_driver_gl.debug_fn.glPixelStoreiFn != nullptr);
- g_driver_gl.debug_fn.glPixelStoreiFn(pname, param);
-}
-
-static void GL_BINDING_CALL Debug_glPointParameteri(GLenum pname, GLint param) {
- GL_SERVICE_LOG("glPointParameteri"
- << "(" << GLEnums::GetStringEnum(pname) << ", " << param
- << ")");
- DCHECK(g_driver_gl.debug_fn.glPointParameteriFn != nullptr);
- g_driver_gl.debug_fn.glPointParameteriFn(pname, param);
-}
-
-static void GL_BINDING_CALL Debug_glPolygonOffset(GLfloat factor,
- GLfloat units) {
- GL_SERVICE_LOG("glPolygonOffset"
- << "(" << factor << ", " << units << ")");
- DCHECK(g_driver_gl.debug_fn.glPolygonOffsetFn != nullptr);
- g_driver_gl.debug_fn.glPolygonOffsetFn(factor, units);
-}
-
-static void GL_BINDING_CALL Debug_glPopDebugGroup() {
- GL_SERVICE_LOG("glPopDebugGroup"
- << "("
- << ")");
- DCHECK(g_driver_gl.debug_fn.glPopDebugGroupFn != nullptr);
- g_driver_gl.debug_fn.glPopDebugGroupFn();
-}
-
-static void GL_BINDING_CALL Debug_glPopGroupMarkerEXT(void) {
- GL_SERVICE_LOG("glPopGroupMarkerEXT"
- << "("
- << ")");
- DCHECK(g_driver_gl.debug_fn.glPopGroupMarkerEXTFn != nullptr);
- g_driver_gl.debug_fn.glPopGroupMarkerEXTFn();
-}
-
-static void GL_BINDING_CALL Debug_glPrimitiveRestartIndex(GLuint index) {
- GL_SERVICE_LOG("glPrimitiveRestartIndex"
- << "(" << index << ")");
- DCHECK(g_driver_gl.debug_fn.glPrimitiveRestartIndexFn != nullptr);
- g_driver_gl.debug_fn.glPrimitiveRestartIndexFn(index);
-}
-
-static void GL_BINDING_CALL Debug_glProgramBinary(GLuint program,
- GLenum binaryFormat,
- const GLvoid* binary,
- GLsizei length) {
- GL_SERVICE_LOG("glProgramBinary"
- << "(" << program << ", "
- << GLEnums::GetStringEnum(binaryFormat) << ", "
- << static_cast<const void*>(binary) << ", " << length << ")");
- DCHECK(g_driver_gl.debug_fn.glProgramBinaryFn != nullptr);
- g_driver_gl.debug_fn.glProgramBinaryFn(program, binaryFormat, binary, length);
-}
-
-static void GL_BINDING_CALL Debug_glProgramParameteri(GLuint program,
- GLenum pname,
- GLint value) {
- GL_SERVICE_LOG("glProgramParameteri"
- << "(" << program << ", " << GLEnums::GetStringEnum(pname)
- << ", " << value << ")");
- DCHECK(g_driver_gl.debug_fn.glProgramParameteriFn != nullptr);
- g_driver_gl.debug_fn.glProgramParameteriFn(program, pname, value);
-}
-
-static void GL_BINDING_CALL
-Debug_glProgramPathFragmentInputGenNV(GLuint program,
- GLint location,
- GLenum genMode,
- GLint components,
- const GLfloat* coeffs) {
- GL_SERVICE_LOG("glProgramPathFragmentInputGenNV"
- << "(" << program << ", " << location << ", "
- << GLEnums::GetStringEnum(genMode) << ", " << components
- << ", " << static_cast<const void*>(coeffs) << ")");
- DCHECK(g_driver_gl.debug_fn.glProgramPathFragmentInputGenNVFn != nullptr);
- g_driver_gl.debug_fn.glProgramPathFragmentInputGenNVFn(
- program, location, genMode, components, coeffs);
-}
-
-static void GL_BINDING_CALL Debug_glPushDebugGroup(GLenum source,
- GLuint id,
- GLsizei length,
- const char* message) {
- GL_SERVICE_LOG("glPushDebugGroup"
- << "(" << GLEnums::GetStringEnum(source) << ", " << id << ", "
- << length << ", " << message << ")");
- DCHECK(g_driver_gl.debug_fn.glPushDebugGroupFn != nullptr);
- g_driver_gl.debug_fn.glPushDebugGroupFn(source, id, length, message);
-}
-
-static void GL_BINDING_CALL Debug_glPushGroupMarkerEXT(GLsizei length,
- const char* marker) {
- GL_SERVICE_LOG("glPushGroupMarkerEXT"
- << "(" << length << ", " << marker << ")");
- DCHECK(g_driver_gl.debug_fn.glPushGroupMarkerEXTFn != nullptr);
- g_driver_gl.debug_fn.glPushGroupMarkerEXTFn(length, marker);
-}
-
-static void GL_BINDING_CALL Debug_glQueryCounter(GLuint id, GLenum target) {
- GL_SERVICE_LOG("glQueryCounter"
- << "(" << id << ", " << GLEnums::GetStringEnum(target) << ")");
- DCHECK(g_driver_gl.debug_fn.glQueryCounterFn != nullptr);
- g_driver_gl.debug_fn.glQueryCounterFn(id, target);
-}
-
-static void GL_BINDING_CALL Debug_glReadBuffer(GLenum src) {
- GL_SERVICE_LOG("glReadBuffer"
- << "(" << GLEnums::GetStringEnum(src) << ")");
- DCHECK(g_driver_gl.debug_fn.glReadBufferFn != nullptr);
- g_driver_gl.debug_fn.glReadBufferFn(src);
-}
-
-static void GL_BINDING_CALL Debug_glReadnPixelsRobustANGLE(GLint x,
- GLint y,
- GLsizei width,
- GLsizei height,
- GLenum format,
- GLenum type,
- GLsizei bufSize,
- GLsizei* length,
- void* data) {
- GL_SERVICE_LOG("glReadnPixelsRobustANGLE"
- << "(" << x << ", " << y << ", " << width << ", " << height
- << ", " << GLEnums::GetStringEnum(format) << ", "
- << GLEnums::GetStringEnum(type) << ", " << bufSize << ", "
- << static_cast<const void*>(length) << ", "
- << static_cast<const void*>(data) << ")");
- DCHECK(g_driver_gl.debug_fn.glReadnPixelsRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glReadnPixelsRobustANGLEFn(x, y, width, height, format,
- type, bufSize, length, data);
-}
-
-static void GL_BINDING_CALL Debug_glReadPixels(GLint x,
- GLint y,
- GLsizei width,
- GLsizei height,
- GLenum format,
- GLenum type,
- void* pixels) {
- GL_SERVICE_LOG("glReadPixels"
- << "(" << x << ", " << y << ", " << width << ", " << height
- << ", " << GLEnums::GetStringEnum(format) << ", "
- << GLEnums::GetStringEnum(type) << ", "
- << static_cast<const void*>(pixels) << ")");
- DCHECK(g_driver_gl.debug_fn.glReadPixelsFn != nullptr);
- g_driver_gl.debug_fn.glReadPixelsFn(x, y, width, height, format, type,
- pixels);
-}
-
-static void GL_BINDING_CALL Debug_glReadPixelsRobustANGLE(GLint x,
- GLint y,
- GLsizei width,
- GLsizei height,
- GLenum format,
- GLenum type,
- GLsizei bufSize,
- GLsizei* length,
- void* pixels) {
- GL_SERVICE_LOG("glReadPixelsRobustANGLE"
- << "(" << x << ", " << y << ", " << width << ", " << height
- << ", " << GLEnums::GetStringEnum(format) << ", "
- << GLEnums::GetStringEnum(type) << ", " << bufSize << ", "
- << static_cast<const void*>(length) << ", "
- << static_cast<const void*>(pixels) << ")");
- DCHECK(g_driver_gl.debug_fn.glReadPixelsRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glReadPixelsRobustANGLEFn(x, y, width, height, format,
- type, bufSize, length, pixels);
-}
-
-static void GL_BINDING_CALL Debug_glReleaseShaderCompiler(void) {
- GL_SERVICE_LOG("glReleaseShaderCompiler"
- << "("
- << ")");
- DCHECK(g_driver_gl.debug_fn.glReleaseShaderCompilerFn != nullptr);
- g_driver_gl.debug_fn.glReleaseShaderCompilerFn();
-}
-
-static void GL_BINDING_CALL
-Debug_glRenderbufferStorageEXT(GLenum target,
- GLenum internalformat,
- GLsizei width,
- GLsizei height) {
- GL_SERVICE_LOG("glRenderbufferStorageEXT"
- << "(" << GLEnums::GetStringEnum(target) << ", "
- << GLEnums::GetStringEnum(internalformat) << ", " << width
- << ", " << height << ")");
- DCHECK(g_driver_gl.debug_fn.glRenderbufferStorageEXTFn != nullptr);
- g_driver_gl.debug_fn.glRenderbufferStorageEXTFn(target, internalformat, width,
- height);
-}
-
-static void GL_BINDING_CALL
-Debug_glRenderbufferStorageMultisample(GLenum target,
- GLsizei samples,
- GLenum internalformat,
- GLsizei width,
- GLsizei height) {
- GL_SERVICE_LOG("glRenderbufferStorageMultisample"
- << "(" << GLEnums::GetStringEnum(target) << ", " << samples
- << ", " << GLEnums::GetStringEnum(internalformat) << ", "
- << width << ", " << height << ")");
- DCHECK(g_driver_gl.debug_fn.glRenderbufferStorageMultisampleFn != nullptr);
- g_driver_gl.debug_fn.glRenderbufferStorageMultisampleFn(
- target, samples, internalformat, width, height);
-}
-
-static void GL_BINDING_CALL
-Debug_glRenderbufferStorageMultisampleANGLE(GLenum target,
- GLsizei samples,
- GLenum internalformat,
- GLsizei width,
- GLsizei height) {
- GL_SERVICE_LOG("glRenderbufferStorageMultisampleANGLE"
- << "(" << GLEnums::GetStringEnum(target) << ", " << samples
- << ", " << GLEnums::GetStringEnum(internalformat) << ", "
- << width << ", " << height << ")");
- DCHECK(g_driver_gl.debug_fn.glRenderbufferStorageMultisampleANGLEFn !=
- nullptr);
- g_driver_gl.debug_fn.glRenderbufferStorageMultisampleANGLEFn(
- target, samples, internalformat, width, height);
-}
-
-static void GL_BINDING_CALL
-Debug_glRenderbufferStorageMultisampleEXT(GLenum target,
- GLsizei samples,
- GLenum internalformat,
- GLsizei width,
- GLsizei height) {
- GL_SERVICE_LOG("glRenderbufferStorageMultisampleEXT"
- << "(" << GLEnums::GetStringEnum(target) << ", " << samples
- << ", " << GLEnums::GetStringEnum(internalformat) << ", "
- << width << ", " << height << ")");
- DCHECK(g_driver_gl.debug_fn.glRenderbufferStorageMultisampleEXTFn != nullptr);
- g_driver_gl.debug_fn.glRenderbufferStorageMultisampleEXTFn(
- target, samples, internalformat, width, height);
-}
-
-static void GL_BINDING_CALL
-Debug_glRenderbufferStorageMultisampleIMG(GLenum target,
- GLsizei samples,
- GLenum internalformat,
- GLsizei width,
- GLsizei height) {
- GL_SERVICE_LOG("glRenderbufferStorageMultisampleIMG"
- << "(" << GLEnums::GetStringEnum(target) << ", " << samples
- << ", " << GLEnums::GetStringEnum(internalformat) << ", "
- << width << ", " << height << ")");
- DCHECK(g_driver_gl.debug_fn.glRenderbufferStorageMultisampleIMGFn != nullptr);
- g_driver_gl.debug_fn.glRenderbufferStorageMultisampleIMGFn(
- target, samples, internalformat, width, height);
-}
-
-static void GL_BINDING_CALL Debug_glResumeTransformFeedback(void) {
- GL_SERVICE_LOG("glResumeTransformFeedback"
- << "("
- << ")");
- DCHECK(g_driver_gl.debug_fn.glResumeTransformFeedbackFn != nullptr);
- g_driver_gl.debug_fn.glResumeTransformFeedbackFn();
-}
-
-static void GL_BINDING_CALL Debug_glSampleCoverage(GLclampf value,
- GLboolean invert) {
- GL_SERVICE_LOG("glSampleCoverage"
- << "(" << value << ", " << GLEnums::GetStringBool(invert)
- << ")");
- DCHECK(g_driver_gl.debug_fn.glSampleCoverageFn != nullptr);
- g_driver_gl.debug_fn.glSampleCoverageFn(value, invert);
-}
-
-static void GL_BINDING_CALL Debug_glSamplerParameterf(GLuint sampler,
- GLenum pname,
- GLfloat param) {
- GL_SERVICE_LOG("glSamplerParameterf"
- << "(" << sampler << ", " << GLEnums::GetStringEnum(pname)
- << ", " << param << ")");
- DCHECK(g_driver_gl.debug_fn.glSamplerParameterfFn != nullptr);
- g_driver_gl.debug_fn.glSamplerParameterfFn(sampler, pname, param);
-}
-
-static void GL_BINDING_CALL Debug_glSamplerParameterfv(GLuint sampler,
- GLenum pname,
- const GLfloat* params) {
- GL_SERVICE_LOG("glSamplerParameterfv"
- << "(" << sampler << ", " << GLEnums::GetStringEnum(pname)
- << ", " << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glSamplerParameterfvFn != nullptr);
- g_driver_gl.debug_fn.glSamplerParameterfvFn(sampler, pname, params);
-}
-
-static void GL_BINDING_CALL
-Debug_glSamplerParameterfvRobustANGLE(GLuint sampler,
- GLenum pname,
- GLsizei bufSize,
- const GLfloat* param) {
- GL_SERVICE_LOG("glSamplerParameterfvRobustANGLE"
- << "(" << sampler << ", " << GLEnums::GetStringEnum(pname)
- << ", " << bufSize << ", " << static_cast<const void*>(param)
- << ")");
- DCHECK(g_driver_gl.debug_fn.glSamplerParameterfvRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glSamplerParameterfvRobustANGLEFn(sampler, pname,
- bufSize, param);
-}
-
-static void GL_BINDING_CALL Debug_glSamplerParameteri(GLuint sampler,
- GLenum pname,
- GLint param) {
- GL_SERVICE_LOG("glSamplerParameteri"
- << "(" << sampler << ", " << GLEnums::GetStringEnum(pname)
- << ", " << param << ")");
- DCHECK(g_driver_gl.debug_fn.glSamplerParameteriFn != nullptr);
- g_driver_gl.debug_fn.glSamplerParameteriFn(sampler, pname, param);
-}
-
-static void GL_BINDING_CALL
-Debug_glSamplerParameterIivRobustANGLE(GLuint sampler,
- GLenum pname,
- GLsizei bufSize,
- const GLint* param) {
- GL_SERVICE_LOG("glSamplerParameterIivRobustANGLE"
- << "(" << sampler << ", " << GLEnums::GetStringEnum(pname)
- << ", " << bufSize << ", " << static_cast<const void*>(param)
- << ")");
- DCHECK(g_driver_gl.debug_fn.glSamplerParameterIivRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glSamplerParameterIivRobustANGLEFn(sampler, pname,
- bufSize, param);
-}
-
-static void GL_BINDING_CALL
-Debug_glSamplerParameterIuivRobustANGLE(GLuint sampler,
- GLenum pname,
- GLsizei bufSize,
- const GLuint* param) {
- GL_SERVICE_LOG("glSamplerParameterIuivRobustANGLE"
- << "(" << sampler << ", " << GLEnums::GetStringEnum(pname)
- << ", " << bufSize << ", " << static_cast<const void*>(param)
- << ")");
- DCHECK(g_driver_gl.debug_fn.glSamplerParameterIuivRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glSamplerParameterIuivRobustANGLEFn(sampler, pname,
- bufSize, param);
-}
-
-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) << ")");
- DCHECK(g_driver_gl.debug_fn.glSamplerParameterivFn != nullptr);
- g_driver_gl.debug_fn.glSamplerParameterivFn(sampler, pname, params);
-}
-
-static void GL_BINDING_CALL
-Debug_glSamplerParameterivRobustANGLE(GLuint sampler,
- GLenum pname,
- GLsizei bufSize,
- const GLint* param) {
- GL_SERVICE_LOG("glSamplerParameterivRobustANGLE"
- << "(" << sampler << ", " << GLEnums::GetStringEnum(pname)
- << ", " << bufSize << ", " << static_cast<const void*>(param)
- << ")");
- DCHECK(g_driver_gl.debug_fn.glSamplerParameterivRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glSamplerParameterivRobustANGLEFn(sampler, pname,
- bufSize, param);
-}
-
-static void GL_BINDING_CALL Debug_glScissor(GLint x,
- GLint y,
- GLsizei width,
- GLsizei height) {
- GL_SERVICE_LOG("glScissor"
- << "(" << x << ", " << y << ", " << width << ", " << height
- << ")");
- DCHECK(g_driver_gl.debug_fn.glScissorFn != nullptr);
- g_driver_gl.debug_fn.glScissorFn(x, y, width, height);
-}
-
-static void GL_BINDING_CALL Debug_glSetFenceAPPLE(GLuint fence) {
- GL_SERVICE_LOG("glSetFenceAPPLE"
- << "(" << fence << ")");
- DCHECK(g_driver_gl.debug_fn.glSetFenceAPPLEFn != nullptr);
- g_driver_gl.debug_fn.glSetFenceAPPLEFn(fence);
-}
-
-static void GL_BINDING_CALL Debug_glSetFenceNV(GLuint fence, GLenum condition) {
- GL_SERVICE_LOG("glSetFenceNV"
- << "(" << fence << ", " << GLEnums::GetStringEnum(condition)
- << ")");
- DCHECK(g_driver_gl.debug_fn.glSetFenceNVFn != nullptr);
- g_driver_gl.debug_fn.glSetFenceNVFn(fence, condition);
-}
-
-static void GL_BINDING_CALL Debug_glShaderBinary(GLsizei n,
- const GLuint* shaders,
- GLenum binaryformat,
- const void* binary,
- GLsizei length) {
- GL_SERVICE_LOG("glShaderBinary"
- << "(" << n << ", " << static_cast<const void*>(shaders)
- << ", " << GLEnums::GetStringEnum(binaryformat) << ", "
- << static_cast<const void*>(binary) << ", " << length << ")");
- DCHECK(g_driver_gl.debug_fn.glShaderBinaryFn != nullptr);
- g_driver_gl.debug_fn.glShaderBinaryFn(n, shaders, binaryformat, binary,
- length);
-}
-
-static void GL_BINDING_CALL Debug_glShaderSource(GLuint shader,
- GLsizei count,
- const char* const* str,
- const GLint* length) {
- GL_SERVICE_LOG("glShaderSource"
- << "(" << shader << ", " << count << ", "
- << static_cast<const void*>(str) << ", "
- << static_cast<const void*>(length) << ")");
- DCHECK(g_driver_gl.debug_fn.glShaderSourceFn != nullptr);
- g_driver_gl.debug_fn.glShaderSourceFn(shader, count, str, length);
-
- GL_SERVICE_LOG_CODE_BLOCK({
- for (GLsizei ii = 0; ii < count; ++ii) {
- if (str[ii]) {
- if (length && length[ii] >= 0) {
- std::string source(str[ii], length[ii]);
- GL_SERVICE_LOG(" " << ii << ": ---\n" << source << "\n---");
- } else {
- GL_SERVICE_LOG(" " << ii << ": ---\n" << str[ii] << "\n---");
- }
- } else {
- GL_SERVICE_LOG(" " << ii << ": NULL");
- }
- }
- });
-}
-
-static void GL_BINDING_CALL
-Debug_glStencilFillPathInstancedNV(GLsizei numPaths,
- GLenum pathNameType,
- const void* paths,
- GLuint pathBase,
- GLenum fillMode,
- GLuint mask,
- GLenum transformType,
- const GLfloat* transformValues) {
- GL_SERVICE_LOG("glStencilFillPathInstancedNV"
- << "(" << numPaths << ", "
- << GLEnums::GetStringEnum(pathNameType) << ", "
- << static_cast<const void*>(paths) << ", " << pathBase << ", "
- << GLEnums::GetStringEnum(fillMode) << ", " << mask << ", "
- << GLEnums::GetStringEnum(transformType) << ", "
- << static_cast<const void*>(transformValues) << ")");
- DCHECK(g_driver_gl.debug_fn.glStencilFillPathInstancedNVFn != nullptr);
- g_driver_gl.debug_fn.glStencilFillPathInstancedNVFn(
- numPaths, pathNameType, paths, pathBase, fillMode, mask, transformType,
- transformValues);
-}
-
-static void GL_BINDING_CALL Debug_glStencilFillPathNV(GLuint path,
- GLenum fillMode,
- GLuint mask) {
- GL_SERVICE_LOG("glStencilFillPathNV"
- << "(" << path << ", " << GLEnums::GetStringEnum(fillMode)
- << ", " << mask << ")");
- DCHECK(g_driver_gl.debug_fn.glStencilFillPathNVFn != nullptr);
- 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 << ")");
- DCHECK(g_driver_gl.debug_fn.glStencilFuncFn != nullptr);
- g_driver_gl.debug_fn.glStencilFuncFn(func, ref, 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
- << ")");
- DCHECK(g_driver_gl.debug_fn.glStencilFuncSeparateFn != nullptr);
- g_driver_gl.debug_fn.glStencilFuncSeparateFn(face, func, ref, mask);
-}
-
-static void GL_BINDING_CALL Debug_glStencilMask(GLuint mask) {
- GL_SERVICE_LOG("glStencilMask"
- << "(" << mask << ")");
- DCHECK(g_driver_gl.debug_fn.glStencilMaskFn != nullptr);
- g_driver_gl.debug_fn.glStencilMaskFn(mask);
-}
-
-static void GL_BINDING_CALL Debug_glStencilMaskSeparate(GLenum face,
- GLuint mask) {
- GL_SERVICE_LOG("glStencilMaskSeparate"
- << "(" << GLEnums::GetStringEnum(face) << ", " << mask << ")");
- DCHECK(g_driver_gl.debug_fn.glStencilMaskSeparateFn != nullptr);
- g_driver_gl.debug_fn.glStencilMaskSeparateFn(face, mask);
-}
-
-static void GL_BINDING_CALL Debug_glStencilOp(GLenum fail,
- GLenum zfail,
- GLenum zpass) {
- GL_SERVICE_LOG("glStencilOp"
- << "(" << GLEnums::GetStringEnum(fail) << ", "
- << GLEnums::GetStringEnum(zfail) << ", "
- << GLEnums::GetStringEnum(zpass) << ")");
- DCHECK(g_driver_gl.debug_fn.glStencilOpFn != nullptr);
- g_driver_gl.debug_fn.glStencilOpFn(fail, zfail, zpass);
-}
-
-static void GL_BINDING_CALL Debug_glStencilOpSeparate(GLenum face,
- GLenum fail,
- GLenum zfail,
- GLenum zpass) {
- GL_SERVICE_LOG("glStencilOpSeparate"
- << "(" << GLEnums::GetStringEnum(face) << ", "
- << GLEnums::GetStringEnum(fail) << ", "
- << GLEnums::GetStringEnum(zfail) << ", "
- << GLEnums::GetStringEnum(zpass) << ")");
- DCHECK(g_driver_gl.debug_fn.glStencilOpSeparateFn != nullptr);
- g_driver_gl.debug_fn.glStencilOpSeparateFn(face, fail, zfail, zpass);
-}
-
-static void GL_BINDING_CALL
-Debug_glStencilStrokePathInstancedNV(GLsizei numPaths,
- GLenum pathNameType,
- const void* paths,
- GLuint pathBase,
- GLint ref,
- GLuint mask,
- GLenum transformType,
- const GLfloat* transformValues) {
- GL_SERVICE_LOG(
- "glStencilStrokePathInstancedNV"
- << "(" << numPaths << ", " << GLEnums::GetStringEnum(pathNameType) << ", "
- << static_cast<const void*>(paths) << ", " << pathBase << ", " << ref
- << ", " << mask << ", " << GLEnums::GetStringEnum(transformType) << ", "
- << static_cast<const void*>(transformValues) << ")");
- DCHECK(g_driver_gl.debug_fn.glStencilStrokePathInstancedNVFn != nullptr);
- g_driver_gl.debug_fn.glStencilStrokePathInstancedNVFn(
- numPaths, pathNameType, paths, pathBase, ref, mask, transformType,
- transformValues);
-}
-
-static void GL_BINDING_CALL Debug_glStencilStrokePathNV(GLuint path,
- GLint reference,
- GLuint mask) {
- GL_SERVICE_LOG("glStencilStrokePathNV"
- << "(" << path << ", " << reference << ", " << mask << ")");
- DCHECK(g_driver_gl.debug_fn.glStencilStrokePathNVFn != nullptr);
- g_driver_gl.debug_fn.glStencilStrokePathNVFn(path, reference, mask);
-}
-
-static void GL_BINDING_CALL
-Debug_glStencilThenCoverFillPathInstancedNV(GLsizei numPaths,
- GLenum pathNameType,
- const void* paths,
- GLuint pathBase,
- GLenum fillMode,
- GLuint mask,
- GLenum coverMode,
- GLenum transformType,
- const GLfloat* transformValues) {
- GL_SERVICE_LOG("glStencilThenCoverFillPathInstancedNV"
- << "(" << numPaths << ", "
- << GLEnums::GetStringEnum(pathNameType) << ", "
- << static_cast<const void*>(paths) << ", " << pathBase << ", "
- << GLEnums::GetStringEnum(fillMode) << ", " << mask << ", "
- << GLEnums::GetStringEnum(coverMode) << ", "
- << GLEnums::GetStringEnum(transformType) << ", "
- << static_cast<const void*>(transformValues) << ")");
- DCHECK(g_driver_gl.debug_fn.glStencilThenCoverFillPathInstancedNVFn !=
- nullptr);
- g_driver_gl.debug_fn.glStencilThenCoverFillPathInstancedNVFn(
- numPaths, pathNameType, paths, pathBase, fillMode, mask, coverMode,
- transformType, transformValues);
-}
-
-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)
- << ")");
- DCHECK(g_driver_gl.debug_fn.glStencilThenCoverFillPathNVFn != nullptr);
- g_driver_gl.debug_fn.glStencilThenCoverFillPathNVFn(path, fillMode, mask,
- coverMode);
-}
-
-static void GL_BINDING_CALL
-Debug_glStencilThenCoverStrokePathInstancedNV(GLsizei numPaths,
- GLenum pathNameType,
- const void* paths,
- GLuint pathBase,
- GLint ref,
- GLuint mask,
- GLenum coverMode,
- GLenum transformType,
- const GLfloat* transformValues) {
- GL_SERVICE_LOG(
- "glStencilThenCoverStrokePathInstancedNV"
- << "(" << numPaths << ", " << GLEnums::GetStringEnum(pathNameType) << ", "
- << static_cast<const void*>(paths) << ", " << pathBase << ", " << ref
- << ", " << mask << ", " << GLEnums::GetStringEnum(coverMode) << ", "
- << GLEnums::GetStringEnum(transformType) << ", "
- << static_cast<const void*>(transformValues) << ")");
- DCHECK(g_driver_gl.debug_fn.glStencilThenCoverStrokePathInstancedNVFn !=
- nullptr);
- g_driver_gl.debug_fn.glStencilThenCoverStrokePathInstancedNVFn(
- numPaths, pathNameType, paths, pathBase, ref, mask, coverMode,
- transformType, transformValues);
-}
-
-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) << ")");
- DCHECK(g_driver_gl.debug_fn.glStencilThenCoverStrokePathNVFn != nullptr);
- g_driver_gl.debug_fn.glStencilThenCoverStrokePathNVFn(path, reference, mask,
- coverMode);
-}
-
-static GLboolean GL_BINDING_CALL Debug_glTestFenceAPPLE(GLuint fence) {
- GL_SERVICE_LOG("glTestFenceAPPLE"
- << "(" << fence << ")");
- DCHECK(g_driver_gl.debug_fn.glTestFenceAPPLEFn != nullptr);
- GLboolean result = g_driver_gl.debug_fn.glTestFenceAPPLEFn(fence);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static GLboolean GL_BINDING_CALL Debug_glTestFenceNV(GLuint fence) {
- GL_SERVICE_LOG("glTestFenceNV"
- << "(" << fence << ")");
- DCHECK(g_driver_gl.debug_fn.glTestFenceNVFn != nullptr);
- GLboolean result = g_driver_gl.debug_fn.glTestFenceNVFn(fence);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static void GL_BINDING_CALL Debug_glTexImage2D(GLenum target,
- GLint level,
- GLint internalformat,
- GLsizei width,
- GLsizei height,
- GLint border,
- GLenum format,
- GLenum type,
- const void* pixels) {
- GL_SERVICE_LOG("glTexImage2D"
- << "(" << GLEnums::GetStringEnum(target) << ", " << level
- << ", " << internalformat << ", " << width << ", " << height
- << ", " << border << ", " << GLEnums::GetStringEnum(format)
- << ", " << GLEnums::GetStringEnum(type) << ", "
- << static_cast<const void*>(pixels) << ")");
- DCHECK(g_driver_gl.debug_fn.glTexImage2DFn != nullptr);
- g_driver_gl.debug_fn.glTexImage2DFn(target, level, internalformat, width,
- height, border, format, type, pixels);
-}
-
-static void GL_BINDING_CALL Debug_glTexImage2DRobustANGLE(GLenum target,
- GLint level,
- GLint internalformat,
- GLsizei width,
- GLsizei height,
- GLint border,
- GLenum format,
- GLenum type,
- GLsizei bufSize,
- const void* pixels) {
- GL_SERVICE_LOG("glTexImage2DRobustANGLE"
- << "(" << GLEnums::GetStringEnum(target) << ", " << level
- << ", " << internalformat << ", " << width << ", " << height
- << ", " << border << ", " << GLEnums::GetStringEnum(format)
- << ", " << GLEnums::GetStringEnum(type) << ", " << bufSize
- << ", " << static_cast<const void*>(pixels) << ")");
- DCHECK(g_driver_gl.debug_fn.glTexImage2DRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glTexImage2DRobustANGLEFn(target, level, internalformat,
- width, height, border, format,
- type, bufSize, pixels);
-}
-
-static void GL_BINDING_CALL Debug_glTexImage3D(GLenum target,
- GLint level,
- GLint internalformat,
- GLsizei width,
- GLsizei height,
- GLsizei depth,
- GLint border,
- GLenum format,
- GLenum type,
- const void* pixels) {
- GL_SERVICE_LOG("glTexImage3D"
- << "(" << GLEnums::GetStringEnum(target) << ", " << level
- << ", " << internalformat << ", " << width << ", " << height
- << ", " << depth << ", " << border << ", "
- << GLEnums::GetStringEnum(format) << ", "
- << GLEnums::GetStringEnum(type) << ", "
- << static_cast<const void*>(pixels) << ")");
- DCHECK(g_driver_gl.debug_fn.glTexImage3DFn != nullptr);
- g_driver_gl.debug_fn.glTexImage3DFn(target, level, internalformat, width,
- height, depth, border, format, type,
- pixels);
-}
-
-static void GL_BINDING_CALL Debug_glTexImage3DRobustANGLE(GLenum target,
- GLint level,
- GLint internalformat,
- GLsizei width,
- GLsizei height,
- GLsizei depth,
- GLint border,
- GLenum format,
- GLenum type,
- GLsizei bufSize,
- const void* pixels) {
- GL_SERVICE_LOG("glTexImage3DRobustANGLE"
- << "(" << GLEnums::GetStringEnum(target) << ", " << level
- << ", " << internalformat << ", " << width << ", " << height
- << ", " << depth << ", " << border << ", "
- << GLEnums::GetStringEnum(format) << ", "
- << GLEnums::GetStringEnum(type) << ", " << bufSize << ", "
- << static_cast<const void*>(pixels) << ")");
- DCHECK(g_driver_gl.debug_fn.glTexImage3DRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glTexImage3DRobustANGLEFn(target, level, internalformat,
- width, height, depth, border,
- format, type, bufSize, pixels);
-}
-
-static void GL_BINDING_CALL Debug_glTexParameterf(GLenum target,
- GLenum pname,
- GLfloat param) {
- GL_SERVICE_LOG("glTexParameterf"
- << "(" << GLEnums::GetStringEnum(target) << ", "
- << GLEnums::GetStringEnum(pname) << ", " << param << ")");
- DCHECK(g_driver_gl.debug_fn.glTexParameterfFn != nullptr);
- g_driver_gl.debug_fn.glTexParameterfFn(target, pname, param);
-}
-
-static void GL_BINDING_CALL Debug_glTexParameterfv(GLenum target,
- GLenum pname,
- const GLfloat* params) {
- GL_SERVICE_LOG("glTexParameterfv"
- << "(" << GLEnums::GetStringEnum(target) << ", "
- << GLEnums::GetStringEnum(pname) << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glTexParameterfvFn != nullptr);
- g_driver_gl.debug_fn.glTexParameterfvFn(target, pname, params);
-}
-
-static void GL_BINDING_CALL
-Debug_glTexParameterfvRobustANGLE(GLenum target,
- GLenum pname,
- GLsizei bufSize,
- const GLfloat* params) {
- GL_SERVICE_LOG("glTexParameterfvRobustANGLE"
- << "(" << GLEnums::GetStringEnum(target) << ", "
- << GLEnums::GetStringEnum(pname) << ", " << bufSize << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glTexParameterfvRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glTexParameterfvRobustANGLEFn(target, pname, bufSize,
- params);
-}
-
-static void GL_BINDING_CALL Debug_glTexParameteri(GLenum target,
- GLenum pname,
- GLint param) {
- GL_SERVICE_LOG("glTexParameteri"
- << "(" << GLEnums::GetStringEnum(target) << ", "
- << GLEnums::GetStringEnum(pname) << ", " << param << ")");
- DCHECK(g_driver_gl.debug_fn.glTexParameteriFn != nullptr);
- g_driver_gl.debug_fn.glTexParameteriFn(target, pname, param);
-}
-
-static void GL_BINDING_CALL
-Debug_glTexParameterIivRobustANGLE(GLenum target,
- GLenum pname,
- GLsizei bufSize,
- const GLint* params) {
- GL_SERVICE_LOG("glTexParameterIivRobustANGLE"
- << "(" << GLEnums::GetStringEnum(target) << ", "
- << GLEnums::GetStringEnum(pname) << ", " << bufSize << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glTexParameterIivRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glTexParameterIivRobustANGLEFn(target, pname, bufSize,
- params);
-}
-
-static void GL_BINDING_CALL
-Debug_glTexParameterIuivRobustANGLE(GLenum target,
- GLenum pname,
- GLsizei bufSize,
- const GLuint* params) {
- GL_SERVICE_LOG("glTexParameterIuivRobustANGLE"
- << "(" << GLEnums::GetStringEnum(target) << ", "
- << GLEnums::GetStringEnum(pname) << ", " << bufSize << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glTexParameterIuivRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glTexParameterIuivRobustANGLEFn(target, pname, bufSize,
- 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) << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glTexParameterivFn != nullptr);
- g_driver_gl.debug_fn.glTexParameterivFn(target, pname, params);
-}
-
-static void GL_BINDING_CALL
-Debug_glTexParameterivRobustANGLE(GLenum target,
- GLenum pname,
- GLsizei bufSize,
- const GLint* params) {
- GL_SERVICE_LOG("glTexParameterivRobustANGLE"
- << "(" << GLEnums::GetStringEnum(target) << ", "
- << GLEnums::GetStringEnum(pname) << ", " << bufSize << ", "
- << static_cast<const void*>(params) << ")");
- DCHECK(g_driver_gl.debug_fn.glTexParameterivRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glTexParameterivRobustANGLEFn(target, pname, bufSize,
- params);
-}
-
-static void GL_BINDING_CALL Debug_glTexStorage2DEXT(GLenum target,
- GLsizei levels,
- GLenum internalformat,
- GLsizei width,
- GLsizei height) {
- GL_SERVICE_LOG("glTexStorage2DEXT"
- << "(" << GLEnums::GetStringEnum(target) << ", " << levels
- << ", " << GLEnums::GetStringEnum(internalformat) << ", "
- << width << ", " << height << ")");
- DCHECK(g_driver_gl.debug_fn.glTexStorage2DEXTFn != nullptr);
- g_driver_gl.debug_fn.glTexStorage2DEXTFn(target, levels, internalformat,
- width, height);
-}
-
-static void GL_BINDING_CALL Debug_glTexStorage3D(GLenum target,
- GLsizei levels,
- GLenum internalformat,
- GLsizei width,
- GLsizei height,
- GLsizei depth) {
- GL_SERVICE_LOG("glTexStorage3D"
- << "(" << GLEnums::GetStringEnum(target) << ", " << levels
- << ", " << GLEnums::GetStringEnum(internalformat) << ", "
- << width << ", " << height << ", " << depth << ")");
- DCHECK(g_driver_gl.debug_fn.glTexStorage3DFn != nullptr);
- g_driver_gl.debug_fn.glTexStorage3DFn(target, levels, internalformat, width,
- height, depth);
-}
-
-static void GL_BINDING_CALL Debug_glTexSubImage2D(GLenum target,
- GLint level,
- GLint xoffset,
- GLint yoffset,
- GLsizei width,
- GLsizei height,
- GLenum format,
- GLenum type,
- const void* pixels) {
- GL_SERVICE_LOG("glTexSubImage2D"
- << "(" << GLEnums::GetStringEnum(target) << ", " << level
- << ", " << xoffset << ", " << yoffset << ", " << width << ", "
- << height << ", " << GLEnums::GetStringEnum(format) << ", "
- << GLEnums::GetStringEnum(type) << ", "
- << static_cast<const void*>(pixels) << ")");
- DCHECK(g_driver_gl.debug_fn.glTexSubImage2DFn != nullptr);
- g_driver_gl.debug_fn.glTexSubImage2DFn(target, level, xoffset, yoffset, width,
- height, format, type, pixels);
-}
-
-static void GL_BINDING_CALL
-Debug_glTexSubImage2DRobustANGLE(GLenum target,
- GLint level,
- GLint xoffset,
- GLint yoffset,
- GLsizei width,
- GLsizei height,
- GLenum format,
- GLenum type,
- GLsizei bufSize,
- const void* pixels) {
- GL_SERVICE_LOG("glTexSubImage2DRobustANGLE"
- << "(" << GLEnums::GetStringEnum(target) << ", " << level
- << ", " << xoffset << ", " << yoffset << ", " << width << ", "
- << height << ", " << GLEnums::GetStringEnum(format) << ", "
- << GLEnums::GetStringEnum(type) << ", " << bufSize << ", "
- << static_cast<const void*>(pixels) << ")");
- DCHECK(g_driver_gl.debug_fn.glTexSubImage2DRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glTexSubImage2DRobustANGLEFn(
- target, level, xoffset, yoffset, width, height, format, type, bufSize,
- pixels);
-}
-
-static void GL_BINDING_CALL Debug_glTexSubImage3D(GLenum target,
- GLint level,
- GLint xoffset,
- GLint yoffset,
- GLint zoffset,
- GLsizei width,
- GLsizei height,
- GLsizei depth,
- GLenum format,
- GLenum type,
- const void* pixels) {
- GL_SERVICE_LOG("glTexSubImage3D"
- << "(" << GLEnums::GetStringEnum(target) << ", " << level
- << ", " << xoffset << ", " << yoffset << ", " << zoffset
- << ", " << width << ", " << height << ", " << depth << ", "
- << GLEnums::GetStringEnum(format) << ", "
- << GLEnums::GetStringEnum(type) << ", "
- << static_cast<const void*>(pixels) << ")");
- DCHECK(g_driver_gl.debug_fn.glTexSubImage3DFn != nullptr);
- g_driver_gl.debug_fn.glTexSubImage3DFn(target, level, xoffset, yoffset,
- zoffset, width, height, depth, format,
- type, pixels);
-}
-
-static void GL_BINDING_CALL
-Debug_glTexSubImage3DRobustANGLE(GLenum target,
- GLint level,
- GLint xoffset,
- GLint yoffset,
- GLint zoffset,
- GLsizei width,
- GLsizei height,
- GLsizei depth,
- GLenum format,
- GLenum type,
- GLsizei bufSize,
- const void* pixels) {
- GL_SERVICE_LOG("glTexSubImage3DRobustANGLE"
- << "(" << GLEnums::GetStringEnum(target) << ", " << level
- << ", " << xoffset << ", " << yoffset << ", " << zoffset
- << ", " << width << ", " << height << ", " << depth << ", "
- << GLEnums::GetStringEnum(format) << ", "
- << GLEnums::GetStringEnum(type) << ", " << bufSize << ", "
- << static_cast<const void*>(pixels) << ")");
- DCHECK(g_driver_gl.debug_fn.glTexSubImage3DRobustANGLEFn != nullptr);
- g_driver_gl.debug_fn.glTexSubImage3DRobustANGLEFn(
- target, level, xoffset, yoffset, zoffset, width, height, depth, format,
- type, bufSize, pixels);
-}
-
-static void GL_BINDING_CALL
-Debug_glTransformFeedbackVaryings(GLuint program,
- GLsizei count,
- const char* const* varyings,
- GLenum bufferMode) {
- GL_SERVICE_LOG("glTransformFeedbackVaryings"
- << "(" << program << ", " << count << ", "
- << static_cast<const void*>(varyings) << ", "
- << GLEnums::GetStringEnum(bufferMode) << ")");
- DCHECK(g_driver_gl.debug_fn.glTransformFeedbackVaryingsFn != nullptr);
- g_driver_gl.debug_fn.glTransformFeedbackVaryingsFn(program, count, varyings,
- bufferMode);
-}
-
-static void GL_BINDING_CALL Debug_glUniform1f(GLint location, GLfloat x) {
- GL_SERVICE_LOG("glUniform1f"
- << "(" << location << ", " << x << ")");
- DCHECK(g_driver_gl.debug_fn.glUniform1fFn != nullptr);
- g_driver_gl.debug_fn.glUniform1fFn(location, x);
-}
-
-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) << ")");
- DCHECK(g_driver_gl.debug_fn.glUniform1fvFn != nullptr);
- g_driver_gl.debug_fn.glUniform1fvFn(location, count, v);
-}
-
-static void GL_BINDING_CALL Debug_glUniform1i(GLint location, GLint x) {
- GL_SERVICE_LOG("glUniform1i"
- << "(" << location << ", " << x << ")");
- DCHECK(g_driver_gl.debug_fn.glUniform1iFn != nullptr);
- g_driver_gl.debug_fn.glUniform1iFn(location, x);
-}
-
-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) << ")");
- DCHECK(g_driver_gl.debug_fn.glUniform1ivFn != nullptr);
- g_driver_gl.debug_fn.glUniform1ivFn(location, count, v);
-}
-
-static void GL_BINDING_CALL Debug_glUniform1ui(GLint location, GLuint v0) {
- GL_SERVICE_LOG("glUniform1ui"
- << "(" << location << ", " << v0 << ")");
- DCHECK(g_driver_gl.debug_fn.glUniform1uiFn != nullptr);
- g_driver_gl.debug_fn.glUniform1uiFn(location, v0);
-}
-
-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) << ")");
- DCHECK(g_driver_gl.debug_fn.glUniform1uivFn != nullptr);
- g_driver_gl.debug_fn.glUniform1uivFn(location, count, v);
-}
-
-static void GL_BINDING_CALL Debug_glUniform2f(GLint location,
- GLfloat x,
- GLfloat y) {
- GL_SERVICE_LOG("glUniform2f"
- << "(" << location << ", " << x << ", " << y << ")");
- DCHECK(g_driver_gl.debug_fn.glUniform2fFn != nullptr);
- g_driver_gl.debug_fn.glUniform2fFn(location, x, y);
-}
-
-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) << ")");
- DCHECK(g_driver_gl.debug_fn.glUniform2fvFn != nullptr);
- g_driver_gl.debug_fn.glUniform2fvFn(location, count, v);
-}
-
-static void GL_BINDING_CALL Debug_glUniform2i(GLint location,
- GLint x,
- GLint y) {
- GL_SERVICE_LOG("glUniform2i"
- << "(" << location << ", " << x << ", " << y << ")");
- DCHECK(g_driver_gl.debug_fn.glUniform2iFn != nullptr);
- g_driver_gl.debug_fn.glUniform2iFn(location, x, y);
-}
-
-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) << ")");
- DCHECK(g_driver_gl.debug_fn.glUniform2ivFn != nullptr);
- g_driver_gl.debug_fn.glUniform2ivFn(location, count, v);
-}
-
-static void GL_BINDING_CALL Debug_glUniform2ui(GLint location,
- GLuint v0,
- GLuint v1) {
- GL_SERVICE_LOG("glUniform2ui"
- << "(" << location << ", " << v0 << ", " << v1 << ")");
- DCHECK(g_driver_gl.debug_fn.glUniform2uiFn != nullptr);
- g_driver_gl.debug_fn.glUniform2uiFn(location, v0, v1);
-}
-
-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) << ")");
- DCHECK(g_driver_gl.debug_fn.glUniform2uivFn != nullptr);
- g_driver_gl.debug_fn.glUniform2uivFn(location, count, v);
-}
-
-static void GL_BINDING_CALL Debug_glUniform3f(GLint location,
- GLfloat x,
- GLfloat y,
- GLfloat z) {
- GL_SERVICE_LOG("glUniform3f"
- << "(" << location << ", " << x << ", " << y << ", " << z
- << ")");
- DCHECK(g_driver_gl.debug_fn.glUniform3fFn != nullptr);
- g_driver_gl.debug_fn.glUniform3fFn(location, x, y, z);
-}
-
-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) << ")");
- DCHECK(g_driver_gl.debug_fn.glUniform3fvFn != nullptr);
- g_driver_gl.debug_fn.glUniform3fvFn(location, count, v);
-}
-
-static void GL_BINDING_CALL Debug_glUniform3i(GLint location,
- GLint x,
- GLint y,
- GLint z) {
- GL_SERVICE_LOG("glUniform3i"
- << "(" << location << ", " << x << ", " << y << ", " << z
- << ")");
- DCHECK(g_driver_gl.debug_fn.glUniform3iFn != nullptr);
- g_driver_gl.debug_fn.glUniform3iFn(location, x, y, z);
-}
-
-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) << ")");
- DCHECK(g_driver_gl.debug_fn.glUniform3ivFn != nullptr);
- g_driver_gl.debug_fn.glUniform3ivFn(location, count, v);
-}
-
-static void GL_BINDING_CALL Debug_glUniform3ui(GLint location,
- GLuint v0,
- GLuint v1,
- GLuint v2) {
- GL_SERVICE_LOG("glUniform3ui"
- << "(" << location << ", " << v0 << ", " << v1 << ", " << v2
- << ")");
- DCHECK(g_driver_gl.debug_fn.glUniform3uiFn != nullptr);
- g_driver_gl.debug_fn.glUniform3uiFn(location, v0, v1, v2);
-}
-
-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) << ")");
- DCHECK(g_driver_gl.debug_fn.glUniform3uivFn != nullptr);
- g_driver_gl.debug_fn.glUniform3uivFn(location, count, v);
-}
-
-static void GL_BINDING_CALL
-Debug_glUniform4f(GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w) {
- GL_SERVICE_LOG("glUniform4f"
- << "(" << location << ", " << x << ", " << y << ", " << z
- << ", " << w << ")");
- DCHECK(g_driver_gl.debug_fn.glUniform4fFn != nullptr);
- 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) {
- GL_SERVICE_LOG("glUniform4fv"
- << "(" << location << ", " << count << ", "
- << static_cast<const void*>(v) << ")");
- DCHECK(g_driver_gl.debug_fn.glUniform4fvFn != nullptr);
- g_driver_gl.debug_fn.glUniform4fvFn(location, count, v);
-}
-
-static void GL_BINDING_CALL
-Debug_glUniform4i(GLint location, GLint x, GLint y, GLint z, GLint w) {
- GL_SERVICE_LOG("glUniform4i"
- << "(" << location << ", " << x << ", " << y << ", " << z
- << ", " << w << ")");
- DCHECK(g_driver_gl.debug_fn.glUniform4iFn != nullptr);
- 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) {
- GL_SERVICE_LOG("glUniform4iv"
- << "(" << location << ", " << count << ", "
- << static_cast<const void*>(v) << ")");
- DCHECK(g_driver_gl.debug_fn.glUniform4ivFn != nullptr);
- g_driver_gl.debug_fn.glUniform4ivFn(location, count, v);
-}
-
-static void GL_BINDING_CALL
-Debug_glUniform4ui(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3) {
- GL_SERVICE_LOG("glUniform4ui"
- << "(" << location << ", " << v0 << ", " << v1 << ", " << v2
- << ", " << v3 << ")");
- DCHECK(g_driver_gl.debug_fn.glUniform4uiFn != nullptr);
- 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) {
- GL_SERVICE_LOG("glUniform4uiv"
- << "(" << location << ", " << count << ", "
- << static_cast<const void*>(v) << ")");
- DCHECK(g_driver_gl.debug_fn.glUniform4uivFn != nullptr);
- g_driver_gl.debug_fn.glUniform4uivFn(location, count, v);
-}
-
-static void GL_BINDING_CALL
-Debug_glUniformBlockBinding(GLuint program,
- GLuint uniformBlockIndex,
- GLuint uniformBlockBinding) {
- GL_SERVICE_LOG("glUniformBlockBinding"
- << "(" << program << ", " << uniformBlockIndex << ", "
- << uniformBlockBinding << ")");
- DCHECK(g_driver_gl.debug_fn.glUniformBlockBindingFn != nullptr);
- g_driver_gl.debug_fn.glUniformBlockBindingFn(program, uniformBlockIndex,
- uniformBlockBinding);
-}
-
-static void GL_BINDING_CALL Debug_glUniformMatrix2fv(GLint location,
- GLsizei count,
- GLboolean transpose,
- const GLfloat* value) {
- GL_SERVICE_LOG("glUniformMatrix2fv"
- << "(" << location << ", " << count << ", "
- << GLEnums::GetStringBool(transpose) << ", "
- << static_cast<const void*>(value) << ")");
- DCHECK(g_driver_gl.debug_fn.glUniformMatrix2fvFn != nullptr);
- g_driver_gl.debug_fn.glUniformMatrix2fvFn(location, count, transpose, value);
-}
-
-static void GL_BINDING_CALL Debug_glUniformMatrix2x3fv(GLint location,
- GLsizei count,
- GLboolean transpose,
- const GLfloat* value) {
- GL_SERVICE_LOG("glUniformMatrix2x3fv"
- << "(" << location << ", " << count << ", "
- << GLEnums::GetStringBool(transpose) << ", "
- << static_cast<const void*>(value) << ")");
- DCHECK(g_driver_gl.debug_fn.glUniformMatrix2x3fvFn != nullptr);
- g_driver_gl.debug_fn.glUniformMatrix2x3fvFn(location, count, transpose,
- value);
-}
-
-static void GL_BINDING_CALL Debug_glUniformMatrix2x4fv(GLint location,
- GLsizei count,
- GLboolean transpose,
- const GLfloat* value) {
- GL_SERVICE_LOG("glUniformMatrix2x4fv"
- << "(" << location << ", " << count << ", "
- << GLEnums::GetStringBool(transpose) << ", "
- << static_cast<const void*>(value) << ")");
- DCHECK(g_driver_gl.debug_fn.glUniformMatrix2x4fvFn != nullptr);
- g_driver_gl.debug_fn.glUniformMatrix2x4fvFn(location, count, transpose,
- value);
-}
-
-static void GL_BINDING_CALL Debug_glUniformMatrix3fv(GLint location,
- GLsizei count,
- GLboolean transpose,
- const GLfloat* value) {
- GL_SERVICE_LOG("glUniformMatrix3fv"
- << "(" << location << ", " << count << ", "
- << GLEnums::GetStringBool(transpose) << ", "
- << static_cast<const void*>(value) << ")");
- DCHECK(g_driver_gl.debug_fn.glUniformMatrix3fvFn != nullptr);
- g_driver_gl.debug_fn.glUniformMatrix3fvFn(location, count, transpose, value);
-}
-
-static void GL_BINDING_CALL Debug_glUniformMatrix3x2fv(GLint location,
- GLsizei count,
- GLboolean transpose,
- const GLfloat* value) {
- GL_SERVICE_LOG("glUniformMatrix3x2fv"
- << "(" << location << ", " << count << ", "
- << GLEnums::GetStringBool(transpose) << ", "
- << static_cast<const void*>(value) << ")");
- DCHECK(g_driver_gl.debug_fn.glUniformMatrix3x2fvFn != nullptr);
- g_driver_gl.debug_fn.glUniformMatrix3x2fvFn(location, count, transpose,
- value);
-}
-
-static void GL_BINDING_CALL Debug_glUniformMatrix3x4fv(GLint location,
- GLsizei count,
- GLboolean transpose,
- const GLfloat* value) {
- GL_SERVICE_LOG("glUniformMatrix3x4fv"
- << "(" << location << ", " << count << ", "
- << GLEnums::GetStringBool(transpose) << ", "
- << static_cast<const void*>(value) << ")");
- DCHECK(g_driver_gl.debug_fn.glUniformMatrix3x4fvFn != nullptr);
- g_driver_gl.debug_fn.glUniformMatrix3x4fvFn(location, count, transpose,
- value);
-}
-
-static void GL_BINDING_CALL Debug_glUniformMatrix4fv(GLint location,
- GLsizei count,
- GLboolean transpose,
- const GLfloat* value) {
- GL_SERVICE_LOG("glUniformMatrix4fv"
- << "(" << location << ", " << count << ", "
- << GLEnums::GetStringBool(transpose) << ", "
- << static_cast<const void*>(value) << ")");
- DCHECK(g_driver_gl.debug_fn.glUniformMatrix4fvFn != nullptr);
- g_driver_gl.debug_fn.glUniformMatrix4fvFn(location, count, transpose, value);
-}
-
-static void GL_BINDING_CALL Debug_glUniformMatrix4x2fv(GLint location,
- GLsizei count,
- GLboolean transpose,
- const GLfloat* value) {
- GL_SERVICE_LOG("glUniformMatrix4x2fv"
- << "(" << location << ", " << count << ", "
- << GLEnums::GetStringBool(transpose) << ", "
- << static_cast<const void*>(value) << ")");
- DCHECK(g_driver_gl.debug_fn.glUniformMatrix4x2fvFn != nullptr);
- g_driver_gl.debug_fn.glUniformMatrix4x2fvFn(location, count, transpose,
- value);
-}
-
-static void GL_BINDING_CALL Debug_glUniformMatrix4x3fv(GLint location,
- GLsizei count,
- GLboolean transpose,
- const GLfloat* value) {
- GL_SERVICE_LOG("glUniformMatrix4x3fv"
- << "(" << location << ", " << count << ", "
- << GLEnums::GetStringBool(transpose) << ", "
- << static_cast<const void*>(value) << ")");
- DCHECK(g_driver_gl.debug_fn.glUniformMatrix4x3fvFn != nullptr);
- g_driver_gl.debug_fn.glUniformMatrix4x3fvFn(location, count, transpose,
- value);
-}
-
-static GLboolean GL_BINDING_CALL Debug_glUnmapBuffer(GLenum target) {
- GL_SERVICE_LOG("glUnmapBuffer"
- << "(" << GLEnums::GetStringEnum(target) << ")");
- DCHECK(g_driver_gl.debug_fn.glUnmapBufferFn != nullptr);
- GLboolean result = g_driver_gl.debug_fn.glUnmapBufferFn(target);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static void GL_BINDING_CALL Debug_glUseProgram(GLuint program) {
- GL_SERVICE_LOG("glUseProgram"
- << "(" << program << ")");
- DCHECK(g_driver_gl.debug_fn.glUseProgramFn != nullptr);
- g_driver_gl.debug_fn.glUseProgramFn(program);
-}
-
-static void GL_BINDING_CALL Debug_glValidateProgram(GLuint program) {
- GL_SERVICE_LOG("glValidateProgram"
- << "(" << program << ")");
- DCHECK(g_driver_gl.debug_fn.glValidateProgramFn != nullptr);
- g_driver_gl.debug_fn.glValidateProgramFn(program);
-}
-
-static void GL_BINDING_CALL Debug_glVertexAttrib1f(GLuint indx, GLfloat x) {
- GL_SERVICE_LOG("glVertexAttrib1f"
- << "(" << indx << ", " << x << ")");
- DCHECK(g_driver_gl.debug_fn.glVertexAttrib1fFn != nullptr);
- g_driver_gl.debug_fn.glVertexAttrib1fFn(indx, x);
-}
-
-static void GL_BINDING_CALL Debug_glVertexAttrib1fv(GLuint indx,
- const GLfloat* values) {
- GL_SERVICE_LOG("glVertexAttrib1fv"
- << "(" << indx << ", " << static_cast<const void*>(values)
- << ")");
- DCHECK(g_driver_gl.debug_fn.glVertexAttrib1fvFn != nullptr);
- g_driver_gl.debug_fn.glVertexAttrib1fvFn(indx, values);
-}
-
-static void GL_BINDING_CALL Debug_glVertexAttrib2f(GLuint indx,
- GLfloat x,
- GLfloat y) {
- GL_SERVICE_LOG("glVertexAttrib2f"
- << "(" << indx << ", " << x << ", " << y << ")");
- DCHECK(g_driver_gl.debug_fn.glVertexAttrib2fFn != nullptr);
- g_driver_gl.debug_fn.glVertexAttrib2fFn(indx, x, y);
-}
-
-static void GL_BINDING_CALL Debug_glVertexAttrib2fv(GLuint indx,
- const GLfloat* values) {
- GL_SERVICE_LOG("glVertexAttrib2fv"
- << "(" << indx << ", " << static_cast<const void*>(values)
- << ")");
- DCHECK(g_driver_gl.debug_fn.glVertexAttrib2fvFn != nullptr);
- g_driver_gl.debug_fn.glVertexAttrib2fvFn(indx, values);
-}
-
-static void GL_BINDING_CALL Debug_glVertexAttrib3f(GLuint indx,
- GLfloat x,
- GLfloat y,
- GLfloat z) {
- GL_SERVICE_LOG("glVertexAttrib3f"
- << "(" << indx << ", " << x << ", " << y << ", " << z << ")");
- DCHECK(g_driver_gl.debug_fn.glVertexAttrib3fFn != nullptr);
- g_driver_gl.debug_fn.glVertexAttrib3fFn(indx, x, y, z);
-}
-
-static void GL_BINDING_CALL Debug_glVertexAttrib3fv(GLuint indx,
- const GLfloat* values) {
- GL_SERVICE_LOG("glVertexAttrib3fv"
- << "(" << indx << ", " << static_cast<const void*>(values)
- << ")");
- DCHECK(g_driver_gl.debug_fn.glVertexAttrib3fvFn != nullptr);
- g_driver_gl.debug_fn.glVertexAttrib3fvFn(indx, values);
-}
-
-static void GL_BINDING_CALL Debug_glVertexAttrib4f(GLuint indx,
- GLfloat x,
- GLfloat y,
- GLfloat z,
- GLfloat w) {
- GL_SERVICE_LOG("glVertexAttrib4f"
- << "(" << indx << ", " << x << ", " << y << ", " << z << ", "
- << w << ")");
- DCHECK(g_driver_gl.debug_fn.glVertexAttrib4fFn != nullptr);
- g_driver_gl.debug_fn.glVertexAttrib4fFn(indx, x, y, z, w);
-}
-
-static void GL_BINDING_CALL Debug_glVertexAttrib4fv(GLuint indx,
- const GLfloat* values) {
- GL_SERVICE_LOG("glVertexAttrib4fv"
- << "(" << indx << ", " << static_cast<const void*>(values)
- << ")");
- DCHECK(g_driver_gl.debug_fn.glVertexAttrib4fvFn != nullptr);
- g_driver_gl.debug_fn.glVertexAttrib4fvFn(indx, values);
-}
-
-static void GL_BINDING_CALL Debug_glVertexAttribDivisorANGLE(GLuint index,
- GLuint divisor) {
- GL_SERVICE_LOG("glVertexAttribDivisorANGLE"
- << "(" << index << ", " << divisor << ")");
- DCHECK(g_driver_gl.debug_fn.glVertexAttribDivisorANGLEFn != nullptr);
- g_driver_gl.debug_fn.glVertexAttribDivisorANGLEFn(index, divisor);
-}
-
-static void GL_BINDING_CALL
-Debug_glVertexAttribI4i(GLuint indx, GLint x, GLint y, GLint z, GLint w) {
- GL_SERVICE_LOG("glVertexAttribI4i"
- << "(" << indx << ", " << x << ", " << y << ", " << z << ", "
- << w << ")");
- DCHECK(g_driver_gl.debug_fn.glVertexAttribI4iFn != nullptr);
- g_driver_gl.debug_fn.glVertexAttribI4iFn(indx, x, y, z, w);
-}
-
-static void GL_BINDING_CALL Debug_glVertexAttribI4iv(GLuint indx,
- const GLint* values) {
- GL_SERVICE_LOG("glVertexAttribI4iv"
- << "(" << indx << ", " << static_cast<const void*>(values)
- << ")");
- DCHECK(g_driver_gl.debug_fn.glVertexAttribI4ivFn != nullptr);
- g_driver_gl.debug_fn.glVertexAttribI4ivFn(indx, values);
-}
-
-static void GL_BINDING_CALL
-Debug_glVertexAttribI4ui(GLuint indx, GLuint x, GLuint y, GLuint z, GLuint w) {
- GL_SERVICE_LOG("glVertexAttribI4ui"
- << "(" << indx << ", " << x << ", " << y << ", " << z << ", "
- << w << ")");
- DCHECK(g_driver_gl.debug_fn.glVertexAttribI4uiFn != nullptr);
- g_driver_gl.debug_fn.glVertexAttribI4uiFn(indx, x, y, z, w);
-}
-
-static void GL_BINDING_CALL Debug_glVertexAttribI4uiv(GLuint indx,
- const GLuint* values) {
- GL_SERVICE_LOG("glVertexAttribI4uiv"
- << "(" << indx << ", " << static_cast<const void*>(values)
- << ")");
- DCHECK(g_driver_gl.debug_fn.glVertexAttribI4uivFn != nullptr);
- g_driver_gl.debug_fn.glVertexAttribI4uivFn(indx, values);
-}
-
-static void GL_BINDING_CALL Debug_glVertexAttribIPointer(GLuint indx,
- GLint size,
- GLenum type,
- GLsizei stride,
- const void* ptr) {
- GL_SERVICE_LOG("glVertexAttribIPointer"
- << "(" << indx << ", " << size << ", "
- << GLEnums::GetStringEnum(type) << ", " << stride << ", "
- << static_cast<const void*>(ptr) << ")");
- DCHECK(g_driver_gl.debug_fn.glVertexAttribIPointerFn != nullptr);
- g_driver_gl.debug_fn.glVertexAttribIPointerFn(indx, size, type, stride, ptr);
-}
-
-static void GL_BINDING_CALL Debug_glVertexAttribPointer(GLuint indx,
- GLint size,
- GLenum type,
- GLboolean normalized,
- GLsizei stride,
- const void* ptr) {
- GL_SERVICE_LOG("glVertexAttribPointer"
- << "(" << indx << ", " << size << ", "
- << GLEnums::GetStringEnum(type) << ", "
- << GLEnums::GetStringBool(normalized) << ", " << stride << ", "
- << static_cast<const void*>(ptr) << ")");
- DCHECK(g_driver_gl.debug_fn.glVertexAttribPointerFn != nullptr);
- g_driver_gl.debug_fn.glVertexAttribPointerFn(indx, size, type, normalized,
- stride, ptr);
-}
-
-static void GL_BINDING_CALL Debug_glViewport(GLint x,
- GLint y,
- GLsizei width,
- GLsizei height) {
- GL_SERVICE_LOG("glViewport"
- << "(" << x << ", " << y << ", " << width << ", " << height
- << ")");
- DCHECK(g_driver_gl.debug_fn.glViewportFn != nullptr);
- g_driver_gl.debug_fn.glViewportFn(x, y, width, height);
-}
-
-static GLenum GL_BINDING_CALL Debug_glWaitSync(GLsync sync,
- GLbitfield flags,
- GLuint64 timeout) {
- GL_SERVICE_LOG("glWaitSync"
- << "(" << sync << ", " << flags << ", " << timeout << ")");
- DCHECK(g_driver_gl.debug_fn.glWaitSyncFn != nullptr);
- GLenum result = g_driver_gl.debug_fn.glWaitSyncFn(sync, flags, timeout);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-} // extern "C"
-
-void DriverGL::InitializeDebugBindings() {
- if (!debug_fn.glActiveTextureFn) {
- 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;
- }
- if (!debug_fn.glBeginQueryFn) {
- debug_fn.glBeginQueryFn = fn.glBeginQueryFn;
- fn.glBeginQueryFn = Debug_glBeginQuery;
- }
- if (!debug_fn.glBeginTransformFeedbackFn) {
- debug_fn.glBeginTransformFeedbackFn = fn.glBeginTransformFeedbackFn;
- fn.glBeginTransformFeedbackFn = Debug_glBeginTransformFeedback;
- }
- if (!debug_fn.glBindAttribLocationFn) {
- debug_fn.glBindAttribLocationFn = fn.glBindAttribLocationFn;
- fn.glBindAttribLocationFn = Debug_glBindAttribLocation;
- }
- if (!debug_fn.glBindBufferFn) {
- debug_fn.glBindBufferFn = fn.glBindBufferFn;
- fn.glBindBufferFn = Debug_glBindBuffer;
- }
- if (!debug_fn.glBindBufferBaseFn) {
- debug_fn.glBindBufferBaseFn = fn.glBindBufferBaseFn;
- fn.glBindBufferBaseFn = Debug_glBindBufferBase;
- }
- if (!debug_fn.glBindBufferRangeFn) {
- debug_fn.glBindBufferRangeFn = fn.glBindBufferRangeFn;
- fn.glBindBufferRangeFn = Debug_glBindBufferRange;
- }
- if (!debug_fn.glBindFragDataLocationFn) {
- debug_fn.glBindFragDataLocationFn = fn.glBindFragDataLocationFn;
- fn.glBindFragDataLocationFn = Debug_glBindFragDataLocation;
- }
- if (!debug_fn.glBindFragDataLocationIndexedFn) {
- debug_fn.glBindFragDataLocationIndexedFn =
- fn.glBindFragDataLocationIndexedFn;
- fn.glBindFragDataLocationIndexedFn = Debug_glBindFragDataLocationIndexed;
- }
- if (!debug_fn.glBindFramebufferEXTFn) {
- debug_fn.glBindFramebufferEXTFn = fn.glBindFramebufferEXTFn;
- fn.glBindFramebufferEXTFn = Debug_glBindFramebufferEXT;
- }
- if (!debug_fn.glBindImageTextureEXTFn) {
- debug_fn.glBindImageTextureEXTFn = fn.glBindImageTextureEXTFn;
- fn.glBindImageTextureEXTFn = Debug_glBindImageTextureEXT;
- }
- if (!debug_fn.glBindRenderbufferEXTFn) {
- debug_fn.glBindRenderbufferEXTFn = fn.glBindRenderbufferEXTFn;
- fn.glBindRenderbufferEXTFn = Debug_glBindRenderbufferEXT;
- }
- if (!debug_fn.glBindSamplerFn) {
- debug_fn.glBindSamplerFn = fn.glBindSamplerFn;
- fn.glBindSamplerFn = Debug_glBindSampler;
- }
- if (!debug_fn.glBindTextureFn) {
- debug_fn.glBindTextureFn = fn.glBindTextureFn;
- fn.glBindTextureFn = Debug_glBindTexture;
- }
- if (!debug_fn.glBindTransformFeedbackFn) {
- debug_fn.glBindTransformFeedbackFn = fn.glBindTransformFeedbackFn;
- fn.glBindTransformFeedbackFn = Debug_glBindTransformFeedback;
- }
- if (!debug_fn.glBindUniformLocationCHROMIUMFn) {
- debug_fn.glBindUniformLocationCHROMIUMFn =
- fn.glBindUniformLocationCHROMIUMFn;
- fn.glBindUniformLocationCHROMIUMFn = Debug_glBindUniformLocationCHROMIUM;
- }
- if (!debug_fn.glBindVertexArrayOESFn) {
- debug_fn.glBindVertexArrayOESFn = fn.glBindVertexArrayOESFn;
- fn.glBindVertexArrayOESFn = Debug_glBindVertexArrayOES;
- }
- if (!debug_fn.glBlendBarrierKHRFn) {
- debug_fn.glBlendBarrierKHRFn = fn.glBlendBarrierKHRFn;
- fn.glBlendBarrierKHRFn = Debug_glBlendBarrierKHR;
- }
- if (!debug_fn.glBlendColorFn) {
- debug_fn.glBlendColorFn = fn.glBlendColorFn;
- fn.glBlendColorFn = Debug_glBlendColor;
- }
- if (!debug_fn.glBlendEquationFn) {
- debug_fn.glBlendEquationFn = fn.glBlendEquationFn;
- fn.glBlendEquationFn = Debug_glBlendEquation;
- }
- if (!debug_fn.glBlendEquationSeparateFn) {
- debug_fn.glBlendEquationSeparateFn = fn.glBlendEquationSeparateFn;
- fn.glBlendEquationSeparateFn = Debug_glBlendEquationSeparate;
- }
- if (!debug_fn.glBlendFuncFn) {
- debug_fn.glBlendFuncFn = fn.glBlendFuncFn;
- fn.glBlendFuncFn = Debug_glBlendFunc;
- }
- if (!debug_fn.glBlendFuncSeparateFn) {
- debug_fn.glBlendFuncSeparateFn = fn.glBlendFuncSeparateFn;
- fn.glBlendFuncSeparateFn = Debug_glBlendFuncSeparate;
- }
- if (!debug_fn.glBlitFramebufferFn) {
- debug_fn.glBlitFramebufferFn = fn.glBlitFramebufferFn;
- fn.glBlitFramebufferFn = Debug_glBlitFramebuffer;
- }
- if (!debug_fn.glBlitFramebufferANGLEFn) {
- debug_fn.glBlitFramebufferANGLEFn = fn.glBlitFramebufferANGLEFn;
- fn.glBlitFramebufferANGLEFn = Debug_glBlitFramebufferANGLE;
- }
- if (!debug_fn.glBlitFramebufferEXTFn) {
- debug_fn.glBlitFramebufferEXTFn = fn.glBlitFramebufferEXTFn;
- fn.glBlitFramebufferEXTFn = Debug_glBlitFramebufferEXT;
- }
- if (!debug_fn.glBufferDataFn) {
- debug_fn.glBufferDataFn = fn.glBufferDataFn;
- fn.glBufferDataFn = Debug_glBufferData;
- }
- if (!debug_fn.glBufferSubDataFn) {
- debug_fn.glBufferSubDataFn = fn.glBufferSubDataFn;
- fn.glBufferSubDataFn = Debug_glBufferSubData;
- }
- if (!debug_fn.glCheckFramebufferStatusEXTFn) {
- debug_fn.glCheckFramebufferStatusEXTFn = fn.glCheckFramebufferStatusEXTFn;
- fn.glCheckFramebufferStatusEXTFn = Debug_glCheckFramebufferStatusEXT;
- }
- if (!debug_fn.glClearFn) {
- debug_fn.glClearFn = fn.glClearFn;
- fn.glClearFn = Debug_glClear;
- }
- if (!debug_fn.glClearBufferfiFn) {
- debug_fn.glClearBufferfiFn = fn.glClearBufferfiFn;
- fn.glClearBufferfiFn = Debug_glClearBufferfi;
- }
- if (!debug_fn.glClearBufferfvFn) {
- debug_fn.glClearBufferfvFn = fn.glClearBufferfvFn;
- fn.glClearBufferfvFn = Debug_glClearBufferfv;
- }
- if (!debug_fn.glClearBufferivFn) {
- debug_fn.glClearBufferivFn = fn.glClearBufferivFn;
- fn.glClearBufferivFn = Debug_glClearBufferiv;
- }
- if (!debug_fn.glClearBufferuivFn) {
- debug_fn.glClearBufferuivFn = fn.glClearBufferuivFn;
- fn.glClearBufferuivFn = Debug_glClearBufferuiv;
- }
- if (!debug_fn.glClearColorFn) {
- debug_fn.glClearColorFn = fn.glClearColorFn;
- fn.glClearColorFn = Debug_glClearColor;
- }
- if (!debug_fn.glClearDepthFn) {
- debug_fn.glClearDepthFn = fn.glClearDepthFn;
- fn.glClearDepthFn = Debug_glClearDepth;
- }
- if (!debug_fn.glClearDepthfFn) {
- debug_fn.glClearDepthfFn = fn.glClearDepthfFn;
- fn.glClearDepthfFn = Debug_glClearDepthf;
- }
- if (!debug_fn.glClearStencilFn) {
- debug_fn.glClearStencilFn = fn.glClearStencilFn;
- fn.glClearStencilFn = Debug_glClearStencil;
- }
- if (!debug_fn.glClientWaitSyncFn) {
- debug_fn.glClientWaitSyncFn = fn.glClientWaitSyncFn;
- fn.glClientWaitSyncFn = Debug_glClientWaitSync;
- }
- if (!debug_fn.glColorMaskFn) {
- debug_fn.glColorMaskFn = fn.glColorMaskFn;
- fn.glColorMaskFn = Debug_glColorMask;
- }
- if (!debug_fn.glCompileShaderFn) {
- debug_fn.glCompileShaderFn = fn.glCompileShaderFn;
- fn.glCompileShaderFn = Debug_glCompileShader;
- }
- if (!debug_fn.glCompressedCopyTextureCHROMIUMFn) {
- debug_fn.glCompressedCopyTextureCHROMIUMFn =
- fn.glCompressedCopyTextureCHROMIUMFn;
- fn.glCompressedCopyTextureCHROMIUMFn =
- Debug_glCompressedCopyTextureCHROMIUM;
- }
- if (!debug_fn.glCompressedTexImage2DFn) {
- debug_fn.glCompressedTexImage2DFn = fn.glCompressedTexImage2DFn;
- fn.glCompressedTexImage2DFn = Debug_glCompressedTexImage2D;
- }
- if (!debug_fn.glCompressedTexImage3DFn) {
- debug_fn.glCompressedTexImage3DFn = fn.glCompressedTexImage3DFn;
- fn.glCompressedTexImage3DFn = Debug_glCompressedTexImage3D;
- }
- if (!debug_fn.glCompressedTexSubImage2DFn) {
- debug_fn.glCompressedTexSubImage2DFn = fn.glCompressedTexSubImage2DFn;
- fn.glCompressedTexSubImage2DFn = Debug_glCompressedTexSubImage2D;
- }
- if (!debug_fn.glCompressedTexSubImage3DFn) {
- debug_fn.glCompressedTexSubImage3DFn = fn.glCompressedTexSubImage3DFn;
- fn.glCompressedTexSubImage3DFn = Debug_glCompressedTexSubImage3D;
- }
- if (!debug_fn.glCopyBufferSubDataFn) {
- debug_fn.glCopyBufferSubDataFn = fn.glCopyBufferSubDataFn;
- fn.glCopyBufferSubDataFn = Debug_glCopyBufferSubData;
- }
- if (!debug_fn.glCopySubTextureCHROMIUMFn) {
- debug_fn.glCopySubTextureCHROMIUMFn = fn.glCopySubTextureCHROMIUMFn;
- fn.glCopySubTextureCHROMIUMFn = Debug_glCopySubTextureCHROMIUM;
- }
- if (!debug_fn.glCopyTexImage2DFn) {
- debug_fn.glCopyTexImage2DFn = fn.glCopyTexImage2DFn;
- fn.glCopyTexImage2DFn = Debug_glCopyTexImage2D;
- }
- if (!debug_fn.glCopyTexSubImage2DFn) {
- debug_fn.glCopyTexSubImage2DFn = fn.glCopyTexSubImage2DFn;
- fn.glCopyTexSubImage2DFn = Debug_glCopyTexSubImage2D;
- }
- if (!debug_fn.glCopyTexSubImage3DFn) {
- debug_fn.glCopyTexSubImage3DFn = fn.glCopyTexSubImage3DFn;
- fn.glCopyTexSubImage3DFn = Debug_glCopyTexSubImage3D;
- }
- if (!debug_fn.glCopyTextureCHROMIUMFn) {
- debug_fn.glCopyTextureCHROMIUMFn = fn.glCopyTextureCHROMIUMFn;
- fn.glCopyTextureCHROMIUMFn = Debug_glCopyTextureCHROMIUM;
- }
- if (!debug_fn.glCoverageModulationNVFn) {
- debug_fn.glCoverageModulationNVFn = fn.glCoverageModulationNVFn;
- fn.glCoverageModulationNVFn = Debug_glCoverageModulationNV;
- }
- if (!debug_fn.glCoverFillPathInstancedNVFn) {
- debug_fn.glCoverFillPathInstancedNVFn = fn.glCoverFillPathInstancedNVFn;
- fn.glCoverFillPathInstancedNVFn = Debug_glCoverFillPathInstancedNV;
- }
- if (!debug_fn.glCoverFillPathNVFn) {
- debug_fn.glCoverFillPathNVFn = fn.glCoverFillPathNVFn;
- fn.glCoverFillPathNVFn = Debug_glCoverFillPathNV;
- }
- if (!debug_fn.glCoverStrokePathInstancedNVFn) {
- debug_fn.glCoverStrokePathInstancedNVFn = fn.glCoverStrokePathInstancedNVFn;
- fn.glCoverStrokePathInstancedNVFn = Debug_glCoverStrokePathInstancedNV;
- }
- 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;
- }
- if (!debug_fn.glCreateShaderFn) {
- debug_fn.glCreateShaderFn = fn.glCreateShaderFn;
- fn.glCreateShaderFn = Debug_glCreateShader;
- }
- if (!debug_fn.glCullFaceFn) {
- debug_fn.glCullFaceFn = fn.glCullFaceFn;
- fn.glCullFaceFn = Debug_glCullFace;
- }
- if (!debug_fn.glDebugMessageCallbackFn) {
- debug_fn.glDebugMessageCallbackFn = fn.glDebugMessageCallbackFn;
- fn.glDebugMessageCallbackFn = Debug_glDebugMessageCallback;
- }
- if (!debug_fn.glDebugMessageControlFn) {
- debug_fn.glDebugMessageControlFn = fn.glDebugMessageControlFn;
- fn.glDebugMessageControlFn = Debug_glDebugMessageControl;
- }
- if (!debug_fn.glDebugMessageInsertFn) {
- debug_fn.glDebugMessageInsertFn = fn.glDebugMessageInsertFn;
- fn.glDebugMessageInsertFn = Debug_glDebugMessageInsert;
- }
- if (!debug_fn.glDeleteBuffersARBFn) {
- debug_fn.glDeleteBuffersARBFn = fn.glDeleteBuffersARBFn;
- fn.glDeleteBuffersARBFn = Debug_glDeleteBuffersARB;
- }
- if (!debug_fn.glDeleteFencesAPPLEFn) {
- debug_fn.glDeleteFencesAPPLEFn = fn.glDeleteFencesAPPLEFn;
- fn.glDeleteFencesAPPLEFn = Debug_glDeleteFencesAPPLE;
- }
- if (!debug_fn.glDeleteFencesNVFn) {
- debug_fn.glDeleteFencesNVFn = fn.glDeleteFencesNVFn;
- fn.glDeleteFencesNVFn = Debug_glDeleteFencesNV;
- }
- if (!debug_fn.glDeleteFramebuffersEXTFn) {
- 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;
- }
- if (!debug_fn.glDeleteQueriesFn) {
- debug_fn.glDeleteQueriesFn = fn.glDeleteQueriesFn;
- fn.glDeleteQueriesFn = Debug_glDeleteQueries;
- }
- if (!debug_fn.glDeleteRenderbuffersEXTFn) {
- debug_fn.glDeleteRenderbuffersEXTFn = fn.glDeleteRenderbuffersEXTFn;
- fn.glDeleteRenderbuffersEXTFn = Debug_glDeleteRenderbuffersEXT;
- }
- if (!debug_fn.glDeleteSamplersFn) {
- debug_fn.glDeleteSamplersFn = fn.glDeleteSamplersFn;
- fn.glDeleteSamplersFn = Debug_glDeleteSamplers;
- }
- if (!debug_fn.glDeleteShaderFn) {
- debug_fn.glDeleteShaderFn = fn.glDeleteShaderFn;
- fn.glDeleteShaderFn = Debug_glDeleteShader;
- }
- if (!debug_fn.glDeleteSyncFn) {
- debug_fn.glDeleteSyncFn = fn.glDeleteSyncFn;
- fn.glDeleteSyncFn = Debug_glDeleteSync;
- }
- if (!debug_fn.glDeleteTexturesFn) {
- debug_fn.glDeleteTexturesFn = fn.glDeleteTexturesFn;
- fn.glDeleteTexturesFn = Debug_glDeleteTextures;
- }
- if (!debug_fn.glDeleteTransformFeedbacksFn) {
- debug_fn.glDeleteTransformFeedbacksFn = fn.glDeleteTransformFeedbacksFn;
- fn.glDeleteTransformFeedbacksFn = Debug_glDeleteTransformFeedbacks;
- }
- if (!debug_fn.glDeleteVertexArraysOESFn) {
- debug_fn.glDeleteVertexArraysOESFn = fn.glDeleteVertexArraysOESFn;
- fn.glDeleteVertexArraysOESFn = Debug_glDeleteVertexArraysOES;
- }
- if (!debug_fn.glDepthFuncFn) {
- debug_fn.glDepthFuncFn = fn.glDepthFuncFn;
- fn.glDepthFuncFn = Debug_glDepthFunc;
- }
- if (!debug_fn.glDepthMaskFn) {
- debug_fn.glDepthMaskFn = fn.glDepthMaskFn;
- fn.glDepthMaskFn = Debug_glDepthMask;
- }
- if (!debug_fn.glDepthRangeFn) {
- debug_fn.glDepthRangeFn = fn.glDepthRangeFn;
- fn.glDepthRangeFn = Debug_glDepthRange;
- }
- if (!debug_fn.glDepthRangefFn) {
- debug_fn.glDepthRangefFn = fn.glDepthRangefFn;
- fn.glDepthRangefFn = Debug_glDepthRangef;
- }
- if (!debug_fn.glDetachShaderFn) {
- debug_fn.glDetachShaderFn = fn.glDetachShaderFn;
- fn.glDetachShaderFn = Debug_glDetachShader;
- }
- if (!debug_fn.glDisableFn) {
- debug_fn.glDisableFn = fn.glDisableFn;
- fn.glDisableFn = Debug_glDisable;
- }
- if (!debug_fn.glDisableVertexAttribArrayFn) {
- debug_fn.glDisableVertexAttribArrayFn = fn.glDisableVertexAttribArrayFn;
- fn.glDisableVertexAttribArrayFn = Debug_glDisableVertexAttribArray;
- }
- if (!debug_fn.glDiscardFramebufferEXTFn) {
- debug_fn.glDiscardFramebufferEXTFn = fn.glDiscardFramebufferEXTFn;
- fn.glDiscardFramebufferEXTFn = Debug_glDiscardFramebufferEXT;
- }
- if (!debug_fn.glDrawArraysFn) {
- debug_fn.glDrawArraysFn = fn.glDrawArraysFn;
- fn.glDrawArraysFn = Debug_glDrawArrays;
- }
- if (!debug_fn.glDrawArraysInstancedANGLEFn) {
- debug_fn.glDrawArraysInstancedANGLEFn = fn.glDrawArraysInstancedANGLEFn;
- fn.glDrawArraysInstancedANGLEFn = Debug_glDrawArraysInstancedANGLE;
- }
- if (!debug_fn.glDrawBufferFn) {
- debug_fn.glDrawBufferFn = fn.glDrawBufferFn;
- fn.glDrawBufferFn = Debug_glDrawBuffer;
- }
- if (!debug_fn.glDrawBuffersARBFn) {
- debug_fn.glDrawBuffersARBFn = fn.glDrawBuffersARBFn;
- fn.glDrawBuffersARBFn = Debug_glDrawBuffersARB;
- }
- if (!debug_fn.glDrawElementsFn) {
- debug_fn.glDrawElementsFn = fn.glDrawElementsFn;
- fn.glDrawElementsFn = Debug_glDrawElements;
- }
- if (!debug_fn.glDrawElementsInstancedANGLEFn) {
- debug_fn.glDrawElementsInstancedANGLEFn = fn.glDrawElementsInstancedANGLEFn;
- fn.glDrawElementsInstancedANGLEFn = Debug_glDrawElementsInstancedANGLE;
- }
- if (!debug_fn.glDrawRangeElementsFn) {
- debug_fn.glDrawRangeElementsFn = fn.glDrawRangeElementsFn;
- fn.glDrawRangeElementsFn = Debug_glDrawRangeElements;
- }
- if (!debug_fn.glEGLImageTargetRenderbufferStorageOESFn) {
- debug_fn.glEGLImageTargetRenderbufferStorageOESFn =
- fn.glEGLImageTargetRenderbufferStorageOESFn;
- fn.glEGLImageTargetRenderbufferStorageOESFn =
- Debug_glEGLImageTargetRenderbufferStorageOES;
- }
- if (!debug_fn.glEGLImageTargetTexture2DOESFn) {
- debug_fn.glEGLImageTargetTexture2DOESFn = fn.glEGLImageTargetTexture2DOESFn;
- fn.glEGLImageTargetTexture2DOESFn = Debug_glEGLImageTargetTexture2DOES;
- }
- if (!debug_fn.glEnableFn) {
- debug_fn.glEnableFn = fn.glEnableFn;
- fn.glEnableFn = Debug_glEnable;
- }
- if (!debug_fn.glEnableVertexAttribArrayFn) {
- debug_fn.glEnableVertexAttribArrayFn = fn.glEnableVertexAttribArrayFn;
- fn.glEnableVertexAttribArrayFn = Debug_glEnableVertexAttribArray;
- }
- if (!debug_fn.glEndQueryFn) {
- debug_fn.glEndQueryFn = fn.glEndQueryFn;
- fn.glEndQueryFn = Debug_glEndQuery;
- }
- if (!debug_fn.glEndTransformFeedbackFn) {
- debug_fn.glEndTransformFeedbackFn = fn.glEndTransformFeedbackFn;
- fn.glEndTransformFeedbackFn = Debug_glEndTransformFeedback;
- }
- if (!debug_fn.glFenceSyncFn) {
- debug_fn.glFenceSyncFn = fn.glFenceSyncFn;
- fn.glFenceSyncFn = Debug_glFenceSync;
- }
- if (!debug_fn.glFinishFn) {
- debug_fn.glFinishFn = fn.glFinishFn;
- fn.glFinishFn = Debug_glFinish;
- }
- if (!debug_fn.glFinishFenceAPPLEFn) {
- debug_fn.glFinishFenceAPPLEFn = fn.glFinishFenceAPPLEFn;
- fn.glFinishFenceAPPLEFn = Debug_glFinishFenceAPPLE;
- }
- if (!debug_fn.glFinishFenceNVFn) {
- debug_fn.glFinishFenceNVFn = fn.glFinishFenceNVFn;
- fn.glFinishFenceNVFn = Debug_glFinishFenceNV;
- }
- if (!debug_fn.glFlushFn) {
- debug_fn.glFlushFn = fn.glFlushFn;
- fn.glFlushFn = Debug_glFlush;
- }
- if (!debug_fn.glFlushMappedBufferRangeFn) {
- debug_fn.glFlushMappedBufferRangeFn = fn.glFlushMappedBufferRangeFn;
- fn.glFlushMappedBufferRangeFn = Debug_glFlushMappedBufferRange;
- }
- if (!debug_fn.glFramebufferRenderbufferEXTFn) {
- debug_fn.glFramebufferRenderbufferEXTFn = fn.glFramebufferRenderbufferEXTFn;
- fn.glFramebufferRenderbufferEXTFn = Debug_glFramebufferRenderbufferEXT;
- }
- if (!debug_fn.glFramebufferTexture2DEXTFn) {
- debug_fn.glFramebufferTexture2DEXTFn = fn.glFramebufferTexture2DEXTFn;
- fn.glFramebufferTexture2DEXTFn = Debug_glFramebufferTexture2DEXT;
- }
- if (!debug_fn.glFramebufferTexture2DMultisampleEXTFn) {
- debug_fn.glFramebufferTexture2DMultisampleEXTFn =
- fn.glFramebufferTexture2DMultisampleEXTFn;
- fn.glFramebufferTexture2DMultisampleEXTFn =
- Debug_glFramebufferTexture2DMultisampleEXT;
- }
- if (!debug_fn.glFramebufferTexture2DMultisampleIMGFn) {
- debug_fn.glFramebufferTexture2DMultisampleIMGFn =
- fn.glFramebufferTexture2DMultisampleIMGFn;
- fn.glFramebufferTexture2DMultisampleIMGFn =
- Debug_glFramebufferTexture2DMultisampleIMG;
- }
- if (!debug_fn.glFramebufferTextureLayerFn) {
- debug_fn.glFramebufferTextureLayerFn = fn.glFramebufferTextureLayerFn;
- fn.glFramebufferTextureLayerFn = Debug_glFramebufferTextureLayer;
- }
- if (!debug_fn.glFrontFaceFn) {
- debug_fn.glFrontFaceFn = fn.glFrontFaceFn;
- fn.glFrontFaceFn = Debug_glFrontFace;
- }
- if (!debug_fn.glGenBuffersARBFn) {
- debug_fn.glGenBuffersARBFn = fn.glGenBuffersARBFn;
- fn.glGenBuffersARBFn = Debug_glGenBuffersARB;
- }
- if (!debug_fn.glGenerateMipmapEXTFn) {
- debug_fn.glGenerateMipmapEXTFn = fn.glGenerateMipmapEXTFn;
- fn.glGenerateMipmapEXTFn = Debug_glGenerateMipmapEXT;
- }
- if (!debug_fn.glGenFencesAPPLEFn) {
- debug_fn.glGenFencesAPPLEFn = fn.glGenFencesAPPLEFn;
- fn.glGenFencesAPPLEFn = Debug_glGenFencesAPPLE;
- }
- if (!debug_fn.glGenFencesNVFn) {
- debug_fn.glGenFencesNVFn = fn.glGenFencesNVFn;
- fn.glGenFencesNVFn = Debug_glGenFencesNV;
- }
- if (!debug_fn.glGenFramebuffersEXTFn) {
- 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;
- }
- if (!debug_fn.glGenRenderbuffersEXTFn) {
- debug_fn.glGenRenderbuffersEXTFn = fn.glGenRenderbuffersEXTFn;
- fn.glGenRenderbuffersEXTFn = Debug_glGenRenderbuffersEXT;
- }
- if (!debug_fn.glGenSamplersFn) {
- debug_fn.glGenSamplersFn = fn.glGenSamplersFn;
- fn.glGenSamplersFn = Debug_glGenSamplers;
- }
- if (!debug_fn.glGenTexturesFn) {
- debug_fn.glGenTexturesFn = fn.glGenTexturesFn;
- fn.glGenTexturesFn = Debug_glGenTextures;
- }
- if (!debug_fn.glGenTransformFeedbacksFn) {
- debug_fn.glGenTransformFeedbacksFn = fn.glGenTransformFeedbacksFn;
- fn.glGenTransformFeedbacksFn = Debug_glGenTransformFeedbacks;
- }
- if (!debug_fn.glGenVertexArraysOESFn) {
- debug_fn.glGenVertexArraysOESFn = fn.glGenVertexArraysOESFn;
- fn.glGenVertexArraysOESFn = Debug_glGenVertexArraysOES;
- }
- if (!debug_fn.glGetActiveAttribFn) {
- debug_fn.glGetActiveAttribFn = fn.glGetActiveAttribFn;
- fn.glGetActiveAttribFn = Debug_glGetActiveAttrib;
- }
- if (!debug_fn.glGetActiveUniformFn) {
- debug_fn.glGetActiveUniformFn = fn.glGetActiveUniformFn;
- fn.glGetActiveUniformFn = Debug_glGetActiveUniform;
- }
- if (!debug_fn.glGetActiveUniformBlockivFn) {
- debug_fn.glGetActiveUniformBlockivFn = fn.glGetActiveUniformBlockivFn;
- fn.glGetActiveUniformBlockivFn = Debug_glGetActiveUniformBlockiv;
- }
- if (!debug_fn.glGetActiveUniformBlockivRobustANGLEFn) {
- debug_fn.glGetActiveUniformBlockivRobustANGLEFn =
- fn.glGetActiveUniformBlockivRobustANGLEFn;
- fn.glGetActiveUniformBlockivRobustANGLEFn =
- Debug_glGetActiveUniformBlockivRobustANGLE;
- }
- if (!debug_fn.glGetActiveUniformBlockNameFn) {
- debug_fn.glGetActiveUniformBlockNameFn = fn.glGetActiveUniformBlockNameFn;
- fn.glGetActiveUniformBlockNameFn = Debug_glGetActiveUniformBlockName;
- }
- if (!debug_fn.glGetActiveUniformsivFn) {
- debug_fn.glGetActiveUniformsivFn = fn.glGetActiveUniformsivFn;
- fn.glGetActiveUniformsivFn = Debug_glGetActiveUniformsiv;
- }
- if (!debug_fn.glGetAttachedShadersFn) {
- debug_fn.glGetAttachedShadersFn = fn.glGetAttachedShadersFn;
- fn.glGetAttachedShadersFn = Debug_glGetAttachedShaders;
- }
- if (!debug_fn.glGetAttribLocationFn) {
- debug_fn.glGetAttribLocationFn = fn.glGetAttribLocationFn;
- fn.glGetAttribLocationFn = Debug_glGetAttribLocation;
- }
- if (!debug_fn.glGetBooleani_vRobustANGLEFn) {
- debug_fn.glGetBooleani_vRobustANGLEFn = fn.glGetBooleani_vRobustANGLEFn;
- fn.glGetBooleani_vRobustANGLEFn = Debug_glGetBooleani_vRobustANGLE;
- }
- if (!debug_fn.glGetBooleanvFn) {
- debug_fn.glGetBooleanvFn = fn.glGetBooleanvFn;
- fn.glGetBooleanvFn = Debug_glGetBooleanv;
- }
- if (!debug_fn.glGetBooleanvRobustANGLEFn) {
- debug_fn.glGetBooleanvRobustANGLEFn = fn.glGetBooleanvRobustANGLEFn;
- fn.glGetBooleanvRobustANGLEFn = Debug_glGetBooleanvRobustANGLE;
- }
- if (!debug_fn.glGetBufferParameteri64vRobustANGLEFn) {
- debug_fn.glGetBufferParameteri64vRobustANGLEFn =
- fn.glGetBufferParameteri64vRobustANGLEFn;
- fn.glGetBufferParameteri64vRobustANGLEFn =
- Debug_glGetBufferParameteri64vRobustANGLE;
- }
- if (!debug_fn.glGetBufferParameterivFn) {
- debug_fn.glGetBufferParameterivFn = fn.glGetBufferParameterivFn;
- fn.glGetBufferParameterivFn = Debug_glGetBufferParameteriv;
- }
- if (!debug_fn.glGetBufferParameterivRobustANGLEFn) {
- debug_fn.glGetBufferParameterivRobustANGLEFn =
- fn.glGetBufferParameterivRobustANGLEFn;
- fn.glGetBufferParameterivRobustANGLEFn =
- Debug_glGetBufferParameterivRobustANGLE;
- }
- if (!debug_fn.glGetBufferPointervRobustANGLEFn) {
- debug_fn.glGetBufferPointervRobustANGLEFn =
- fn.glGetBufferPointervRobustANGLEFn;
- fn.glGetBufferPointervRobustANGLEFn = Debug_glGetBufferPointervRobustANGLE;
- }
- if (!debug_fn.glGetDebugMessageLogFn) {
- debug_fn.glGetDebugMessageLogFn = fn.glGetDebugMessageLogFn;
- fn.glGetDebugMessageLogFn = Debug_glGetDebugMessageLog;
- }
- if (!debug_fn.glGetErrorFn) {
- debug_fn.glGetErrorFn = fn.glGetErrorFn;
- fn.glGetErrorFn = Debug_glGetError;
- }
- if (!debug_fn.glGetFenceivNVFn) {
- debug_fn.glGetFenceivNVFn = fn.glGetFenceivNVFn;
- fn.glGetFenceivNVFn = Debug_glGetFenceivNV;
- }
- if (!debug_fn.glGetFloatvFn) {
- debug_fn.glGetFloatvFn = fn.glGetFloatvFn;
- fn.glGetFloatvFn = Debug_glGetFloatv;
- }
- if (!debug_fn.glGetFloatvRobustANGLEFn) {
- debug_fn.glGetFloatvRobustANGLEFn = fn.glGetFloatvRobustANGLEFn;
- fn.glGetFloatvRobustANGLEFn = Debug_glGetFloatvRobustANGLE;
- }
- if (!debug_fn.glGetFragDataIndexFn) {
- debug_fn.glGetFragDataIndexFn = fn.glGetFragDataIndexFn;
- fn.glGetFragDataIndexFn = Debug_glGetFragDataIndex;
- }
- if (!debug_fn.glGetFragDataLocationFn) {
- debug_fn.glGetFragDataLocationFn = fn.glGetFragDataLocationFn;
- fn.glGetFragDataLocationFn = Debug_glGetFragDataLocation;
- }
- if (!debug_fn.glGetFramebufferAttachmentParameterivEXTFn) {
- debug_fn.glGetFramebufferAttachmentParameterivEXTFn =
- fn.glGetFramebufferAttachmentParameterivEXTFn;
- fn.glGetFramebufferAttachmentParameterivEXTFn =
- Debug_glGetFramebufferAttachmentParameterivEXT;
- }
- if (!debug_fn.glGetFramebufferAttachmentParameterivRobustANGLEFn) {
- debug_fn.glGetFramebufferAttachmentParameterivRobustANGLEFn =
- fn.glGetFramebufferAttachmentParameterivRobustANGLEFn;
- fn.glGetFramebufferAttachmentParameterivRobustANGLEFn =
- Debug_glGetFramebufferAttachmentParameterivRobustANGLE;
- }
- if (!debug_fn.glGetFramebufferParameterivRobustANGLEFn) {
- debug_fn.glGetFramebufferParameterivRobustANGLEFn =
- fn.glGetFramebufferParameterivRobustANGLEFn;
- fn.glGetFramebufferParameterivRobustANGLEFn =
- Debug_glGetFramebufferParameterivRobustANGLE;
- }
- if (!debug_fn.glGetGraphicsResetStatusARBFn) {
- debug_fn.glGetGraphicsResetStatusARBFn = fn.glGetGraphicsResetStatusARBFn;
- fn.glGetGraphicsResetStatusARBFn = Debug_glGetGraphicsResetStatusARB;
- }
- if (!debug_fn.glGetInteger64i_vFn) {
- debug_fn.glGetInteger64i_vFn = fn.glGetInteger64i_vFn;
- fn.glGetInteger64i_vFn = Debug_glGetInteger64i_v;
- }
- if (!debug_fn.glGetInteger64i_vRobustANGLEFn) {
- debug_fn.glGetInteger64i_vRobustANGLEFn = fn.glGetInteger64i_vRobustANGLEFn;
- fn.glGetInteger64i_vRobustANGLEFn = Debug_glGetInteger64i_vRobustANGLE;
- }
- if (!debug_fn.glGetInteger64vFn) {
- debug_fn.glGetInteger64vFn = fn.glGetInteger64vFn;
- fn.glGetInteger64vFn = Debug_glGetInteger64v;
- }
- if (!debug_fn.glGetInteger64vRobustANGLEFn) {
- debug_fn.glGetInteger64vRobustANGLEFn = fn.glGetInteger64vRobustANGLEFn;
- fn.glGetInteger64vRobustANGLEFn = Debug_glGetInteger64vRobustANGLE;
- }
- if (!debug_fn.glGetIntegeri_vFn) {
- debug_fn.glGetIntegeri_vFn = fn.glGetIntegeri_vFn;
- fn.glGetIntegeri_vFn = Debug_glGetIntegeri_v;
- }
- if (!debug_fn.glGetIntegeri_vRobustANGLEFn) {
- debug_fn.glGetIntegeri_vRobustANGLEFn = fn.glGetIntegeri_vRobustANGLEFn;
- fn.glGetIntegeri_vRobustANGLEFn = Debug_glGetIntegeri_vRobustANGLE;
- }
- if (!debug_fn.glGetIntegervFn) {
- debug_fn.glGetIntegervFn = fn.glGetIntegervFn;
- fn.glGetIntegervFn = Debug_glGetIntegerv;
- }
- if (!debug_fn.glGetIntegervRobustANGLEFn) {
- debug_fn.glGetIntegervRobustANGLEFn = fn.glGetIntegervRobustANGLEFn;
- fn.glGetIntegervRobustANGLEFn = Debug_glGetIntegervRobustANGLE;
- }
- if (!debug_fn.glGetInternalformativFn) {
- debug_fn.glGetInternalformativFn = fn.glGetInternalformativFn;
- fn.glGetInternalformativFn = Debug_glGetInternalformativ;
- }
- if (!debug_fn.glGetInternalformativRobustANGLEFn) {
- debug_fn.glGetInternalformativRobustANGLEFn =
- fn.glGetInternalformativRobustANGLEFn;
- fn.glGetInternalformativRobustANGLEFn =
- Debug_glGetInternalformativRobustANGLE;
- }
- if (!debug_fn.glGetMultisamplefvRobustANGLEFn) {
- debug_fn.glGetMultisamplefvRobustANGLEFn =
- fn.glGetMultisamplefvRobustANGLEFn;
- fn.glGetMultisamplefvRobustANGLEFn = Debug_glGetMultisamplefvRobustANGLE;
- }
- if (!debug_fn.glGetnUniformfvRobustANGLEFn) {
- debug_fn.glGetnUniformfvRobustANGLEFn = fn.glGetnUniformfvRobustANGLEFn;
- fn.glGetnUniformfvRobustANGLEFn = Debug_glGetnUniformfvRobustANGLE;
- }
- if (!debug_fn.glGetnUniformivRobustANGLEFn) {
- debug_fn.glGetnUniformivRobustANGLEFn = fn.glGetnUniformivRobustANGLEFn;
- fn.glGetnUniformivRobustANGLEFn = Debug_glGetnUniformivRobustANGLE;
- }
- if (!debug_fn.glGetnUniformuivRobustANGLEFn) {
- debug_fn.glGetnUniformuivRobustANGLEFn = fn.glGetnUniformuivRobustANGLEFn;
- fn.glGetnUniformuivRobustANGLEFn = Debug_glGetnUniformuivRobustANGLE;
- }
- if (!debug_fn.glGetObjectLabelFn) {
- debug_fn.glGetObjectLabelFn = fn.glGetObjectLabelFn;
- fn.glGetObjectLabelFn = Debug_glGetObjectLabel;
- }
- if (!debug_fn.glGetObjectPtrLabelFn) {
- debug_fn.glGetObjectPtrLabelFn = fn.glGetObjectPtrLabelFn;
- fn.glGetObjectPtrLabelFn = Debug_glGetObjectPtrLabel;
- }
- if (!debug_fn.glGetPointervFn) {
- debug_fn.glGetPointervFn = fn.glGetPointervFn;
- fn.glGetPointervFn = Debug_glGetPointerv;
- }
- if (!debug_fn.glGetPointervRobustANGLERobustANGLEFn) {
- debug_fn.glGetPointervRobustANGLERobustANGLEFn =
- fn.glGetPointervRobustANGLERobustANGLEFn;
- fn.glGetPointervRobustANGLERobustANGLEFn =
- Debug_glGetPointervRobustANGLERobustANGLE;
- }
- if (!debug_fn.glGetProgramBinaryFn) {
- debug_fn.glGetProgramBinaryFn = fn.glGetProgramBinaryFn;
- fn.glGetProgramBinaryFn = Debug_glGetProgramBinary;
- }
- if (!debug_fn.glGetProgramInfoLogFn) {
- debug_fn.glGetProgramInfoLogFn = fn.glGetProgramInfoLogFn;
- fn.glGetProgramInfoLogFn = Debug_glGetProgramInfoLog;
- }
- if (!debug_fn.glGetProgramInterfaceivFn) {
- debug_fn.glGetProgramInterfaceivFn = fn.glGetProgramInterfaceivFn;
- fn.glGetProgramInterfaceivFn = Debug_glGetProgramInterfaceiv;
- }
- if (!debug_fn.glGetProgramInterfaceivRobustANGLEFn) {
- debug_fn.glGetProgramInterfaceivRobustANGLEFn =
- fn.glGetProgramInterfaceivRobustANGLEFn;
- fn.glGetProgramInterfaceivRobustANGLEFn =
- Debug_glGetProgramInterfaceivRobustANGLE;
- }
- if (!debug_fn.glGetProgramivFn) {
- debug_fn.glGetProgramivFn = fn.glGetProgramivFn;
- fn.glGetProgramivFn = Debug_glGetProgramiv;
- }
- if (!debug_fn.glGetProgramivRobustANGLEFn) {
- debug_fn.glGetProgramivRobustANGLEFn = fn.glGetProgramivRobustANGLEFn;
- fn.glGetProgramivRobustANGLEFn = Debug_glGetProgramivRobustANGLE;
- }
- if (!debug_fn.glGetProgramResourceivFn) {
- debug_fn.glGetProgramResourceivFn = fn.glGetProgramResourceivFn;
- fn.glGetProgramResourceivFn = Debug_glGetProgramResourceiv;
- }
- if (!debug_fn.glGetProgramResourceLocationFn) {
- debug_fn.glGetProgramResourceLocationFn = fn.glGetProgramResourceLocationFn;
- fn.glGetProgramResourceLocationFn = Debug_glGetProgramResourceLocation;
- }
- if (!debug_fn.glGetProgramResourceNameFn) {
- debug_fn.glGetProgramResourceNameFn = fn.glGetProgramResourceNameFn;
- fn.glGetProgramResourceNameFn = Debug_glGetProgramResourceName;
- }
- if (!debug_fn.glGetQueryivFn) {
- debug_fn.glGetQueryivFn = fn.glGetQueryivFn;
- fn.glGetQueryivFn = Debug_glGetQueryiv;
- }
- if (!debug_fn.glGetQueryivRobustANGLEFn) {
- debug_fn.glGetQueryivRobustANGLEFn = fn.glGetQueryivRobustANGLEFn;
- fn.glGetQueryivRobustANGLEFn = Debug_glGetQueryivRobustANGLE;
- }
- if (!debug_fn.glGetQueryObjecti64vFn) {
- debug_fn.glGetQueryObjecti64vFn = fn.glGetQueryObjecti64vFn;
- fn.glGetQueryObjecti64vFn = Debug_glGetQueryObjecti64v;
- }
- if (!debug_fn.glGetQueryObjecti64vRobustANGLEFn) {
- debug_fn.glGetQueryObjecti64vRobustANGLEFn =
- fn.glGetQueryObjecti64vRobustANGLEFn;
- fn.glGetQueryObjecti64vRobustANGLEFn =
- Debug_glGetQueryObjecti64vRobustANGLE;
- }
- if (!debug_fn.glGetQueryObjectivFn) {
- debug_fn.glGetQueryObjectivFn = fn.glGetQueryObjectivFn;
- fn.glGetQueryObjectivFn = Debug_glGetQueryObjectiv;
- }
- if (!debug_fn.glGetQueryObjectivRobustANGLEFn) {
- debug_fn.glGetQueryObjectivRobustANGLEFn =
- fn.glGetQueryObjectivRobustANGLEFn;
- fn.glGetQueryObjectivRobustANGLEFn = Debug_glGetQueryObjectivRobustANGLE;
- }
- if (!debug_fn.glGetQueryObjectui64vFn) {
- debug_fn.glGetQueryObjectui64vFn = fn.glGetQueryObjectui64vFn;
- fn.glGetQueryObjectui64vFn = Debug_glGetQueryObjectui64v;
- }
- if (!debug_fn.glGetQueryObjectui64vRobustANGLEFn) {
- debug_fn.glGetQueryObjectui64vRobustANGLEFn =
- fn.glGetQueryObjectui64vRobustANGLEFn;
- fn.glGetQueryObjectui64vRobustANGLEFn =
- Debug_glGetQueryObjectui64vRobustANGLE;
- }
- if (!debug_fn.glGetQueryObjectuivFn) {
- debug_fn.glGetQueryObjectuivFn = fn.glGetQueryObjectuivFn;
- fn.glGetQueryObjectuivFn = Debug_glGetQueryObjectuiv;
- }
- if (!debug_fn.glGetQueryObjectuivRobustANGLEFn) {
- debug_fn.glGetQueryObjectuivRobustANGLEFn =
- fn.glGetQueryObjectuivRobustANGLEFn;
- fn.glGetQueryObjectuivRobustANGLEFn = Debug_glGetQueryObjectuivRobustANGLE;
- }
- if (!debug_fn.glGetRenderbufferParameterivEXTFn) {
- debug_fn.glGetRenderbufferParameterivEXTFn =
- fn.glGetRenderbufferParameterivEXTFn;
- fn.glGetRenderbufferParameterivEXTFn =
- Debug_glGetRenderbufferParameterivEXT;
- }
- if (!debug_fn.glGetRenderbufferParameterivRobustANGLEFn) {
- debug_fn.glGetRenderbufferParameterivRobustANGLEFn =
- fn.glGetRenderbufferParameterivRobustANGLEFn;
- fn.glGetRenderbufferParameterivRobustANGLEFn =
- Debug_glGetRenderbufferParameterivRobustANGLE;
- }
- if (!debug_fn.glGetSamplerParameterfvFn) {
- debug_fn.glGetSamplerParameterfvFn = fn.glGetSamplerParameterfvFn;
- fn.glGetSamplerParameterfvFn = Debug_glGetSamplerParameterfv;
- }
- if (!debug_fn.glGetSamplerParameterfvRobustANGLEFn) {
- debug_fn.glGetSamplerParameterfvRobustANGLEFn =
- fn.glGetSamplerParameterfvRobustANGLEFn;
- fn.glGetSamplerParameterfvRobustANGLEFn =
- Debug_glGetSamplerParameterfvRobustANGLE;
- }
- if (!debug_fn.glGetSamplerParameterIivRobustANGLEFn) {
- debug_fn.glGetSamplerParameterIivRobustANGLEFn =
- fn.glGetSamplerParameterIivRobustANGLEFn;
- fn.glGetSamplerParameterIivRobustANGLEFn =
- Debug_glGetSamplerParameterIivRobustANGLE;
- }
- if (!debug_fn.glGetSamplerParameterIuivRobustANGLEFn) {
- debug_fn.glGetSamplerParameterIuivRobustANGLEFn =
- fn.glGetSamplerParameterIuivRobustANGLEFn;
- fn.glGetSamplerParameterIuivRobustANGLEFn =
- Debug_glGetSamplerParameterIuivRobustANGLE;
- }
- if (!debug_fn.glGetSamplerParameterivFn) {
- debug_fn.glGetSamplerParameterivFn = fn.glGetSamplerParameterivFn;
- fn.glGetSamplerParameterivFn = Debug_glGetSamplerParameteriv;
- }
- if (!debug_fn.glGetSamplerParameterivRobustANGLEFn) {
- debug_fn.glGetSamplerParameterivRobustANGLEFn =
- fn.glGetSamplerParameterivRobustANGLEFn;
- fn.glGetSamplerParameterivRobustANGLEFn =
- Debug_glGetSamplerParameterivRobustANGLE;
- }
- if (!debug_fn.glGetShaderInfoLogFn) {
- debug_fn.glGetShaderInfoLogFn = fn.glGetShaderInfoLogFn;
- fn.glGetShaderInfoLogFn = Debug_glGetShaderInfoLog;
- }
- if (!debug_fn.glGetShaderivFn) {
- debug_fn.glGetShaderivFn = fn.glGetShaderivFn;
- fn.glGetShaderivFn = Debug_glGetShaderiv;
- }
- if (!debug_fn.glGetShaderivRobustANGLEFn) {
- debug_fn.glGetShaderivRobustANGLEFn = fn.glGetShaderivRobustANGLEFn;
- fn.glGetShaderivRobustANGLEFn = Debug_glGetShaderivRobustANGLE;
- }
- if (!debug_fn.glGetShaderPrecisionFormatFn) {
- debug_fn.glGetShaderPrecisionFormatFn = fn.glGetShaderPrecisionFormatFn;
- fn.glGetShaderPrecisionFormatFn = Debug_glGetShaderPrecisionFormat;
- }
- if (!debug_fn.glGetShaderSourceFn) {
- debug_fn.glGetShaderSourceFn = fn.glGetShaderSourceFn;
- fn.glGetShaderSourceFn = Debug_glGetShaderSource;
- }
- if (!debug_fn.glGetStringFn) {
- debug_fn.glGetStringFn = fn.glGetStringFn;
- fn.glGetStringFn = Debug_glGetString;
- }
- if (!debug_fn.glGetStringiFn) {
- debug_fn.glGetStringiFn = fn.glGetStringiFn;
- fn.glGetStringiFn = Debug_glGetStringi;
- }
- if (!debug_fn.glGetSyncivFn) {
- debug_fn.glGetSyncivFn = fn.glGetSyncivFn;
- fn.glGetSyncivFn = Debug_glGetSynciv;
- }
- if (!debug_fn.glGetTexLevelParameterfvFn) {
- debug_fn.glGetTexLevelParameterfvFn = fn.glGetTexLevelParameterfvFn;
- fn.glGetTexLevelParameterfvFn = Debug_glGetTexLevelParameterfv;
- }
- if (!debug_fn.glGetTexLevelParameterfvRobustANGLEFn) {
- debug_fn.glGetTexLevelParameterfvRobustANGLEFn =
- fn.glGetTexLevelParameterfvRobustANGLEFn;
- fn.glGetTexLevelParameterfvRobustANGLEFn =
- Debug_glGetTexLevelParameterfvRobustANGLE;
- }
- if (!debug_fn.glGetTexLevelParameterivFn) {
- debug_fn.glGetTexLevelParameterivFn = fn.glGetTexLevelParameterivFn;
- fn.glGetTexLevelParameterivFn = Debug_glGetTexLevelParameteriv;
- }
- if (!debug_fn.glGetTexLevelParameterivRobustANGLEFn) {
- debug_fn.glGetTexLevelParameterivRobustANGLEFn =
- fn.glGetTexLevelParameterivRobustANGLEFn;
- fn.glGetTexLevelParameterivRobustANGLEFn =
- Debug_glGetTexLevelParameterivRobustANGLE;
- }
- if (!debug_fn.glGetTexParameterfvFn) {
- debug_fn.glGetTexParameterfvFn = fn.glGetTexParameterfvFn;
- fn.glGetTexParameterfvFn = Debug_glGetTexParameterfv;
- }
- if (!debug_fn.glGetTexParameterfvRobustANGLEFn) {
- debug_fn.glGetTexParameterfvRobustANGLEFn =
- fn.glGetTexParameterfvRobustANGLEFn;
- fn.glGetTexParameterfvRobustANGLEFn = Debug_glGetTexParameterfvRobustANGLE;
- }
- if (!debug_fn.glGetTexParameterIivRobustANGLEFn) {
- debug_fn.glGetTexParameterIivRobustANGLEFn =
- fn.glGetTexParameterIivRobustANGLEFn;
- fn.glGetTexParameterIivRobustANGLEFn =
- Debug_glGetTexParameterIivRobustANGLE;
- }
- if (!debug_fn.glGetTexParameterIuivRobustANGLEFn) {
- debug_fn.glGetTexParameterIuivRobustANGLEFn =
- fn.glGetTexParameterIuivRobustANGLEFn;
- fn.glGetTexParameterIuivRobustANGLEFn =
- Debug_glGetTexParameterIuivRobustANGLE;
- }
- if (!debug_fn.glGetTexParameterivFn) {
- debug_fn.glGetTexParameterivFn = fn.glGetTexParameterivFn;
- fn.glGetTexParameterivFn = Debug_glGetTexParameteriv;
- }
- if (!debug_fn.glGetTexParameterivRobustANGLEFn) {
- debug_fn.glGetTexParameterivRobustANGLEFn =
- fn.glGetTexParameterivRobustANGLEFn;
- fn.glGetTexParameterivRobustANGLEFn = Debug_glGetTexParameterivRobustANGLE;
- }
- if (!debug_fn.glGetTransformFeedbackVaryingFn) {
- debug_fn.glGetTransformFeedbackVaryingFn =
- fn.glGetTransformFeedbackVaryingFn;
- fn.glGetTransformFeedbackVaryingFn = Debug_glGetTransformFeedbackVarying;
- }
- if (!debug_fn.glGetTranslatedShaderSourceANGLEFn) {
- debug_fn.glGetTranslatedShaderSourceANGLEFn =
- fn.glGetTranslatedShaderSourceANGLEFn;
- fn.glGetTranslatedShaderSourceANGLEFn =
- Debug_glGetTranslatedShaderSourceANGLE;
- }
- if (!debug_fn.glGetUniformBlockIndexFn) {
- debug_fn.glGetUniformBlockIndexFn = fn.glGetUniformBlockIndexFn;
- fn.glGetUniformBlockIndexFn = Debug_glGetUniformBlockIndex;
- }
- if (!debug_fn.glGetUniformfvFn) {
- debug_fn.glGetUniformfvFn = fn.glGetUniformfvFn;
- fn.glGetUniformfvFn = Debug_glGetUniformfv;
- }
- if (!debug_fn.glGetUniformfvRobustANGLEFn) {
- debug_fn.glGetUniformfvRobustANGLEFn = fn.glGetUniformfvRobustANGLEFn;
- fn.glGetUniformfvRobustANGLEFn = Debug_glGetUniformfvRobustANGLE;
- }
- if (!debug_fn.glGetUniformIndicesFn) {
- debug_fn.glGetUniformIndicesFn = fn.glGetUniformIndicesFn;
- fn.glGetUniformIndicesFn = Debug_glGetUniformIndices;
- }
- if (!debug_fn.glGetUniformivFn) {
- debug_fn.glGetUniformivFn = fn.glGetUniformivFn;
- fn.glGetUniformivFn = Debug_glGetUniformiv;
- }
- if (!debug_fn.glGetUniformivRobustANGLEFn) {
- debug_fn.glGetUniformivRobustANGLEFn = fn.glGetUniformivRobustANGLEFn;
- fn.glGetUniformivRobustANGLEFn = Debug_glGetUniformivRobustANGLE;
- }
- if (!debug_fn.glGetUniformLocationFn) {
- debug_fn.glGetUniformLocationFn = fn.glGetUniformLocationFn;
- fn.glGetUniformLocationFn = Debug_glGetUniformLocation;
- }
- if (!debug_fn.glGetUniformuivFn) {
- debug_fn.glGetUniformuivFn = fn.glGetUniformuivFn;
- fn.glGetUniformuivFn = Debug_glGetUniformuiv;
- }
- if (!debug_fn.glGetUniformuivRobustANGLEFn) {
- debug_fn.glGetUniformuivRobustANGLEFn = fn.glGetUniformuivRobustANGLEFn;
- fn.glGetUniformuivRobustANGLEFn = Debug_glGetUniformuivRobustANGLE;
- }
- if (!debug_fn.glGetVertexAttribfvFn) {
- debug_fn.glGetVertexAttribfvFn = fn.glGetVertexAttribfvFn;
- fn.glGetVertexAttribfvFn = Debug_glGetVertexAttribfv;
- }
- if (!debug_fn.glGetVertexAttribfvRobustANGLEFn) {
- debug_fn.glGetVertexAttribfvRobustANGLEFn =
- fn.glGetVertexAttribfvRobustANGLEFn;
- fn.glGetVertexAttribfvRobustANGLEFn = Debug_glGetVertexAttribfvRobustANGLE;
- }
- if (!debug_fn.glGetVertexAttribIivRobustANGLEFn) {
- debug_fn.glGetVertexAttribIivRobustANGLEFn =
- fn.glGetVertexAttribIivRobustANGLEFn;
- fn.glGetVertexAttribIivRobustANGLEFn =
- Debug_glGetVertexAttribIivRobustANGLE;
- }
- if (!debug_fn.glGetVertexAttribIuivRobustANGLEFn) {
- debug_fn.glGetVertexAttribIuivRobustANGLEFn =
- fn.glGetVertexAttribIuivRobustANGLEFn;
- fn.glGetVertexAttribIuivRobustANGLEFn =
- Debug_glGetVertexAttribIuivRobustANGLE;
- }
- if (!debug_fn.glGetVertexAttribivFn) {
- debug_fn.glGetVertexAttribivFn = fn.glGetVertexAttribivFn;
- fn.glGetVertexAttribivFn = Debug_glGetVertexAttribiv;
- }
- if (!debug_fn.glGetVertexAttribivRobustANGLEFn) {
- debug_fn.glGetVertexAttribivRobustANGLEFn =
- fn.glGetVertexAttribivRobustANGLEFn;
- fn.glGetVertexAttribivRobustANGLEFn = Debug_glGetVertexAttribivRobustANGLE;
- }
- if (!debug_fn.glGetVertexAttribPointervFn) {
- debug_fn.glGetVertexAttribPointervFn = fn.glGetVertexAttribPointervFn;
- fn.glGetVertexAttribPointervFn = Debug_glGetVertexAttribPointerv;
- }
- if (!debug_fn.glGetVertexAttribPointervRobustANGLEFn) {
- debug_fn.glGetVertexAttribPointervRobustANGLEFn =
- fn.glGetVertexAttribPointervRobustANGLEFn;
- fn.glGetVertexAttribPointervRobustANGLEFn =
- Debug_glGetVertexAttribPointervRobustANGLE;
- }
- if (!debug_fn.glHintFn) {
- debug_fn.glHintFn = fn.glHintFn;
- fn.glHintFn = Debug_glHint;
- }
- if (!debug_fn.glInsertEventMarkerEXTFn) {
- debug_fn.glInsertEventMarkerEXTFn = fn.glInsertEventMarkerEXTFn;
- fn.glInsertEventMarkerEXTFn = Debug_glInsertEventMarkerEXT;
- }
- if (!debug_fn.glInvalidateFramebufferFn) {
- debug_fn.glInvalidateFramebufferFn = fn.glInvalidateFramebufferFn;
- fn.glInvalidateFramebufferFn = Debug_glInvalidateFramebuffer;
- }
- if (!debug_fn.glInvalidateSubFramebufferFn) {
- debug_fn.glInvalidateSubFramebufferFn = fn.glInvalidateSubFramebufferFn;
- fn.glInvalidateSubFramebufferFn = Debug_glInvalidateSubFramebuffer;
- }
- if (!debug_fn.glIsBufferFn) {
- debug_fn.glIsBufferFn = fn.glIsBufferFn;
- fn.glIsBufferFn = Debug_glIsBuffer;
- }
- if (!debug_fn.glIsEnabledFn) {
- debug_fn.glIsEnabledFn = fn.glIsEnabledFn;
- fn.glIsEnabledFn = Debug_glIsEnabled;
- }
- if (!debug_fn.glIsFenceAPPLEFn) {
- debug_fn.glIsFenceAPPLEFn = fn.glIsFenceAPPLEFn;
- fn.glIsFenceAPPLEFn = Debug_glIsFenceAPPLE;
- }
- if (!debug_fn.glIsFenceNVFn) {
- debug_fn.glIsFenceNVFn = fn.glIsFenceNVFn;
- fn.glIsFenceNVFn = Debug_glIsFenceNV;
- }
- if (!debug_fn.glIsFramebufferEXTFn) {
- 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;
- }
- if (!debug_fn.glIsQueryFn) {
- debug_fn.glIsQueryFn = fn.glIsQueryFn;
- fn.glIsQueryFn = Debug_glIsQuery;
- }
- if (!debug_fn.glIsRenderbufferEXTFn) {
- debug_fn.glIsRenderbufferEXTFn = fn.glIsRenderbufferEXTFn;
- fn.glIsRenderbufferEXTFn = Debug_glIsRenderbufferEXT;
- }
- if (!debug_fn.glIsSamplerFn) {
- debug_fn.glIsSamplerFn = fn.glIsSamplerFn;
- fn.glIsSamplerFn = Debug_glIsSampler;
- }
- if (!debug_fn.glIsShaderFn) {
- debug_fn.glIsShaderFn = fn.glIsShaderFn;
- fn.glIsShaderFn = Debug_glIsShader;
- }
- if (!debug_fn.glIsSyncFn) {
- debug_fn.glIsSyncFn = fn.glIsSyncFn;
- fn.glIsSyncFn = Debug_glIsSync;
- }
- if (!debug_fn.glIsTextureFn) {
- debug_fn.glIsTextureFn = fn.glIsTextureFn;
- fn.glIsTextureFn = Debug_glIsTexture;
- }
- if (!debug_fn.glIsTransformFeedbackFn) {
- debug_fn.glIsTransformFeedbackFn = fn.glIsTransformFeedbackFn;
- fn.glIsTransformFeedbackFn = Debug_glIsTransformFeedback;
- }
- if (!debug_fn.glIsVertexArrayOESFn) {
- debug_fn.glIsVertexArrayOESFn = fn.glIsVertexArrayOESFn;
- fn.glIsVertexArrayOESFn = Debug_glIsVertexArrayOES;
- }
- if (!debug_fn.glLineWidthFn) {
- debug_fn.glLineWidthFn = fn.glLineWidthFn;
- fn.glLineWidthFn = Debug_glLineWidth;
- }
- if (!debug_fn.glLinkProgramFn) {
- debug_fn.glLinkProgramFn = fn.glLinkProgramFn;
- fn.glLinkProgramFn = Debug_glLinkProgram;
- }
- if (!debug_fn.glMapBufferFn) {
- debug_fn.glMapBufferFn = fn.glMapBufferFn;
- fn.glMapBufferFn = Debug_glMapBuffer;
- }
- if (!debug_fn.glMapBufferRangeFn) {
- debug_fn.glMapBufferRangeFn = fn.glMapBufferRangeFn;
- fn.glMapBufferRangeFn = Debug_glMapBufferRange;
- }
- if (!debug_fn.glMatrixLoadfEXTFn) {
- debug_fn.glMatrixLoadfEXTFn = fn.glMatrixLoadfEXTFn;
- fn.glMatrixLoadfEXTFn = Debug_glMatrixLoadfEXT;
- }
- if (!debug_fn.glMatrixLoadIdentityEXTFn) {
- debug_fn.glMatrixLoadIdentityEXTFn = fn.glMatrixLoadIdentityEXTFn;
- fn.glMatrixLoadIdentityEXTFn = Debug_glMatrixLoadIdentityEXT;
- }
- if (!debug_fn.glMemoryBarrierEXTFn) {
- debug_fn.glMemoryBarrierEXTFn = fn.glMemoryBarrierEXTFn;
- fn.glMemoryBarrierEXTFn = Debug_glMemoryBarrierEXT;
- }
- if (!debug_fn.glObjectLabelFn) {
- debug_fn.glObjectLabelFn = fn.glObjectLabelFn;
- fn.glObjectLabelFn = Debug_glObjectLabel;
- }
- if (!debug_fn.glObjectPtrLabelFn) {
- debug_fn.glObjectPtrLabelFn = fn.glObjectPtrLabelFn;
- fn.glObjectPtrLabelFn = Debug_glObjectPtrLabel;
- }
- 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;
- }
- if (!debug_fn.glPixelStoreiFn) {
- debug_fn.glPixelStoreiFn = fn.glPixelStoreiFn;
- fn.glPixelStoreiFn = Debug_glPixelStorei;
- }
- if (!debug_fn.glPointParameteriFn) {
- debug_fn.glPointParameteriFn = fn.glPointParameteriFn;
- fn.glPointParameteriFn = Debug_glPointParameteri;
- }
- if (!debug_fn.glPolygonOffsetFn) {
- debug_fn.glPolygonOffsetFn = fn.glPolygonOffsetFn;
- fn.glPolygonOffsetFn = Debug_glPolygonOffset;
- }
- if (!debug_fn.glPopDebugGroupFn) {
- debug_fn.glPopDebugGroupFn = fn.glPopDebugGroupFn;
- fn.glPopDebugGroupFn = Debug_glPopDebugGroup;
- }
- if (!debug_fn.glPopGroupMarkerEXTFn) {
- debug_fn.glPopGroupMarkerEXTFn = fn.glPopGroupMarkerEXTFn;
- fn.glPopGroupMarkerEXTFn = Debug_glPopGroupMarkerEXT;
- }
- if (!debug_fn.glPrimitiveRestartIndexFn) {
- debug_fn.glPrimitiveRestartIndexFn = fn.glPrimitiveRestartIndexFn;
- fn.glPrimitiveRestartIndexFn = Debug_glPrimitiveRestartIndex;
- }
- if (!debug_fn.glProgramBinaryFn) {
- debug_fn.glProgramBinaryFn = fn.glProgramBinaryFn;
- fn.glProgramBinaryFn = Debug_glProgramBinary;
- }
- if (!debug_fn.glProgramParameteriFn) {
- debug_fn.glProgramParameteriFn = fn.glProgramParameteriFn;
- fn.glProgramParameteriFn = Debug_glProgramParameteri;
- }
- if (!debug_fn.glProgramPathFragmentInputGenNVFn) {
- debug_fn.glProgramPathFragmentInputGenNVFn =
- fn.glProgramPathFragmentInputGenNVFn;
- fn.glProgramPathFragmentInputGenNVFn =
- Debug_glProgramPathFragmentInputGenNV;
- }
- if (!debug_fn.glPushDebugGroupFn) {
- debug_fn.glPushDebugGroupFn = fn.glPushDebugGroupFn;
- fn.glPushDebugGroupFn = Debug_glPushDebugGroup;
- }
- if (!debug_fn.glPushGroupMarkerEXTFn) {
- debug_fn.glPushGroupMarkerEXTFn = fn.glPushGroupMarkerEXTFn;
- fn.glPushGroupMarkerEXTFn = Debug_glPushGroupMarkerEXT;
- }
- if (!debug_fn.glQueryCounterFn) {
- debug_fn.glQueryCounterFn = fn.glQueryCounterFn;
- fn.glQueryCounterFn = Debug_glQueryCounter;
- }
- if (!debug_fn.glReadBufferFn) {
- debug_fn.glReadBufferFn = fn.glReadBufferFn;
- fn.glReadBufferFn = Debug_glReadBuffer;
- }
- if (!debug_fn.glReadnPixelsRobustANGLEFn) {
- debug_fn.glReadnPixelsRobustANGLEFn = fn.glReadnPixelsRobustANGLEFn;
- fn.glReadnPixelsRobustANGLEFn = Debug_glReadnPixelsRobustANGLE;
- }
- if (!debug_fn.glReadPixelsFn) {
- debug_fn.glReadPixelsFn = fn.glReadPixelsFn;
- fn.glReadPixelsFn = Debug_glReadPixels;
- }
- if (!debug_fn.glReadPixelsRobustANGLEFn) {
- debug_fn.glReadPixelsRobustANGLEFn = fn.glReadPixelsRobustANGLEFn;
- fn.glReadPixelsRobustANGLEFn = Debug_glReadPixelsRobustANGLE;
- }
- if (!debug_fn.glReleaseShaderCompilerFn) {
- debug_fn.glReleaseShaderCompilerFn = fn.glReleaseShaderCompilerFn;
- fn.glReleaseShaderCompilerFn = Debug_glReleaseShaderCompiler;
- }
- if (!debug_fn.glRenderbufferStorageEXTFn) {
- debug_fn.glRenderbufferStorageEXTFn = fn.glRenderbufferStorageEXTFn;
- fn.glRenderbufferStorageEXTFn = Debug_glRenderbufferStorageEXT;
- }
- if (!debug_fn.glRenderbufferStorageMultisampleFn) {
- debug_fn.glRenderbufferStorageMultisampleFn =
- fn.glRenderbufferStorageMultisampleFn;
- fn.glRenderbufferStorageMultisampleFn =
- Debug_glRenderbufferStorageMultisample;
- }
- if (!debug_fn.glRenderbufferStorageMultisampleANGLEFn) {
- debug_fn.glRenderbufferStorageMultisampleANGLEFn =
- fn.glRenderbufferStorageMultisampleANGLEFn;
- fn.glRenderbufferStorageMultisampleANGLEFn =
- Debug_glRenderbufferStorageMultisampleANGLE;
- }
- if (!debug_fn.glRenderbufferStorageMultisampleEXTFn) {
- debug_fn.glRenderbufferStorageMultisampleEXTFn =
- fn.glRenderbufferStorageMultisampleEXTFn;
- fn.glRenderbufferStorageMultisampleEXTFn =
- Debug_glRenderbufferStorageMultisampleEXT;
- }
- if (!debug_fn.glRenderbufferStorageMultisampleIMGFn) {
- debug_fn.glRenderbufferStorageMultisampleIMGFn =
- fn.glRenderbufferStorageMultisampleIMGFn;
- fn.glRenderbufferStorageMultisampleIMGFn =
- Debug_glRenderbufferStorageMultisampleIMG;
- }
- if (!debug_fn.glResumeTransformFeedbackFn) {
- debug_fn.glResumeTransformFeedbackFn = fn.glResumeTransformFeedbackFn;
- fn.glResumeTransformFeedbackFn = Debug_glResumeTransformFeedback;
- }
- if (!debug_fn.glSampleCoverageFn) {
- debug_fn.glSampleCoverageFn = fn.glSampleCoverageFn;
- fn.glSampleCoverageFn = Debug_glSampleCoverage;
- }
- if (!debug_fn.glSamplerParameterfFn) {
- debug_fn.glSamplerParameterfFn = fn.glSamplerParameterfFn;
- fn.glSamplerParameterfFn = Debug_glSamplerParameterf;
- }
- if (!debug_fn.glSamplerParameterfvFn) {
- debug_fn.glSamplerParameterfvFn = fn.glSamplerParameterfvFn;
- fn.glSamplerParameterfvFn = Debug_glSamplerParameterfv;
- }
- if (!debug_fn.glSamplerParameterfvRobustANGLEFn) {
- debug_fn.glSamplerParameterfvRobustANGLEFn =
- fn.glSamplerParameterfvRobustANGLEFn;
- fn.glSamplerParameterfvRobustANGLEFn =
- Debug_glSamplerParameterfvRobustANGLE;
- }
- if (!debug_fn.glSamplerParameteriFn) {
- debug_fn.glSamplerParameteriFn = fn.glSamplerParameteriFn;
- fn.glSamplerParameteriFn = Debug_glSamplerParameteri;
- }
- if (!debug_fn.glSamplerParameterIivRobustANGLEFn) {
- debug_fn.glSamplerParameterIivRobustANGLEFn =
- fn.glSamplerParameterIivRobustANGLEFn;
- fn.glSamplerParameterIivRobustANGLEFn =
- Debug_glSamplerParameterIivRobustANGLE;
- }
- if (!debug_fn.glSamplerParameterIuivRobustANGLEFn) {
- debug_fn.glSamplerParameterIuivRobustANGLEFn =
- fn.glSamplerParameterIuivRobustANGLEFn;
- fn.glSamplerParameterIuivRobustANGLEFn =
- Debug_glSamplerParameterIuivRobustANGLE;
- }
- if (!debug_fn.glSamplerParameterivFn) {
- debug_fn.glSamplerParameterivFn = fn.glSamplerParameterivFn;
- fn.glSamplerParameterivFn = Debug_glSamplerParameteriv;
- }
- if (!debug_fn.glSamplerParameterivRobustANGLEFn) {
- debug_fn.glSamplerParameterivRobustANGLEFn =
- fn.glSamplerParameterivRobustANGLEFn;
- fn.glSamplerParameterivRobustANGLEFn =
- Debug_glSamplerParameterivRobustANGLE;
- }
- if (!debug_fn.glScissorFn) {
- debug_fn.glScissorFn = fn.glScissorFn;
- fn.glScissorFn = Debug_glScissor;
- }
- if (!debug_fn.glSetFenceAPPLEFn) {
- debug_fn.glSetFenceAPPLEFn = fn.glSetFenceAPPLEFn;
- fn.glSetFenceAPPLEFn = Debug_glSetFenceAPPLE;
- }
- if (!debug_fn.glSetFenceNVFn) {
- debug_fn.glSetFenceNVFn = fn.glSetFenceNVFn;
- fn.glSetFenceNVFn = Debug_glSetFenceNV;
- }
- if (!debug_fn.glShaderBinaryFn) {
- debug_fn.glShaderBinaryFn = fn.glShaderBinaryFn;
- fn.glShaderBinaryFn = Debug_glShaderBinary;
- }
- if (!debug_fn.glShaderSourceFn) {
- debug_fn.glShaderSourceFn = fn.glShaderSourceFn;
- fn.glShaderSourceFn = Debug_glShaderSource;
- }
- if (!debug_fn.glStencilFillPathInstancedNVFn) {
- debug_fn.glStencilFillPathInstancedNVFn = fn.glStencilFillPathInstancedNVFn;
- fn.glStencilFillPathInstancedNVFn = Debug_glStencilFillPathInstancedNV;
- }
- 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;
- }
- if (!debug_fn.glStencilFuncSeparateFn) {
- debug_fn.glStencilFuncSeparateFn = fn.glStencilFuncSeparateFn;
- fn.glStencilFuncSeparateFn = Debug_glStencilFuncSeparate;
- }
- if (!debug_fn.glStencilMaskFn) {
- debug_fn.glStencilMaskFn = fn.glStencilMaskFn;
- fn.glStencilMaskFn = Debug_glStencilMask;
- }
- if (!debug_fn.glStencilMaskSeparateFn) {
- debug_fn.glStencilMaskSeparateFn = fn.glStencilMaskSeparateFn;
- fn.glStencilMaskSeparateFn = Debug_glStencilMaskSeparate;
- }
- if (!debug_fn.glStencilOpFn) {
- debug_fn.glStencilOpFn = fn.glStencilOpFn;
- fn.glStencilOpFn = Debug_glStencilOp;
- }
- if (!debug_fn.glStencilOpSeparateFn) {
- debug_fn.glStencilOpSeparateFn = fn.glStencilOpSeparateFn;
- fn.glStencilOpSeparateFn = Debug_glStencilOpSeparate;
- }
- if (!debug_fn.glStencilStrokePathInstancedNVFn) {
- debug_fn.glStencilStrokePathInstancedNVFn =
- fn.glStencilStrokePathInstancedNVFn;
- fn.glStencilStrokePathInstancedNVFn = Debug_glStencilStrokePathInstancedNV;
- }
- if (!debug_fn.glStencilStrokePathNVFn) {
- debug_fn.glStencilStrokePathNVFn = fn.glStencilStrokePathNVFn;
- fn.glStencilStrokePathNVFn = Debug_glStencilStrokePathNV;
- }
- if (!debug_fn.glStencilThenCoverFillPathInstancedNVFn) {
- debug_fn.glStencilThenCoverFillPathInstancedNVFn =
- fn.glStencilThenCoverFillPathInstancedNVFn;
- fn.glStencilThenCoverFillPathInstancedNVFn =
- Debug_glStencilThenCoverFillPathInstancedNV;
- }
- if (!debug_fn.glStencilThenCoverFillPathNVFn) {
- debug_fn.glStencilThenCoverFillPathNVFn = fn.glStencilThenCoverFillPathNVFn;
- fn.glStencilThenCoverFillPathNVFn = Debug_glStencilThenCoverFillPathNV;
- }
- if (!debug_fn.glStencilThenCoverStrokePathInstancedNVFn) {
- debug_fn.glStencilThenCoverStrokePathInstancedNVFn =
- fn.glStencilThenCoverStrokePathInstancedNVFn;
- fn.glStencilThenCoverStrokePathInstancedNVFn =
- Debug_glStencilThenCoverStrokePathInstancedNV;
- }
- 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;
- }
- if (!debug_fn.glTestFenceNVFn) {
- debug_fn.glTestFenceNVFn = fn.glTestFenceNVFn;
- fn.glTestFenceNVFn = Debug_glTestFenceNV;
- }
- if (!debug_fn.glTexImage2DFn) {
- debug_fn.glTexImage2DFn = fn.glTexImage2DFn;
- fn.glTexImage2DFn = Debug_glTexImage2D;
- }
- if (!debug_fn.glTexImage2DRobustANGLEFn) {
- debug_fn.glTexImage2DRobustANGLEFn = fn.glTexImage2DRobustANGLEFn;
- fn.glTexImage2DRobustANGLEFn = Debug_glTexImage2DRobustANGLE;
- }
- if (!debug_fn.glTexImage3DFn) {
- debug_fn.glTexImage3DFn = fn.glTexImage3DFn;
- fn.glTexImage3DFn = Debug_glTexImage3D;
- }
- if (!debug_fn.glTexImage3DRobustANGLEFn) {
- debug_fn.glTexImage3DRobustANGLEFn = fn.glTexImage3DRobustANGLEFn;
- fn.glTexImage3DRobustANGLEFn = Debug_glTexImage3DRobustANGLE;
- }
- if (!debug_fn.glTexParameterfFn) {
- debug_fn.glTexParameterfFn = fn.glTexParameterfFn;
- fn.glTexParameterfFn = Debug_glTexParameterf;
- }
- if (!debug_fn.glTexParameterfvFn) {
- debug_fn.glTexParameterfvFn = fn.glTexParameterfvFn;
- fn.glTexParameterfvFn = Debug_glTexParameterfv;
- }
- if (!debug_fn.glTexParameterfvRobustANGLEFn) {
- debug_fn.glTexParameterfvRobustANGLEFn = fn.glTexParameterfvRobustANGLEFn;
- fn.glTexParameterfvRobustANGLEFn = Debug_glTexParameterfvRobustANGLE;
- }
- if (!debug_fn.glTexParameteriFn) {
- debug_fn.glTexParameteriFn = fn.glTexParameteriFn;
- fn.glTexParameteriFn = Debug_glTexParameteri;
- }
- if (!debug_fn.glTexParameterIivRobustANGLEFn) {
- debug_fn.glTexParameterIivRobustANGLEFn = fn.glTexParameterIivRobustANGLEFn;
- fn.glTexParameterIivRobustANGLEFn = Debug_glTexParameterIivRobustANGLE;
- }
- if (!debug_fn.glTexParameterIuivRobustANGLEFn) {
- debug_fn.glTexParameterIuivRobustANGLEFn =
- fn.glTexParameterIuivRobustANGLEFn;
- fn.glTexParameterIuivRobustANGLEFn = Debug_glTexParameterIuivRobustANGLE;
- }
- if (!debug_fn.glTexParameterivFn) {
- debug_fn.glTexParameterivFn = fn.glTexParameterivFn;
- fn.glTexParameterivFn = Debug_glTexParameteriv;
- }
- if (!debug_fn.glTexParameterivRobustANGLEFn) {
- debug_fn.glTexParameterivRobustANGLEFn = fn.glTexParameterivRobustANGLEFn;
- fn.glTexParameterivRobustANGLEFn = Debug_glTexParameterivRobustANGLE;
- }
- if (!debug_fn.glTexStorage2DEXTFn) {
- debug_fn.glTexStorage2DEXTFn = fn.glTexStorage2DEXTFn;
- fn.glTexStorage2DEXTFn = Debug_glTexStorage2DEXT;
- }
- if (!debug_fn.glTexStorage3DFn) {
- debug_fn.glTexStorage3DFn = fn.glTexStorage3DFn;
- fn.glTexStorage3DFn = Debug_glTexStorage3D;
- }
- if (!debug_fn.glTexSubImage2DFn) {
- debug_fn.glTexSubImage2DFn = fn.glTexSubImage2DFn;
- fn.glTexSubImage2DFn = Debug_glTexSubImage2D;
- }
- if (!debug_fn.glTexSubImage2DRobustANGLEFn) {
- debug_fn.glTexSubImage2DRobustANGLEFn = fn.glTexSubImage2DRobustANGLEFn;
- fn.glTexSubImage2DRobustANGLEFn = Debug_glTexSubImage2DRobustANGLE;
- }
- if (!debug_fn.glTexSubImage3DFn) {
- debug_fn.glTexSubImage3DFn = fn.glTexSubImage3DFn;
- fn.glTexSubImage3DFn = Debug_glTexSubImage3D;
- }
- if (!debug_fn.glTexSubImage3DRobustANGLEFn) {
- debug_fn.glTexSubImage3DRobustANGLEFn = fn.glTexSubImage3DRobustANGLEFn;
- fn.glTexSubImage3DRobustANGLEFn = Debug_glTexSubImage3DRobustANGLE;
- }
- if (!debug_fn.glTransformFeedbackVaryingsFn) {
- debug_fn.glTransformFeedbackVaryingsFn = fn.glTransformFeedbackVaryingsFn;
- fn.glTransformFeedbackVaryingsFn = Debug_glTransformFeedbackVaryings;
- }
- if (!debug_fn.glUniform1fFn) {
- debug_fn.glUniform1fFn = fn.glUniform1fFn;
- fn.glUniform1fFn = Debug_glUniform1f;
- }
- if (!debug_fn.glUniform1fvFn) {
- debug_fn.glUniform1fvFn = fn.glUniform1fvFn;
- fn.glUniform1fvFn = Debug_glUniform1fv;
- }
- if (!debug_fn.glUniform1iFn) {
- debug_fn.glUniform1iFn = fn.glUniform1iFn;
- fn.glUniform1iFn = Debug_glUniform1i;
- }
- if (!debug_fn.glUniform1ivFn) {
- debug_fn.glUniform1ivFn = fn.glUniform1ivFn;
- fn.glUniform1ivFn = Debug_glUniform1iv;
- }
- if (!debug_fn.glUniform1uiFn) {
- debug_fn.glUniform1uiFn = fn.glUniform1uiFn;
- fn.glUniform1uiFn = Debug_glUniform1ui;
- }
- if (!debug_fn.glUniform1uivFn) {
- debug_fn.glUniform1uivFn = fn.glUniform1uivFn;
- fn.glUniform1uivFn = Debug_glUniform1uiv;
- }
- if (!debug_fn.glUniform2fFn) {
- debug_fn.glUniform2fFn = fn.glUniform2fFn;
- fn.glUniform2fFn = Debug_glUniform2f;
- }
- if (!debug_fn.glUniform2fvFn) {
- debug_fn.glUniform2fvFn = fn.glUniform2fvFn;
- fn.glUniform2fvFn = Debug_glUniform2fv;
- }
- if (!debug_fn.glUniform2iFn) {
- debug_fn.glUniform2iFn = fn.glUniform2iFn;
- fn.glUniform2iFn = Debug_glUniform2i;
- }
- if (!debug_fn.glUniform2ivFn) {
- debug_fn.glUniform2ivFn = fn.glUniform2ivFn;
- fn.glUniform2ivFn = Debug_glUniform2iv;
- }
- if (!debug_fn.glUniform2uiFn) {
- debug_fn.glUniform2uiFn = fn.glUniform2uiFn;
- fn.glUniform2uiFn = Debug_glUniform2ui;
- }
- if (!debug_fn.glUniform2uivFn) {
- debug_fn.glUniform2uivFn = fn.glUniform2uivFn;
- fn.glUniform2uivFn = Debug_glUniform2uiv;
- }
- if (!debug_fn.glUniform3fFn) {
- debug_fn.glUniform3fFn = fn.glUniform3fFn;
- fn.glUniform3fFn = Debug_glUniform3f;
- }
- if (!debug_fn.glUniform3fvFn) {
- debug_fn.glUniform3fvFn = fn.glUniform3fvFn;
- fn.glUniform3fvFn = Debug_glUniform3fv;
- }
- if (!debug_fn.glUniform3iFn) {
- debug_fn.glUniform3iFn = fn.glUniform3iFn;
- fn.glUniform3iFn = Debug_glUniform3i;
- }
- if (!debug_fn.glUniform3ivFn) {
- debug_fn.glUniform3ivFn = fn.glUniform3ivFn;
- fn.glUniform3ivFn = Debug_glUniform3iv;
- }
- if (!debug_fn.glUniform3uiFn) {
- debug_fn.glUniform3uiFn = fn.glUniform3uiFn;
- fn.glUniform3uiFn = Debug_glUniform3ui;
- }
- if (!debug_fn.glUniform3uivFn) {
- debug_fn.glUniform3uivFn = fn.glUniform3uivFn;
- fn.glUniform3uivFn = Debug_glUniform3uiv;
- }
- if (!debug_fn.glUniform4fFn) {
- debug_fn.glUniform4fFn = fn.glUniform4fFn;
- fn.glUniform4fFn = Debug_glUniform4f;
- }
- if (!debug_fn.glUniform4fvFn) {
- debug_fn.glUniform4fvFn = fn.glUniform4fvFn;
- fn.glUniform4fvFn = Debug_glUniform4fv;
- }
- if (!debug_fn.glUniform4iFn) {
- debug_fn.glUniform4iFn = fn.glUniform4iFn;
- fn.glUniform4iFn = Debug_glUniform4i;
- }
- if (!debug_fn.glUniform4ivFn) {
- debug_fn.glUniform4ivFn = fn.glUniform4ivFn;
- fn.glUniform4ivFn = Debug_glUniform4iv;
- }
- if (!debug_fn.glUniform4uiFn) {
- debug_fn.glUniform4uiFn = fn.glUniform4uiFn;
- fn.glUniform4uiFn = Debug_glUniform4ui;
- }
- if (!debug_fn.glUniform4uivFn) {
- debug_fn.glUniform4uivFn = fn.glUniform4uivFn;
- fn.glUniform4uivFn = Debug_glUniform4uiv;
- }
- if (!debug_fn.glUniformBlockBindingFn) {
- debug_fn.glUniformBlockBindingFn = fn.glUniformBlockBindingFn;
- fn.glUniformBlockBindingFn = Debug_glUniformBlockBinding;
- }
- if (!debug_fn.glUniformMatrix2fvFn) {
- debug_fn.glUniformMatrix2fvFn = fn.glUniformMatrix2fvFn;
- fn.glUniformMatrix2fvFn = Debug_glUniformMatrix2fv;
- }
- if (!debug_fn.glUniformMatrix2x3fvFn) {
- debug_fn.glUniformMatrix2x3fvFn = fn.glUniformMatrix2x3fvFn;
- fn.glUniformMatrix2x3fvFn = Debug_glUniformMatrix2x3fv;
- }
- if (!debug_fn.glUniformMatrix2x4fvFn) {
- debug_fn.glUniformMatrix2x4fvFn = fn.glUniformMatrix2x4fvFn;
- fn.glUniformMatrix2x4fvFn = Debug_glUniformMatrix2x4fv;
- }
- if (!debug_fn.glUniformMatrix3fvFn) {
- debug_fn.glUniformMatrix3fvFn = fn.glUniformMatrix3fvFn;
- fn.glUniformMatrix3fvFn = Debug_glUniformMatrix3fv;
- }
- if (!debug_fn.glUniformMatrix3x2fvFn) {
- debug_fn.glUniformMatrix3x2fvFn = fn.glUniformMatrix3x2fvFn;
- fn.glUniformMatrix3x2fvFn = Debug_glUniformMatrix3x2fv;
- }
- if (!debug_fn.glUniformMatrix3x4fvFn) {
- debug_fn.glUniformMatrix3x4fvFn = fn.glUniformMatrix3x4fvFn;
- fn.glUniformMatrix3x4fvFn = Debug_glUniformMatrix3x4fv;
- }
- if (!debug_fn.glUniformMatrix4fvFn) {
- debug_fn.glUniformMatrix4fvFn = fn.glUniformMatrix4fvFn;
- fn.glUniformMatrix4fvFn = Debug_glUniformMatrix4fv;
- }
- if (!debug_fn.glUniformMatrix4x2fvFn) {
- debug_fn.glUniformMatrix4x2fvFn = fn.glUniformMatrix4x2fvFn;
- fn.glUniformMatrix4x2fvFn = Debug_glUniformMatrix4x2fv;
- }
- if (!debug_fn.glUniformMatrix4x3fvFn) {
- debug_fn.glUniformMatrix4x3fvFn = fn.glUniformMatrix4x3fvFn;
- fn.glUniformMatrix4x3fvFn = Debug_glUniformMatrix4x3fv;
- }
- if (!debug_fn.glUnmapBufferFn) {
- debug_fn.glUnmapBufferFn = fn.glUnmapBufferFn;
- fn.glUnmapBufferFn = Debug_glUnmapBuffer;
- }
- if (!debug_fn.glUseProgramFn) {
- debug_fn.glUseProgramFn = fn.glUseProgramFn;
- fn.glUseProgramFn = Debug_glUseProgram;
- }
- if (!debug_fn.glValidateProgramFn) {
- debug_fn.glValidateProgramFn = fn.glValidateProgramFn;
- fn.glValidateProgramFn = Debug_glValidateProgram;
- }
- if (!debug_fn.glVertexAttrib1fFn) {
- debug_fn.glVertexAttrib1fFn = fn.glVertexAttrib1fFn;
- fn.glVertexAttrib1fFn = Debug_glVertexAttrib1f;
- }
- if (!debug_fn.glVertexAttrib1fvFn) {
- debug_fn.glVertexAttrib1fvFn = fn.glVertexAttrib1fvFn;
- fn.glVertexAttrib1fvFn = Debug_glVertexAttrib1fv;
- }
- if (!debug_fn.glVertexAttrib2fFn) {
- debug_fn.glVertexAttrib2fFn = fn.glVertexAttrib2fFn;
- fn.glVertexAttrib2fFn = Debug_glVertexAttrib2f;
- }
- if (!debug_fn.glVertexAttrib2fvFn) {
- debug_fn.glVertexAttrib2fvFn = fn.glVertexAttrib2fvFn;
- fn.glVertexAttrib2fvFn = Debug_glVertexAttrib2fv;
- }
- if (!debug_fn.glVertexAttrib3fFn) {
- debug_fn.glVertexAttrib3fFn = fn.glVertexAttrib3fFn;
- fn.glVertexAttrib3fFn = Debug_glVertexAttrib3f;
- }
- if (!debug_fn.glVertexAttrib3fvFn) {
- debug_fn.glVertexAttrib3fvFn = fn.glVertexAttrib3fvFn;
- fn.glVertexAttrib3fvFn = Debug_glVertexAttrib3fv;
- }
- if (!debug_fn.glVertexAttrib4fFn) {
- debug_fn.glVertexAttrib4fFn = fn.glVertexAttrib4fFn;
- fn.glVertexAttrib4fFn = Debug_glVertexAttrib4f;
- }
- if (!debug_fn.glVertexAttrib4fvFn) {
- debug_fn.glVertexAttrib4fvFn = fn.glVertexAttrib4fvFn;
- fn.glVertexAttrib4fvFn = Debug_glVertexAttrib4fv;
- }
- if (!debug_fn.glVertexAttribDivisorANGLEFn) {
- debug_fn.glVertexAttribDivisorANGLEFn = fn.glVertexAttribDivisorANGLEFn;
- fn.glVertexAttribDivisorANGLEFn = Debug_glVertexAttribDivisorANGLE;
- }
- if (!debug_fn.glVertexAttribI4iFn) {
- debug_fn.glVertexAttribI4iFn = fn.glVertexAttribI4iFn;
- fn.glVertexAttribI4iFn = Debug_glVertexAttribI4i;
- }
- if (!debug_fn.glVertexAttribI4ivFn) {
- debug_fn.glVertexAttribI4ivFn = fn.glVertexAttribI4ivFn;
- fn.glVertexAttribI4ivFn = Debug_glVertexAttribI4iv;
- }
- if (!debug_fn.glVertexAttribI4uiFn) {
- debug_fn.glVertexAttribI4uiFn = fn.glVertexAttribI4uiFn;
- fn.glVertexAttribI4uiFn = Debug_glVertexAttribI4ui;
- }
- if (!debug_fn.glVertexAttribI4uivFn) {
- debug_fn.glVertexAttribI4uivFn = fn.glVertexAttribI4uivFn;
- fn.glVertexAttribI4uivFn = Debug_glVertexAttribI4uiv;
- }
- if (!debug_fn.glVertexAttribIPointerFn) {
- debug_fn.glVertexAttribIPointerFn = fn.glVertexAttribIPointerFn;
- fn.glVertexAttribIPointerFn = Debug_glVertexAttribIPointer;
- }
- if (!debug_fn.glVertexAttribPointerFn) {
- debug_fn.glVertexAttribPointerFn = fn.glVertexAttribPointerFn;
- fn.glVertexAttribPointerFn = Debug_glVertexAttribPointer;
- }
- if (!debug_fn.glViewportFn) {
- debug_fn.glViewportFn = fn.glViewportFn;
- fn.glViewportFn = Debug_glViewport;
- }
- if (!debug_fn.glWaitSyncFn) {
- debug_fn.glWaitSyncFn = fn.glWaitSyncFn;
- fn.glWaitSyncFn = Debug_glWaitSync;
- }
- g_debugBindingsInitialized = true;
}
void DriverGL::ClearBindings() {
@@ -14578,6 +8031,4003 @@ GLenum TraceGLApi::glWaitSyncFn(GLsync sync,
return gl_api_->glWaitSyncFn(sync, flags, timeout);
}
+void DebugGLApi::glActiveTextureFn(GLenum texture) {
+ GL_SERVICE_LOG("glActiveTexture"
+ << "(" << GLEnums::GetStringEnum(texture) << ")");
+ gl_api_->glActiveTextureFn(texture);
+}
+
+void DebugGLApi::glApplyFramebufferAttachmentCMAAINTELFn(void) {
+ GL_SERVICE_LOG("glApplyFramebufferAttachmentCMAAINTEL"
+ << "("
+ << ")");
+ gl_api_->glApplyFramebufferAttachmentCMAAINTELFn();
+}
+
+void DebugGLApi::glAttachShaderFn(GLuint program, GLuint shader) {
+ GL_SERVICE_LOG("glAttachShader"
+ << "(" << program << ", " << shader << ")");
+ gl_api_->glAttachShaderFn(program, shader);
+}
+
+void DebugGLApi::glBeginQueryFn(GLenum target, GLuint id) {
+ GL_SERVICE_LOG("glBeginQuery"
+ << "(" << GLEnums::GetStringEnum(target) << ", " << id << ")");
+ gl_api_->glBeginQueryFn(target, id);
+}
+
+void DebugGLApi::glBeginTransformFeedbackFn(GLenum primitiveMode) {
+ GL_SERVICE_LOG("glBeginTransformFeedback"
+ << "(" << GLEnums::GetStringEnum(primitiveMode) << ")");
+ gl_api_->glBeginTransformFeedbackFn(primitiveMode);
+}
+
+void DebugGLApi::glBindAttribLocationFn(GLuint program,
+ GLuint index,
+ const char* name) {
+ GL_SERVICE_LOG("glBindAttribLocation"
+ << "(" << program << ", " << index << ", " << name << ")");
+ gl_api_->glBindAttribLocationFn(program, index, name);
+}
+
+void DebugGLApi::glBindBufferFn(GLenum target, GLuint buffer) {
+ GL_SERVICE_LOG("glBindBuffer"
+ << "(" << GLEnums::GetStringEnum(target) << ", " << buffer
+ << ")");
+ gl_api_->glBindBufferFn(target, buffer);
+}
+
+void DebugGLApi::glBindBufferBaseFn(GLenum target,
+ GLuint index,
+ GLuint buffer) {
+ GL_SERVICE_LOG("glBindBufferBase"
+ << "(" << GLEnums::GetStringEnum(target) << ", " << index
+ << ", " << buffer << ")");
+ gl_api_->glBindBufferBaseFn(target, index, buffer);
+}
+
+void DebugGLApi::glBindBufferRangeFn(GLenum target,
+ GLuint index,
+ GLuint buffer,
+ GLintptr offset,
+ GLsizeiptr size) {
+ GL_SERVICE_LOG("glBindBufferRange"
+ << "(" << GLEnums::GetStringEnum(target) << ", " << index
+ << ", " << buffer << ", " << offset << ", " << size << ")");
+ gl_api_->glBindBufferRangeFn(target, index, buffer, offset, size);
+}
+
+void DebugGLApi::glBindFragDataLocationFn(GLuint program,
+ GLuint colorNumber,
+ const char* name) {
+ GL_SERVICE_LOG("glBindFragDataLocation"
+ << "(" << program << ", " << colorNumber << ", " << name
+ << ")");
+ gl_api_->glBindFragDataLocationFn(program, colorNumber, name);
+}
+
+void DebugGLApi::glBindFragDataLocationIndexedFn(GLuint program,
+ GLuint colorNumber,
+ GLuint index,
+ const char* name) {
+ GL_SERVICE_LOG("glBindFragDataLocationIndexed"
+ << "(" << program << ", " << colorNumber << ", " << index
+ << ", " << name << ")");
+ gl_api_->glBindFragDataLocationIndexedFn(program, colorNumber, index, name);
+}
+
+void DebugGLApi::glBindFramebufferEXTFn(GLenum target, GLuint framebuffer) {
+ GL_SERVICE_LOG("glBindFramebufferEXT"
+ << "(" << GLEnums::GetStringEnum(target) << ", " << framebuffer
+ << ")");
+ gl_api_->glBindFramebufferEXTFn(target, framebuffer);
+}
+
+void DebugGLApi::glBindImageTextureEXTFn(GLuint index,
+ GLuint texture,
+ GLint level,
+ GLboolean layered,
+ GLint layer,
+ GLenum access,
+ GLint format) {
+ GL_SERVICE_LOG("glBindImageTextureEXT"
+ << "(" << index << ", " << texture << ", " << level << ", "
+ << GLEnums::GetStringBool(layered) << ", " << layer << ", "
+ << GLEnums::GetStringEnum(access) << ", " << format << ")");
+ gl_api_->glBindImageTextureEXTFn(index, texture, level, layered, layer,
+ access, format);
+}
+
+void DebugGLApi::glBindRenderbufferEXTFn(GLenum target, GLuint renderbuffer) {
+ GL_SERVICE_LOG("glBindRenderbufferEXT"
+ << "(" << GLEnums::GetStringEnum(target) << ", "
+ << renderbuffer << ")");
+ gl_api_->glBindRenderbufferEXTFn(target, renderbuffer);
+}
+
+void DebugGLApi::glBindSamplerFn(GLuint unit, GLuint sampler) {
+ GL_SERVICE_LOG("glBindSampler"
+ << "(" << unit << ", " << sampler << ")");
+ gl_api_->glBindSamplerFn(unit, sampler);
+}
+
+void DebugGLApi::glBindTextureFn(GLenum target, GLuint texture) {
+ GL_SERVICE_LOG("glBindTexture"
+ << "(" << GLEnums::GetStringEnum(target) << ", " << texture
+ << ")");
+ gl_api_->glBindTextureFn(target, texture);
+}
+
+void DebugGLApi::glBindTransformFeedbackFn(GLenum target, GLuint id) {
+ GL_SERVICE_LOG("glBindTransformFeedback"
+ << "(" << GLEnums::GetStringEnum(target) << ", " << id << ")");
+ gl_api_->glBindTransformFeedbackFn(target, id);
+}
+
+void DebugGLApi::glBindUniformLocationCHROMIUMFn(GLuint program,
+ GLint location,
+ const char* name) {
+ GL_SERVICE_LOG("glBindUniformLocationCHROMIUM"
+ << "(" << program << ", " << location << ", " << name << ")");
+ gl_api_->glBindUniformLocationCHROMIUMFn(program, location, name);
+}
+
+void DebugGLApi::glBindVertexArrayOESFn(GLuint array) {
+ GL_SERVICE_LOG("glBindVertexArrayOES"
+ << "(" << array << ")");
+ gl_api_->glBindVertexArrayOESFn(array);
+}
+
+void DebugGLApi::glBlendBarrierKHRFn(void) {
+ GL_SERVICE_LOG("glBlendBarrierKHR"
+ << "("
+ << ")");
+ gl_api_->glBlendBarrierKHRFn();
+}
+
+void DebugGLApi::glBlendColorFn(GLclampf red,
+ GLclampf green,
+ GLclampf blue,
+ GLclampf alpha) {
+ GL_SERVICE_LOG("glBlendColor"
+ << "(" << red << ", " << green << ", " << blue << ", " << alpha
+ << ")");
+ gl_api_->glBlendColorFn(red, green, blue, alpha);
+}
+
+void DebugGLApi::glBlendEquationFn(GLenum mode) {
+ GL_SERVICE_LOG("glBlendEquation"
+ << "(" << GLEnums::GetStringEnum(mode) << ")");
+ gl_api_->glBlendEquationFn(mode);
+}
+
+void DebugGLApi::glBlendEquationSeparateFn(GLenum modeRGB, GLenum modeAlpha) {
+ GL_SERVICE_LOG("glBlendEquationSeparate"
+ << "(" << GLEnums::GetStringEnum(modeRGB) << ", "
+ << GLEnums::GetStringEnum(modeAlpha) << ")");
+ gl_api_->glBlendEquationSeparateFn(modeRGB, modeAlpha);
+}
+
+void DebugGLApi::glBlendFuncFn(GLenum sfactor, GLenum dfactor) {
+ GL_SERVICE_LOG("glBlendFunc"
+ << "(" << GLEnums::GetStringEnum(sfactor) << ", "
+ << GLEnums::GetStringEnum(dfactor) << ")");
+ gl_api_->glBlendFuncFn(sfactor, dfactor);
+}
+
+void DebugGLApi::glBlendFuncSeparateFn(GLenum srcRGB,
+ GLenum dstRGB,
+ GLenum srcAlpha,
+ GLenum dstAlpha) {
+ GL_SERVICE_LOG("glBlendFuncSeparate"
+ << "(" << GLEnums::GetStringEnum(srcRGB) << ", "
+ << GLEnums::GetStringEnum(dstRGB) << ", "
+ << GLEnums::GetStringEnum(srcAlpha) << ", "
+ << GLEnums::GetStringEnum(dstAlpha) << ")");
+ gl_api_->glBlendFuncSeparateFn(srcRGB, dstRGB, srcAlpha, dstAlpha);
+}
+
+void DebugGLApi::glBlitFramebufferFn(GLint srcX0,
+ GLint srcY0,
+ GLint srcX1,
+ GLint srcY1,
+ GLint dstX0,
+ GLint dstY0,
+ GLint dstX1,
+ GLint dstY1,
+ GLbitfield mask,
+ GLenum filter) {
+ GL_SERVICE_LOG("glBlitFramebuffer"
+ << "(" << srcX0 << ", " << srcY0 << ", " << srcX1 << ", "
+ << srcY1 << ", " << dstX0 << ", " << dstY0 << ", " << dstX1
+ << ", " << dstY1 << ", " << mask << ", "
+ << GLEnums::GetStringEnum(filter) << ")");
+ gl_api_->glBlitFramebufferFn(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1,
+ dstY1, mask, filter);
+}
+
+void DebugGLApi::glBlitFramebufferANGLEFn(GLint srcX0,
+ GLint srcY0,
+ GLint srcX1,
+ GLint srcY1,
+ GLint dstX0,
+ GLint dstY0,
+ GLint dstX1,
+ GLint dstY1,
+ GLbitfield mask,
+ GLenum filter) {
+ GL_SERVICE_LOG("glBlitFramebufferANGLE"
+ << "(" << srcX0 << ", " << srcY0 << ", " << srcX1 << ", "
+ << srcY1 << ", " << dstX0 << ", " << dstY0 << ", " << dstX1
+ << ", " << dstY1 << ", " << mask << ", "
+ << GLEnums::GetStringEnum(filter) << ")");
+ gl_api_->glBlitFramebufferANGLEFn(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0,
+ dstX1, dstY1, mask, filter);
+}
+
+void DebugGLApi::glBlitFramebufferEXTFn(GLint srcX0,
+ GLint srcY0,
+ GLint srcX1,
+ GLint srcY1,
+ GLint dstX0,
+ GLint dstY0,
+ GLint dstX1,
+ GLint dstY1,
+ GLbitfield mask,
+ GLenum filter) {
+ GL_SERVICE_LOG("glBlitFramebufferEXT"
+ << "(" << srcX0 << ", " << srcY0 << ", " << srcX1 << ", "
+ << srcY1 << ", " << dstX0 << ", " << dstY0 << ", " << dstX1
+ << ", " << dstY1 << ", " << mask << ", "
+ << GLEnums::GetStringEnum(filter) << ")");
+ gl_api_->glBlitFramebufferEXTFn(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0,
+ dstX1, dstY1, mask, filter);
+}
+
+void DebugGLApi::glBufferDataFn(GLenum target,
+ GLsizeiptr size,
+ const void* data,
+ GLenum usage) {
+ GL_SERVICE_LOG("glBufferData"
+ << "(" << GLEnums::GetStringEnum(target) << ", " << size
+ << ", " << static_cast<const void*>(data) << ", "
+ << GLEnums::GetStringEnum(usage) << ")");
+ gl_api_->glBufferDataFn(target, size, data, usage);
+}
+
+void DebugGLApi::glBufferSubDataFn(GLenum target,
+ GLintptr offset,
+ GLsizeiptr size,
+ const void* data) {
+ GL_SERVICE_LOG("glBufferSubData"
+ << "(" << GLEnums::GetStringEnum(target) << ", " << offset
+ << ", " << size << ", " << static_cast<const void*>(data)
+ << ")");
+ gl_api_->glBufferSubDataFn(target, offset, size, data);
+}
+
+GLenum DebugGLApi::glCheckFramebufferStatusEXTFn(GLenum target) {
+ GL_SERVICE_LOG("glCheckFramebufferStatusEXT"
+ << "(" << GLEnums::GetStringEnum(target) << ")");
+ GLenum result = gl_api_->glCheckFramebufferStatusEXTFn(target);
+
+ GL_SERVICE_LOG("GL_RESULT: " << GLEnums::GetStringEnum(result));
+
+ return result;
+}
+
+void DebugGLApi::glClearFn(GLbitfield mask) {
+ GL_SERVICE_LOG("glClear"
+ << "(" << mask << ")");
+ gl_api_->glClearFn(mask);
+}
+
+void DebugGLApi::glClearBufferfiFn(GLenum buffer,
+ GLint drawbuffer,
+ const GLfloat depth,
+ GLint stencil) {
+ GL_SERVICE_LOG("glClearBufferfi"
+ << "(" << GLEnums::GetStringEnum(buffer) << ", " << drawbuffer
+ << ", " << depth << ", " << stencil << ")");
+ gl_api_->glClearBufferfiFn(buffer, drawbuffer, depth, stencil);
+}
+
+void DebugGLApi::glClearBufferfvFn(GLenum buffer,
+ GLint drawbuffer,
+ const GLfloat* value) {
+ GL_SERVICE_LOG("glClearBufferfv"
+ << "(" << GLEnums::GetStringEnum(buffer) << ", " << drawbuffer
+ << ", " << static_cast<const void*>(value) << ")");
+ gl_api_->glClearBufferfvFn(buffer, drawbuffer, value);
+}
+
+void DebugGLApi::glClearBufferivFn(GLenum buffer,
+ GLint drawbuffer,
+ const GLint* value) {
+ GL_SERVICE_LOG("glClearBufferiv"
+ << "(" << GLEnums::GetStringEnum(buffer) << ", " << drawbuffer
+ << ", " << static_cast<const void*>(value) << ")");
+ gl_api_->glClearBufferivFn(buffer, drawbuffer, value);
+}
+
+void DebugGLApi::glClearBufferuivFn(GLenum buffer,
+ GLint drawbuffer,
+ const GLuint* value) {
+ GL_SERVICE_LOG("glClearBufferuiv"
+ << "(" << GLEnums::GetStringEnum(buffer) << ", " << drawbuffer
+ << ", " << static_cast<const void*>(value) << ")");
+ gl_api_->glClearBufferuivFn(buffer, drawbuffer, value);
+}
+
+void DebugGLApi::glClearColorFn(GLclampf red,
+ GLclampf green,
+ GLclampf blue,
+ GLclampf alpha) {
+ GL_SERVICE_LOG("glClearColor"
+ << "(" << red << ", " << green << ", " << blue << ", " << alpha
+ << ")");
+ gl_api_->glClearColorFn(red, green, blue, alpha);
+}
+
+void DebugGLApi::glClearDepthFn(GLclampd depth) {
+ GL_SERVICE_LOG("glClearDepth"
+ << "(" << depth << ")");
+ gl_api_->glClearDepthFn(depth);
+}
+
+void DebugGLApi::glClearDepthfFn(GLclampf depth) {
+ GL_SERVICE_LOG("glClearDepthf"
+ << "(" << depth << ")");
+ gl_api_->glClearDepthfFn(depth);
+}
+
+void DebugGLApi::glClearStencilFn(GLint s) {
+ GL_SERVICE_LOG("glClearStencil"
+ << "(" << s << ")");
+ gl_api_->glClearStencilFn(s);
+}
+
+GLenum DebugGLApi::glClientWaitSyncFn(GLsync sync,
+ GLbitfield flags,
+ GLuint64 timeout) {
+ GL_SERVICE_LOG("glClientWaitSync"
+ << "(" << sync << ", " << flags << ", " << timeout << ")");
+ GLenum result = gl_api_->glClientWaitSyncFn(sync, flags, timeout);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+void DebugGLApi::glColorMaskFn(GLboolean red,
+ GLboolean green,
+ GLboolean blue,
+ GLboolean alpha) {
+ GL_SERVICE_LOG("glColorMask"
+ << "(" << GLEnums::GetStringBool(red) << ", "
+ << GLEnums::GetStringBool(green) << ", "
+ << GLEnums::GetStringBool(blue) << ", "
+ << GLEnums::GetStringBool(alpha) << ")");
+ gl_api_->glColorMaskFn(red, green, blue, alpha);
+}
+
+void DebugGLApi::glCompileShaderFn(GLuint shader) {
+ GL_SERVICE_LOG("glCompileShader"
+ << "(" << shader << ")");
+ gl_api_->glCompileShaderFn(shader);
+}
+
+void DebugGLApi::glCompressedCopyTextureCHROMIUMFn(GLuint sourceId,
+ GLuint destId) {
+ GL_SERVICE_LOG("glCompressedCopyTextureCHROMIUM"
+ << "(" << sourceId << ", " << destId << ")");
+ gl_api_->glCompressedCopyTextureCHROMIUMFn(sourceId, destId);
+}
+
+void DebugGLApi::glCompressedTexImage2DFn(GLenum target,
+ GLint level,
+ GLenum internalformat,
+ GLsizei width,
+ GLsizei height,
+ GLint border,
+ GLsizei imageSize,
+ const void* data) {
+ GL_SERVICE_LOG("glCompressedTexImage2D"
+ << "(" << GLEnums::GetStringEnum(target) << ", " << level
+ << ", " << GLEnums::GetStringEnum(internalformat) << ", "
+ << width << ", " << height << ", " << border << ", "
+ << imageSize << ", " << static_cast<const void*>(data) << ")");
+ gl_api_->glCompressedTexImage2DFn(target, level, internalformat, width,
+ height, border, imageSize, data);
+}
+
+void DebugGLApi::glCompressedTexImage3DFn(GLenum target,
+ GLint level,
+ GLenum internalformat,
+ GLsizei width,
+ GLsizei height,
+ GLsizei depth,
+ GLint border,
+ GLsizei imageSize,
+ const void* data) {
+ GL_SERVICE_LOG("glCompressedTexImage3D"
+ << "(" << GLEnums::GetStringEnum(target) << ", " << level
+ << ", " << GLEnums::GetStringEnum(internalformat) << ", "
+ << width << ", " << height << ", " << depth << ", " << border
+ << ", " << imageSize << ", " << static_cast<const void*>(data)
+ << ")");
+ gl_api_->glCompressedTexImage3DFn(target, level, internalformat, width,
+ height, depth, border, imageSize, data);
+}
+
+void DebugGLApi::glCompressedTexSubImage2DFn(GLenum target,
+ GLint level,
+ GLint xoffset,
+ GLint yoffset,
+ GLsizei width,
+ GLsizei height,
+ GLenum format,
+ GLsizei imageSize,
+ const void* data) {
+ GL_SERVICE_LOG("glCompressedTexSubImage2D"
+ << "(" << GLEnums::GetStringEnum(target) << ", " << level
+ << ", " << xoffset << ", " << yoffset << ", " << width << ", "
+ << height << ", " << GLEnums::GetStringEnum(format) << ", "
+ << imageSize << ", " << static_cast<const void*>(data) << ")");
+ gl_api_->glCompressedTexSubImage2DFn(target, level, xoffset, yoffset, width,
+ height, format, imageSize, data);
+}
+
+void DebugGLApi::glCompressedTexSubImage3DFn(GLenum target,
+ GLint level,
+ GLint xoffset,
+ GLint yoffset,
+ GLint zoffset,
+ GLsizei width,
+ GLsizei height,
+ GLsizei depth,
+ GLenum format,
+ GLsizei imageSize,
+ const void* data) {
+ GL_SERVICE_LOG("glCompressedTexSubImage3D"
+ << "(" << GLEnums::GetStringEnum(target) << ", " << level
+ << ", " << xoffset << ", " << yoffset << ", " << zoffset
+ << ", " << width << ", " << height << ", " << depth << ", "
+ << GLEnums::GetStringEnum(format) << ", " << imageSize << ", "
+ << static_cast<const void*>(data) << ")");
+ gl_api_->glCompressedTexSubImage3DFn(target, level, xoffset, yoffset, zoffset,
+ width, height, depth, format, imageSize,
+ data);
+}
+
+void DebugGLApi::glCopyBufferSubDataFn(GLenum readTarget,
+ GLenum writeTarget,
+ GLintptr readOffset,
+ GLintptr writeOffset,
+ GLsizeiptr size) {
+ GL_SERVICE_LOG("glCopyBufferSubData"
+ << "(" << GLEnums::GetStringEnum(readTarget) << ", "
+ << GLEnums::GetStringEnum(writeTarget) << ", " << readOffset
+ << ", " << writeOffset << ", " << size << ")");
+ gl_api_->glCopyBufferSubDataFn(readTarget, writeTarget, readOffset,
+ writeOffset, size);
+}
+
+void DebugGLApi::glCopySubTextureCHROMIUMFn(GLuint sourceId,
+ GLuint destId,
+ GLint xoffset,
+ GLint yoffset,
+ GLint x,
+ GLint y,
+ GLsizei width,
+ GLsizei height,
+ GLboolean unpackFlipY,
+ GLboolean unpackPremultiplyAlpha,
+ GLboolean unpackUnmultiplyAlpha) {
+ GL_SERVICE_LOG("glCopySubTextureCHROMIUM"
+ << "(" << sourceId << ", " << destId << ", " << xoffset << ", "
+ << yoffset << ", " << x << ", " << y << ", " << width << ", "
+ << height << ", " << GLEnums::GetStringBool(unpackFlipY)
+ << ", " << GLEnums::GetStringBool(unpackPremultiplyAlpha)
+ << ", " << GLEnums::GetStringBool(unpackUnmultiplyAlpha)
+ << ")");
+ gl_api_->glCopySubTextureCHROMIUMFn(
+ sourceId, destId, xoffset, yoffset, x, y, width, height, unpackFlipY,
+ unpackPremultiplyAlpha, unpackUnmultiplyAlpha);
+}
+
+void DebugGLApi::glCopyTexImage2DFn(GLenum target,
+ GLint level,
+ GLenum internalformat,
+ GLint x,
+ GLint y,
+ GLsizei width,
+ GLsizei height,
+ GLint border) {
+ GL_SERVICE_LOG("glCopyTexImage2D"
+ << "(" << GLEnums::GetStringEnum(target) << ", " << level
+ << ", " << GLEnums::GetStringEnum(internalformat) << ", " << x
+ << ", " << y << ", " << width << ", " << height << ", "
+ << border << ")");
+ gl_api_->glCopyTexImage2DFn(target, level, internalformat, x, y, width,
+ height, border);
+}
+
+void DebugGLApi::glCopyTexSubImage2DFn(GLenum target,
+ GLint level,
+ GLint xoffset,
+ GLint yoffset,
+ GLint x,
+ GLint y,
+ GLsizei width,
+ GLsizei height) {
+ GL_SERVICE_LOG("glCopyTexSubImage2D"
+ << "(" << GLEnums::GetStringEnum(target) << ", " << level
+ << ", " << xoffset << ", " << yoffset << ", " << x << ", " << y
+ << ", " << width << ", " << height << ")");
+ gl_api_->glCopyTexSubImage2DFn(target, level, xoffset, yoffset, x, y, width,
+ height);
+}
+
+void DebugGLApi::glCopyTexSubImage3DFn(GLenum target,
+ GLint level,
+ GLint xoffset,
+ GLint yoffset,
+ GLint zoffset,
+ GLint x,
+ GLint y,
+ GLsizei width,
+ GLsizei height) {
+ GL_SERVICE_LOG("glCopyTexSubImage3D"
+ << "(" << GLEnums::GetStringEnum(target) << ", " << level
+ << ", " << xoffset << ", " << yoffset << ", " << zoffset
+ << ", " << x << ", " << y << ", " << width << ", " << height
+ << ")");
+ gl_api_->glCopyTexSubImage3DFn(target, level, xoffset, yoffset, zoffset, x, y,
+ width, height);
+}
+
+void DebugGLApi::glCopyTextureCHROMIUMFn(GLuint sourceId,
+ GLuint destId,
+ GLint internalFormat,
+ GLenum destType,
+ GLboolean unpackFlipY,
+ GLboolean unpackPremultiplyAlpha,
+ GLboolean unpackUnmultiplyAlpha) {
+ GL_SERVICE_LOG("glCopyTextureCHROMIUM"
+ << "(" << sourceId << ", " << destId << ", " << internalFormat
+ << ", " << GLEnums::GetStringEnum(destType) << ", "
+ << GLEnums::GetStringBool(unpackFlipY) << ", "
+ << GLEnums::GetStringBool(unpackPremultiplyAlpha) << ", "
+ << GLEnums::GetStringBool(unpackUnmultiplyAlpha) << ")");
+ gl_api_->glCopyTextureCHROMIUMFn(sourceId, destId, internalFormat, destType,
+ unpackFlipY, unpackPremultiplyAlpha,
+ unpackUnmultiplyAlpha);
+}
+
+void DebugGLApi::glCoverageModulationNVFn(GLenum components) {
+ GL_SERVICE_LOG("glCoverageModulationNV"
+ << "(" << GLEnums::GetStringEnum(components) << ")");
+ gl_api_->glCoverageModulationNVFn(components);
+}
+
+void DebugGLApi::glCoverFillPathInstancedNVFn(GLsizei numPaths,
+ GLenum pathNameType,
+ const void* paths,
+ GLuint pathBase,
+ GLenum coverMode,
+ GLenum transformType,
+ const GLfloat* transformValues) {
+ GL_SERVICE_LOG("glCoverFillPathInstancedNV"
+ << "(" << numPaths << ", "
+ << GLEnums::GetStringEnum(pathNameType) << ", "
+ << static_cast<const void*>(paths) << ", " << pathBase << ", "
+ << GLEnums::GetStringEnum(coverMode) << ", "
+ << GLEnums::GetStringEnum(transformType) << ", "
+ << static_cast<const void*>(transformValues) << ")");
+ gl_api_->glCoverFillPathInstancedNVFn(numPaths, pathNameType, paths, pathBase,
+ coverMode, transformType,
+ transformValues);
+}
+
+void DebugGLApi::glCoverFillPathNVFn(GLuint path, GLenum coverMode) {
+ GL_SERVICE_LOG("glCoverFillPathNV"
+ << "(" << path << ", " << GLEnums::GetStringEnum(coverMode)
+ << ")");
+ gl_api_->glCoverFillPathNVFn(path, coverMode);
+}
+
+void DebugGLApi::glCoverStrokePathInstancedNVFn(
+ GLsizei numPaths,
+ GLenum pathNameType,
+ const void* paths,
+ GLuint pathBase,
+ GLenum coverMode,
+ GLenum transformType,
+ const GLfloat* transformValues) {
+ GL_SERVICE_LOG("glCoverStrokePathInstancedNV"
+ << "(" << numPaths << ", "
+ << GLEnums::GetStringEnum(pathNameType) << ", "
+ << static_cast<const void*>(paths) << ", " << pathBase << ", "
+ << GLEnums::GetStringEnum(coverMode) << ", "
+ << GLEnums::GetStringEnum(transformType) << ", "
+ << static_cast<const void*>(transformValues) << ")");
+ gl_api_->glCoverStrokePathInstancedNVFn(numPaths, pathNameType, paths,
+ pathBase, coverMode, transformType,
+ transformValues);
+}
+
+void DebugGLApi::glCoverStrokePathNVFn(GLuint name, GLenum coverMode) {
+ GL_SERVICE_LOG("glCoverStrokePathNV"
+ << "(" << name << ", " << GLEnums::GetStringEnum(coverMode)
+ << ")");
+ gl_api_->glCoverStrokePathNVFn(name, coverMode);
+}
+
+GLuint DebugGLApi::glCreateProgramFn(void) {
+ GL_SERVICE_LOG("glCreateProgram"
+ << "("
+ << ")");
+ GLuint result = gl_api_->glCreateProgramFn();
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+GLuint DebugGLApi::glCreateShaderFn(GLenum type) {
+ GL_SERVICE_LOG("glCreateShader"
+ << "(" << GLEnums::GetStringEnum(type) << ")");
+ GLuint result = gl_api_->glCreateShaderFn(type);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+void DebugGLApi::glCullFaceFn(GLenum mode) {
+ GL_SERVICE_LOG("glCullFace"
+ << "(" << GLEnums::GetStringEnum(mode) << ")");
+ gl_api_->glCullFaceFn(mode);
+}
+
+void DebugGLApi::glDebugMessageCallbackFn(GLDEBUGPROC callback,
+ const void* userParam) {
+ GL_SERVICE_LOG("glDebugMessageCallback"
+ << "(" << callback << ", "
+ << static_cast<const void*>(userParam) << ")");
+ gl_api_->glDebugMessageCallbackFn(callback, userParam);
+}
+
+void DebugGLApi::glDebugMessageControlFn(GLenum source,
+ GLenum type,
+ GLenum severity,
+ GLsizei count,
+ const GLuint* ids,
+ GLboolean enabled) {
+ GL_SERVICE_LOG("glDebugMessageControl"
+ << "(" << GLEnums::GetStringEnum(source) << ", "
+ << GLEnums::GetStringEnum(type) << ", "
+ << GLEnums::GetStringEnum(severity) << ", " << count << ", "
+ << static_cast<const void*>(ids) << ", "
+ << GLEnums::GetStringBool(enabled) << ")");
+ gl_api_->glDebugMessageControlFn(source, type, severity, count, ids, enabled);
+}
+
+void DebugGLApi::glDebugMessageInsertFn(GLenum source,
+ GLenum type,
+ GLuint id,
+ GLenum severity,
+ GLsizei length,
+ const char* buf) {
+ GL_SERVICE_LOG("glDebugMessageInsert"
+ << "(" << GLEnums::GetStringEnum(source) << ", "
+ << GLEnums::GetStringEnum(type) << ", " << id << ", "
+ << GLEnums::GetStringEnum(severity) << ", " << length << ", "
+ << buf << ")");
+ gl_api_->glDebugMessageInsertFn(source, type, id, severity, length, buf);
+}
+
+void DebugGLApi::glDeleteBuffersARBFn(GLsizei n, const GLuint* buffers) {
+ GL_SERVICE_LOG("glDeleteBuffersARB"
+ << "(" << n << ", " << static_cast<const void*>(buffers)
+ << ")");
+ gl_api_->glDeleteBuffersARBFn(n, buffers);
+}
+
+void DebugGLApi::glDeleteFencesAPPLEFn(GLsizei n, const GLuint* fences) {
+ GL_SERVICE_LOG("glDeleteFencesAPPLE"
+ << "(" << n << ", " << static_cast<const void*>(fences)
+ << ")");
+ gl_api_->glDeleteFencesAPPLEFn(n, fences);
+}
+
+void DebugGLApi::glDeleteFencesNVFn(GLsizei n, const GLuint* fences) {
+ GL_SERVICE_LOG("glDeleteFencesNV"
+ << "(" << n << ", " << static_cast<const void*>(fences)
+ << ")");
+ gl_api_->glDeleteFencesNVFn(n, fences);
+}
+
+void DebugGLApi::glDeleteFramebuffersEXTFn(GLsizei n,
+ const GLuint* framebuffers) {
+ GL_SERVICE_LOG("glDeleteFramebuffersEXT"
+ << "(" << n << ", " << static_cast<const void*>(framebuffers)
+ << ")");
+ gl_api_->glDeleteFramebuffersEXTFn(n, framebuffers);
+}
+
+void DebugGLApi::glDeletePathsNVFn(GLuint path, GLsizei range) {
+ GL_SERVICE_LOG("glDeletePathsNV"
+ << "(" << path << ", " << range << ")");
+ gl_api_->glDeletePathsNVFn(path, range);
+}
+
+void DebugGLApi::glDeleteProgramFn(GLuint program) {
+ GL_SERVICE_LOG("glDeleteProgram"
+ << "(" << program << ")");
+ gl_api_->glDeleteProgramFn(program);
+}
+
+void DebugGLApi::glDeleteQueriesFn(GLsizei n, const GLuint* ids) {
+ GL_SERVICE_LOG("glDeleteQueries"
+ << "(" << n << ", " << static_cast<const void*>(ids) << ")");
+ gl_api_->glDeleteQueriesFn(n, ids);
+}
+
+void DebugGLApi::glDeleteRenderbuffersEXTFn(GLsizei n,
+ const GLuint* renderbuffers) {
+ GL_SERVICE_LOG("glDeleteRenderbuffersEXT"
+ << "(" << n << ", " << static_cast<const void*>(renderbuffers)
+ << ")");
+ gl_api_->glDeleteRenderbuffersEXTFn(n, renderbuffers);
+}
+
+void DebugGLApi::glDeleteSamplersFn(GLsizei n, const GLuint* samplers) {
+ GL_SERVICE_LOG("glDeleteSamplers"
+ << "(" << n << ", " << static_cast<const void*>(samplers)
+ << ")");
+ gl_api_->glDeleteSamplersFn(n, samplers);
+}
+
+void DebugGLApi::glDeleteShaderFn(GLuint shader) {
+ GL_SERVICE_LOG("glDeleteShader"
+ << "(" << shader << ")");
+ gl_api_->glDeleteShaderFn(shader);
+}
+
+void DebugGLApi::glDeleteSyncFn(GLsync sync) {
+ GL_SERVICE_LOG("glDeleteSync"
+ << "(" << sync << ")");
+ gl_api_->glDeleteSyncFn(sync);
+}
+
+void DebugGLApi::glDeleteTexturesFn(GLsizei n, const GLuint* textures) {
+ GL_SERVICE_LOG("glDeleteTextures"
+ << "(" << n << ", " << static_cast<const void*>(textures)
+ << ")");
+ gl_api_->glDeleteTexturesFn(n, textures);
+}
+
+void DebugGLApi::glDeleteTransformFeedbacksFn(GLsizei n, const GLuint* ids) {
+ GL_SERVICE_LOG("glDeleteTransformFeedbacks"
+ << "(" << n << ", " << static_cast<const void*>(ids) << ")");
+ gl_api_->glDeleteTransformFeedbacksFn(n, ids);
+}
+
+void DebugGLApi::glDeleteVertexArraysOESFn(GLsizei n, const GLuint* arrays) {
+ GL_SERVICE_LOG("glDeleteVertexArraysOES"
+ << "(" << n << ", " << static_cast<const void*>(arrays)
+ << ")");
+ gl_api_->glDeleteVertexArraysOESFn(n, arrays);
+}
+
+void DebugGLApi::glDepthFuncFn(GLenum func) {
+ GL_SERVICE_LOG("glDepthFunc"
+ << "(" << GLEnums::GetStringEnum(func) << ")");
+ gl_api_->glDepthFuncFn(func);
+}
+
+void DebugGLApi::glDepthMaskFn(GLboolean flag) {
+ GL_SERVICE_LOG("glDepthMask"
+ << "(" << GLEnums::GetStringBool(flag) << ")");
+ gl_api_->glDepthMaskFn(flag);
+}
+
+void DebugGLApi::glDepthRangeFn(GLclampd zNear, GLclampd zFar) {
+ GL_SERVICE_LOG("glDepthRange"
+ << "(" << zNear << ", " << zFar << ")");
+ gl_api_->glDepthRangeFn(zNear, zFar);
+}
+
+void DebugGLApi::glDepthRangefFn(GLclampf zNear, GLclampf zFar) {
+ GL_SERVICE_LOG("glDepthRangef"
+ << "(" << zNear << ", " << zFar << ")");
+ gl_api_->glDepthRangefFn(zNear, zFar);
+}
+
+void DebugGLApi::glDetachShaderFn(GLuint program, GLuint shader) {
+ GL_SERVICE_LOG("glDetachShader"
+ << "(" << program << ", " << shader << ")");
+ gl_api_->glDetachShaderFn(program, shader);
+}
+
+void DebugGLApi::glDisableFn(GLenum cap) {
+ GL_SERVICE_LOG("glDisable"
+ << "(" << GLEnums::GetStringEnum(cap) << ")");
+ gl_api_->glDisableFn(cap);
+}
+
+void DebugGLApi::glDisableVertexAttribArrayFn(GLuint index) {
+ GL_SERVICE_LOG("glDisableVertexAttribArray"
+ << "(" << index << ")");
+ gl_api_->glDisableVertexAttribArrayFn(index);
+}
+
+void DebugGLApi::glDiscardFramebufferEXTFn(GLenum target,
+ GLsizei numAttachments,
+ const GLenum* attachments) {
+ GL_SERVICE_LOG("glDiscardFramebufferEXT"
+ << "(" << GLEnums::GetStringEnum(target) << ", "
+ << numAttachments << ", "
+ << static_cast<const void*>(attachments) << ")");
+ gl_api_->glDiscardFramebufferEXTFn(target, numAttachments, attachments);
+}
+
+void DebugGLApi::glDrawArraysFn(GLenum mode, GLint first, GLsizei count) {
+ GL_SERVICE_LOG("glDrawArrays"
+ << "(" << GLEnums::GetStringEnum(mode) << ", " << first << ", "
+ << count << ")");
+ gl_api_->glDrawArraysFn(mode, first, count);
+}
+
+void DebugGLApi::glDrawArraysInstancedANGLEFn(GLenum mode,
+ GLint first,
+ GLsizei count,
+ GLsizei primcount) {
+ GL_SERVICE_LOG("glDrawArraysInstancedANGLE"
+ << "(" << GLEnums::GetStringEnum(mode) << ", " << first << ", "
+ << count << ", " << primcount << ")");
+ gl_api_->glDrawArraysInstancedANGLEFn(mode, first, count, primcount);
+}
+
+void DebugGLApi::glDrawBufferFn(GLenum mode) {
+ GL_SERVICE_LOG("glDrawBuffer"
+ << "(" << GLEnums::GetStringEnum(mode) << ")");
+ gl_api_->glDrawBufferFn(mode);
+}
+
+void DebugGLApi::glDrawBuffersARBFn(GLsizei n, const GLenum* bufs) {
+ GL_SERVICE_LOG("glDrawBuffersARB"
+ << "(" << n << ", " << static_cast<const void*>(bufs) << ")");
+ gl_api_->glDrawBuffersARBFn(n, bufs);
+}
+
+void DebugGLApi::glDrawElementsFn(GLenum mode,
+ GLsizei count,
+ GLenum type,
+ const void* indices) {
+ GL_SERVICE_LOG("glDrawElements"
+ << "(" << GLEnums::GetStringEnum(mode) << ", " << count << ", "
+ << GLEnums::GetStringEnum(type) << ", "
+ << static_cast<const void*>(indices) << ")");
+ gl_api_->glDrawElementsFn(mode, count, type, indices);
+}
+
+void DebugGLApi::glDrawElementsInstancedANGLEFn(GLenum mode,
+ GLsizei count,
+ GLenum type,
+ const void* indices,
+ GLsizei primcount) {
+ GL_SERVICE_LOG("glDrawElementsInstancedANGLE"
+ << "(" << GLEnums::GetStringEnum(mode) << ", " << count << ", "
+ << GLEnums::GetStringEnum(type) << ", "
+ << static_cast<const void*>(indices) << ", " << primcount
+ << ")");
+ gl_api_->glDrawElementsInstancedANGLEFn(mode, count, type, indices,
+ primcount);
+}
+
+void DebugGLApi::glDrawRangeElementsFn(GLenum mode,
+ GLuint start,
+ GLuint end,
+ GLsizei count,
+ GLenum type,
+ const void* indices) {
+ GL_SERVICE_LOG("glDrawRangeElements"
+ << "(" << GLEnums::GetStringEnum(mode) << ", " << start << ", "
+ << end << ", " << count << ", " << GLEnums::GetStringEnum(type)
+ << ", " << static_cast<const void*>(indices) << ")");
+ gl_api_->glDrawRangeElementsFn(mode, start, end, count, type, indices);
+}
+
+void DebugGLApi::glEGLImageTargetRenderbufferStorageOESFn(GLenum target,
+ GLeglImageOES image) {
+ GL_SERVICE_LOG("glEGLImageTargetRenderbufferStorageOES"
+ << "(" << GLEnums::GetStringEnum(target) << ", " << image
+ << ")");
+ gl_api_->glEGLImageTargetRenderbufferStorageOESFn(target, image);
+}
+
+void DebugGLApi::glEGLImageTargetTexture2DOESFn(GLenum target,
+ GLeglImageOES image) {
+ GL_SERVICE_LOG("glEGLImageTargetTexture2DOES"
+ << "(" << GLEnums::GetStringEnum(target) << ", " << image
+ << ")");
+ gl_api_->glEGLImageTargetTexture2DOESFn(target, image);
+}
+
+void DebugGLApi::glEnableFn(GLenum cap) {
+ GL_SERVICE_LOG("glEnable"
+ << "(" << GLEnums::GetStringEnum(cap) << ")");
+ gl_api_->glEnableFn(cap);
+}
+
+void DebugGLApi::glEnableVertexAttribArrayFn(GLuint index) {
+ GL_SERVICE_LOG("glEnableVertexAttribArray"
+ << "(" << index << ")");
+ gl_api_->glEnableVertexAttribArrayFn(index);
+}
+
+void DebugGLApi::glEndQueryFn(GLenum target) {
+ GL_SERVICE_LOG("glEndQuery"
+ << "(" << GLEnums::GetStringEnum(target) << ")");
+ gl_api_->glEndQueryFn(target);
+}
+
+void DebugGLApi::glEndTransformFeedbackFn(void) {
+ GL_SERVICE_LOG("glEndTransformFeedback"
+ << "("
+ << ")");
+ gl_api_->glEndTransformFeedbackFn();
+}
+
+GLsync DebugGLApi::glFenceSyncFn(GLenum condition, GLbitfield flags) {
+ GL_SERVICE_LOG("glFenceSync"
+ << "(" << GLEnums::GetStringEnum(condition) << ", " << flags
+ << ")");
+ GLsync result = gl_api_->glFenceSyncFn(condition, flags);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+void DebugGLApi::glFinishFn(void) {
+ GL_SERVICE_LOG("glFinish"
+ << "("
+ << ")");
+ gl_api_->glFinishFn();
+}
+
+void DebugGLApi::glFinishFenceAPPLEFn(GLuint fence) {
+ GL_SERVICE_LOG("glFinishFenceAPPLE"
+ << "(" << fence << ")");
+ gl_api_->glFinishFenceAPPLEFn(fence);
+}
+
+void DebugGLApi::glFinishFenceNVFn(GLuint fence) {
+ GL_SERVICE_LOG("glFinishFenceNV"
+ << "(" << fence << ")");
+ gl_api_->glFinishFenceNVFn(fence);
+}
+
+void DebugGLApi::glFlushFn(void) {
+ GL_SERVICE_LOG("glFlush"
+ << "("
+ << ")");
+ gl_api_->glFlushFn();
+}
+
+void DebugGLApi::glFlushMappedBufferRangeFn(GLenum target,
+ GLintptr offset,
+ GLsizeiptr length) {
+ GL_SERVICE_LOG("glFlushMappedBufferRange"
+ << "(" << GLEnums::GetStringEnum(target) << ", " << offset
+ << ", " << length << ")");
+ gl_api_->glFlushMappedBufferRangeFn(target, offset, length);
+}
+
+void DebugGLApi::glFramebufferRenderbufferEXTFn(GLenum target,
+ GLenum attachment,
+ GLenum renderbuffertarget,
+ GLuint renderbuffer) {
+ GL_SERVICE_LOG("glFramebufferRenderbufferEXT"
+ << "(" << GLEnums::GetStringEnum(target) << ", "
+ << GLEnums::GetStringEnum(attachment) << ", "
+ << GLEnums::GetStringEnum(renderbuffertarget) << ", "
+ << renderbuffer << ")");
+ gl_api_->glFramebufferRenderbufferEXTFn(target, attachment,
+ renderbuffertarget, renderbuffer);
+}
+
+void DebugGLApi::glFramebufferTexture2DEXTFn(GLenum target,
+ GLenum attachment,
+ GLenum textarget,
+ GLuint texture,
+ GLint level) {
+ GL_SERVICE_LOG("glFramebufferTexture2DEXT"
+ << "(" << GLEnums::GetStringEnum(target) << ", "
+ << GLEnums::GetStringEnum(attachment) << ", "
+ << GLEnums::GetStringEnum(textarget) << ", " << texture << ", "
+ << level << ")");
+ gl_api_->glFramebufferTexture2DEXTFn(target, attachment, textarget, texture,
+ level);
+}
+
+void DebugGLApi::glFramebufferTexture2DMultisampleEXTFn(GLenum target,
+ GLenum attachment,
+ GLenum textarget,
+ GLuint texture,
+ GLint level,
+ GLsizei samples) {
+ GL_SERVICE_LOG("glFramebufferTexture2DMultisampleEXT"
+ << "(" << GLEnums::GetStringEnum(target) << ", "
+ << GLEnums::GetStringEnum(attachment) << ", "
+ << GLEnums::GetStringEnum(textarget) << ", " << texture << ", "
+ << level << ", " << samples << ")");
+ gl_api_->glFramebufferTexture2DMultisampleEXTFn(target, attachment, textarget,
+ texture, level, samples);
+}
+
+void DebugGLApi::glFramebufferTexture2DMultisampleIMGFn(GLenum target,
+ GLenum attachment,
+ GLenum textarget,
+ GLuint texture,
+ GLint level,
+ GLsizei samples) {
+ GL_SERVICE_LOG("glFramebufferTexture2DMultisampleIMG"
+ << "(" << GLEnums::GetStringEnum(target) << ", "
+ << GLEnums::GetStringEnum(attachment) << ", "
+ << GLEnums::GetStringEnum(textarget) << ", " << texture << ", "
+ << level << ", " << samples << ")");
+ gl_api_->glFramebufferTexture2DMultisampleIMGFn(target, attachment, textarget,
+ texture, level, samples);
+}
+
+void DebugGLApi::glFramebufferTextureLayerFn(GLenum target,
+ GLenum attachment,
+ GLuint texture,
+ GLint level,
+ GLint layer) {
+ GL_SERVICE_LOG("glFramebufferTextureLayer"
+ << "(" << GLEnums::GetStringEnum(target) << ", "
+ << GLEnums::GetStringEnum(attachment) << ", " << texture
+ << ", " << level << ", " << layer << ")");
+ gl_api_->glFramebufferTextureLayerFn(target, attachment, texture, level,
+ layer);
+}
+
+void DebugGLApi::glFrontFaceFn(GLenum mode) {
+ GL_SERVICE_LOG("glFrontFace"
+ << "(" << GLEnums::GetStringEnum(mode) << ")");
+ gl_api_->glFrontFaceFn(mode);
+}
+
+void DebugGLApi::glGenBuffersARBFn(GLsizei n, GLuint* buffers) {
+ GL_SERVICE_LOG("glGenBuffersARB"
+ << "(" << n << ", " << static_cast<const void*>(buffers)
+ << ")");
+ gl_api_->glGenBuffersARBFn(n, buffers);
+}
+
+void DebugGLApi::glGenerateMipmapEXTFn(GLenum target) {
+ GL_SERVICE_LOG("glGenerateMipmapEXT"
+ << "(" << GLEnums::GetStringEnum(target) << ")");
+ gl_api_->glGenerateMipmapEXTFn(target);
+}
+
+void DebugGLApi::glGenFencesAPPLEFn(GLsizei n, GLuint* fences) {
+ GL_SERVICE_LOG("glGenFencesAPPLE"
+ << "(" << n << ", " << static_cast<const void*>(fences)
+ << ")");
+ gl_api_->glGenFencesAPPLEFn(n, fences);
+}
+
+void DebugGLApi::glGenFencesNVFn(GLsizei n, GLuint* fences) {
+ GL_SERVICE_LOG("glGenFencesNV"
+ << "(" << n << ", " << static_cast<const void*>(fences)
+ << ")");
+ gl_api_->glGenFencesNVFn(n, fences);
+}
+
+void DebugGLApi::glGenFramebuffersEXTFn(GLsizei n, GLuint* framebuffers) {
+ GL_SERVICE_LOG("glGenFramebuffersEXT"
+ << "(" << n << ", " << static_cast<const void*>(framebuffers)
+ << ")");
+ gl_api_->glGenFramebuffersEXTFn(n, framebuffers);
+}
+
+GLuint DebugGLApi::glGenPathsNVFn(GLsizei range) {
+ GL_SERVICE_LOG("glGenPathsNV"
+ << "(" << range << ")");
+ GLuint result = gl_api_->glGenPathsNVFn(range);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+void DebugGLApi::glGenQueriesFn(GLsizei n, GLuint* ids) {
+ GL_SERVICE_LOG("glGenQueries"
+ << "(" << n << ", " << static_cast<const void*>(ids) << ")");
+ gl_api_->glGenQueriesFn(n, ids);
+}
+
+void DebugGLApi::glGenRenderbuffersEXTFn(GLsizei n, GLuint* renderbuffers) {
+ GL_SERVICE_LOG("glGenRenderbuffersEXT"
+ << "(" << n << ", " << static_cast<const void*>(renderbuffers)
+ << ")");
+ gl_api_->glGenRenderbuffersEXTFn(n, renderbuffers);
+}
+
+void DebugGLApi::glGenSamplersFn(GLsizei n, GLuint* samplers) {
+ GL_SERVICE_LOG("glGenSamplers"
+ << "(" << n << ", " << static_cast<const void*>(samplers)
+ << ")");
+ gl_api_->glGenSamplersFn(n, samplers);
+}
+
+void DebugGLApi::glGenTexturesFn(GLsizei n, GLuint* textures) {
+ GL_SERVICE_LOG("glGenTextures"
+ << "(" << n << ", " << static_cast<const void*>(textures)
+ << ")");
+ gl_api_->glGenTexturesFn(n, textures);
+}
+
+void DebugGLApi::glGenTransformFeedbacksFn(GLsizei n, GLuint* ids) {
+ GL_SERVICE_LOG("glGenTransformFeedbacks"
+ << "(" << n << ", " << static_cast<const void*>(ids) << ")");
+ gl_api_->glGenTransformFeedbacksFn(n, ids);
+}
+
+void DebugGLApi::glGenVertexArraysOESFn(GLsizei n, GLuint* arrays) {
+ GL_SERVICE_LOG("glGenVertexArraysOES"
+ << "(" << n << ", " << static_cast<const void*>(arrays)
+ << ")");
+ gl_api_->glGenVertexArraysOESFn(n, arrays);
+}
+
+void DebugGLApi::glGetActiveAttribFn(GLuint program,
+ GLuint index,
+ GLsizei bufsize,
+ GLsizei* length,
+ GLint* size,
+ GLenum* type,
+ char* name) {
+ GL_SERVICE_LOG("glGetActiveAttrib"
+ << "(" << program << ", " << index << ", " << bufsize << ", "
+ << static_cast<const void*>(length) << ", "
+ << static_cast<const void*>(size) << ", "
+ << static_cast<const void*>(type) << ", "
+ << static_cast<const void*>(name) << ")");
+ gl_api_->glGetActiveAttribFn(program, index, bufsize, length, size, type,
+ name);
+}
+
+void DebugGLApi::glGetActiveUniformFn(GLuint program,
+ GLuint index,
+ GLsizei bufsize,
+ GLsizei* length,
+ GLint* size,
+ GLenum* type,
+ char* name) {
+ GL_SERVICE_LOG("glGetActiveUniform"
+ << "(" << program << ", " << index << ", " << bufsize << ", "
+ << static_cast<const void*>(length) << ", "
+ << static_cast<const void*>(size) << ", "
+ << static_cast<const void*>(type) << ", "
+ << static_cast<const void*>(name) << ")");
+ gl_api_->glGetActiveUniformFn(program, index, bufsize, length, size, type,
+ name);
+}
+
+void DebugGLApi::glGetActiveUniformBlockivFn(GLuint program,
+ GLuint uniformBlockIndex,
+ GLenum pname,
+ GLint* params) {
+ GL_SERVICE_LOG("glGetActiveUniformBlockiv"
+ << "(" << program << ", " << uniformBlockIndex << ", "
+ << GLEnums::GetStringEnum(pname) << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glGetActiveUniformBlockivFn(program, uniformBlockIndex, pname,
+ params);
+}
+
+void DebugGLApi::glGetActiveUniformBlockivRobustANGLEFn(
+ GLuint program,
+ GLuint uniformBlockIndex,
+ GLenum pname,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLint* params) {
+ GL_SERVICE_LOG("glGetActiveUniformBlockivRobustANGLE"
+ << "(" << program << ", " << uniformBlockIndex << ", "
+ << GLEnums::GetStringEnum(pname) << ", " << bufSize << ", "
+ << static_cast<const void*>(length) << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glGetActiveUniformBlockivRobustANGLEFn(
+ program, uniformBlockIndex, pname, bufSize, length, params);
+}
+
+void DebugGLApi::glGetActiveUniformBlockNameFn(GLuint program,
+ GLuint uniformBlockIndex,
+ GLsizei bufSize,
+ GLsizei* length,
+ char* uniformBlockName) {
+ GL_SERVICE_LOG("glGetActiveUniformBlockName"
+ << "(" << program << ", " << uniformBlockIndex << ", "
+ << bufSize << ", " << static_cast<const void*>(length) << ", "
+ << static_cast<const void*>(uniformBlockName) << ")");
+ gl_api_->glGetActiveUniformBlockNameFn(program, uniformBlockIndex, bufSize,
+ length, uniformBlockName);
+}
+
+void DebugGLApi::glGetActiveUniformsivFn(GLuint program,
+ GLsizei uniformCount,
+ const GLuint* uniformIndices,
+ GLenum pname,
+ GLint* params) {
+ GL_SERVICE_LOG("glGetActiveUniformsiv"
+ << "(" << program << ", " << uniformCount << ", "
+ << static_cast<const void*>(uniformIndices) << ", "
+ << GLEnums::GetStringEnum(pname) << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glGetActiveUniformsivFn(program, uniformCount, uniformIndices, pname,
+ params);
+}
+
+void DebugGLApi::glGetAttachedShadersFn(GLuint program,
+ GLsizei maxcount,
+ GLsizei* count,
+ GLuint* shaders) {
+ GL_SERVICE_LOG("glGetAttachedShaders"
+ << "(" << program << ", " << maxcount << ", "
+ << static_cast<const void*>(count) << ", "
+ << static_cast<const void*>(shaders) << ")");
+ gl_api_->glGetAttachedShadersFn(program, maxcount, count, shaders);
+}
+
+GLint DebugGLApi::glGetAttribLocationFn(GLuint program, const char* name) {
+ GL_SERVICE_LOG("glGetAttribLocation"
+ << "(" << program << ", " << name << ")");
+ GLint result = gl_api_->glGetAttribLocationFn(program, name);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+void DebugGLApi::glGetBooleani_vRobustANGLEFn(GLenum target,
+ GLuint index,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLboolean* data) {
+ GL_SERVICE_LOG("glGetBooleani_vRobustANGLE"
+ << "(" << GLEnums::GetStringEnum(target) << ", " << index
+ << ", " << bufSize << ", " << static_cast<const void*>(length)
+ << ", " << static_cast<const void*>(data) << ")");
+ gl_api_->glGetBooleani_vRobustANGLEFn(target, index, bufSize, length, data);
+}
+
+void DebugGLApi::glGetBooleanvFn(GLenum pname, GLboolean* params) {
+ GL_SERVICE_LOG("glGetBooleanv"
+ << "(" << GLEnums::GetStringEnum(pname) << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glGetBooleanvFn(pname, params);
+}
+
+void DebugGLApi::glGetBooleanvRobustANGLEFn(GLenum pname,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLboolean* data) {
+ GL_SERVICE_LOG("glGetBooleanvRobustANGLE"
+ << "(" << GLEnums::GetStringEnum(pname) << ", " << bufSize
+ << ", " << static_cast<const void*>(length) << ", "
+ << static_cast<const void*>(data) << ")");
+ gl_api_->glGetBooleanvRobustANGLEFn(pname, bufSize, length, data);
+}
+
+void DebugGLApi::glGetBufferParameteri64vRobustANGLEFn(GLenum target,
+ GLenum pname,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLint64* params) {
+ GL_SERVICE_LOG("glGetBufferParameteri64vRobustANGLE"
+ << "(" << GLEnums::GetStringEnum(target) << ", "
+ << GLEnums::GetStringEnum(pname) << ", " << bufSize << ", "
+ << static_cast<const void*>(length) << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glGetBufferParameteri64vRobustANGLEFn(target, pname, bufSize, length,
+ params);
+}
+
+void DebugGLApi::glGetBufferParameterivFn(GLenum target,
+ GLenum pname,
+ GLint* params) {
+ GL_SERVICE_LOG("glGetBufferParameteriv"
+ << "(" << GLEnums::GetStringEnum(target) << ", "
+ << GLEnums::GetStringEnum(pname) << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glGetBufferParameterivFn(target, pname, params);
+}
+
+void DebugGLApi::glGetBufferParameterivRobustANGLEFn(GLenum target,
+ GLenum pname,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLint* params) {
+ GL_SERVICE_LOG("glGetBufferParameterivRobustANGLE"
+ << "(" << GLEnums::GetStringEnum(target) << ", "
+ << GLEnums::GetStringEnum(pname) << ", " << bufSize << ", "
+ << static_cast<const void*>(length) << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glGetBufferParameterivRobustANGLEFn(target, pname, bufSize, length,
+ params);
+}
+
+void DebugGLApi::glGetBufferPointervRobustANGLEFn(GLenum target,
+ GLenum pname,
+ GLsizei bufSize,
+ GLsizei* length,
+ void** params) {
+ GL_SERVICE_LOG("glGetBufferPointervRobustANGLE"
+ << "(" << GLEnums::GetStringEnum(target) << ", "
+ << GLEnums::GetStringEnum(pname) << ", " << bufSize << ", "
+ << static_cast<const void*>(length) << ", " << params << ")");
+ gl_api_->glGetBufferPointervRobustANGLEFn(target, pname, bufSize, length,
+ params);
+}
+
+void DebugGLApi::glGetDebugMessageLogFn(GLuint count,
+ GLsizei bufSize,
+ GLenum* sources,
+ GLenum* types,
+ GLuint* ids,
+ GLenum* severities,
+ GLsizei* lengths,
+ char* messageLog) {
+ GL_SERVICE_LOG("glGetDebugMessageLog"
+ << "(" << count << ", " << bufSize << ", "
+ << static_cast<const void*>(sources) << ", "
+ << static_cast<const void*>(types) << ", "
+ << static_cast<const void*>(ids) << ", "
+ << static_cast<const void*>(severities) << ", "
+ << static_cast<const void*>(lengths) << ", "
+ << static_cast<const void*>(messageLog) << ")");
+ gl_api_->glGetDebugMessageLogFn(count, bufSize, sources, types, ids,
+ severities, lengths, messageLog);
+}
+
+GLenum DebugGLApi::glGetErrorFn(void) {
+ GL_SERVICE_LOG("glGetError"
+ << "("
+ << ")");
+ GLenum result = gl_api_->glGetErrorFn();
+
+ GL_SERVICE_LOG("GL_RESULT: " << GLEnums::GetStringError(result));
+
+ return result;
+}
+
+void DebugGLApi::glGetFenceivNVFn(GLuint fence, GLenum pname, GLint* params) {
+ GL_SERVICE_LOG("glGetFenceivNV"
+ << "(" << fence << ", " << GLEnums::GetStringEnum(pname)
+ << ", " << static_cast<const void*>(params) << ")");
+ gl_api_->glGetFenceivNVFn(fence, pname, params);
+}
+
+void DebugGLApi::glGetFloatvFn(GLenum pname, GLfloat* params) {
+ GL_SERVICE_LOG("glGetFloatv"
+ << "(" << GLEnums::GetStringEnum(pname) << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glGetFloatvFn(pname, params);
+}
+
+void DebugGLApi::glGetFloatvRobustANGLEFn(GLenum pname,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLfloat* data) {
+ GL_SERVICE_LOG("glGetFloatvRobustANGLE"
+ << "(" << GLEnums::GetStringEnum(pname) << ", " << bufSize
+ << ", " << static_cast<const void*>(length) << ", "
+ << static_cast<const void*>(data) << ")");
+ gl_api_->glGetFloatvRobustANGLEFn(pname, bufSize, length, data);
+}
+
+GLint DebugGLApi::glGetFragDataIndexFn(GLuint program, const char* name) {
+ GL_SERVICE_LOG("glGetFragDataIndex"
+ << "(" << program << ", " << name << ")");
+ GLint result = gl_api_->glGetFragDataIndexFn(program, name);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+GLint DebugGLApi::glGetFragDataLocationFn(GLuint program, const char* name) {
+ GL_SERVICE_LOG("glGetFragDataLocation"
+ << "(" << program << ", " << name << ")");
+ GLint result = gl_api_->glGetFragDataLocationFn(program, name);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+void DebugGLApi::glGetFramebufferAttachmentParameterivEXTFn(GLenum target,
+ GLenum attachment,
+ GLenum pname,
+ GLint* params) {
+ GL_SERVICE_LOG("glGetFramebufferAttachmentParameterivEXT"
+ << "(" << GLEnums::GetStringEnum(target) << ", "
+ << GLEnums::GetStringEnum(attachment) << ", "
+ << GLEnums::GetStringEnum(pname) << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glGetFramebufferAttachmentParameterivEXTFn(target, attachment, pname,
+ params);
+}
+
+void DebugGLApi::glGetFramebufferAttachmentParameterivRobustANGLEFn(
+ GLenum target,
+ GLenum attachment,
+ GLenum pname,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLint* params) {
+ GL_SERVICE_LOG("glGetFramebufferAttachmentParameterivRobustANGLE"
+ << "(" << GLEnums::GetStringEnum(target) << ", "
+ << GLEnums::GetStringEnum(attachment) << ", "
+ << GLEnums::GetStringEnum(pname) << ", " << bufSize << ", "
+ << static_cast<const void*>(length) << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glGetFramebufferAttachmentParameterivRobustANGLEFn(
+ target, attachment, pname, bufSize, length, params);
+}
+
+void DebugGLApi::glGetFramebufferParameterivRobustANGLEFn(GLenum target,
+ GLenum pname,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLint* params) {
+ GL_SERVICE_LOG("glGetFramebufferParameterivRobustANGLE"
+ << "(" << GLEnums::GetStringEnum(target) << ", "
+ << GLEnums::GetStringEnum(pname) << ", " << bufSize << ", "
+ << static_cast<const void*>(length) << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glGetFramebufferParameterivRobustANGLEFn(target, pname, bufSize,
+ length, params);
+}
+
+GLenum DebugGLApi::glGetGraphicsResetStatusARBFn(void) {
+ GL_SERVICE_LOG("glGetGraphicsResetStatusARB"
+ << "("
+ << ")");
+ GLenum result = gl_api_->glGetGraphicsResetStatusARBFn();
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+void DebugGLApi::glGetInteger64i_vFn(GLenum target,
+ GLuint index,
+ GLint64* data) {
+ GL_SERVICE_LOG("glGetInteger64i_v"
+ << "(" << GLEnums::GetStringEnum(target) << ", " << index
+ << ", " << static_cast<const void*>(data) << ")");
+ gl_api_->glGetInteger64i_vFn(target, index, data);
+}
+
+void DebugGLApi::glGetInteger64i_vRobustANGLEFn(GLenum target,
+ GLuint index,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLint64* data) {
+ GL_SERVICE_LOG("glGetInteger64i_vRobustANGLE"
+ << "(" << GLEnums::GetStringEnum(target) << ", " << index
+ << ", " << bufSize << ", " << static_cast<const void*>(length)
+ << ", " << static_cast<const void*>(data) << ")");
+ gl_api_->glGetInteger64i_vRobustANGLEFn(target, index, bufSize, length, data);
+}
+
+void DebugGLApi::glGetInteger64vFn(GLenum pname, GLint64* params) {
+ GL_SERVICE_LOG("glGetInteger64v"
+ << "(" << GLEnums::GetStringEnum(pname) << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glGetInteger64vFn(pname, params);
+}
+
+void DebugGLApi::glGetInteger64vRobustANGLEFn(GLenum pname,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLint64* data) {
+ GL_SERVICE_LOG("glGetInteger64vRobustANGLE"
+ << "(" << GLEnums::GetStringEnum(pname) << ", " << bufSize
+ << ", " << static_cast<const void*>(length) << ", "
+ << static_cast<const void*>(data) << ")");
+ gl_api_->glGetInteger64vRobustANGLEFn(pname, bufSize, length, data);
+}
+
+void DebugGLApi::glGetIntegeri_vFn(GLenum target, GLuint index, GLint* data) {
+ GL_SERVICE_LOG("glGetIntegeri_v"
+ << "(" << GLEnums::GetStringEnum(target) << ", " << index
+ << ", " << static_cast<const void*>(data) << ")");
+ gl_api_->glGetIntegeri_vFn(target, index, data);
+}
+
+void DebugGLApi::glGetIntegeri_vRobustANGLEFn(GLenum target,
+ GLuint index,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLint* data) {
+ GL_SERVICE_LOG("glGetIntegeri_vRobustANGLE"
+ << "(" << GLEnums::GetStringEnum(target) << ", " << index
+ << ", " << bufSize << ", " << static_cast<const void*>(length)
+ << ", " << static_cast<const void*>(data) << ")");
+ gl_api_->glGetIntegeri_vRobustANGLEFn(target, index, bufSize, length, data);
+}
+
+void DebugGLApi::glGetIntegervFn(GLenum pname, GLint* params) {
+ GL_SERVICE_LOG("glGetIntegerv"
+ << "(" << GLEnums::GetStringEnum(pname) << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glGetIntegervFn(pname, params);
+}
+
+void DebugGLApi::glGetIntegervRobustANGLEFn(GLenum pname,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLint* data) {
+ GL_SERVICE_LOG("glGetIntegervRobustANGLE"
+ << "(" << GLEnums::GetStringEnum(pname) << ", " << bufSize
+ << ", " << static_cast<const void*>(length) << ", "
+ << static_cast<const void*>(data) << ")");
+ gl_api_->glGetIntegervRobustANGLEFn(pname, bufSize, length, data);
+}
+
+void DebugGLApi::glGetInternalformativFn(GLenum target,
+ GLenum internalformat,
+ GLenum pname,
+ GLsizei bufSize,
+ GLint* params) {
+ GL_SERVICE_LOG("glGetInternalformativ"
+ << "(" << GLEnums::GetStringEnum(target) << ", "
+ << GLEnums::GetStringEnum(internalformat) << ", "
+ << GLEnums::GetStringEnum(pname) << ", " << bufSize << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glGetInternalformativFn(target, internalformat, pname, bufSize,
+ params);
+}
+
+void DebugGLApi::glGetInternalformativRobustANGLEFn(GLenum target,
+ GLenum internalformat,
+ GLenum pname,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLint* params) {
+ GL_SERVICE_LOG("glGetInternalformativRobustANGLE"
+ << "(" << GLEnums::GetStringEnum(target) << ", "
+ << GLEnums::GetStringEnum(internalformat) << ", "
+ << GLEnums::GetStringEnum(pname) << ", " << bufSize << ", "
+ << static_cast<const void*>(length) << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glGetInternalformativRobustANGLEFn(target, internalformat, pname,
+ bufSize, length, params);
+}
+
+void DebugGLApi::glGetMultisamplefvRobustANGLEFn(GLenum pname,
+ GLuint index,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLfloat* val) {
+ GL_SERVICE_LOG("glGetMultisamplefvRobustANGLE"
+ << "(" << GLEnums::GetStringEnum(pname) << ", " << index
+ << ", " << bufSize << ", " << static_cast<const void*>(length)
+ << ", " << static_cast<const void*>(val) << ")");
+ gl_api_->glGetMultisamplefvRobustANGLEFn(pname, index, bufSize, length, val);
+}
+
+void DebugGLApi::glGetnUniformfvRobustANGLEFn(GLuint program,
+ GLint location,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLfloat* params) {
+ GL_SERVICE_LOG("glGetnUniformfvRobustANGLE"
+ << "(" << program << ", " << location << ", " << bufSize
+ << ", " << static_cast<const void*>(length) << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glGetnUniformfvRobustANGLEFn(program, location, bufSize, length,
+ params);
+}
+
+void DebugGLApi::glGetnUniformivRobustANGLEFn(GLuint program,
+ GLint location,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLint* params) {
+ GL_SERVICE_LOG("glGetnUniformivRobustANGLE"
+ << "(" << program << ", " << location << ", " << bufSize
+ << ", " << static_cast<const void*>(length) << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glGetnUniformivRobustANGLEFn(program, location, bufSize, length,
+ params);
+}
+
+void DebugGLApi::glGetnUniformuivRobustANGLEFn(GLuint program,
+ GLint location,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLuint* params) {
+ GL_SERVICE_LOG("glGetnUniformuivRobustANGLE"
+ << "(" << program << ", " << location << ", " << bufSize
+ << ", " << static_cast<const void*>(length) << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glGetnUniformuivRobustANGLEFn(program, location, bufSize, length,
+ params);
+}
+
+void DebugGLApi::glGetObjectLabelFn(GLenum identifier,
+ GLuint name,
+ GLsizei bufSize,
+ GLsizei* length,
+ char* label) {
+ GL_SERVICE_LOG("glGetObjectLabel"
+ << "(" << GLEnums::GetStringEnum(identifier) << ", " << name
+ << ", " << bufSize << ", " << static_cast<const void*>(length)
+ << ", " << static_cast<const void*>(label) << ")");
+ gl_api_->glGetObjectLabelFn(identifier, name, bufSize, length, label);
+}
+
+void DebugGLApi::glGetObjectPtrLabelFn(void* ptr,
+ GLsizei bufSize,
+ GLsizei* length,
+ char* label) {
+ GL_SERVICE_LOG("glGetObjectPtrLabel"
+ << "(" << static_cast<const void*>(ptr) << ", " << bufSize
+ << ", " << static_cast<const void*>(length) << ", "
+ << static_cast<const void*>(label) << ")");
+ gl_api_->glGetObjectPtrLabelFn(ptr, bufSize, length, label);
+}
+
+void DebugGLApi::glGetPointervFn(GLenum pname, void** params) {
+ GL_SERVICE_LOG("glGetPointerv"
+ << "(" << GLEnums::GetStringEnum(pname) << ", " << params
+ << ")");
+ gl_api_->glGetPointervFn(pname, params);
+}
+
+void DebugGLApi::glGetPointervRobustANGLERobustANGLEFn(GLenum pname,
+ GLsizei bufSize,
+ GLsizei* length,
+ void** params) {
+ GL_SERVICE_LOG("glGetPointervRobustANGLERobustANGLE"
+ << "(" << GLEnums::GetStringEnum(pname) << ", " << bufSize
+ << ", " << static_cast<const void*>(length) << ", " << params
+ << ")");
+ gl_api_->glGetPointervRobustANGLERobustANGLEFn(pname, bufSize, length,
+ params);
+}
+
+void DebugGLApi::glGetProgramBinaryFn(GLuint program,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLenum* binaryFormat,
+ GLvoid* binary) {
+ GL_SERVICE_LOG("glGetProgramBinary"
+ << "(" << program << ", " << bufSize << ", "
+ << static_cast<const void*>(length) << ", "
+ << static_cast<const void*>(binaryFormat) << ", "
+ << static_cast<const void*>(binary) << ")");
+ gl_api_->glGetProgramBinaryFn(program, bufSize, length, binaryFormat, binary);
+}
+
+void DebugGLApi::glGetProgramInfoLogFn(GLuint program,
+ GLsizei bufsize,
+ GLsizei* length,
+ char* infolog) {
+ GL_SERVICE_LOG("glGetProgramInfoLog"
+ << "(" << program << ", " << bufsize << ", "
+ << static_cast<const void*>(length) << ", "
+ << static_cast<const void*>(infolog) << ")");
+ gl_api_->glGetProgramInfoLogFn(program, bufsize, length, infolog);
+}
+
+void DebugGLApi::glGetProgramInterfaceivFn(GLuint program,
+ GLenum programInterface,
+ GLenum pname,
+ GLint* params) {
+ GL_SERVICE_LOG("glGetProgramInterfaceiv"
+ << "(" << program << ", "
+ << GLEnums::GetStringEnum(programInterface) << ", "
+ << GLEnums::GetStringEnum(pname) << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glGetProgramInterfaceivFn(program, programInterface, pname, params);
+}
+
+void DebugGLApi::glGetProgramInterfaceivRobustANGLEFn(GLuint program,
+ GLenum programInterface,
+ GLenum pname,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLint* params) {
+ GL_SERVICE_LOG("glGetProgramInterfaceivRobustANGLE"
+ << "(" << program << ", "
+ << GLEnums::GetStringEnum(programInterface) << ", "
+ << GLEnums::GetStringEnum(pname) << ", " << bufSize << ", "
+ << static_cast<const void*>(length) << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glGetProgramInterfaceivRobustANGLEFn(program, programInterface,
+ pname, bufSize, length, params);
+}
+
+void DebugGLApi::glGetProgramivFn(GLuint program, GLenum pname, GLint* params) {
+ GL_SERVICE_LOG("glGetProgramiv"
+ << "(" << program << ", " << GLEnums::GetStringEnum(pname)
+ << ", " << static_cast<const void*>(params) << ")");
+ gl_api_->glGetProgramivFn(program, pname, params);
+}
+
+void DebugGLApi::glGetProgramivRobustANGLEFn(GLuint program,
+ GLenum pname,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLint* params) {
+ GL_SERVICE_LOG("glGetProgramivRobustANGLE"
+ << "(" << program << ", " << GLEnums::GetStringEnum(pname)
+ << ", " << bufSize << ", " << static_cast<const void*>(length)
+ << ", " << static_cast<const void*>(params) << ")");
+ gl_api_->glGetProgramivRobustANGLEFn(program, pname, bufSize, length, params);
+}
+
+void DebugGLApi::glGetProgramResourceivFn(GLuint program,
+ GLenum programInterface,
+ GLuint index,
+ GLsizei propCount,
+ const GLenum* props,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLint* params) {
+ GL_SERVICE_LOG("glGetProgramResourceiv"
+ << "(" << program << ", "
+ << GLEnums::GetStringEnum(programInterface) << ", " << index
+ << ", " << propCount << ", " << static_cast<const void*>(props)
+ << ", " << bufSize << ", " << static_cast<const void*>(length)
+ << ", " << static_cast<const void*>(params) << ")");
+ gl_api_->glGetProgramResourceivFn(program, programInterface, index, propCount,
+ props, bufSize, length, params);
+}
+
+GLint DebugGLApi::glGetProgramResourceLocationFn(GLuint program,
+ GLenum programInterface,
+ const char* name) {
+ GL_SERVICE_LOG("glGetProgramResourceLocation"
+ << "(" << program << ", "
+ << GLEnums::GetStringEnum(programInterface) << ", " << name
+ << ")");
+ GLint result =
+ gl_api_->glGetProgramResourceLocationFn(program, programInterface, name);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+void DebugGLApi::glGetProgramResourceNameFn(GLuint program,
+ GLenum programInterface,
+ GLuint index,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLchar* name) {
+ GL_SERVICE_LOG("glGetProgramResourceName"
+ << "(" << program << ", "
+ << GLEnums::GetStringEnum(programInterface) << ", " << index
+ << ", " << bufSize << ", " << static_cast<const void*>(length)
+ << ", " << static_cast<const void*>(name) << ")");
+ gl_api_->glGetProgramResourceNameFn(program, programInterface, index, bufSize,
+ length, name);
+}
+
+void DebugGLApi::glGetQueryivFn(GLenum target, GLenum pname, GLint* params) {
+ GL_SERVICE_LOG("glGetQueryiv"
+ << "(" << GLEnums::GetStringEnum(target) << ", "
+ << GLEnums::GetStringEnum(pname) << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glGetQueryivFn(target, pname, params);
+}
+
+void DebugGLApi::glGetQueryivRobustANGLEFn(GLenum target,
+ GLenum pname,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLint* params) {
+ GL_SERVICE_LOG("glGetQueryivRobustANGLE"
+ << "(" << GLEnums::GetStringEnum(target) << ", "
+ << GLEnums::GetStringEnum(pname) << ", " << bufSize << ", "
+ << static_cast<const void*>(length) << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glGetQueryivRobustANGLEFn(target, pname, bufSize, length, params);
+}
+
+void DebugGLApi::glGetQueryObjecti64vFn(GLuint id,
+ GLenum pname,
+ GLint64* params) {
+ GL_SERVICE_LOG("glGetQueryObjecti64v"
+ << "(" << id << ", " << GLEnums::GetStringEnum(pname) << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glGetQueryObjecti64vFn(id, pname, params);
+}
+
+void DebugGLApi::glGetQueryObjecti64vRobustANGLEFn(GLuint id,
+ GLenum pname,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLint64* params) {
+ GL_SERVICE_LOG("glGetQueryObjecti64vRobustANGLE"
+ << "(" << id << ", " << GLEnums::GetStringEnum(pname) << ", "
+ << bufSize << ", " << static_cast<const void*>(length) << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glGetQueryObjecti64vRobustANGLEFn(id, pname, bufSize, length,
+ params);
+}
+
+void DebugGLApi::glGetQueryObjectivFn(GLuint id, GLenum pname, GLint* params) {
+ GL_SERVICE_LOG("glGetQueryObjectiv"
+ << "(" << id << ", " << GLEnums::GetStringEnum(pname) << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glGetQueryObjectivFn(id, pname, params);
+}
+
+void DebugGLApi::glGetQueryObjectivRobustANGLEFn(GLuint id,
+ GLenum pname,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLint* params) {
+ GL_SERVICE_LOG("glGetQueryObjectivRobustANGLE"
+ << "(" << id << ", " << GLEnums::GetStringEnum(pname) << ", "
+ << bufSize << ", " << static_cast<const void*>(length) << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glGetQueryObjectivRobustANGLEFn(id, pname, bufSize, length, params);
+}
+
+void DebugGLApi::glGetQueryObjectui64vFn(GLuint id,
+ GLenum pname,
+ GLuint64* params) {
+ GL_SERVICE_LOG("glGetQueryObjectui64v"
+ << "(" << id << ", " << GLEnums::GetStringEnum(pname) << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glGetQueryObjectui64vFn(id, pname, params);
+}
+
+void DebugGLApi::glGetQueryObjectui64vRobustANGLEFn(GLuint id,
+ GLenum pname,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLuint64* params) {
+ GL_SERVICE_LOG("glGetQueryObjectui64vRobustANGLE"
+ << "(" << id << ", " << GLEnums::GetStringEnum(pname) << ", "
+ << bufSize << ", " << static_cast<const void*>(length) << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glGetQueryObjectui64vRobustANGLEFn(id, pname, bufSize, length,
+ params);
+}
+
+void DebugGLApi::glGetQueryObjectuivFn(GLuint id,
+ GLenum pname,
+ GLuint* params) {
+ GL_SERVICE_LOG("glGetQueryObjectuiv"
+ << "(" << id << ", " << GLEnums::GetStringEnum(pname) << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glGetQueryObjectuivFn(id, pname, params);
+}
+
+void DebugGLApi::glGetQueryObjectuivRobustANGLEFn(GLuint id,
+ GLenum pname,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLuint* params) {
+ GL_SERVICE_LOG("glGetQueryObjectuivRobustANGLE"
+ << "(" << id << ", " << GLEnums::GetStringEnum(pname) << ", "
+ << bufSize << ", " << static_cast<const void*>(length) << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glGetQueryObjectuivRobustANGLEFn(id, pname, bufSize, length, params);
+}
+
+void DebugGLApi::glGetRenderbufferParameterivEXTFn(GLenum target,
+ GLenum pname,
+ GLint* params) {
+ GL_SERVICE_LOG("glGetRenderbufferParameterivEXT"
+ << "(" << GLEnums::GetStringEnum(target) << ", "
+ << GLEnums::GetStringEnum(pname) << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glGetRenderbufferParameterivEXTFn(target, pname, params);
+}
+
+void DebugGLApi::glGetRenderbufferParameterivRobustANGLEFn(GLenum target,
+ GLenum pname,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLint* params) {
+ GL_SERVICE_LOG("glGetRenderbufferParameterivRobustANGLE"
+ << "(" << GLEnums::GetStringEnum(target) << ", "
+ << GLEnums::GetStringEnum(pname) << ", " << bufSize << ", "
+ << static_cast<const void*>(length) << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glGetRenderbufferParameterivRobustANGLEFn(target, pname, bufSize,
+ length, params);
+}
+
+void DebugGLApi::glGetSamplerParameterfvFn(GLuint sampler,
+ GLenum pname,
+ GLfloat* params) {
+ GL_SERVICE_LOG("glGetSamplerParameterfv"
+ << "(" << sampler << ", " << GLEnums::GetStringEnum(pname)
+ << ", " << static_cast<const void*>(params) << ")");
+ gl_api_->glGetSamplerParameterfvFn(sampler, pname, params);
+}
+
+void DebugGLApi::glGetSamplerParameterfvRobustANGLEFn(GLuint sampler,
+ GLenum pname,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLfloat* params) {
+ GL_SERVICE_LOG("glGetSamplerParameterfvRobustANGLE"
+ << "(" << sampler << ", " << GLEnums::GetStringEnum(pname)
+ << ", " << bufSize << ", " << static_cast<const void*>(length)
+ << ", " << static_cast<const void*>(params) << ")");
+ gl_api_->glGetSamplerParameterfvRobustANGLEFn(sampler, pname, bufSize, length,
+ params);
+}
+
+void DebugGLApi::glGetSamplerParameterIivRobustANGLEFn(GLuint sampler,
+ GLenum pname,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLint* params) {
+ GL_SERVICE_LOG("glGetSamplerParameterIivRobustANGLE"
+ << "(" << sampler << ", " << GLEnums::GetStringEnum(pname)
+ << ", " << bufSize << ", " << static_cast<const void*>(length)
+ << ", " << static_cast<const void*>(params) << ")");
+ gl_api_->glGetSamplerParameterIivRobustANGLEFn(sampler, pname, bufSize,
+ length, params);
+}
+
+void DebugGLApi::glGetSamplerParameterIuivRobustANGLEFn(GLuint sampler,
+ GLenum pname,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLuint* params) {
+ GL_SERVICE_LOG("glGetSamplerParameterIuivRobustANGLE"
+ << "(" << sampler << ", " << GLEnums::GetStringEnum(pname)
+ << ", " << bufSize << ", " << static_cast<const void*>(length)
+ << ", " << static_cast<const void*>(params) << ")");
+ gl_api_->glGetSamplerParameterIuivRobustANGLEFn(sampler, pname, bufSize,
+ length, params);
+}
+
+void DebugGLApi::glGetSamplerParameterivFn(GLuint sampler,
+ GLenum pname,
+ GLint* params) {
+ GL_SERVICE_LOG("glGetSamplerParameteriv"
+ << "(" << sampler << ", " << GLEnums::GetStringEnum(pname)
+ << ", " << static_cast<const void*>(params) << ")");
+ gl_api_->glGetSamplerParameterivFn(sampler, pname, params);
+}
+
+void DebugGLApi::glGetSamplerParameterivRobustANGLEFn(GLuint sampler,
+ GLenum pname,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLint* params) {
+ GL_SERVICE_LOG("glGetSamplerParameterivRobustANGLE"
+ << "(" << sampler << ", " << GLEnums::GetStringEnum(pname)
+ << ", " << bufSize << ", " << static_cast<const void*>(length)
+ << ", " << static_cast<const void*>(params) << ")");
+ gl_api_->glGetSamplerParameterivRobustANGLEFn(sampler, pname, bufSize, length,
+ params);
+}
+
+void DebugGLApi::glGetShaderInfoLogFn(GLuint shader,
+ GLsizei bufsize,
+ GLsizei* length,
+ char* infolog) {
+ GL_SERVICE_LOG("glGetShaderInfoLog"
+ << "(" << shader << ", " << bufsize << ", "
+ << static_cast<const void*>(length) << ", "
+ << static_cast<const void*>(infolog) << ")");
+ gl_api_->glGetShaderInfoLogFn(shader, bufsize, length, infolog);
+}
+
+void DebugGLApi::glGetShaderivFn(GLuint shader, GLenum pname, GLint* params) {
+ GL_SERVICE_LOG("glGetShaderiv"
+ << "(" << shader << ", " << GLEnums::GetStringEnum(pname)
+ << ", " << static_cast<const void*>(params) << ")");
+ gl_api_->glGetShaderivFn(shader, pname, params);
+}
+
+void DebugGLApi::glGetShaderivRobustANGLEFn(GLuint shader,
+ GLenum pname,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLint* params) {
+ GL_SERVICE_LOG("glGetShaderivRobustANGLE"
+ << "(" << shader << ", " << GLEnums::GetStringEnum(pname)
+ << ", " << bufSize << ", " << static_cast<const void*>(length)
+ << ", " << static_cast<const void*>(params) << ")");
+ gl_api_->glGetShaderivRobustANGLEFn(shader, pname, bufSize, length, params);
+}
+
+void DebugGLApi::glGetShaderPrecisionFormatFn(GLenum shadertype,
+ GLenum precisiontype,
+ GLint* range,
+ GLint* precision) {
+ GL_SERVICE_LOG("glGetShaderPrecisionFormat"
+ << "(" << GLEnums::GetStringEnum(shadertype) << ", "
+ << GLEnums::GetStringEnum(precisiontype) << ", "
+ << static_cast<const void*>(range) << ", "
+ << static_cast<const void*>(precision) << ")");
+ gl_api_->glGetShaderPrecisionFormatFn(shadertype, precisiontype, range,
+ precision);
+}
+
+void DebugGLApi::glGetShaderSourceFn(GLuint shader,
+ GLsizei bufsize,
+ GLsizei* length,
+ char* source) {
+ GL_SERVICE_LOG("glGetShaderSource"
+ << "(" << shader << ", " << bufsize << ", "
+ << static_cast<const void*>(length) << ", "
+ << static_cast<const void*>(source) << ")");
+ gl_api_->glGetShaderSourceFn(shader, bufsize, length, source);
+}
+
+const GLubyte* DebugGLApi::glGetStringFn(GLenum name) {
+ GL_SERVICE_LOG("glGetString"
+ << "(" << GLEnums::GetStringEnum(name) << ")");
+ const GLubyte* result = gl_api_->glGetStringFn(name);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+const GLubyte* DebugGLApi::glGetStringiFn(GLenum name, GLuint index) {
+ GL_SERVICE_LOG("glGetStringi"
+ << "(" << GLEnums::GetStringEnum(name) << ", " << index
+ << ")");
+ const GLubyte* result = gl_api_->glGetStringiFn(name, index);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+void DebugGLApi::glGetSyncivFn(GLsync sync,
+ GLenum pname,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLint* values) {
+ GL_SERVICE_LOG("glGetSynciv"
+ << "(" << sync << ", " << GLEnums::GetStringEnum(pname) << ", "
+ << bufSize << ", " << static_cast<const void*>(length) << ", "
+ << static_cast<const void*>(values) << ")");
+ gl_api_->glGetSyncivFn(sync, pname, bufSize, length, values);
+}
+
+void DebugGLApi::glGetTexLevelParameterfvFn(GLenum target,
+ GLint level,
+ GLenum pname,
+ GLfloat* params) {
+ GL_SERVICE_LOG("glGetTexLevelParameterfv"
+ << "(" << GLEnums::GetStringEnum(target) << ", " << level
+ << ", " << GLEnums::GetStringEnum(pname) << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glGetTexLevelParameterfvFn(target, level, pname, params);
+}
+
+void DebugGLApi::glGetTexLevelParameterfvRobustANGLEFn(GLenum target,
+ GLint level,
+ GLenum pname,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLfloat* params) {
+ GL_SERVICE_LOG("glGetTexLevelParameterfvRobustANGLE"
+ << "(" << GLEnums::GetStringEnum(target) << ", " << level
+ << ", " << GLEnums::GetStringEnum(pname) << ", " << bufSize
+ << ", " << static_cast<const void*>(length) << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glGetTexLevelParameterfvRobustANGLEFn(target, level, pname, bufSize,
+ length, params);
+}
+
+void DebugGLApi::glGetTexLevelParameterivFn(GLenum target,
+ GLint level,
+ GLenum pname,
+ GLint* params) {
+ GL_SERVICE_LOG("glGetTexLevelParameteriv"
+ << "(" << GLEnums::GetStringEnum(target) << ", " << level
+ << ", " << GLEnums::GetStringEnum(pname) << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glGetTexLevelParameterivFn(target, level, pname, params);
+}
+
+void DebugGLApi::glGetTexLevelParameterivRobustANGLEFn(GLenum target,
+ GLint level,
+ GLenum pname,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLint* params) {
+ GL_SERVICE_LOG("glGetTexLevelParameterivRobustANGLE"
+ << "(" << GLEnums::GetStringEnum(target) << ", " << level
+ << ", " << GLEnums::GetStringEnum(pname) << ", " << bufSize
+ << ", " << static_cast<const void*>(length) << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glGetTexLevelParameterivRobustANGLEFn(target, level, pname, bufSize,
+ length, params);
+}
+
+void DebugGLApi::glGetTexParameterfvFn(GLenum target,
+ GLenum pname,
+ GLfloat* params) {
+ GL_SERVICE_LOG("glGetTexParameterfv"
+ << "(" << GLEnums::GetStringEnum(target) << ", "
+ << GLEnums::GetStringEnum(pname) << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glGetTexParameterfvFn(target, pname, params);
+}
+
+void DebugGLApi::glGetTexParameterfvRobustANGLEFn(GLenum target,
+ GLenum pname,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLfloat* params) {
+ GL_SERVICE_LOG("glGetTexParameterfvRobustANGLE"
+ << "(" << GLEnums::GetStringEnum(target) << ", "
+ << GLEnums::GetStringEnum(pname) << ", " << bufSize << ", "
+ << static_cast<const void*>(length) << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glGetTexParameterfvRobustANGLEFn(target, pname, bufSize, length,
+ params);
+}
+
+void DebugGLApi::glGetTexParameterIivRobustANGLEFn(GLenum target,
+ GLenum pname,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLint* params) {
+ GL_SERVICE_LOG("glGetTexParameterIivRobustANGLE"
+ << "(" << GLEnums::GetStringEnum(target) << ", "
+ << GLEnums::GetStringEnum(pname) << ", " << bufSize << ", "
+ << static_cast<const void*>(length) << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glGetTexParameterIivRobustANGLEFn(target, pname, bufSize, length,
+ params);
+}
+
+void DebugGLApi::glGetTexParameterIuivRobustANGLEFn(GLenum target,
+ GLenum pname,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLuint* params) {
+ GL_SERVICE_LOG("glGetTexParameterIuivRobustANGLE"
+ << "(" << GLEnums::GetStringEnum(target) << ", "
+ << GLEnums::GetStringEnum(pname) << ", " << bufSize << ", "
+ << static_cast<const void*>(length) << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glGetTexParameterIuivRobustANGLEFn(target, pname, bufSize, length,
+ params);
+}
+
+void DebugGLApi::glGetTexParameterivFn(GLenum target,
+ GLenum pname,
+ GLint* params) {
+ GL_SERVICE_LOG("glGetTexParameteriv"
+ << "(" << GLEnums::GetStringEnum(target) << ", "
+ << GLEnums::GetStringEnum(pname) << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glGetTexParameterivFn(target, pname, params);
+}
+
+void DebugGLApi::glGetTexParameterivRobustANGLEFn(GLenum target,
+ GLenum pname,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLint* params) {
+ GL_SERVICE_LOG("glGetTexParameterivRobustANGLE"
+ << "(" << GLEnums::GetStringEnum(target) << ", "
+ << GLEnums::GetStringEnum(pname) << ", " << bufSize << ", "
+ << static_cast<const void*>(length) << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glGetTexParameterivRobustANGLEFn(target, pname, bufSize, length,
+ params);
+}
+
+void DebugGLApi::glGetTransformFeedbackVaryingFn(GLuint program,
+ GLuint index,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLsizei* size,
+ GLenum* type,
+ char* name) {
+ GL_SERVICE_LOG("glGetTransformFeedbackVarying"
+ << "(" << program << ", " << index << ", " << bufSize << ", "
+ << static_cast<const void*>(length) << ", "
+ << static_cast<const void*>(size) << ", "
+ << static_cast<const void*>(type) << ", "
+ << static_cast<const void*>(name) << ")");
+ gl_api_->glGetTransformFeedbackVaryingFn(program, index, bufSize, length,
+ size, type, name);
+}
+
+void DebugGLApi::glGetTranslatedShaderSourceANGLEFn(GLuint shader,
+ GLsizei bufsize,
+ GLsizei* length,
+ char* source) {
+ GL_SERVICE_LOG("glGetTranslatedShaderSourceANGLE"
+ << "(" << shader << ", " << bufsize << ", "
+ << static_cast<const void*>(length) << ", "
+ << static_cast<const void*>(source) << ")");
+ gl_api_->glGetTranslatedShaderSourceANGLEFn(shader, bufsize, length, source);
+}
+
+GLuint DebugGLApi::glGetUniformBlockIndexFn(GLuint program,
+ const char* uniformBlockName) {
+ GL_SERVICE_LOG("glGetUniformBlockIndex"
+ << "(" << program << ", " << uniformBlockName << ")");
+ GLuint result = gl_api_->glGetUniformBlockIndexFn(program, uniformBlockName);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+void DebugGLApi::glGetUniformfvFn(GLuint program,
+ GLint location,
+ GLfloat* params) {
+ GL_SERVICE_LOG("glGetUniformfv"
+ << "(" << program << ", " << location << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glGetUniformfvFn(program, location, params);
+}
+
+void DebugGLApi::glGetUniformfvRobustANGLEFn(GLuint program,
+ GLint location,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLfloat* params) {
+ GL_SERVICE_LOG("glGetUniformfvRobustANGLE"
+ << "(" << program << ", " << location << ", " << bufSize
+ << ", " << static_cast<const void*>(length) << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glGetUniformfvRobustANGLEFn(program, location, bufSize, length,
+ params);
+}
+
+void DebugGLApi::glGetUniformIndicesFn(GLuint program,
+ GLsizei uniformCount,
+ const char* const* uniformNames,
+ GLuint* uniformIndices) {
+ GL_SERVICE_LOG("glGetUniformIndices"
+ << "(" << program << ", " << uniformCount << ", "
+ << static_cast<const void*>(uniformNames) << ", "
+ << static_cast<const void*>(uniformIndices) << ")");
+ gl_api_->glGetUniformIndicesFn(program, uniformCount, uniformNames,
+ uniformIndices);
+}
+
+void DebugGLApi::glGetUniformivFn(GLuint program,
+ GLint location,
+ GLint* params) {
+ GL_SERVICE_LOG("glGetUniformiv"
+ << "(" << program << ", " << location << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glGetUniformivFn(program, location, params);
+}
+
+void DebugGLApi::glGetUniformivRobustANGLEFn(GLuint program,
+ GLint location,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLint* params) {
+ GL_SERVICE_LOG("glGetUniformivRobustANGLE"
+ << "(" << program << ", " << location << ", " << bufSize
+ << ", " << static_cast<const void*>(length) << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glGetUniformivRobustANGLEFn(program, location, bufSize, length,
+ params);
+}
+
+GLint DebugGLApi::glGetUniformLocationFn(GLuint program, const char* name) {
+ GL_SERVICE_LOG("glGetUniformLocation"
+ << "(" << program << ", " << name << ")");
+ GLint result = gl_api_->glGetUniformLocationFn(program, name);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+void DebugGLApi::glGetUniformuivFn(GLuint program,
+ GLint location,
+ GLuint* params) {
+ GL_SERVICE_LOG("glGetUniformuiv"
+ << "(" << program << ", " << location << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glGetUniformuivFn(program, location, params);
+}
+
+void DebugGLApi::glGetUniformuivRobustANGLEFn(GLuint program,
+ GLint location,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLuint* params) {
+ GL_SERVICE_LOG("glGetUniformuivRobustANGLE"
+ << "(" << program << ", " << location << ", " << bufSize
+ << ", " << static_cast<const void*>(length) << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glGetUniformuivRobustANGLEFn(program, location, bufSize, length,
+ params);
+}
+
+void DebugGLApi::glGetVertexAttribfvFn(GLuint index,
+ GLenum pname,
+ GLfloat* params) {
+ GL_SERVICE_LOG("glGetVertexAttribfv"
+ << "(" << index << ", " << GLEnums::GetStringEnum(pname)
+ << ", " << static_cast<const void*>(params) << ")");
+ gl_api_->glGetVertexAttribfvFn(index, pname, params);
+}
+
+void DebugGLApi::glGetVertexAttribfvRobustANGLEFn(GLuint index,
+ GLenum pname,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLfloat* params) {
+ GL_SERVICE_LOG("glGetVertexAttribfvRobustANGLE"
+ << "(" << index << ", " << GLEnums::GetStringEnum(pname)
+ << ", " << bufSize << ", " << static_cast<const void*>(length)
+ << ", " << static_cast<const void*>(params) << ")");
+ gl_api_->glGetVertexAttribfvRobustANGLEFn(index, pname, bufSize, length,
+ params);
+}
+
+void DebugGLApi::glGetVertexAttribIivRobustANGLEFn(GLuint index,
+ GLenum pname,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLint* params) {
+ GL_SERVICE_LOG("glGetVertexAttribIivRobustANGLE"
+ << "(" << index << ", " << GLEnums::GetStringEnum(pname)
+ << ", " << bufSize << ", " << static_cast<const void*>(length)
+ << ", " << static_cast<const void*>(params) << ")");
+ gl_api_->glGetVertexAttribIivRobustANGLEFn(index, pname, bufSize, length,
+ params);
+}
+
+void DebugGLApi::glGetVertexAttribIuivRobustANGLEFn(GLuint index,
+ GLenum pname,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLuint* params) {
+ GL_SERVICE_LOG("glGetVertexAttribIuivRobustANGLE"
+ << "(" << index << ", " << GLEnums::GetStringEnum(pname)
+ << ", " << bufSize << ", " << static_cast<const void*>(length)
+ << ", " << static_cast<const void*>(params) << ")");
+ gl_api_->glGetVertexAttribIuivRobustANGLEFn(index, pname, bufSize, length,
+ params);
+}
+
+void DebugGLApi::glGetVertexAttribivFn(GLuint index,
+ GLenum pname,
+ GLint* params) {
+ GL_SERVICE_LOG("glGetVertexAttribiv"
+ << "(" << index << ", " << GLEnums::GetStringEnum(pname)
+ << ", " << static_cast<const void*>(params) << ")");
+ gl_api_->glGetVertexAttribivFn(index, pname, params);
+}
+
+void DebugGLApi::glGetVertexAttribivRobustANGLEFn(GLuint index,
+ GLenum pname,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLint* params) {
+ GL_SERVICE_LOG("glGetVertexAttribivRobustANGLE"
+ << "(" << index << ", " << GLEnums::GetStringEnum(pname)
+ << ", " << bufSize << ", " << static_cast<const void*>(length)
+ << ", " << static_cast<const void*>(params) << ")");
+ gl_api_->glGetVertexAttribivRobustANGLEFn(index, pname, bufSize, length,
+ params);
+}
+
+void DebugGLApi::glGetVertexAttribPointervFn(GLuint index,
+ GLenum pname,
+ void** pointer) {
+ GL_SERVICE_LOG("glGetVertexAttribPointerv"
+ << "(" << index << ", " << GLEnums::GetStringEnum(pname)
+ << ", " << pointer << ")");
+ gl_api_->glGetVertexAttribPointervFn(index, pname, pointer);
+}
+
+void DebugGLApi::glGetVertexAttribPointervRobustANGLEFn(GLuint index,
+ GLenum pname,
+ GLsizei bufSize,
+ GLsizei* length,
+ void** pointer) {
+ GL_SERVICE_LOG("glGetVertexAttribPointervRobustANGLE"
+ << "(" << index << ", " << GLEnums::GetStringEnum(pname)
+ << ", " << bufSize << ", " << static_cast<const void*>(length)
+ << ", " << pointer << ")");
+ gl_api_->glGetVertexAttribPointervRobustANGLEFn(index, pname, bufSize, length,
+ pointer);
+}
+
+void DebugGLApi::glHintFn(GLenum target, GLenum mode) {
+ GL_SERVICE_LOG("glHint"
+ << "(" << GLEnums::GetStringEnum(target) << ", "
+ << GLEnums::GetStringEnum(mode) << ")");
+ gl_api_->glHintFn(target, mode);
+}
+
+void DebugGLApi::glInsertEventMarkerEXTFn(GLsizei length, const char* marker) {
+ GL_SERVICE_LOG("glInsertEventMarkerEXT"
+ << "(" << length << ", " << marker << ")");
+ gl_api_->glInsertEventMarkerEXTFn(length, marker);
+}
+
+void DebugGLApi::glInvalidateFramebufferFn(GLenum target,
+ GLsizei numAttachments,
+ const GLenum* attachments) {
+ GL_SERVICE_LOG("glInvalidateFramebuffer"
+ << "(" << GLEnums::GetStringEnum(target) << ", "
+ << numAttachments << ", "
+ << static_cast<const void*>(attachments) << ")");
+ gl_api_->glInvalidateFramebufferFn(target, numAttachments, attachments);
+}
+
+void DebugGLApi::glInvalidateSubFramebufferFn(GLenum target,
+ GLsizei numAttachments,
+ const GLenum* attachments,
+ GLint x,
+ GLint y,
+ GLint width,
+ GLint height) {
+ GL_SERVICE_LOG("glInvalidateSubFramebuffer"
+ << "(" << GLEnums::GetStringEnum(target) << ", "
+ << numAttachments << ", "
+ << static_cast<const void*>(attachments) << ", " << x << ", "
+ << y << ", " << width << ", " << height << ")");
+ gl_api_->glInvalidateSubFramebufferFn(target, numAttachments, attachments, x,
+ y, width, height);
+}
+
+GLboolean DebugGLApi::glIsBufferFn(GLuint buffer) {
+ GL_SERVICE_LOG("glIsBuffer"
+ << "(" << buffer << ")");
+ GLboolean result = gl_api_->glIsBufferFn(buffer);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+GLboolean DebugGLApi::glIsEnabledFn(GLenum cap) {
+ GL_SERVICE_LOG("glIsEnabled"
+ << "(" << GLEnums::GetStringEnum(cap) << ")");
+ GLboolean result = gl_api_->glIsEnabledFn(cap);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+GLboolean DebugGLApi::glIsFenceAPPLEFn(GLuint fence) {
+ GL_SERVICE_LOG("glIsFenceAPPLE"
+ << "(" << fence << ")");
+ GLboolean result = gl_api_->glIsFenceAPPLEFn(fence);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+GLboolean DebugGLApi::glIsFenceNVFn(GLuint fence) {
+ GL_SERVICE_LOG("glIsFenceNV"
+ << "(" << fence << ")");
+ GLboolean result = gl_api_->glIsFenceNVFn(fence);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+GLboolean DebugGLApi::glIsFramebufferEXTFn(GLuint framebuffer) {
+ GL_SERVICE_LOG("glIsFramebufferEXT"
+ << "(" << framebuffer << ")");
+ GLboolean result = gl_api_->glIsFramebufferEXTFn(framebuffer);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+GLboolean DebugGLApi::glIsPathNVFn(GLuint path) {
+ GL_SERVICE_LOG("glIsPathNV"
+ << "(" << path << ")");
+ GLboolean result = gl_api_->glIsPathNVFn(path);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+GLboolean DebugGLApi::glIsProgramFn(GLuint program) {
+ GL_SERVICE_LOG("glIsProgram"
+ << "(" << program << ")");
+ GLboolean result = gl_api_->glIsProgramFn(program);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+GLboolean DebugGLApi::glIsQueryFn(GLuint query) {
+ GL_SERVICE_LOG("glIsQuery"
+ << "(" << query << ")");
+ GLboolean result = gl_api_->glIsQueryFn(query);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+GLboolean DebugGLApi::glIsRenderbufferEXTFn(GLuint renderbuffer) {
+ GL_SERVICE_LOG("glIsRenderbufferEXT"
+ << "(" << renderbuffer << ")");
+ GLboolean result = gl_api_->glIsRenderbufferEXTFn(renderbuffer);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+GLboolean DebugGLApi::glIsSamplerFn(GLuint sampler) {
+ GL_SERVICE_LOG("glIsSampler"
+ << "(" << sampler << ")");
+ GLboolean result = gl_api_->glIsSamplerFn(sampler);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+GLboolean DebugGLApi::glIsShaderFn(GLuint shader) {
+ GL_SERVICE_LOG("glIsShader"
+ << "(" << shader << ")");
+ GLboolean result = gl_api_->glIsShaderFn(shader);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+GLboolean DebugGLApi::glIsSyncFn(GLsync sync) {
+ GL_SERVICE_LOG("glIsSync"
+ << "(" << sync << ")");
+ GLboolean result = gl_api_->glIsSyncFn(sync);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+GLboolean DebugGLApi::glIsTextureFn(GLuint texture) {
+ GL_SERVICE_LOG("glIsTexture"
+ << "(" << texture << ")");
+ GLboolean result = gl_api_->glIsTextureFn(texture);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+GLboolean DebugGLApi::glIsTransformFeedbackFn(GLuint id) {
+ GL_SERVICE_LOG("glIsTransformFeedback"
+ << "(" << id << ")");
+ GLboolean result = gl_api_->glIsTransformFeedbackFn(id);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+GLboolean DebugGLApi::glIsVertexArrayOESFn(GLuint array) {
+ GL_SERVICE_LOG("glIsVertexArrayOES"
+ << "(" << array << ")");
+ GLboolean result = gl_api_->glIsVertexArrayOESFn(array);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+void DebugGLApi::glLineWidthFn(GLfloat width) {
+ GL_SERVICE_LOG("glLineWidth"
+ << "(" << width << ")");
+ gl_api_->glLineWidthFn(width);
+}
+
+void DebugGLApi::glLinkProgramFn(GLuint program) {
+ GL_SERVICE_LOG("glLinkProgram"
+ << "(" << program << ")");
+ gl_api_->glLinkProgramFn(program);
+}
+
+void* DebugGLApi::glMapBufferFn(GLenum target, GLenum access) {
+ GL_SERVICE_LOG("glMapBuffer"
+ << "(" << GLEnums::GetStringEnum(target) << ", "
+ << GLEnums::GetStringEnum(access) << ")");
+ void* result = gl_api_->glMapBufferFn(target, access);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+void* DebugGLApi::glMapBufferRangeFn(GLenum target,
+ GLintptr offset,
+ GLsizeiptr length,
+ GLbitfield access) {
+ GL_SERVICE_LOG("glMapBufferRange"
+ << "(" << GLEnums::GetStringEnum(target) << ", " << offset
+ << ", " << length << ", " << access << ")");
+ void* result = gl_api_->glMapBufferRangeFn(target, offset, length, access);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+void DebugGLApi::glMatrixLoadfEXTFn(GLenum matrixMode, const GLfloat* m) {
+ GL_SERVICE_LOG("glMatrixLoadfEXT"
+ << "(" << GLEnums::GetStringEnum(matrixMode) << ", "
+ << static_cast<const void*>(m) << ")");
+ gl_api_->glMatrixLoadfEXTFn(matrixMode, m);
+}
+
+void DebugGLApi::glMatrixLoadIdentityEXTFn(GLenum matrixMode) {
+ GL_SERVICE_LOG("glMatrixLoadIdentityEXT"
+ << "(" << GLEnums::GetStringEnum(matrixMode) << ")");
+ gl_api_->glMatrixLoadIdentityEXTFn(matrixMode);
+}
+
+void DebugGLApi::glMemoryBarrierEXTFn(GLbitfield barriers) {
+ GL_SERVICE_LOG("glMemoryBarrierEXT"
+ << "(" << barriers << ")");
+ gl_api_->glMemoryBarrierEXTFn(barriers);
+}
+
+void DebugGLApi::glObjectLabelFn(GLenum identifier,
+ GLuint name,
+ GLsizei length,
+ const char* label) {
+ GL_SERVICE_LOG("glObjectLabel"
+ << "(" << GLEnums::GetStringEnum(identifier) << ", " << name
+ << ", " << length << ", " << label << ")");
+ gl_api_->glObjectLabelFn(identifier, name, length, label);
+}
+
+void DebugGLApi::glObjectPtrLabelFn(void* ptr,
+ GLsizei length,
+ const char* label) {
+ GL_SERVICE_LOG("glObjectPtrLabel"
+ << "(" << static_cast<const void*>(ptr) << ", " << length
+ << ", " << label << ")");
+ gl_api_->glObjectPtrLabelFn(ptr, length, label);
+}
+
+void DebugGLApi::glPathCommandsNVFn(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) << ")");
+ gl_api_->glPathCommandsNVFn(path, numCommands, commands, numCoords, coordType,
+ coords);
+}
+
+void DebugGLApi::glPathParameterfNVFn(GLuint path,
+ GLenum pname,
+ GLfloat value) {
+ GL_SERVICE_LOG("glPathParameterfNV"
+ << "(" << path << ", " << GLEnums::GetStringEnum(pname) << ", "
+ << value << ")");
+ gl_api_->glPathParameterfNVFn(path, pname, value);
+}
+
+void DebugGLApi::glPathParameteriNVFn(GLuint path, GLenum pname, GLint value) {
+ GL_SERVICE_LOG("glPathParameteriNV"
+ << "(" << path << ", " << GLEnums::GetStringEnum(pname) << ", "
+ << value << ")");
+ gl_api_->glPathParameteriNVFn(path, pname, value);
+}
+
+void DebugGLApi::glPathStencilFuncNVFn(GLenum func, GLint ref, GLuint mask) {
+ GL_SERVICE_LOG("glPathStencilFuncNV"
+ << "(" << GLEnums::GetStringEnum(func) << ", " << ref << ", "
+ << mask << ")");
+ gl_api_->glPathStencilFuncNVFn(func, ref, mask);
+}
+
+void DebugGLApi::glPauseTransformFeedbackFn(void) {
+ GL_SERVICE_LOG("glPauseTransformFeedback"
+ << "("
+ << ")");
+ gl_api_->glPauseTransformFeedbackFn();
+}
+
+void DebugGLApi::glPixelStoreiFn(GLenum pname, GLint param) {
+ GL_SERVICE_LOG("glPixelStorei"
+ << "(" << GLEnums::GetStringEnum(pname) << ", " << param
+ << ")");
+ gl_api_->glPixelStoreiFn(pname, param);
+}
+
+void DebugGLApi::glPointParameteriFn(GLenum pname, GLint param) {
+ GL_SERVICE_LOG("glPointParameteri"
+ << "(" << GLEnums::GetStringEnum(pname) << ", " << param
+ << ")");
+ gl_api_->glPointParameteriFn(pname, param);
+}
+
+void DebugGLApi::glPolygonOffsetFn(GLfloat factor, GLfloat units) {
+ GL_SERVICE_LOG("glPolygonOffset"
+ << "(" << factor << ", " << units << ")");
+ gl_api_->glPolygonOffsetFn(factor, units);
+}
+
+void DebugGLApi::glPopDebugGroupFn() {
+ GL_SERVICE_LOG("glPopDebugGroup"
+ << "("
+ << ")");
+ gl_api_->glPopDebugGroupFn();
+}
+
+void DebugGLApi::glPopGroupMarkerEXTFn(void) {
+ GL_SERVICE_LOG("glPopGroupMarkerEXT"
+ << "("
+ << ")");
+ gl_api_->glPopGroupMarkerEXTFn();
+}
+
+void DebugGLApi::glPrimitiveRestartIndexFn(GLuint index) {
+ GL_SERVICE_LOG("glPrimitiveRestartIndex"
+ << "(" << index << ")");
+ gl_api_->glPrimitiveRestartIndexFn(index);
+}
+
+void DebugGLApi::glProgramBinaryFn(GLuint program,
+ GLenum binaryFormat,
+ const GLvoid* binary,
+ GLsizei length) {
+ GL_SERVICE_LOG("glProgramBinary"
+ << "(" << program << ", "
+ << GLEnums::GetStringEnum(binaryFormat) << ", "
+ << static_cast<const void*>(binary) << ", " << length << ")");
+ gl_api_->glProgramBinaryFn(program, binaryFormat, binary, length);
+}
+
+void DebugGLApi::glProgramParameteriFn(GLuint program,
+ GLenum pname,
+ GLint value) {
+ GL_SERVICE_LOG("glProgramParameteri"
+ << "(" << program << ", " << GLEnums::GetStringEnum(pname)
+ << ", " << value << ")");
+ gl_api_->glProgramParameteriFn(program, pname, value);
+}
+
+void DebugGLApi::glProgramPathFragmentInputGenNVFn(GLuint program,
+ GLint location,
+ GLenum genMode,
+ GLint components,
+ const GLfloat* coeffs) {
+ GL_SERVICE_LOG("glProgramPathFragmentInputGenNV"
+ << "(" << program << ", " << location << ", "
+ << GLEnums::GetStringEnum(genMode) << ", " << components
+ << ", " << static_cast<const void*>(coeffs) << ")");
+ gl_api_->glProgramPathFragmentInputGenNVFn(program, location, genMode,
+ components, coeffs);
+}
+
+void DebugGLApi::glPushDebugGroupFn(GLenum source,
+ GLuint id,
+ GLsizei length,
+ const char* message) {
+ GL_SERVICE_LOG("glPushDebugGroup"
+ << "(" << GLEnums::GetStringEnum(source) << ", " << id << ", "
+ << length << ", " << message << ")");
+ gl_api_->glPushDebugGroupFn(source, id, length, message);
+}
+
+void DebugGLApi::glPushGroupMarkerEXTFn(GLsizei length, const char* marker) {
+ GL_SERVICE_LOG("glPushGroupMarkerEXT"
+ << "(" << length << ", " << marker << ")");
+ gl_api_->glPushGroupMarkerEXTFn(length, marker);
+}
+
+void DebugGLApi::glQueryCounterFn(GLuint id, GLenum target) {
+ GL_SERVICE_LOG("glQueryCounter"
+ << "(" << id << ", " << GLEnums::GetStringEnum(target) << ")");
+ gl_api_->glQueryCounterFn(id, target);
+}
+
+void DebugGLApi::glReadBufferFn(GLenum src) {
+ GL_SERVICE_LOG("glReadBuffer"
+ << "(" << GLEnums::GetStringEnum(src) << ")");
+ gl_api_->glReadBufferFn(src);
+}
+
+void DebugGLApi::glReadnPixelsRobustANGLEFn(GLint x,
+ GLint y,
+ GLsizei width,
+ GLsizei height,
+ GLenum format,
+ GLenum type,
+ GLsizei bufSize,
+ GLsizei* length,
+ void* data) {
+ GL_SERVICE_LOG("glReadnPixelsRobustANGLE"
+ << "(" << x << ", " << y << ", " << width << ", " << height
+ << ", " << GLEnums::GetStringEnum(format) << ", "
+ << GLEnums::GetStringEnum(type) << ", " << bufSize << ", "
+ << static_cast<const void*>(length) << ", "
+ << static_cast<const void*>(data) << ")");
+ gl_api_->glReadnPixelsRobustANGLEFn(x, y, width, height, format, type,
+ bufSize, length, data);
+}
+
+void DebugGLApi::glReadPixelsFn(GLint x,
+ GLint y,
+ GLsizei width,
+ GLsizei height,
+ GLenum format,
+ GLenum type,
+ void* pixels) {
+ GL_SERVICE_LOG("glReadPixels"
+ << "(" << x << ", " << y << ", " << width << ", " << height
+ << ", " << GLEnums::GetStringEnum(format) << ", "
+ << GLEnums::GetStringEnum(type) << ", "
+ << static_cast<const void*>(pixels) << ")");
+ gl_api_->glReadPixelsFn(x, y, width, height, format, type, pixels);
+}
+
+void DebugGLApi::glReadPixelsRobustANGLEFn(GLint x,
+ GLint y,
+ GLsizei width,
+ GLsizei height,
+ GLenum format,
+ GLenum type,
+ GLsizei bufSize,
+ GLsizei* length,
+ void* pixels) {
+ GL_SERVICE_LOG("glReadPixelsRobustANGLE"
+ << "(" << x << ", " << y << ", " << width << ", " << height
+ << ", " << GLEnums::GetStringEnum(format) << ", "
+ << GLEnums::GetStringEnum(type) << ", " << bufSize << ", "
+ << static_cast<const void*>(length) << ", "
+ << static_cast<const void*>(pixels) << ")");
+ gl_api_->glReadPixelsRobustANGLEFn(x, y, width, height, format, type, bufSize,
+ length, pixels);
+}
+
+void DebugGLApi::glReleaseShaderCompilerFn(void) {
+ GL_SERVICE_LOG("glReleaseShaderCompiler"
+ << "("
+ << ")");
+ gl_api_->glReleaseShaderCompilerFn();
+}
+
+void DebugGLApi::glRenderbufferStorageEXTFn(GLenum target,
+ GLenum internalformat,
+ GLsizei width,
+ GLsizei height) {
+ GL_SERVICE_LOG("glRenderbufferStorageEXT"
+ << "(" << GLEnums::GetStringEnum(target) << ", "
+ << GLEnums::GetStringEnum(internalformat) << ", " << width
+ << ", " << height << ")");
+ gl_api_->glRenderbufferStorageEXTFn(target, internalformat, width, height);
+}
+
+void DebugGLApi::glRenderbufferStorageMultisampleFn(GLenum target,
+ GLsizei samples,
+ GLenum internalformat,
+ GLsizei width,
+ GLsizei height) {
+ GL_SERVICE_LOG("glRenderbufferStorageMultisample"
+ << "(" << GLEnums::GetStringEnum(target) << ", " << samples
+ << ", " << GLEnums::GetStringEnum(internalformat) << ", "
+ << width << ", " << height << ")");
+ gl_api_->glRenderbufferStorageMultisampleFn(target, samples, internalformat,
+ width, height);
+}
+
+void DebugGLApi::glRenderbufferStorageMultisampleANGLEFn(GLenum target,
+ GLsizei samples,
+ GLenum internalformat,
+ GLsizei width,
+ GLsizei height) {
+ GL_SERVICE_LOG("glRenderbufferStorageMultisampleANGLE"
+ << "(" << GLEnums::GetStringEnum(target) << ", " << samples
+ << ", " << GLEnums::GetStringEnum(internalformat) << ", "
+ << width << ", " << height << ")");
+ gl_api_->glRenderbufferStorageMultisampleANGLEFn(
+ target, samples, internalformat, width, height);
+}
+
+void DebugGLApi::glRenderbufferStorageMultisampleEXTFn(GLenum target,
+ GLsizei samples,
+ GLenum internalformat,
+ GLsizei width,
+ GLsizei height) {
+ GL_SERVICE_LOG("glRenderbufferStorageMultisampleEXT"
+ << "(" << GLEnums::GetStringEnum(target) << ", " << samples
+ << ", " << GLEnums::GetStringEnum(internalformat) << ", "
+ << width << ", " << height << ")");
+ gl_api_->glRenderbufferStorageMultisampleEXTFn(target, samples,
+ internalformat, width, height);
+}
+
+void DebugGLApi::glRenderbufferStorageMultisampleIMGFn(GLenum target,
+ GLsizei samples,
+ GLenum internalformat,
+ GLsizei width,
+ GLsizei height) {
+ GL_SERVICE_LOG("glRenderbufferStorageMultisampleIMG"
+ << "(" << GLEnums::GetStringEnum(target) << ", " << samples
+ << ", " << GLEnums::GetStringEnum(internalformat) << ", "
+ << width << ", " << height << ")");
+ gl_api_->glRenderbufferStorageMultisampleIMGFn(target, samples,
+ internalformat, width, height);
+}
+
+void DebugGLApi::glResumeTransformFeedbackFn(void) {
+ GL_SERVICE_LOG("glResumeTransformFeedback"
+ << "("
+ << ")");
+ gl_api_->glResumeTransformFeedbackFn();
+}
+
+void DebugGLApi::glSampleCoverageFn(GLclampf value, GLboolean invert) {
+ GL_SERVICE_LOG("glSampleCoverage"
+ << "(" << value << ", " << GLEnums::GetStringBool(invert)
+ << ")");
+ gl_api_->glSampleCoverageFn(value, invert);
+}
+
+void DebugGLApi::glSamplerParameterfFn(GLuint sampler,
+ GLenum pname,
+ GLfloat param) {
+ GL_SERVICE_LOG("glSamplerParameterf"
+ << "(" << sampler << ", " << GLEnums::GetStringEnum(pname)
+ << ", " << param << ")");
+ gl_api_->glSamplerParameterfFn(sampler, pname, param);
+}
+
+void DebugGLApi::glSamplerParameterfvFn(GLuint sampler,
+ GLenum pname,
+ const GLfloat* params) {
+ GL_SERVICE_LOG("glSamplerParameterfv"
+ << "(" << sampler << ", " << GLEnums::GetStringEnum(pname)
+ << ", " << static_cast<const void*>(params) << ")");
+ gl_api_->glSamplerParameterfvFn(sampler, pname, params);
+}
+
+void DebugGLApi::glSamplerParameterfvRobustANGLEFn(GLuint sampler,
+ GLenum pname,
+ GLsizei bufSize,
+ const GLfloat* param) {
+ GL_SERVICE_LOG("glSamplerParameterfvRobustANGLE"
+ << "(" << sampler << ", " << GLEnums::GetStringEnum(pname)
+ << ", " << bufSize << ", " << static_cast<const void*>(param)
+ << ")");
+ gl_api_->glSamplerParameterfvRobustANGLEFn(sampler, pname, bufSize, param);
+}
+
+void DebugGLApi::glSamplerParameteriFn(GLuint sampler,
+ GLenum pname,
+ GLint param) {
+ GL_SERVICE_LOG("glSamplerParameteri"
+ << "(" << sampler << ", " << GLEnums::GetStringEnum(pname)
+ << ", " << param << ")");
+ gl_api_->glSamplerParameteriFn(sampler, pname, param);
+}
+
+void DebugGLApi::glSamplerParameterIivRobustANGLEFn(GLuint sampler,
+ GLenum pname,
+ GLsizei bufSize,
+ const GLint* param) {
+ GL_SERVICE_LOG("glSamplerParameterIivRobustANGLE"
+ << "(" << sampler << ", " << GLEnums::GetStringEnum(pname)
+ << ", " << bufSize << ", " << static_cast<const void*>(param)
+ << ")");
+ gl_api_->glSamplerParameterIivRobustANGLEFn(sampler, pname, bufSize, param);
+}
+
+void DebugGLApi::glSamplerParameterIuivRobustANGLEFn(GLuint sampler,
+ GLenum pname,
+ GLsizei bufSize,
+ const GLuint* param) {
+ GL_SERVICE_LOG("glSamplerParameterIuivRobustANGLE"
+ << "(" << sampler << ", " << GLEnums::GetStringEnum(pname)
+ << ", " << bufSize << ", " << static_cast<const void*>(param)
+ << ")");
+ gl_api_->glSamplerParameterIuivRobustANGLEFn(sampler, pname, bufSize, param);
+}
+
+void DebugGLApi::glSamplerParameterivFn(GLuint sampler,
+ GLenum pname,
+ const GLint* params) {
+ GL_SERVICE_LOG("glSamplerParameteriv"
+ << "(" << sampler << ", " << GLEnums::GetStringEnum(pname)
+ << ", " << static_cast<const void*>(params) << ")");
+ gl_api_->glSamplerParameterivFn(sampler, pname, params);
+}
+
+void DebugGLApi::glSamplerParameterivRobustANGLEFn(GLuint sampler,
+ GLenum pname,
+ GLsizei bufSize,
+ const GLint* param) {
+ GL_SERVICE_LOG("glSamplerParameterivRobustANGLE"
+ << "(" << sampler << ", " << GLEnums::GetStringEnum(pname)
+ << ", " << bufSize << ", " << static_cast<const void*>(param)
+ << ")");
+ gl_api_->glSamplerParameterivRobustANGLEFn(sampler, pname, bufSize, param);
+}
+
+void DebugGLApi::glScissorFn(GLint x, GLint y, GLsizei width, GLsizei height) {
+ GL_SERVICE_LOG("glScissor"
+ << "(" << x << ", " << y << ", " << width << ", " << height
+ << ")");
+ gl_api_->glScissorFn(x, y, width, height);
+}
+
+void DebugGLApi::glSetFenceAPPLEFn(GLuint fence) {
+ GL_SERVICE_LOG("glSetFenceAPPLE"
+ << "(" << fence << ")");
+ gl_api_->glSetFenceAPPLEFn(fence);
+}
+
+void DebugGLApi::glSetFenceNVFn(GLuint fence, GLenum condition) {
+ GL_SERVICE_LOG("glSetFenceNV"
+ << "(" << fence << ", " << GLEnums::GetStringEnum(condition)
+ << ")");
+ gl_api_->glSetFenceNVFn(fence, condition);
+}
+
+void DebugGLApi::glShaderBinaryFn(GLsizei n,
+ const GLuint* shaders,
+ GLenum binaryformat,
+ const void* binary,
+ GLsizei length) {
+ GL_SERVICE_LOG("glShaderBinary"
+ << "(" << n << ", " << static_cast<const void*>(shaders)
+ << ", " << GLEnums::GetStringEnum(binaryformat) << ", "
+ << static_cast<const void*>(binary) << ", " << length << ")");
+ gl_api_->glShaderBinaryFn(n, shaders, binaryformat, binary, length);
+}
+
+void DebugGLApi::glShaderSourceFn(GLuint shader,
+ GLsizei count,
+ const char* const* str,
+ const GLint* length) {
+ GL_SERVICE_LOG("glShaderSource"
+ << "(" << shader << ", " << count << ", "
+ << static_cast<const void*>(str) << ", "
+ << static_cast<const void*>(length) << ")");
+ gl_api_->glShaderSourceFn(shader, count, str, length);
+
+ GL_SERVICE_LOG_CODE_BLOCK({
+ for (GLsizei ii = 0; ii < count; ++ii) {
+ if (str[ii]) {
+ if (length && length[ii] >= 0) {
+ std::string source(str[ii], length[ii]);
+ GL_SERVICE_LOG(" " << ii << ": ---\n" << source << "\n---");
+ } else {
+ GL_SERVICE_LOG(" " << ii << ": ---\n" << str[ii] << "\n---");
+ }
+ } else {
+ GL_SERVICE_LOG(" " << ii << ": NULL");
+ }
+ }
+ });
+}
+
+void DebugGLApi::glStencilFillPathInstancedNVFn(
+ GLsizei numPaths,
+ GLenum pathNameType,
+ const void* paths,
+ GLuint pathBase,
+ GLenum fillMode,
+ GLuint mask,
+ GLenum transformType,
+ const GLfloat* transformValues) {
+ GL_SERVICE_LOG("glStencilFillPathInstancedNV"
+ << "(" << numPaths << ", "
+ << GLEnums::GetStringEnum(pathNameType) << ", "
+ << static_cast<const void*>(paths) << ", " << pathBase << ", "
+ << GLEnums::GetStringEnum(fillMode) << ", " << mask << ", "
+ << GLEnums::GetStringEnum(transformType) << ", "
+ << static_cast<const void*>(transformValues) << ")");
+ gl_api_->glStencilFillPathInstancedNVFn(numPaths, pathNameType, paths,
+ pathBase, fillMode, mask,
+ transformType, transformValues);
+}
+
+void DebugGLApi::glStencilFillPathNVFn(GLuint path,
+ GLenum fillMode,
+ GLuint mask) {
+ GL_SERVICE_LOG("glStencilFillPathNV"
+ << "(" << path << ", " << GLEnums::GetStringEnum(fillMode)
+ << ", " << mask << ")");
+ gl_api_->glStencilFillPathNVFn(path, fillMode, mask);
+}
+
+void DebugGLApi::glStencilFuncFn(GLenum func, GLint ref, GLuint mask) {
+ GL_SERVICE_LOG("glStencilFunc"
+ << "(" << GLEnums::GetStringEnum(func) << ", " << ref << ", "
+ << mask << ")");
+ gl_api_->glStencilFuncFn(func, ref, mask);
+}
+
+void DebugGLApi::glStencilFuncSeparateFn(GLenum face,
+ GLenum func,
+ GLint ref,
+ GLuint mask) {
+ GL_SERVICE_LOG("glStencilFuncSeparate"
+ << "(" << GLEnums::GetStringEnum(face) << ", "
+ << GLEnums::GetStringEnum(func) << ", " << ref << ", " << mask
+ << ")");
+ gl_api_->glStencilFuncSeparateFn(face, func, ref, mask);
+}
+
+void DebugGLApi::glStencilMaskFn(GLuint mask) {
+ GL_SERVICE_LOG("glStencilMask"
+ << "(" << mask << ")");
+ gl_api_->glStencilMaskFn(mask);
+}
+
+void DebugGLApi::glStencilMaskSeparateFn(GLenum face, GLuint mask) {
+ GL_SERVICE_LOG("glStencilMaskSeparate"
+ << "(" << GLEnums::GetStringEnum(face) << ", " << mask << ")");
+ gl_api_->glStencilMaskSeparateFn(face, mask);
+}
+
+void DebugGLApi::glStencilOpFn(GLenum fail, GLenum zfail, GLenum zpass) {
+ GL_SERVICE_LOG("glStencilOp"
+ << "(" << GLEnums::GetStringEnum(fail) << ", "
+ << GLEnums::GetStringEnum(zfail) << ", "
+ << GLEnums::GetStringEnum(zpass) << ")");
+ gl_api_->glStencilOpFn(fail, zfail, zpass);
+}
+
+void DebugGLApi::glStencilOpSeparateFn(GLenum face,
+ GLenum fail,
+ GLenum zfail,
+ GLenum zpass) {
+ GL_SERVICE_LOG("glStencilOpSeparate"
+ << "(" << GLEnums::GetStringEnum(face) << ", "
+ << GLEnums::GetStringEnum(fail) << ", "
+ << GLEnums::GetStringEnum(zfail) << ", "
+ << GLEnums::GetStringEnum(zpass) << ")");
+ gl_api_->glStencilOpSeparateFn(face, fail, zfail, zpass);
+}
+
+void DebugGLApi::glStencilStrokePathInstancedNVFn(
+ GLsizei numPaths,
+ GLenum pathNameType,
+ const void* paths,
+ GLuint pathBase,
+ GLint ref,
+ GLuint mask,
+ GLenum transformType,
+ const GLfloat* transformValues) {
+ GL_SERVICE_LOG(
+ "glStencilStrokePathInstancedNV"
+ << "(" << numPaths << ", " << GLEnums::GetStringEnum(pathNameType) << ", "
+ << static_cast<const void*>(paths) << ", " << pathBase << ", " << ref
+ << ", " << mask << ", " << GLEnums::GetStringEnum(transformType) << ", "
+ << static_cast<const void*>(transformValues) << ")");
+ gl_api_->glStencilStrokePathInstancedNVFn(numPaths, pathNameType, paths,
+ pathBase, ref, mask, transformType,
+ transformValues);
+}
+
+void DebugGLApi::glStencilStrokePathNVFn(GLuint path,
+ GLint reference,
+ GLuint mask) {
+ GL_SERVICE_LOG("glStencilStrokePathNV"
+ << "(" << path << ", " << reference << ", " << mask << ")");
+ gl_api_->glStencilStrokePathNVFn(path, reference, mask);
+}
+
+void DebugGLApi::glStencilThenCoverFillPathInstancedNVFn(
+ GLsizei numPaths,
+ GLenum pathNameType,
+ const void* paths,
+ GLuint pathBase,
+ GLenum fillMode,
+ GLuint mask,
+ GLenum coverMode,
+ GLenum transformType,
+ const GLfloat* transformValues) {
+ GL_SERVICE_LOG("glStencilThenCoverFillPathInstancedNV"
+ << "(" << numPaths << ", "
+ << GLEnums::GetStringEnum(pathNameType) << ", "
+ << static_cast<const void*>(paths) << ", " << pathBase << ", "
+ << GLEnums::GetStringEnum(fillMode) << ", " << mask << ", "
+ << GLEnums::GetStringEnum(coverMode) << ", "
+ << GLEnums::GetStringEnum(transformType) << ", "
+ << static_cast<const void*>(transformValues) << ")");
+ gl_api_->glStencilThenCoverFillPathInstancedNVFn(
+ numPaths, pathNameType, paths, pathBase, fillMode, mask, coverMode,
+ transformType, transformValues);
+}
+
+void DebugGLApi::glStencilThenCoverFillPathNVFn(GLuint path,
+ GLenum fillMode,
+ GLuint mask,
+ GLenum coverMode) {
+ GL_SERVICE_LOG("glStencilThenCoverFillPathNV"
+ << "(" << path << ", " << GLEnums::GetStringEnum(fillMode)
+ << ", " << mask << ", " << GLEnums::GetStringEnum(coverMode)
+ << ")");
+ gl_api_->glStencilThenCoverFillPathNVFn(path, fillMode, mask, coverMode);
+}
+
+void DebugGLApi::glStencilThenCoverStrokePathInstancedNVFn(
+ GLsizei numPaths,
+ GLenum pathNameType,
+ const void* paths,
+ GLuint pathBase,
+ GLint ref,
+ GLuint mask,
+ GLenum coverMode,
+ GLenum transformType,
+ const GLfloat* transformValues) {
+ GL_SERVICE_LOG(
+ "glStencilThenCoverStrokePathInstancedNV"
+ << "(" << numPaths << ", " << GLEnums::GetStringEnum(pathNameType) << ", "
+ << static_cast<const void*>(paths) << ", " << pathBase << ", " << ref
+ << ", " << mask << ", " << GLEnums::GetStringEnum(coverMode) << ", "
+ << GLEnums::GetStringEnum(transformType) << ", "
+ << static_cast<const void*>(transformValues) << ")");
+ gl_api_->glStencilThenCoverStrokePathInstancedNVFn(
+ numPaths, pathNameType, paths, pathBase, ref, mask, coverMode,
+ transformType, transformValues);
+}
+
+void DebugGLApi::glStencilThenCoverStrokePathNVFn(GLuint path,
+ GLint reference,
+ GLuint mask,
+ GLenum coverMode) {
+ GL_SERVICE_LOG("glStencilThenCoverStrokePathNV"
+ << "(" << path << ", " << reference << ", " << mask << ", "
+ << GLEnums::GetStringEnum(coverMode) << ")");
+ gl_api_->glStencilThenCoverStrokePathNVFn(path, reference, mask, coverMode);
+}
+
+GLboolean DebugGLApi::glTestFenceAPPLEFn(GLuint fence) {
+ GL_SERVICE_LOG("glTestFenceAPPLE"
+ << "(" << fence << ")");
+ GLboolean result = gl_api_->glTestFenceAPPLEFn(fence);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+GLboolean DebugGLApi::glTestFenceNVFn(GLuint fence) {
+ GL_SERVICE_LOG("glTestFenceNV"
+ << "(" << fence << ")");
+ GLboolean result = gl_api_->glTestFenceNVFn(fence);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+void DebugGLApi::glTexImage2DFn(GLenum target,
+ GLint level,
+ GLint internalformat,
+ GLsizei width,
+ GLsizei height,
+ GLint border,
+ GLenum format,
+ GLenum type,
+ const void* pixels) {
+ GL_SERVICE_LOG("glTexImage2D"
+ << "(" << GLEnums::GetStringEnum(target) << ", " << level
+ << ", " << internalformat << ", " << width << ", " << height
+ << ", " << border << ", " << GLEnums::GetStringEnum(format)
+ << ", " << GLEnums::GetStringEnum(type) << ", "
+ << static_cast<const void*>(pixels) << ")");
+ gl_api_->glTexImage2DFn(target, level, internalformat, width, height, border,
+ format, type, pixels);
+}
+
+void DebugGLApi::glTexImage2DRobustANGLEFn(GLenum target,
+ GLint level,
+ GLint internalformat,
+ GLsizei width,
+ GLsizei height,
+ GLint border,
+ GLenum format,
+ GLenum type,
+ GLsizei bufSize,
+ const void* pixels) {
+ GL_SERVICE_LOG("glTexImage2DRobustANGLE"
+ << "(" << GLEnums::GetStringEnum(target) << ", " << level
+ << ", " << internalformat << ", " << width << ", " << height
+ << ", " << border << ", " << GLEnums::GetStringEnum(format)
+ << ", " << GLEnums::GetStringEnum(type) << ", " << bufSize
+ << ", " << static_cast<const void*>(pixels) << ")");
+ gl_api_->glTexImage2DRobustANGLEFn(target, level, internalformat, width,
+ height, border, format, type, bufSize,
+ pixels);
+}
+
+void DebugGLApi::glTexImage3DFn(GLenum target,
+ GLint level,
+ GLint internalformat,
+ GLsizei width,
+ GLsizei height,
+ GLsizei depth,
+ GLint border,
+ GLenum format,
+ GLenum type,
+ const void* pixels) {
+ GL_SERVICE_LOG("glTexImage3D"
+ << "(" << GLEnums::GetStringEnum(target) << ", " << level
+ << ", " << internalformat << ", " << width << ", " << height
+ << ", " << depth << ", " << border << ", "
+ << GLEnums::GetStringEnum(format) << ", "
+ << GLEnums::GetStringEnum(type) << ", "
+ << static_cast<const void*>(pixels) << ")");
+ gl_api_->glTexImage3DFn(target, level, internalformat, width, height, depth,
+ border, format, type, pixels);
+}
+
+void DebugGLApi::glTexImage3DRobustANGLEFn(GLenum target,
+ GLint level,
+ GLint internalformat,
+ GLsizei width,
+ GLsizei height,
+ GLsizei depth,
+ GLint border,
+ GLenum format,
+ GLenum type,
+ GLsizei bufSize,
+ const void* pixels) {
+ GL_SERVICE_LOG("glTexImage3DRobustANGLE"
+ << "(" << GLEnums::GetStringEnum(target) << ", " << level
+ << ", " << internalformat << ", " << width << ", " << height
+ << ", " << depth << ", " << border << ", "
+ << GLEnums::GetStringEnum(format) << ", "
+ << GLEnums::GetStringEnum(type) << ", " << bufSize << ", "
+ << static_cast<const void*>(pixels) << ")");
+ gl_api_->glTexImage3DRobustANGLEFn(target, level, internalformat, width,
+ height, depth, border, format, type,
+ bufSize, pixels);
+}
+
+void DebugGLApi::glTexParameterfFn(GLenum target, GLenum pname, GLfloat param) {
+ GL_SERVICE_LOG("glTexParameterf"
+ << "(" << GLEnums::GetStringEnum(target) << ", "
+ << GLEnums::GetStringEnum(pname) << ", " << param << ")");
+ gl_api_->glTexParameterfFn(target, pname, param);
+}
+
+void DebugGLApi::glTexParameterfvFn(GLenum target,
+ GLenum pname,
+ const GLfloat* params) {
+ GL_SERVICE_LOG("glTexParameterfv"
+ << "(" << GLEnums::GetStringEnum(target) << ", "
+ << GLEnums::GetStringEnum(pname) << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glTexParameterfvFn(target, pname, params);
+}
+
+void DebugGLApi::glTexParameterfvRobustANGLEFn(GLenum target,
+ GLenum pname,
+ GLsizei bufSize,
+ const GLfloat* params) {
+ GL_SERVICE_LOG("glTexParameterfvRobustANGLE"
+ << "(" << GLEnums::GetStringEnum(target) << ", "
+ << GLEnums::GetStringEnum(pname) << ", " << bufSize << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glTexParameterfvRobustANGLEFn(target, pname, bufSize, params);
+}
+
+void DebugGLApi::glTexParameteriFn(GLenum target, GLenum pname, GLint param) {
+ GL_SERVICE_LOG("glTexParameteri"
+ << "(" << GLEnums::GetStringEnum(target) << ", "
+ << GLEnums::GetStringEnum(pname) << ", " << param << ")");
+ gl_api_->glTexParameteriFn(target, pname, param);
+}
+
+void DebugGLApi::glTexParameterIivRobustANGLEFn(GLenum target,
+ GLenum pname,
+ GLsizei bufSize,
+ const GLint* params) {
+ GL_SERVICE_LOG("glTexParameterIivRobustANGLE"
+ << "(" << GLEnums::GetStringEnum(target) << ", "
+ << GLEnums::GetStringEnum(pname) << ", " << bufSize << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glTexParameterIivRobustANGLEFn(target, pname, bufSize, params);
+}
+
+void DebugGLApi::glTexParameterIuivRobustANGLEFn(GLenum target,
+ GLenum pname,
+ GLsizei bufSize,
+ const GLuint* params) {
+ GL_SERVICE_LOG("glTexParameterIuivRobustANGLE"
+ << "(" << GLEnums::GetStringEnum(target) << ", "
+ << GLEnums::GetStringEnum(pname) << ", " << bufSize << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glTexParameterIuivRobustANGLEFn(target, pname, bufSize, params);
+}
+
+void DebugGLApi::glTexParameterivFn(GLenum target,
+ GLenum pname,
+ const GLint* params) {
+ GL_SERVICE_LOG("glTexParameteriv"
+ << "(" << GLEnums::GetStringEnum(target) << ", "
+ << GLEnums::GetStringEnum(pname) << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glTexParameterivFn(target, pname, params);
+}
+
+void DebugGLApi::glTexParameterivRobustANGLEFn(GLenum target,
+ GLenum pname,
+ GLsizei bufSize,
+ const GLint* params) {
+ GL_SERVICE_LOG("glTexParameterivRobustANGLE"
+ << "(" << GLEnums::GetStringEnum(target) << ", "
+ << GLEnums::GetStringEnum(pname) << ", " << bufSize << ", "
+ << static_cast<const void*>(params) << ")");
+ gl_api_->glTexParameterivRobustANGLEFn(target, pname, bufSize, params);
+}
+
+void DebugGLApi::glTexStorage2DEXTFn(GLenum target,
+ GLsizei levels,
+ GLenum internalformat,
+ GLsizei width,
+ GLsizei height) {
+ GL_SERVICE_LOG("glTexStorage2DEXT"
+ << "(" << GLEnums::GetStringEnum(target) << ", " << levels
+ << ", " << GLEnums::GetStringEnum(internalformat) << ", "
+ << width << ", " << height << ")");
+ gl_api_->glTexStorage2DEXTFn(target, levels, internalformat, width, height);
+}
+
+void DebugGLApi::glTexStorage3DFn(GLenum target,
+ GLsizei levels,
+ GLenum internalformat,
+ GLsizei width,
+ GLsizei height,
+ GLsizei depth) {
+ GL_SERVICE_LOG("glTexStorage3D"
+ << "(" << GLEnums::GetStringEnum(target) << ", " << levels
+ << ", " << GLEnums::GetStringEnum(internalformat) << ", "
+ << width << ", " << height << ", " << depth << ")");
+ gl_api_->glTexStorage3DFn(target, levels, internalformat, width, height,
+ depth);
+}
+
+void DebugGLApi::glTexSubImage2DFn(GLenum target,
+ GLint level,
+ GLint xoffset,
+ GLint yoffset,
+ GLsizei width,
+ GLsizei height,
+ GLenum format,
+ GLenum type,
+ const void* pixels) {
+ GL_SERVICE_LOG("glTexSubImage2D"
+ << "(" << GLEnums::GetStringEnum(target) << ", " << level
+ << ", " << xoffset << ", " << yoffset << ", " << width << ", "
+ << height << ", " << GLEnums::GetStringEnum(format) << ", "
+ << GLEnums::GetStringEnum(type) << ", "
+ << static_cast<const void*>(pixels) << ")");
+ gl_api_->glTexSubImage2DFn(target, level, xoffset, yoffset, width, height,
+ format, type, pixels);
+}
+
+void DebugGLApi::glTexSubImage2DRobustANGLEFn(GLenum target,
+ GLint level,
+ GLint xoffset,
+ GLint yoffset,
+ GLsizei width,
+ GLsizei height,
+ GLenum format,
+ GLenum type,
+ GLsizei bufSize,
+ const void* pixels) {
+ GL_SERVICE_LOG("glTexSubImage2DRobustANGLE"
+ << "(" << GLEnums::GetStringEnum(target) << ", " << level
+ << ", " << xoffset << ", " << yoffset << ", " << width << ", "
+ << height << ", " << GLEnums::GetStringEnum(format) << ", "
+ << GLEnums::GetStringEnum(type) << ", " << bufSize << ", "
+ << static_cast<const void*>(pixels) << ")");
+ gl_api_->glTexSubImage2DRobustANGLEFn(target, level, xoffset, yoffset, width,
+ height, format, type, bufSize, pixels);
+}
+
+void DebugGLApi::glTexSubImage3DFn(GLenum target,
+ GLint level,
+ GLint xoffset,
+ GLint yoffset,
+ GLint zoffset,
+ GLsizei width,
+ GLsizei height,
+ GLsizei depth,
+ GLenum format,
+ GLenum type,
+ const void* pixels) {
+ GL_SERVICE_LOG("glTexSubImage3D"
+ << "(" << GLEnums::GetStringEnum(target) << ", " << level
+ << ", " << xoffset << ", " << yoffset << ", " << zoffset
+ << ", " << width << ", " << height << ", " << depth << ", "
+ << GLEnums::GetStringEnum(format) << ", "
+ << GLEnums::GetStringEnum(type) << ", "
+ << static_cast<const void*>(pixels) << ")");
+ gl_api_->glTexSubImage3DFn(target, level, xoffset, yoffset, zoffset, width,
+ height, depth, format, type, pixels);
+}
+
+void DebugGLApi::glTexSubImage3DRobustANGLEFn(GLenum target,
+ GLint level,
+ GLint xoffset,
+ GLint yoffset,
+ GLint zoffset,
+ GLsizei width,
+ GLsizei height,
+ GLsizei depth,
+ GLenum format,
+ GLenum type,
+ GLsizei bufSize,
+ const void* pixels) {
+ GL_SERVICE_LOG("glTexSubImage3DRobustANGLE"
+ << "(" << GLEnums::GetStringEnum(target) << ", " << level
+ << ", " << xoffset << ", " << yoffset << ", " << zoffset
+ << ", " << width << ", " << height << ", " << depth << ", "
+ << GLEnums::GetStringEnum(format) << ", "
+ << GLEnums::GetStringEnum(type) << ", " << bufSize << ", "
+ << static_cast<const void*>(pixels) << ")");
+ gl_api_->glTexSubImage3DRobustANGLEFn(target, level, xoffset, yoffset,
+ zoffset, width, height, depth, format,
+ type, bufSize, pixels);
+}
+
+void DebugGLApi::glTransformFeedbackVaryingsFn(GLuint program,
+ GLsizei count,
+ const char* const* varyings,
+ GLenum bufferMode) {
+ GL_SERVICE_LOG("glTransformFeedbackVaryings"
+ << "(" << program << ", " << count << ", "
+ << static_cast<const void*>(varyings) << ", "
+ << GLEnums::GetStringEnum(bufferMode) << ")");
+ gl_api_->glTransformFeedbackVaryingsFn(program, count, varyings, bufferMode);
+}
+
+void DebugGLApi::glUniform1fFn(GLint location, GLfloat x) {
+ GL_SERVICE_LOG("glUniform1f"
+ << "(" << location << ", " << x << ")");
+ gl_api_->glUniform1fFn(location, x);
+}
+
+void DebugGLApi::glUniform1fvFn(GLint location,
+ GLsizei count,
+ const GLfloat* v) {
+ GL_SERVICE_LOG("glUniform1fv"
+ << "(" << location << ", " << count << ", "
+ << static_cast<const void*>(v) << ")");
+ gl_api_->glUniform1fvFn(location, count, v);
+}
+
+void DebugGLApi::glUniform1iFn(GLint location, GLint x) {
+ GL_SERVICE_LOG("glUniform1i"
+ << "(" << location << ", " << x << ")");
+ gl_api_->glUniform1iFn(location, x);
+}
+
+void DebugGLApi::glUniform1ivFn(GLint location, GLsizei count, const GLint* v) {
+ GL_SERVICE_LOG("glUniform1iv"
+ << "(" << location << ", " << count << ", "
+ << static_cast<const void*>(v) << ")");
+ gl_api_->glUniform1ivFn(location, count, v);
+}
+
+void DebugGLApi::glUniform1uiFn(GLint location, GLuint v0) {
+ GL_SERVICE_LOG("glUniform1ui"
+ << "(" << location << ", " << v0 << ")");
+ gl_api_->glUniform1uiFn(location, v0);
+}
+
+void DebugGLApi::glUniform1uivFn(GLint location,
+ GLsizei count,
+ const GLuint* v) {
+ GL_SERVICE_LOG("glUniform1uiv"
+ << "(" << location << ", " << count << ", "
+ << static_cast<const void*>(v) << ")");
+ gl_api_->glUniform1uivFn(location, count, v);
+}
+
+void DebugGLApi::glUniform2fFn(GLint location, GLfloat x, GLfloat y) {
+ GL_SERVICE_LOG("glUniform2f"
+ << "(" << location << ", " << x << ", " << y << ")");
+ gl_api_->glUniform2fFn(location, x, y);
+}
+
+void DebugGLApi::glUniform2fvFn(GLint location,
+ GLsizei count,
+ const GLfloat* v) {
+ GL_SERVICE_LOG("glUniform2fv"
+ << "(" << location << ", " << count << ", "
+ << static_cast<const void*>(v) << ")");
+ gl_api_->glUniform2fvFn(location, count, v);
+}
+
+void DebugGLApi::glUniform2iFn(GLint location, GLint x, GLint y) {
+ GL_SERVICE_LOG("glUniform2i"
+ << "(" << location << ", " << x << ", " << y << ")");
+ gl_api_->glUniform2iFn(location, x, y);
+}
+
+void DebugGLApi::glUniform2ivFn(GLint location, GLsizei count, const GLint* v) {
+ GL_SERVICE_LOG("glUniform2iv"
+ << "(" << location << ", " << count << ", "
+ << static_cast<const void*>(v) << ")");
+ gl_api_->glUniform2ivFn(location, count, v);
+}
+
+void DebugGLApi::glUniform2uiFn(GLint location, GLuint v0, GLuint v1) {
+ GL_SERVICE_LOG("glUniform2ui"
+ << "(" << location << ", " << v0 << ", " << v1 << ")");
+ gl_api_->glUniform2uiFn(location, v0, v1);
+}
+
+void DebugGLApi::glUniform2uivFn(GLint location,
+ GLsizei count,
+ const GLuint* v) {
+ GL_SERVICE_LOG("glUniform2uiv"
+ << "(" << location << ", " << count << ", "
+ << static_cast<const void*>(v) << ")");
+ gl_api_->glUniform2uivFn(location, count, v);
+}
+
+void DebugGLApi::glUniform3fFn(GLint location,
+ GLfloat x,
+ GLfloat y,
+ GLfloat z) {
+ GL_SERVICE_LOG("glUniform3f"
+ << "(" << location << ", " << x << ", " << y << ", " << z
+ << ")");
+ gl_api_->glUniform3fFn(location, x, y, z);
+}
+
+void DebugGLApi::glUniform3fvFn(GLint location,
+ GLsizei count,
+ const GLfloat* v) {
+ GL_SERVICE_LOG("glUniform3fv"
+ << "(" << location << ", " << count << ", "
+ << static_cast<const void*>(v) << ")");
+ gl_api_->glUniform3fvFn(location, count, v);
+}
+
+void DebugGLApi::glUniform3iFn(GLint location, GLint x, GLint y, GLint z) {
+ GL_SERVICE_LOG("glUniform3i"
+ << "(" << location << ", " << x << ", " << y << ", " << z
+ << ")");
+ gl_api_->glUniform3iFn(location, x, y, z);
+}
+
+void DebugGLApi::glUniform3ivFn(GLint location, GLsizei count, const GLint* v) {
+ GL_SERVICE_LOG("glUniform3iv"
+ << "(" << location << ", " << count << ", "
+ << static_cast<const void*>(v) << ")");
+ gl_api_->glUniform3ivFn(location, count, v);
+}
+
+void DebugGLApi::glUniform3uiFn(GLint location,
+ GLuint v0,
+ GLuint v1,
+ GLuint v2) {
+ GL_SERVICE_LOG("glUniform3ui"
+ << "(" << location << ", " << v0 << ", " << v1 << ", " << v2
+ << ")");
+ gl_api_->glUniform3uiFn(location, v0, v1, v2);
+}
+
+void DebugGLApi::glUniform3uivFn(GLint location,
+ GLsizei count,
+ const GLuint* v) {
+ GL_SERVICE_LOG("glUniform3uiv"
+ << "(" << location << ", " << count << ", "
+ << static_cast<const void*>(v) << ")");
+ gl_api_->glUniform3uivFn(location, count, v);
+}
+
+void DebugGLApi::glUniform4fFn(GLint location,
+ GLfloat x,
+ GLfloat y,
+ GLfloat z,
+ GLfloat w) {
+ GL_SERVICE_LOG("glUniform4f"
+ << "(" << location << ", " << x << ", " << y << ", " << z
+ << ", " << w << ")");
+ gl_api_->glUniform4fFn(location, x, y, z, w);
+}
+
+void DebugGLApi::glUniform4fvFn(GLint location,
+ GLsizei count,
+ const GLfloat* v) {
+ GL_SERVICE_LOG("glUniform4fv"
+ << "(" << location << ", " << count << ", "
+ << static_cast<const void*>(v) << ")");
+ gl_api_->glUniform4fvFn(location, count, v);
+}
+
+void DebugGLApi::glUniform4iFn(GLint location,
+ GLint x,
+ GLint y,
+ GLint z,
+ GLint w) {
+ GL_SERVICE_LOG("glUniform4i"
+ << "(" << location << ", " << x << ", " << y << ", " << z
+ << ", " << w << ")");
+ gl_api_->glUniform4iFn(location, x, y, z, w);
+}
+
+void DebugGLApi::glUniform4ivFn(GLint location, GLsizei count, const GLint* v) {
+ GL_SERVICE_LOG("glUniform4iv"
+ << "(" << location << ", " << count << ", "
+ << static_cast<const void*>(v) << ")");
+ gl_api_->glUniform4ivFn(location, count, v);
+}
+
+void DebugGLApi::glUniform4uiFn(GLint location,
+ GLuint v0,
+ GLuint v1,
+ GLuint v2,
+ GLuint v3) {
+ GL_SERVICE_LOG("glUniform4ui"
+ << "(" << location << ", " << v0 << ", " << v1 << ", " << v2
+ << ", " << v3 << ")");
+ gl_api_->glUniform4uiFn(location, v0, v1, v2, v3);
+}
+
+void DebugGLApi::glUniform4uivFn(GLint location,
+ GLsizei count,
+ const GLuint* v) {
+ GL_SERVICE_LOG("glUniform4uiv"
+ << "(" << location << ", " << count << ", "
+ << static_cast<const void*>(v) << ")");
+ gl_api_->glUniform4uivFn(location, count, v);
+}
+
+void DebugGLApi::glUniformBlockBindingFn(GLuint program,
+ GLuint uniformBlockIndex,
+ GLuint uniformBlockBinding) {
+ GL_SERVICE_LOG("glUniformBlockBinding"
+ << "(" << program << ", " << uniformBlockIndex << ", "
+ << uniformBlockBinding << ")");
+ gl_api_->glUniformBlockBindingFn(program, uniformBlockIndex,
+ uniformBlockBinding);
+}
+
+void DebugGLApi::glUniformMatrix2fvFn(GLint location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLfloat* value) {
+ GL_SERVICE_LOG("glUniformMatrix2fv"
+ << "(" << location << ", " << count << ", "
+ << GLEnums::GetStringBool(transpose) << ", "
+ << static_cast<const void*>(value) << ")");
+ gl_api_->glUniformMatrix2fvFn(location, count, transpose, value);
+}
+
+void DebugGLApi::glUniformMatrix2x3fvFn(GLint location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLfloat* value) {
+ GL_SERVICE_LOG("glUniformMatrix2x3fv"
+ << "(" << location << ", " << count << ", "
+ << GLEnums::GetStringBool(transpose) << ", "
+ << static_cast<const void*>(value) << ")");
+ gl_api_->glUniformMatrix2x3fvFn(location, count, transpose, value);
+}
+
+void DebugGLApi::glUniformMatrix2x4fvFn(GLint location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLfloat* value) {
+ GL_SERVICE_LOG("glUniformMatrix2x4fv"
+ << "(" << location << ", " << count << ", "
+ << GLEnums::GetStringBool(transpose) << ", "
+ << static_cast<const void*>(value) << ")");
+ gl_api_->glUniformMatrix2x4fvFn(location, count, transpose, value);
+}
+
+void DebugGLApi::glUniformMatrix3fvFn(GLint location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLfloat* value) {
+ GL_SERVICE_LOG("glUniformMatrix3fv"
+ << "(" << location << ", " << count << ", "
+ << GLEnums::GetStringBool(transpose) << ", "
+ << static_cast<const void*>(value) << ")");
+ gl_api_->glUniformMatrix3fvFn(location, count, transpose, value);
+}
+
+void DebugGLApi::glUniformMatrix3x2fvFn(GLint location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLfloat* value) {
+ GL_SERVICE_LOG("glUniformMatrix3x2fv"
+ << "(" << location << ", " << count << ", "
+ << GLEnums::GetStringBool(transpose) << ", "
+ << static_cast<const void*>(value) << ")");
+ gl_api_->glUniformMatrix3x2fvFn(location, count, transpose, value);
+}
+
+void DebugGLApi::glUniformMatrix3x4fvFn(GLint location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLfloat* value) {
+ GL_SERVICE_LOG("glUniformMatrix3x4fv"
+ << "(" << location << ", " << count << ", "
+ << GLEnums::GetStringBool(transpose) << ", "
+ << static_cast<const void*>(value) << ")");
+ gl_api_->glUniformMatrix3x4fvFn(location, count, transpose, value);
+}
+
+void DebugGLApi::glUniformMatrix4fvFn(GLint location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLfloat* value) {
+ GL_SERVICE_LOG("glUniformMatrix4fv"
+ << "(" << location << ", " << count << ", "
+ << GLEnums::GetStringBool(transpose) << ", "
+ << static_cast<const void*>(value) << ")");
+ gl_api_->glUniformMatrix4fvFn(location, count, transpose, value);
+}
+
+void DebugGLApi::glUniformMatrix4x2fvFn(GLint location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLfloat* value) {
+ GL_SERVICE_LOG("glUniformMatrix4x2fv"
+ << "(" << location << ", " << count << ", "
+ << GLEnums::GetStringBool(transpose) << ", "
+ << static_cast<const void*>(value) << ")");
+ gl_api_->glUniformMatrix4x2fvFn(location, count, transpose, value);
+}
+
+void DebugGLApi::glUniformMatrix4x3fvFn(GLint location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLfloat* value) {
+ GL_SERVICE_LOG("glUniformMatrix4x3fv"
+ << "(" << location << ", " << count << ", "
+ << GLEnums::GetStringBool(transpose) << ", "
+ << static_cast<const void*>(value) << ")");
+ gl_api_->glUniformMatrix4x3fvFn(location, count, transpose, value);
+}
+
+GLboolean DebugGLApi::glUnmapBufferFn(GLenum target) {
+ GL_SERVICE_LOG("glUnmapBuffer"
+ << "(" << GLEnums::GetStringEnum(target) << ")");
+ GLboolean result = gl_api_->glUnmapBufferFn(target);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+void DebugGLApi::glUseProgramFn(GLuint program) {
+ GL_SERVICE_LOG("glUseProgram"
+ << "(" << program << ")");
+ gl_api_->glUseProgramFn(program);
+}
+
+void DebugGLApi::glValidateProgramFn(GLuint program) {
+ GL_SERVICE_LOG("glValidateProgram"
+ << "(" << program << ")");
+ gl_api_->glValidateProgramFn(program);
+}
+
+void DebugGLApi::glVertexAttrib1fFn(GLuint indx, GLfloat x) {
+ GL_SERVICE_LOG("glVertexAttrib1f"
+ << "(" << indx << ", " << x << ")");
+ gl_api_->glVertexAttrib1fFn(indx, x);
+}
+
+void DebugGLApi::glVertexAttrib1fvFn(GLuint indx, const GLfloat* values) {
+ GL_SERVICE_LOG("glVertexAttrib1fv"
+ << "(" << indx << ", " << static_cast<const void*>(values)
+ << ")");
+ gl_api_->glVertexAttrib1fvFn(indx, values);
+}
+
+void DebugGLApi::glVertexAttrib2fFn(GLuint indx, GLfloat x, GLfloat y) {
+ GL_SERVICE_LOG("glVertexAttrib2f"
+ << "(" << indx << ", " << x << ", " << y << ")");
+ gl_api_->glVertexAttrib2fFn(indx, x, y);
+}
+
+void DebugGLApi::glVertexAttrib2fvFn(GLuint indx, const GLfloat* values) {
+ GL_SERVICE_LOG("glVertexAttrib2fv"
+ << "(" << indx << ", " << static_cast<const void*>(values)
+ << ")");
+ gl_api_->glVertexAttrib2fvFn(indx, values);
+}
+
+void DebugGLApi::glVertexAttrib3fFn(GLuint indx,
+ GLfloat x,
+ GLfloat y,
+ GLfloat z) {
+ GL_SERVICE_LOG("glVertexAttrib3f"
+ << "(" << indx << ", " << x << ", " << y << ", " << z << ")");
+ gl_api_->glVertexAttrib3fFn(indx, x, y, z);
+}
+
+void DebugGLApi::glVertexAttrib3fvFn(GLuint indx, const GLfloat* values) {
+ GL_SERVICE_LOG("glVertexAttrib3fv"
+ << "(" << indx << ", " << static_cast<const void*>(values)
+ << ")");
+ gl_api_->glVertexAttrib3fvFn(indx, values);
+}
+
+void DebugGLApi::glVertexAttrib4fFn(GLuint indx,
+ GLfloat x,
+ GLfloat y,
+ GLfloat z,
+ GLfloat w) {
+ GL_SERVICE_LOG("glVertexAttrib4f"
+ << "(" << indx << ", " << x << ", " << y << ", " << z << ", "
+ << w << ")");
+ gl_api_->glVertexAttrib4fFn(indx, x, y, z, w);
+}
+
+void DebugGLApi::glVertexAttrib4fvFn(GLuint indx, const GLfloat* values) {
+ GL_SERVICE_LOG("glVertexAttrib4fv"
+ << "(" << indx << ", " << static_cast<const void*>(values)
+ << ")");
+ gl_api_->glVertexAttrib4fvFn(indx, values);
+}
+
+void DebugGLApi::glVertexAttribDivisorANGLEFn(GLuint index, GLuint divisor) {
+ GL_SERVICE_LOG("glVertexAttribDivisorANGLE"
+ << "(" << index << ", " << divisor << ")");
+ gl_api_->glVertexAttribDivisorANGLEFn(index, divisor);
+}
+
+void DebugGLApi::glVertexAttribI4iFn(GLuint indx,
+ GLint x,
+ GLint y,
+ GLint z,
+ GLint w) {
+ GL_SERVICE_LOG("glVertexAttribI4i"
+ << "(" << indx << ", " << x << ", " << y << ", " << z << ", "
+ << w << ")");
+ gl_api_->glVertexAttribI4iFn(indx, x, y, z, w);
+}
+
+void DebugGLApi::glVertexAttribI4ivFn(GLuint indx, const GLint* values) {
+ GL_SERVICE_LOG("glVertexAttribI4iv"
+ << "(" << indx << ", " << static_cast<const void*>(values)
+ << ")");
+ gl_api_->glVertexAttribI4ivFn(indx, values);
+}
+
+void DebugGLApi::glVertexAttribI4uiFn(GLuint indx,
+ GLuint x,
+ GLuint y,
+ GLuint z,
+ GLuint w) {
+ GL_SERVICE_LOG("glVertexAttribI4ui"
+ << "(" << indx << ", " << x << ", " << y << ", " << z << ", "
+ << w << ")");
+ gl_api_->glVertexAttribI4uiFn(indx, x, y, z, w);
+}
+
+void DebugGLApi::glVertexAttribI4uivFn(GLuint indx, const GLuint* values) {
+ GL_SERVICE_LOG("glVertexAttribI4uiv"
+ << "(" << indx << ", " << static_cast<const void*>(values)
+ << ")");
+ gl_api_->glVertexAttribI4uivFn(indx, values);
+}
+
+void DebugGLApi::glVertexAttribIPointerFn(GLuint indx,
+ GLint size,
+ GLenum type,
+ GLsizei stride,
+ const void* ptr) {
+ GL_SERVICE_LOG("glVertexAttribIPointer"
+ << "(" << indx << ", " << size << ", "
+ << GLEnums::GetStringEnum(type) << ", " << stride << ", "
+ << static_cast<const void*>(ptr) << ")");
+ gl_api_->glVertexAttribIPointerFn(indx, size, type, stride, ptr);
+}
+
+void DebugGLApi::glVertexAttribPointerFn(GLuint indx,
+ GLint size,
+ GLenum type,
+ GLboolean normalized,
+ GLsizei stride,
+ const void* ptr) {
+ GL_SERVICE_LOG("glVertexAttribPointer"
+ << "(" << indx << ", " << size << ", "
+ << GLEnums::GetStringEnum(type) << ", "
+ << GLEnums::GetStringBool(normalized) << ", " << stride << ", "
+ << static_cast<const void*>(ptr) << ")");
+ gl_api_->glVertexAttribPointerFn(indx, size, type, normalized, stride, ptr);
+}
+
+void DebugGLApi::glViewportFn(GLint x, GLint y, GLsizei width, GLsizei height) {
+ GL_SERVICE_LOG("glViewport"
+ << "(" << x << ", " << y << ", " << width << ", " << height
+ << ")");
+ gl_api_->glViewportFn(x, y, width, height);
+}
+
+GLenum DebugGLApi::glWaitSyncFn(GLsync sync,
+ GLbitfield flags,
+ GLuint64 timeout) {
+ GL_SERVICE_LOG("glWaitSync"
+ << "(" << sync << ", " << flags << ", " << timeout << ")");
+ GLenum result = gl_api_->glWaitSyncFn(sync, flags, timeout);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
void NoContextGLApi::glActiveTextureFn(GLenum texture) {
NOTREACHED() << "Trying to call glActiveTexture() without current GL context";
LOG(ERROR) << "Trying to call glActiveTexture() without current GL context";
diff --git a/chromium/ui/gl/gl_bindings_autogen_glx.cc b/chromium/ui/gl/gl_bindings_autogen_glx.cc
index 9dd188b9c9f..ef9f9ef9152 100644
--- a/chromium/ui/gl/gl_bindings_autogen_glx.cc
+++ b/chromium/ui/gl/gl_bindings_autogen_glx.cc
@@ -20,7 +20,6 @@
namespace gl {
-static bool g_debugBindingsInitialized;
DriverGLX g_driver_glx;
void DriverGLX::InitializeStaticBindings() {
@@ -136,844 +135,57 @@ void DriverGLX::InitializeExtensionBindings() {
ext.b_GLX_SGI_video_sync =
extensions.find("GLX_SGI_video_sync ") != std::string::npos;
- debug_fn.glXBindTexImageEXTFn = 0;
if (ext.b_GLX_EXT_texture_from_pixmap) {
fn.glXBindTexImageEXTFn = reinterpret_cast<glXBindTexImageEXTProc>(
GetGLProcAddress("glXBindTexImageEXT"));
}
- debug_fn.glXCopySubBufferMESAFn = 0;
if (ext.b_GLX_MESA_copy_sub_buffer) {
fn.glXCopySubBufferMESAFn = reinterpret_cast<glXCopySubBufferMESAProc>(
GetGLProcAddress("glXCopySubBufferMESA"));
}
- debug_fn.glXCreateContextAttribsARBFn = 0;
if (ext.b_GLX_ARB_create_context) {
fn.glXCreateContextAttribsARBFn =
reinterpret_cast<glXCreateContextAttribsARBProc>(
GetGLProcAddress("glXCreateContextAttribsARB"));
}
- debug_fn.glXGetFBConfigFromVisualSGIXFn = 0;
if (ext.b_GLX_SGIX_fbconfig) {
fn.glXGetFBConfigFromVisualSGIXFn =
reinterpret_cast<glXGetFBConfigFromVisualSGIXProc>(
GetGLProcAddress("glXGetFBConfigFromVisualSGIX"));
}
- debug_fn.glXGetMscRateOMLFn = 0;
if (ext.b_GLX_OML_sync_control) {
fn.glXGetMscRateOMLFn = reinterpret_cast<glXGetMscRateOMLProc>(
GetGLProcAddress("glXGetMscRateOML"));
}
- debug_fn.glXGetSyncValuesOMLFn = 0;
if (ext.b_GLX_OML_sync_control) {
fn.glXGetSyncValuesOMLFn = reinterpret_cast<glXGetSyncValuesOMLProc>(
GetGLProcAddress("glXGetSyncValuesOML"));
}
- debug_fn.glXReleaseTexImageEXTFn = 0;
if (ext.b_GLX_EXT_texture_from_pixmap) {
fn.glXReleaseTexImageEXTFn = reinterpret_cast<glXReleaseTexImageEXTProc>(
GetGLProcAddress("glXReleaseTexImageEXT"));
}
- debug_fn.glXSwapIntervalEXTFn = 0;
if (ext.b_GLX_EXT_swap_control) {
fn.glXSwapIntervalEXTFn = reinterpret_cast<glXSwapIntervalEXTProc>(
GetGLProcAddress("glXSwapIntervalEXT"));
}
- debug_fn.glXSwapIntervalMESAFn = 0;
if (ext.b_GLX_MESA_swap_control) {
fn.glXSwapIntervalMESAFn = reinterpret_cast<glXSwapIntervalMESAProc>(
GetGLProcAddress("glXSwapIntervalMESA"));
}
- debug_fn.glXWaitVideoSyncSGIFn = 0;
if (ext.b_GLX_SGI_video_sync) {
fn.glXWaitVideoSyncSGIFn = reinterpret_cast<glXWaitVideoSyncSGIProc>(
GetGLProcAddress("glXWaitVideoSyncSGI"));
}
-
- if (g_debugBindingsInitialized)
- InitializeDebugBindings();
-}
-
-extern "C" {
-
-static void GL_BINDING_CALL Debug_glXBindTexImageEXT(Display* dpy,
- GLXDrawable drawable,
- int buffer,
- int* attribList) {
- GL_SERVICE_LOG("glXBindTexImageEXT"
- << "(" << static_cast<const void*>(dpy) << ", " << drawable
- << ", " << buffer << ", "
- << static_cast<const void*>(attribList) << ")");
- DCHECK(g_driver_glx.debug_fn.glXBindTexImageEXTFn != nullptr);
- g_driver_glx.debug_fn.glXBindTexImageEXTFn(dpy, drawable, buffer, attribList);
-}
-
-static GLXFBConfig* GL_BINDING_CALL
-Debug_glXChooseFBConfig(Display* dpy,
- int screen,
- const int* attribList,
- int* nitems) {
- GL_SERVICE_LOG("glXChooseFBConfig"
- << "(" << static_cast<const void*>(dpy) << ", " << screen
- << ", " << static_cast<const void*>(attribList) << ", "
- << static_cast<const void*>(nitems) << ")");
- DCHECK(g_driver_glx.debug_fn.glXChooseFBConfigFn != nullptr);
- GLXFBConfig* result = g_driver_glx.debug_fn.glXChooseFBConfigFn(
- dpy, screen, attribList, nitems);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-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) << ")");
- DCHECK(g_driver_glx.debug_fn.glXChooseVisualFn != nullptr);
- XVisualInfo* result =
- g_driver_glx.debug_fn.glXChooseVisualFn(dpy, screen, attribList);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static void GL_BINDING_CALL Debug_glXCopyContext(Display* dpy,
- GLXContext src,
- GLXContext dst,
- unsigned long mask) {
- GL_SERVICE_LOG("glXCopyContext"
- << "(" << static_cast<const void*>(dpy) << ", " << src << ", "
- << dst << ", " << mask << ")");
- DCHECK(g_driver_glx.debug_fn.glXCopyContextFn != nullptr);
- g_driver_glx.debug_fn.glXCopyContextFn(dpy, src, dst, mask);
-}
-
-static void GL_BINDING_CALL Debug_glXCopySubBufferMESA(Display* dpy,
- GLXDrawable drawable,
- int x,
- int y,
- int width,
- int height) {
- GL_SERVICE_LOG("glXCopySubBufferMESA"
- << "(" << static_cast<const void*>(dpy) << ", " << drawable
- << ", " << x << ", " << y << ", " << width << ", " << height
- << ")");
- DCHECK(g_driver_glx.debug_fn.glXCopySubBufferMESAFn != nullptr);
- g_driver_glx.debug_fn.glXCopySubBufferMESAFn(dpy, drawable, x, y, width,
- height);
-}
-
-static GLXContext GL_BINDING_CALL Debug_glXCreateContext(Display* dpy,
- XVisualInfo* vis,
- GLXContext shareList,
- int direct) {
- GL_SERVICE_LOG("glXCreateContext"
- << "(" << static_cast<const void*>(dpy) << ", "
- << static_cast<const void*>(vis) << ", " << shareList << ", "
- << direct << ")");
- DCHECK(g_driver_glx.debug_fn.glXCreateContextFn != nullptr);
- GLXContext result =
- g_driver_glx.debug_fn.glXCreateContextFn(dpy, vis, shareList, direct);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static GLXContext GL_BINDING_CALL
-Debug_glXCreateContextAttribsARB(Display* dpy,
- GLXFBConfig config,
- GLXContext share_context,
- int direct,
- const int* attrib_list) {
- GL_SERVICE_LOG("glXCreateContextAttribsARB"
- << "(" << static_cast<const void*>(dpy) << ", " << config
- << ", " << share_context << ", " << direct << ", "
- << static_cast<const void*>(attrib_list) << ")");
- DCHECK(g_driver_glx.debug_fn.glXCreateContextAttribsARBFn != nullptr);
- GLXContext result = g_driver_glx.debug_fn.glXCreateContextAttribsARBFn(
- dpy, config, share_context, direct, attrib_list);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-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 << ")");
- DCHECK(g_driver_glx.debug_fn.glXCreateGLXPixmapFn != nullptr);
- GLXPixmap result =
- g_driver_glx.debug_fn.glXCreateGLXPixmapFn(dpy, visual, pixmap);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static GLXContext GL_BINDING_CALL
-Debug_glXCreateNewContext(Display* dpy,
- GLXFBConfig config,
- int renderType,
- GLXContext shareList,
- int direct) {
- GL_SERVICE_LOG("glXCreateNewContext"
- << "(" << static_cast<const void*>(dpy) << ", " << config
- << ", " << renderType << ", " << shareList << ", " << direct
- << ")");
- DCHECK(g_driver_glx.debug_fn.glXCreateNewContextFn != nullptr);
- GLXContext result = g_driver_glx.debug_fn.glXCreateNewContextFn(
- dpy, config, renderType, shareList, direct);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static GLXPbuffer GL_BINDING_CALL
-Debug_glXCreatePbuffer(Display* dpy,
- GLXFBConfig config,
- const int* attribList) {
- GL_SERVICE_LOG("glXCreatePbuffer"
- << "(" << static_cast<const void*>(dpy) << ", " << config
- << ", " << static_cast<const void*>(attribList) << ")");
- DCHECK(g_driver_glx.debug_fn.glXCreatePbufferFn != nullptr);
- GLXPbuffer result =
- g_driver_glx.debug_fn.glXCreatePbufferFn(dpy, config, attribList);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static GLXPixmap GL_BINDING_CALL Debug_glXCreatePixmap(Display* dpy,
- GLXFBConfig config,
- Pixmap pixmap,
- const int* attribList) {
- GL_SERVICE_LOG("glXCreatePixmap"
- << "(" << static_cast<const void*>(dpy) << ", " << config
- << ", " << pixmap << ", "
- << static_cast<const void*>(attribList) << ")");
- DCHECK(g_driver_glx.debug_fn.glXCreatePixmapFn != nullptr);
- GLXPixmap result =
- g_driver_glx.debug_fn.glXCreatePixmapFn(dpy, config, pixmap, attribList);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static GLXWindow GL_BINDING_CALL Debug_glXCreateWindow(Display* dpy,
- GLXFBConfig config,
- Window win,
- const int* attribList) {
- GL_SERVICE_LOG("glXCreateWindow"
- << "(" << static_cast<const void*>(dpy) << ", " << config
- << ", " << win << ", " << static_cast<const void*>(attribList)
- << ")");
- DCHECK(g_driver_glx.debug_fn.glXCreateWindowFn != nullptr);
- GLXWindow result =
- g_driver_glx.debug_fn.glXCreateWindowFn(dpy, config, win, attribList);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static void GL_BINDING_CALL Debug_glXDestroyContext(Display* dpy,
- GLXContext ctx) {
- GL_SERVICE_LOG("glXDestroyContext"
- << "(" << static_cast<const void*>(dpy) << ", " << ctx << ")");
- DCHECK(g_driver_glx.debug_fn.glXDestroyContextFn != nullptr);
- g_driver_glx.debug_fn.glXDestroyContextFn(dpy, ctx);
-}
-
-static void GL_BINDING_CALL Debug_glXDestroyGLXPixmap(Display* dpy,
- GLXPixmap pixmap) {
- GL_SERVICE_LOG("glXDestroyGLXPixmap"
- << "(" << static_cast<const void*>(dpy) << ", " << pixmap
- << ")");
- DCHECK(g_driver_glx.debug_fn.glXDestroyGLXPixmapFn != nullptr);
- g_driver_glx.debug_fn.glXDestroyGLXPixmapFn(dpy, pixmap);
-}
-
-static void GL_BINDING_CALL Debug_glXDestroyPbuffer(Display* dpy,
- GLXPbuffer pbuf) {
- GL_SERVICE_LOG("glXDestroyPbuffer"
- << "(" << static_cast<const void*>(dpy) << ", " << pbuf
- << ")");
- DCHECK(g_driver_glx.debug_fn.glXDestroyPbufferFn != nullptr);
- g_driver_glx.debug_fn.glXDestroyPbufferFn(dpy, pbuf);
-}
-
-static void GL_BINDING_CALL Debug_glXDestroyPixmap(Display* dpy,
- GLXPixmap pixmap) {
- GL_SERVICE_LOG("glXDestroyPixmap"
- << "(" << static_cast<const void*>(dpy) << ", " << pixmap
- << ")");
- DCHECK(g_driver_glx.debug_fn.glXDestroyPixmapFn != nullptr);
- g_driver_glx.debug_fn.glXDestroyPixmapFn(dpy, pixmap);
-}
-
-static void GL_BINDING_CALL Debug_glXDestroyWindow(Display* dpy,
- GLXWindow window) {
- GL_SERVICE_LOG("glXDestroyWindow"
- << "(" << static_cast<const void*>(dpy) << ", " << window
- << ")");
- DCHECK(g_driver_glx.debug_fn.glXDestroyWindowFn != nullptr);
- g_driver_glx.debug_fn.glXDestroyWindowFn(dpy, window);
-}
-
-static const char* GL_BINDING_CALL Debug_glXGetClientString(Display* dpy,
- int name) {
- GL_SERVICE_LOG("glXGetClientString"
- << "(" << static_cast<const void*>(dpy) << ", " << name
- << ")");
- DCHECK(g_driver_glx.debug_fn.glXGetClientStringFn != nullptr);
- const char* result = g_driver_glx.debug_fn.glXGetClientStringFn(dpy, name);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-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 << ", "
- << static_cast<const void*>(value) << ")");
- DCHECK(g_driver_glx.debug_fn.glXGetConfigFn != nullptr);
- int result = g_driver_glx.debug_fn.glXGetConfigFn(dpy, visual, attrib, value);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static GLXContext GL_BINDING_CALL Debug_glXGetCurrentContext(void) {
- GL_SERVICE_LOG("glXGetCurrentContext"
- << "("
- << ")");
- DCHECK(g_driver_glx.debug_fn.glXGetCurrentContextFn != nullptr);
- GLXContext result = g_driver_glx.debug_fn.glXGetCurrentContextFn();
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static Display* GL_BINDING_CALL Debug_glXGetCurrentDisplay(void) {
- GL_SERVICE_LOG("glXGetCurrentDisplay"
- << "("
- << ")");
- DCHECK(g_driver_glx.debug_fn.glXGetCurrentDisplayFn != nullptr);
- Display* result = g_driver_glx.debug_fn.glXGetCurrentDisplayFn();
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static GLXDrawable GL_BINDING_CALL Debug_glXGetCurrentDrawable(void) {
- GL_SERVICE_LOG("glXGetCurrentDrawable"
- << "("
- << ")");
- DCHECK(g_driver_glx.debug_fn.glXGetCurrentDrawableFn != nullptr);
- GLXDrawable result = g_driver_glx.debug_fn.glXGetCurrentDrawableFn();
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static GLXDrawable GL_BINDING_CALL Debug_glXGetCurrentReadDrawable(void) {
- GL_SERVICE_LOG("glXGetCurrentReadDrawable"
- << "("
- << ")");
- DCHECK(g_driver_glx.debug_fn.glXGetCurrentReadDrawableFn != nullptr);
- GLXDrawable result = g_driver_glx.debug_fn.glXGetCurrentReadDrawableFn();
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static int GL_BINDING_CALL Debug_glXGetFBConfigAttrib(Display* dpy,
- GLXFBConfig config,
- int attribute,
- int* value) {
- GL_SERVICE_LOG("glXGetFBConfigAttrib"
- << "(" << static_cast<const void*>(dpy) << ", " << config
- << ", " << attribute << ", " << static_cast<const void*>(value)
- << ")");
- DCHECK(g_driver_glx.debug_fn.glXGetFBConfigAttribFn != nullptr);
- int result = g_driver_glx.debug_fn.glXGetFBConfigAttribFn(dpy, config,
- attribute, value);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static GLXFBConfig GL_BINDING_CALL
-Debug_glXGetFBConfigFromVisualSGIX(Display* dpy, XVisualInfo* visualInfo) {
- GL_SERVICE_LOG("glXGetFBConfigFromVisualSGIX"
- << "(" << static_cast<const void*>(dpy) << ", "
- << static_cast<const void*>(visualInfo) << ")");
- DCHECK(g_driver_glx.debug_fn.glXGetFBConfigFromVisualSGIXFn != nullptr);
- GLXFBConfig result =
- g_driver_glx.debug_fn.glXGetFBConfigFromVisualSGIXFn(dpy, visualInfo);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-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) << ")");
- DCHECK(g_driver_glx.debug_fn.glXGetFBConfigsFn != nullptr);
- GLXFBConfig* result =
- g_driver_glx.debug_fn.glXGetFBConfigsFn(dpy, screen, nelements);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static bool GL_BINDING_CALL Debug_glXGetMscRateOML(Display* dpy,
- GLXDrawable drawable,
- int32_t* numerator,
- int32_t* denominator) {
- GL_SERVICE_LOG("glXGetMscRateOML"
- << "(" << static_cast<const void*>(dpy) << ", " << drawable
- << ", " << static_cast<const void*>(numerator) << ", "
- << static_cast<const void*>(denominator) << ")");
- DCHECK(g_driver_glx.debug_fn.glXGetMscRateOMLFn != nullptr);
- bool result = g_driver_glx.debug_fn.glXGetMscRateOMLFn(
- dpy, drawable, numerator, denominator);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static void GL_BINDING_CALL Debug_glXGetSelectedEvent(Display* dpy,
- GLXDrawable drawable,
- unsigned long* mask) {
- GL_SERVICE_LOG("glXGetSelectedEvent"
- << "(" << static_cast<const void*>(dpy) << ", " << drawable
- << ", " << static_cast<const void*>(mask) << ")");
- DCHECK(g_driver_glx.debug_fn.glXGetSelectedEventFn != nullptr);
- g_driver_glx.debug_fn.glXGetSelectedEventFn(dpy, drawable, mask);
-}
-
-static bool GL_BINDING_CALL Debug_glXGetSyncValuesOML(Display* dpy,
- GLXDrawable drawable,
- int64_t* ust,
- int64_t* msc,
- int64_t* sbc) {
- GL_SERVICE_LOG("glXGetSyncValuesOML"
- << "(" << static_cast<const void*>(dpy) << ", " << drawable
- << ", " << static_cast<const void*>(ust) << ", "
- << static_cast<const void*>(msc) << ", "
- << static_cast<const void*>(sbc) << ")");
- DCHECK(g_driver_glx.debug_fn.glXGetSyncValuesOMLFn != nullptr);
- bool result =
- g_driver_glx.debug_fn.glXGetSyncValuesOMLFn(dpy, drawable, ust, msc, sbc);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static XVisualInfo* GL_BINDING_CALL
-Debug_glXGetVisualFromFBConfig(Display* dpy, GLXFBConfig config) {
- GL_SERVICE_LOG("glXGetVisualFromFBConfig"
- << "(" << static_cast<const void*>(dpy) << ", " << config
- << ")");
- DCHECK(g_driver_glx.debug_fn.glXGetVisualFromFBConfigFn != nullptr);
- XVisualInfo* result =
- g_driver_glx.debug_fn.glXGetVisualFromFBConfigFn(dpy, config);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static int GL_BINDING_CALL Debug_glXIsDirect(Display* dpy, GLXContext ctx) {
- GL_SERVICE_LOG("glXIsDirect"
- << "(" << static_cast<const void*>(dpy) << ", " << ctx << ")");
- DCHECK(g_driver_glx.debug_fn.glXIsDirectFn != nullptr);
- int result = g_driver_glx.debug_fn.glXIsDirectFn(dpy, ctx);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static int GL_BINDING_CALL Debug_glXMakeContextCurrent(Display* dpy,
- GLXDrawable draw,
- GLXDrawable read,
- GLXContext ctx) {
- GL_SERVICE_LOG("glXMakeContextCurrent"
- << "(" << static_cast<const void*>(dpy) << ", " << draw << ", "
- << read << ", " << ctx << ")");
- DCHECK(g_driver_glx.debug_fn.glXMakeContextCurrentFn != nullptr);
- int result =
- g_driver_glx.debug_fn.glXMakeContextCurrentFn(dpy, draw, read, ctx);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static int GL_BINDING_CALL Debug_glXMakeCurrent(Display* dpy,
- GLXDrawable drawable,
- GLXContext ctx) {
- GL_SERVICE_LOG("glXMakeCurrent"
- << "(" << static_cast<const void*>(dpy) << ", " << drawable
- << ", " << ctx << ")");
- DCHECK(g_driver_glx.debug_fn.glXMakeCurrentFn != nullptr);
- int result = g_driver_glx.debug_fn.glXMakeCurrentFn(dpy, drawable, ctx);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-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)
- << ")");
- DCHECK(g_driver_glx.debug_fn.glXQueryContextFn != nullptr);
- int result =
- g_driver_glx.debug_fn.glXQueryContextFn(dpy, ctx, attribute, value);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static void GL_BINDING_CALL Debug_glXQueryDrawable(Display* dpy,
- GLXDrawable draw,
- int attribute,
- unsigned int* value) {
- GL_SERVICE_LOG("glXQueryDrawable"
- << "(" << static_cast<const void*>(dpy) << ", " << draw << ", "
- << attribute << ", " << static_cast<const void*>(value)
- << ")");
- DCHECK(g_driver_glx.debug_fn.glXQueryDrawableFn != nullptr);
- g_driver_glx.debug_fn.glXQueryDrawableFn(dpy, draw, attribute, value);
-}
-
-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) << ", "
- << static_cast<const void*>(event) << ")");
- DCHECK(g_driver_glx.debug_fn.glXQueryExtensionFn != nullptr);
- int result = g_driver_glx.debug_fn.glXQueryExtensionFn(dpy, errorb, event);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static const char* GL_BINDING_CALL Debug_glXQueryExtensionsString(Display* dpy,
- int screen) {
- GL_SERVICE_LOG("glXQueryExtensionsString"
- << "(" << static_cast<const void*>(dpy) << ", " << screen
- << ")");
- DCHECK(g_driver_glx.debug_fn.glXQueryExtensionsStringFn != nullptr);
- const char* result =
- g_driver_glx.debug_fn.glXQueryExtensionsStringFn(dpy, screen);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-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 << ")");
- DCHECK(g_driver_glx.debug_fn.glXQueryServerStringFn != nullptr);
- const char* result =
- g_driver_glx.debug_fn.glXQueryServerStringFn(dpy, screen, name);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-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) << ", "
- << static_cast<const void*>(min) << ")");
- DCHECK(g_driver_glx.debug_fn.glXQueryVersionFn != nullptr);
- int result = g_driver_glx.debug_fn.glXQueryVersionFn(dpy, maj, min);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static void GL_BINDING_CALL Debug_glXReleaseTexImageEXT(Display* dpy,
- GLXDrawable drawable,
- int buffer) {
- GL_SERVICE_LOG("glXReleaseTexImageEXT"
- << "(" << static_cast<const void*>(dpy) << ", " << drawable
- << ", " << buffer << ")");
- DCHECK(g_driver_glx.debug_fn.glXReleaseTexImageEXTFn != nullptr);
- g_driver_glx.debug_fn.glXReleaseTexImageEXTFn(dpy, drawable, buffer);
-}
-
-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 << ")");
- DCHECK(g_driver_glx.debug_fn.glXSelectEventFn != nullptr);
- g_driver_glx.debug_fn.glXSelectEventFn(dpy, drawable, mask);
-}
-
-static void GL_BINDING_CALL Debug_glXSwapBuffers(Display* dpy,
- GLXDrawable drawable) {
- GL_SERVICE_LOG("glXSwapBuffers"
- << "(" << static_cast<const void*>(dpy) << ", " << drawable
- << ")");
- DCHECK(g_driver_glx.debug_fn.glXSwapBuffersFn != nullptr);
- g_driver_glx.debug_fn.glXSwapBuffersFn(dpy, drawable);
-}
-
-static void GL_BINDING_CALL Debug_glXSwapIntervalEXT(Display* dpy,
- GLXDrawable drawable,
- int interval) {
- GL_SERVICE_LOG("glXSwapIntervalEXT"
- << "(" << static_cast<const void*>(dpy) << ", " << drawable
- << ", " << interval << ")");
- DCHECK(g_driver_glx.debug_fn.glXSwapIntervalEXTFn != nullptr);
- g_driver_glx.debug_fn.glXSwapIntervalEXTFn(dpy, drawable, interval);
-}
-
-static void GL_BINDING_CALL Debug_glXSwapIntervalMESA(unsigned int interval) {
- GL_SERVICE_LOG("glXSwapIntervalMESA"
- << "(" << interval << ")");
- DCHECK(g_driver_glx.debug_fn.glXSwapIntervalMESAFn != nullptr);
- g_driver_glx.debug_fn.glXSwapIntervalMESAFn(interval);
-}
-
-static void GL_BINDING_CALL Debug_glXUseXFont(Font font,
- int first,
- int count,
- int list) {
- GL_SERVICE_LOG("glXUseXFont"
- << "(" << font << ", " << first << ", " << count << ", "
- << list << ")");
- DCHECK(g_driver_glx.debug_fn.glXUseXFontFn != nullptr);
- g_driver_glx.debug_fn.glXUseXFontFn(font, first, count, list);
-}
-
-static void GL_BINDING_CALL Debug_glXWaitGL(void) {
- GL_SERVICE_LOG("glXWaitGL"
- << "("
- << ")");
- DCHECK(g_driver_glx.debug_fn.glXWaitGLFn != nullptr);
- g_driver_glx.debug_fn.glXWaitGLFn();
-}
-
-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) << ")");
- DCHECK(g_driver_glx.debug_fn.glXWaitVideoSyncSGIFn != nullptr);
- int result =
- g_driver_glx.debug_fn.glXWaitVideoSyncSGIFn(divisor, remainder, count);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static void GL_BINDING_CALL Debug_glXWaitX(void) {
- GL_SERVICE_LOG("glXWaitX"
- << "("
- << ")");
- DCHECK(g_driver_glx.debug_fn.glXWaitXFn != nullptr);
- g_driver_glx.debug_fn.glXWaitXFn();
-}
-} // extern "C"
-
-void DriverGLX::InitializeDebugBindings() {
- if (!debug_fn.glXBindTexImageEXTFn) {
- debug_fn.glXBindTexImageEXTFn = fn.glXBindTexImageEXTFn;
- fn.glXBindTexImageEXTFn = Debug_glXBindTexImageEXT;
- }
- if (!debug_fn.glXChooseFBConfigFn) {
- debug_fn.glXChooseFBConfigFn = fn.glXChooseFBConfigFn;
- fn.glXChooseFBConfigFn = Debug_glXChooseFBConfig;
- }
- if (!debug_fn.glXChooseVisualFn) {
- debug_fn.glXChooseVisualFn = fn.glXChooseVisualFn;
- fn.glXChooseVisualFn = Debug_glXChooseVisual;
- }
- if (!debug_fn.glXCopyContextFn) {
- debug_fn.glXCopyContextFn = fn.glXCopyContextFn;
- fn.glXCopyContextFn = Debug_glXCopyContext;
- }
- if (!debug_fn.glXCopySubBufferMESAFn) {
- debug_fn.glXCopySubBufferMESAFn = fn.glXCopySubBufferMESAFn;
- fn.glXCopySubBufferMESAFn = Debug_glXCopySubBufferMESA;
- }
- if (!debug_fn.glXCreateContextFn) {
- debug_fn.glXCreateContextFn = fn.glXCreateContextFn;
- fn.glXCreateContextFn = Debug_glXCreateContext;
- }
- if (!debug_fn.glXCreateContextAttribsARBFn) {
- debug_fn.glXCreateContextAttribsARBFn = fn.glXCreateContextAttribsARBFn;
- fn.glXCreateContextAttribsARBFn = Debug_glXCreateContextAttribsARB;
- }
- if (!debug_fn.glXCreateGLXPixmapFn) {
- debug_fn.glXCreateGLXPixmapFn = fn.glXCreateGLXPixmapFn;
- fn.glXCreateGLXPixmapFn = Debug_glXCreateGLXPixmap;
- }
- if (!debug_fn.glXCreateNewContextFn) {
- debug_fn.glXCreateNewContextFn = fn.glXCreateNewContextFn;
- fn.glXCreateNewContextFn = Debug_glXCreateNewContext;
- }
- if (!debug_fn.glXCreatePbufferFn) {
- debug_fn.glXCreatePbufferFn = fn.glXCreatePbufferFn;
- fn.glXCreatePbufferFn = Debug_glXCreatePbuffer;
- }
- if (!debug_fn.glXCreatePixmapFn) {
- debug_fn.glXCreatePixmapFn = fn.glXCreatePixmapFn;
- fn.glXCreatePixmapFn = Debug_glXCreatePixmap;
- }
- if (!debug_fn.glXCreateWindowFn) {
- debug_fn.glXCreateWindowFn = fn.glXCreateWindowFn;
- fn.glXCreateWindowFn = Debug_glXCreateWindow;
- }
- if (!debug_fn.glXDestroyContextFn) {
- debug_fn.glXDestroyContextFn = fn.glXDestroyContextFn;
- fn.glXDestroyContextFn = Debug_glXDestroyContext;
- }
- if (!debug_fn.glXDestroyGLXPixmapFn) {
- debug_fn.glXDestroyGLXPixmapFn = fn.glXDestroyGLXPixmapFn;
- fn.glXDestroyGLXPixmapFn = Debug_glXDestroyGLXPixmap;
- }
- if (!debug_fn.glXDestroyPbufferFn) {
- debug_fn.glXDestroyPbufferFn = fn.glXDestroyPbufferFn;
- fn.glXDestroyPbufferFn = Debug_glXDestroyPbuffer;
- }
- if (!debug_fn.glXDestroyPixmapFn) {
- debug_fn.glXDestroyPixmapFn = fn.glXDestroyPixmapFn;
- fn.glXDestroyPixmapFn = Debug_glXDestroyPixmap;
- }
- if (!debug_fn.glXDestroyWindowFn) {
- debug_fn.glXDestroyWindowFn = fn.glXDestroyWindowFn;
- fn.glXDestroyWindowFn = Debug_glXDestroyWindow;
- }
- if (!debug_fn.glXGetClientStringFn) {
- debug_fn.glXGetClientStringFn = fn.glXGetClientStringFn;
- fn.glXGetClientStringFn = Debug_glXGetClientString;
- }
- if (!debug_fn.glXGetConfigFn) {
- debug_fn.glXGetConfigFn = fn.glXGetConfigFn;
- fn.glXGetConfigFn = Debug_glXGetConfig;
- }
- if (!debug_fn.glXGetCurrentContextFn) {
- debug_fn.glXGetCurrentContextFn = fn.glXGetCurrentContextFn;
- fn.glXGetCurrentContextFn = Debug_glXGetCurrentContext;
- }
- if (!debug_fn.glXGetCurrentDisplayFn) {
- debug_fn.glXGetCurrentDisplayFn = fn.glXGetCurrentDisplayFn;
- fn.glXGetCurrentDisplayFn = Debug_glXGetCurrentDisplay;
- }
- if (!debug_fn.glXGetCurrentDrawableFn) {
- debug_fn.glXGetCurrentDrawableFn = fn.glXGetCurrentDrawableFn;
- fn.glXGetCurrentDrawableFn = Debug_glXGetCurrentDrawable;
- }
- if (!debug_fn.glXGetCurrentReadDrawableFn) {
- debug_fn.glXGetCurrentReadDrawableFn = fn.glXGetCurrentReadDrawableFn;
- fn.glXGetCurrentReadDrawableFn = Debug_glXGetCurrentReadDrawable;
- }
- if (!debug_fn.glXGetFBConfigAttribFn) {
- debug_fn.glXGetFBConfigAttribFn = fn.glXGetFBConfigAttribFn;
- fn.glXGetFBConfigAttribFn = Debug_glXGetFBConfigAttrib;
- }
- if (!debug_fn.glXGetFBConfigFromVisualSGIXFn) {
- debug_fn.glXGetFBConfigFromVisualSGIXFn = fn.glXGetFBConfigFromVisualSGIXFn;
- fn.glXGetFBConfigFromVisualSGIXFn = Debug_glXGetFBConfigFromVisualSGIX;
- }
- if (!debug_fn.glXGetFBConfigsFn) {
- debug_fn.glXGetFBConfigsFn = fn.glXGetFBConfigsFn;
- fn.glXGetFBConfigsFn = Debug_glXGetFBConfigs;
- }
- if (!debug_fn.glXGetMscRateOMLFn) {
- debug_fn.glXGetMscRateOMLFn = fn.glXGetMscRateOMLFn;
- fn.glXGetMscRateOMLFn = Debug_glXGetMscRateOML;
- }
- if (!debug_fn.glXGetSelectedEventFn) {
- debug_fn.glXGetSelectedEventFn = fn.glXGetSelectedEventFn;
- fn.glXGetSelectedEventFn = Debug_glXGetSelectedEvent;
- }
- if (!debug_fn.glXGetSyncValuesOMLFn) {
- debug_fn.glXGetSyncValuesOMLFn = fn.glXGetSyncValuesOMLFn;
- fn.glXGetSyncValuesOMLFn = Debug_glXGetSyncValuesOML;
- }
- if (!debug_fn.glXGetVisualFromFBConfigFn) {
- debug_fn.glXGetVisualFromFBConfigFn = fn.glXGetVisualFromFBConfigFn;
- fn.glXGetVisualFromFBConfigFn = Debug_glXGetVisualFromFBConfig;
- }
- if (!debug_fn.glXIsDirectFn) {
- debug_fn.glXIsDirectFn = fn.glXIsDirectFn;
- fn.glXIsDirectFn = Debug_glXIsDirect;
- }
- if (!debug_fn.glXMakeContextCurrentFn) {
- debug_fn.glXMakeContextCurrentFn = fn.glXMakeContextCurrentFn;
- fn.glXMakeContextCurrentFn = Debug_glXMakeContextCurrent;
- }
- if (!debug_fn.glXMakeCurrentFn) {
- debug_fn.glXMakeCurrentFn = fn.glXMakeCurrentFn;
- fn.glXMakeCurrentFn = Debug_glXMakeCurrent;
- }
- if (!debug_fn.glXQueryContextFn) {
- debug_fn.glXQueryContextFn = fn.glXQueryContextFn;
- fn.glXQueryContextFn = Debug_glXQueryContext;
- }
- if (!debug_fn.glXQueryDrawableFn) {
- debug_fn.glXQueryDrawableFn = fn.glXQueryDrawableFn;
- fn.glXQueryDrawableFn = Debug_glXQueryDrawable;
- }
- if (!debug_fn.glXQueryExtensionFn) {
- debug_fn.glXQueryExtensionFn = fn.glXQueryExtensionFn;
- fn.glXQueryExtensionFn = Debug_glXQueryExtension;
- }
- if (!debug_fn.glXQueryExtensionsStringFn) {
- debug_fn.glXQueryExtensionsStringFn = fn.glXQueryExtensionsStringFn;
- fn.glXQueryExtensionsStringFn = Debug_glXQueryExtensionsString;
- }
- if (!debug_fn.glXQueryServerStringFn) {
- debug_fn.glXQueryServerStringFn = fn.glXQueryServerStringFn;
- fn.glXQueryServerStringFn = Debug_glXQueryServerString;
- }
- if (!debug_fn.glXQueryVersionFn) {
- debug_fn.glXQueryVersionFn = fn.glXQueryVersionFn;
- fn.glXQueryVersionFn = Debug_glXQueryVersion;
- }
- if (!debug_fn.glXReleaseTexImageEXTFn) {
- debug_fn.glXReleaseTexImageEXTFn = fn.glXReleaseTexImageEXTFn;
- fn.glXReleaseTexImageEXTFn = Debug_glXReleaseTexImageEXT;
- }
- if (!debug_fn.glXSelectEventFn) {
- debug_fn.glXSelectEventFn = fn.glXSelectEventFn;
- fn.glXSelectEventFn = Debug_glXSelectEvent;
- }
- if (!debug_fn.glXSwapBuffersFn) {
- debug_fn.glXSwapBuffersFn = fn.glXSwapBuffersFn;
- fn.glXSwapBuffersFn = Debug_glXSwapBuffers;
- }
- if (!debug_fn.glXSwapIntervalEXTFn) {
- debug_fn.glXSwapIntervalEXTFn = fn.glXSwapIntervalEXTFn;
- fn.glXSwapIntervalEXTFn = Debug_glXSwapIntervalEXT;
- }
- if (!debug_fn.glXSwapIntervalMESAFn) {
- debug_fn.glXSwapIntervalMESAFn = fn.glXSwapIntervalMESAFn;
- fn.glXSwapIntervalMESAFn = Debug_glXSwapIntervalMESA;
- }
- if (!debug_fn.glXUseXFontFn) {
- debug_fn.glXUseXFontFn = fn.glXUseXFontFn;
- fn.glXUseXFontFn = Debug_glXUseXFont;
- }
- if (!debug_fn.glXWaitGLFn) {
- debug_fn.glXWaitGLFn = fn.glXWaitGLFn;
- fn.glXWaitGLFn = Debug_glXWaitGL;
- }
- if (!debug_fn.glXWaitVideoSyncSGIFn) {
- debug_fn.glXWaitVideoSyncSGIFn = fn.glXWaitVideoSyncSGIFn;
- fn.glXWaitVideoSyncSGIFn = Debug_glXWaitVideoSyncSGI;
- }
- if (!debug_fn.glXWaitXFn) {
- debug_fn.glXWaitXFn = fn.glXWaitXFn;
- fn.glXWaitXFn = Debug_glXWaitX;
- }
- g_debugBindingsInitialized = true;
}
void DriverGLX::ClearBindings() {
@@ -1573,4 +785,498 @@ void TraceGLXApi::glXWaitXFn(void) {
glx_api_->glXWaitXFn();
}
+void DebugGLXApi::glXBindTexImageEXTFn(Display* dpy,
+ GLXDrawable drawable,
+ int buffer,
+ int* attribList) {
+ GL_SERVICE_LOG("glXBindTexImageEXT"
+ << "(" << static_cast<const void*>(dpy) << ", " << drawable
+ << ", " << buffer << ", "
+ << static_cast<const void*>(attribList) << ")");
+ glx_api_->glXBindTexImageEXTFn(dpy, drawable, buffer, attribList);
+}
+
+GLXFBConfig* DebugGLXApi::glXChooseFBConfigFn(Display* dpy,
+ int screen,
+ const int* attribList,
+ int* nitems) {
+ GL_SERVICE_LOG("glXChooseFBConfig"
+ << "(" << static_cast<const void*>(dpy) << ", " << screen
+ << ", " << static_cast<const void*>(attribList) << ", "
+ << static_cast<const void*>(nitems) << ")");
+ GLXFBConfig* result =
+ glx_api_->glXChooseFBConfigFn(dpy, screen, attribList, nitems);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+XVisualInfo* DebugGLXApi::glXChooseVisualFn(Display* dpy,
+ int screen,
+ int* attribList) {
+ GL_SERVICE_LOG("glXChooseVisual"
+ << "(" << static_cast<const void*>(dpy) << ", " << screen
+ << ", " << static_cast<const void*>(attribList) << ")");
+ XVisualInfo* result = glx_api_->glXChooseVisualFn(dpy, screen, attribList);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+void DebugGLXApi::glXCopyContextFn(Display* dpy,
+ GLXContext src,
+ GLXContext dst,
+ unsigned long mask) {
+ GL_SERVICE_LOG("glXCopyContext"
+ << "(" << static_cast<const void*>(dpy) << ", " << src << ", "
+ << dst << ", " << mask << ")");
+ glx_api_->glXCopyContextFn(dpy, src, dst, mask);
+}
+
+void DebugGLXApi::glXCopySubBufferMESAFn(Display* dpy,
+ GLXDrawable drawable,
+ int x,
+ int y,
+ int width,
+ int height) {
+ GL_SERVICE_LOG("glXCopySubBufferMESA"
+ << "(" << static_cast<const void*>(dpy) << ", " << drawable
+ << ", " << x << ", " << y << ", " << width << ", " << height
+ << ")");
+ glx_api_->glXCopySubBufferMESAFn(dpy, drawable, x, y, width, height);
+}
+
+GLXContext DebugGLXApi::glXCreateContextFn(Display* dpy,
+ XVisualInfo* vis,
+ GLXContext shareList,
+ int direct) {
+ GL_SERVICE_LOG("glXCreateContext"
+ << "(" << static_cast<const void*>(dpy) << ", "
+ << static_cast<const void*>(vis) << ", " << shareList << ", "
+ << direct << ")");
+ GLXContext result = glx_api_->glXCreateContextFn(dpy, vis, shareList, direct);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+GLXContext DebugGLXApi::glXCreateContextAttribsARBFn(Display* dpy,
+ GLXFBConfig config,
+ GLXContext share_context,
+ int direct,
+ const int* attrib_list) {
+ GL_SERVICE_LOG("glXCreateContextAttribsARB"
+ << "(" << static_cast<const void*>(dpy) << ", " << config
+ << ", " << share_context << ", " << direct << ", "
+ << static_cast<const void*>(attrib_list) << ")");
+ GLXContext result = glx_api_->glXCreateContextAttribsARBFn(
+ dpy, config, share_context, direct, attrib_list);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+GLXPixmap DebugGLXApi::glXCreateGLXPixmapFn(Display* dpy,
+ XVisualInfo* visual,
+ Pixmap pixmap) {
+ GL_SERVICE_LOG("glXCreateGLXPixmap"
+ << "(" << static_cast<const void*>(dpy) << ", "
+ << static_cast<const void*>(visual) << ", " << pixmap << ")");
+ GLXPixmap result = glx_api_->glXCreateGLXPixmapFn(dpy, visual, pixmap);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+GLXContext DebugGLXApi::glXCreateNewContextFn(Display* dpy,
+ GLXFBConfig config,
+ int renderType,
+ GLXContext shareList,
+ int direct) {
+ GL_SERVICE_LOG("glXCreateNewContext"
+ << "(" << static_cast<const void*>(dpy) << ", " << config
+ << ", " << renderType << ", " << shareList << ", " << direct
+ << ")");
+ GLXContext result = glx_api_->glXCreateNewContextFn(dpy, config, renderType,
+ shareList, direct);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+GLXPbuffer DebugGLXApi::glXCreatePbufferFn(Display* dpy,
+ GLXFBConfig config,
+ const int* attribList) {
+ GL_SERVICE_LOG("glXCreatePbuffer"
+ << "(" << static_cast<const void*>(dpy) << ", " << config
+ << ", " << static_cast<const void*>(attribList) << ")");
+ GLXPbuffer result = glx_api_->glXCreatePbufferFn(dpy, config, attribList);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+GLXPixmap DebugGLXApi::glXCreatePixmapFn(Display* dpy,
+ GLXFBConfig config,
+ Pixmap pixmap,
+ const int* attribList) {
+ GL_SERVICE_LOG("glXCreatePixmap"
+ << "(" << static_cast<const void*>(dpy) << ", " << config
+ << ", " << pixmap << ", "
+ << static_cast<const void*>(attribList) << ")");
+ GLXPixmap result =
+ glx_api_->glXCreatePixmapFn(dpy, config, pixmap, attribList);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+GLXWindow DebugGLXApi::glXCreateWindowFn(Display* dpy,
+ GLXFBConfig config,
+ Window win,
+ const int* attribList) {
+ GL_SERVICE_LOG("glXCreateWindow"
+ << "(" << static_cast<const void*>(dpy) << ", " << config
+ << ", " << win << ", " << static_cast<const void*>(attribList)
+ << ")");
+ GLXWindow result = glx_api_->glXCreateWindowFn(dpy, config, win, attribList);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+void DebugGLXApi::glXDestroyContextFn(Display* dpy, GLXContext ctx) {
+ GL_SERVICE_LOG("glXDestroyContext"
+ << "(" << static_cast<const void*>(dpy) << ", " << ctx << ")");
+ glx_api_->glXDestroyContextFn(dpy, ctx);
+}
+
+void DebugGLXApi::glXDestroyGLXPixmapFn(Display* dpy, GLXPixmap pixmap) {
+ GL_SERVICE_LOG("glXDestroyGLXPixmap"
+ << "(" << static_cast<const void*>(dpy) << ", " << pixmap
+ << ")");
+ glx_api_->glXDestroyGLXPixmapFn(dpy, pixmap);
+}
+
+void DebugGLXApi::glXDestroyPbufferFn(Display* dpy, GLXPbuffer pbuf) {
+ GL_SERVICE_LOG("glXDestroyPbuffer"
+ << "(" << static_cast<const void*>(dpy) << ", " << pbuf
+ << ")");
+ glx_api_->glXDestroyPbufferFn(dpy, pbuf);
+}
+
+void DebugGLXApi::glXDestroyPixmapFn(Display* dpy, GLXPixmap pixmap) {
+ GL_SERVICE_LOG("glXDestroyPixmap"
+ << "(" << static_cast<const void*>(dpy) << ", " << pixmap
+ << ")");
+ glx_api_->glXDestroyPixmapFn(dpy, pixmap);
+}
+
+void DebugGLXApi::glXDestroyWindowFn(Display* dpy, GLXWindow window) {
+ GL_SERVICE_LOG("glXDestroyWindow"
+ << "(" << static_cast<const void*>(dpy) << ", " << window
+ << ")");
+ glx_api_->glXDestroyWindowFn(dpy, window);
+}
+
+const char* DebugGLXApi::glXGetClientStringFn(Display* dpy, int name) {
+ GL_SERVICE_LOG("glXGetClientString"
+ << "(" << static_cast<const void*>(dpy) << ", " << name
+ << ")");
+ const char* result = glx_api_->glXGetClientStringFn(dpy, name);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+int DebugGLXApi::glXGetConfigFn(Display* dpy,
+ XVisualInfo* visual,
+ int attrib,
+ int* value) {
+ GL_SERVICE_LOG("glXGetConfig"
+ << "(" << static_cast<const void*>(dpy) << ", "
+ << static_cast<const void*>(visual) << ", " << attrib << ", "
+ << static_cast<const void*>(value) << ")");
+ int result = glx_api_->glXGetConfigFn(dpy, visual, attrib, value);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+GLXContext DebugGLXApi::glXGetCurrentContextFn(void) {
+ GL_SERVICE_LOG("glXGetCurrentContext"
+ << "("
+ << ")");
+ GLXContext result = glx_api_->glXGetCurrentContextFn();
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+Display* DebugGLXApi::glXGetCurrentDisplayFn(void) {
+ GL_SERVICE_LOG("glXGetCurrentDisplay"
+ << "("
+ << ")");
+ Display* result = glx_api_->glXGetCurrentDisplayFn();
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+GLXDrawable DebugGLXApi::glXGetCurrentDrawableFn(void) {
+ GL_SERVICE_LOG("glXGetCurrentDrawable"
+ << "("
+ << ")");
+ GLXDrawable result = glx_api_->glXGetCurrentDrawableFn();
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+GLXDrawable DebugGLXApi::glXGetCurrentReadDrawableFn(void) {
+ GL_SERVICE_LOG("glXGetCurrentReadDrawable"
+ << "("
+ << ")");
+ GLXDrawable result = glx_api_->glXGetCurrentReadDrawableFn();
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+int DebugGLXApi::glXGetFBConfigAttribFn(Display* dpy,
+ GLXFBConfig config,
+ int attribute,
+ int* value) {
+ GL_SERVICE_LOG("glXGetFBConfigAttrib"
+ << "(" << static_cast<const void*>(dpy) << ", " << config
+ << ", " << attribute << ", " << static_cast<const void*>(value)
+ << ")");
+ int result = glx_api_->glXGetFBConfigAttribFn(dpy, config, attribute, value);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+GLXFBConfig DebugGLXApi::glXGetFBConfigFromVisualSGIXFn(
+ Display* dpy,
+ XVisualInfo* visualInfo) {
+ GL_SERVICE_LOG("glXGetFBConfigFromVisualSGIX"
+ << "(" << static_cast<const void*>(dpy) << ", "
+ << static_cast<const void*>(visualInfo) << ")");
+ GLXFBConfig result =
+ glx_api_->glXGetFBConfigFromVisualSGIXFn(dpy, visualInfo);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+GLXFBConfig* DebugGLXApi::glXGetFBConfigsFn(Display* dpy,
+ int screen,
+ int* nelements) {
+ GL_SERVICE_LOG("glXGetFBConfigs"
+ << "(" << static_cast<const void*>(dpy) << ", " << screen
+ << ", " << static_cast<const void*>(nelements) << ")");
+ GLXFBConfig* result = glx_api_->glXGetFBConfigsFn(dpy, screen, nelements);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+bool DebugGLXApi::glXGetMscRateOMLFn(Display* dpy,
+ GLXDrawable drawable,
+ int32_t* numerator,
+ int32_t* denominator) {
+ GL_SERVICE_LOG("glXGetMscRateOML"
+ << "(" << static_cast<const void*>(dpy) << ", " << drawable
+ << ", " << static_cast<const void*>(numerator) << ", "
+ << static_cast<const void*>(denominator) << ")");
+ bool result =
+ glx_api_->glXGetMscRateOMLFn(dpy, drawable, numerator, denominator);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+void DebugGLXApi::glXGetSelectedEventFn(Display* dpy,
+ GLXDrawable drawable,
+ unsigned long* mask) {
+ GL_SERVICE_LOG("glXGetSelectedEvent"
+ << "(" << static_cast<const void*>(dpy) << ", " << drawable
+ << ", " << static_cast<const void*>(mask) << ")");
+ glx_api_->glXGetSelectedEventFn(dpy, drawable, mask);
+}
+
+bool DebugGLXApi::glXGetSyncValuesOMLFn(Display* dpy,
+ GLXDrawable drawable,
+ int64_t* ust,
+ int64_t* msc,
+ int64_t* sbc) {
+ GL_SERVICE_LOG("glXGetSyncValuesOML"
+ << "(" << static_cast<const void*>(dpy) << ", " << drawable
+ << ", " << static_cast<const void*>(ust) << ", "
+ << static_cast<const void*>(msc) << ", "
+ << static_cast<const void*>(sbc) << ")");
+ bool result = glx_api_->glXGetSyncValuesOMLFn(dpy, drawable, ust, msc, sbc);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+XVisualInfo* DebugGLXApi::glXGetVisualFromFBConfigFn(Display* dpy,
+ GLXFBConfig config) {
+ GL_SERVICE_LOG("glXGetVisualFromFBConfig"
+ << "(" << static_cast<const void*>(dpy) << ", " << config
+ << ")");
+ XVisualInfo* result = glx_api_->glXGetVisualFromFBConfigFn(dpy, config);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+int DebugGLXApi::glXIsDirectFn(Display* dpy, GLXContext ctx) {
+ GL_SERVICE_LOG("glXIsDirect"
+ << "(" << static_cast<const void*>(dpy) << ", " << ctx << ")");
+ int result = glx_api_->glXIsDirectFn(dpy, ctx);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+int DebugGLXApi::glXMakeContextCurrentFn(Display* dpy,
+ GLXDrawable draw,
+ GLXDrawable read,
+ GLXContext ctx) {
+ GL_SERVICE_LOG("glXMakeContextCurrent"
+ << "(" << static_cast<const void*>(dpy) << ", " << draw << ", "
+ << read << ", " << ctx << ")");
+ int result = glx_api_->glXMakeContextCurrentFn(dpy, draw, read, ctx);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+int DebugGLXApi::glXMakeCurrentFn(Display* dpy,
+ GLXDrawable drawable,
+ GLXContext ctx) {
+ GL_SERVICE_LOG("glXMakeCurrent"
+ << "(" << static_cast<const void*>(dpy) << ", " << drawable
+ << ", " << ctx << ")");
+ int result = glx_api_->glXMakeCurrentFn(dpy, drawable, ctx);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+int DebugGLXApi::glXQueryContextFn(Display* dpy,
+ GLXContext ctx,
+ int attribute,
+ int* value) {
+ GL_SERVICE_LOG("glXQueryContext"
+ << "(" << static_cast<const void*>(dpy) << ", " << ctx << ", "
+ << attribute << ", " << static_cast<const void*>(value)
+ << ")");
+ int result = glx_api_->glXQueryContextFn(dpy, ctx, attribute, value);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+void DebugGLXApi::glXQueryDrawableFn(Display* dpy,
+ GLXDrawable draw,
+ int attribute,
+ unsigned int* value) {
+ GL_SERVICE_LOG("glXQueryDrawable"
+ << "(" << static_cast<const void*>(dpy) << ", " << draw << ", "
+ << attribute << ", " << static_cast<const void*>(value)
+ << ")");
+ glx_api_->glXQueryDrawableFn(dpy, draw, attribute, value);
+}
+
+int DebugGLXApi::glXQueryExtensionFn(Display* dpy, int* errorb, int* event) {
+ GL_SERVICE_LOG("glXQueryExtension"
+ << "(" << static_cast<const void*>(dpy) << ", "
+ << static_cast<const void*>(errorb) << ", "
+ << static_cast<const void*>(event) << ")");
+ int result = glx_api_->glXQueryExtensionFn(dpy, errorb, event);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+const char* DebugGLXApi::glXQueryExtensionsStringFn(Display* dpy, int screen) {
+ GL_SERVICE_LOG("glXQueryExtensionsString"
+ << "(" << static_cast<const void*>(dpy) << ", " << screen
+ << ")");
+ const char* result = glx_api_->glXQueryExtensionsStringFn(dpy, screen);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+const char* DebugGLXApi::glXQueryServerStringFn(Display* dpy,
+ int screen,
+ int name) {
+ GL_SERVICE_LOG("glXQueryServerString"
+ << "(" << static_cast<const void*>(dpy) << ", " << screen
+ << ", " << name << ")");
+ const char* result = glx_api_->glXQueryServerStringFn(dpy, screen, name);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+int DebugGLXApi::glXQueryVersionFn(Display* dpy, int* maj, int* min) {
+ GL_SERVICE_LOG("glXQueryVersion"
+ << "(" << static_cast<const void*>(dpy) << ", "
+ << static_cast<const void*>(maj) << ", "
+ << static_cast<const void*>(min) << ")");
+ int result = glx_api_->glXQueryVersionFn(dpy, maj, min);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+void DebugGLXApi::glXReleaseTexImageEXTFn(Display* dpy,
+ GLXDrawable drawable,
+ int buffer) {
+ GL_SERVICE_LOG("glXReleaseTexImageEXT"
+ << "(" << static_cast<const void*>(dpy) << ", " << drawable
+ << ", " << buffer << ")");
+ glx_api_->glXReleaseTexImageEXTFn(dpy, drawable, buffer);
+}
+
+void DebugGLXApi::glXSelectEventFn(Display* dpy,
+ GLXDrawable drawable,
+ unsigned long mask) {
+ GL_SERVICE_LOG("glXSelectEvent"
+ << "(" << static_cast<const void*>(dpy) << ", " << drawable
+ << ", " << mask << ")");
+ glx_api_->glXSelectEventFn(dpy, drawable, mask);
+}
+
+void DebugGLXApi::glXSwapBuffersFn(Display* dpy, GLXDrawable drawable) {
+ GL_SERVICE_LOG("glXSwapBuffers"
+ << "(" << static_cast<const void*>(dpy) << ", " << drawable
+ << ")");
+ glx_api_->glXSwapBuffersFn(dpy, drawable);
+}
+
+void DebugGLXApi::glXSwapIntervalEXTFn(Display* dpy,
+ GLXDrawable drawable,
+ int interval) {
+ GL_SERVICE_LOG("glXSwapIntervalEXT"
+ << "(" << static_cast<const void*>(dpy) << ", " << drawable
+ << ", " << interval << ")");
+ glx_api_->glXSwapIntervalEXTFn(dpy, drawable, interval);
+}
+
+void DebugGLXApi::glXSwapIntervalMESAFn(unsigned int interval) {
+ GL_SERVICE_LOG("glXSwapIntervalMESA"
+ << "(" << interval << ")");
+ glx_api_->glXSwapIntervalMESAFn(interval);
+}
+
+void DebugGLXApi::glXUseXFontFn(Font font, int first, int count, int list) {
+ GL_SERVICE_LOG("glXUseXFont"
+ << "(" << font << ", " << first << ", " << count << ", "
+ << list << ")");
+ glx_api_->glXUseXFontFn(font, first, count, list);
+}
+
+void DebugGLXApi::glXWaitGLFn(void) {
+ GL_SERVICE_LOG("glXWaitGL"
+ << "("
+ << ")");
+ glx_api_->glXWaitGLFn();
+}
+
+int DebugGLXApi::glXWaitVideoSyncSGIFn(int divisor,
+ int remainder,
+ unsigned int* count) {
+ GL_SERVICE_LOG("glXWaitVideoSyncSGI"
+ << "(" << divisor << ", " << remainder << ", "
+ << static_cast<const void*>(count) << ")");
+ int result = glx_api_->glXWaitVideoSyncSGIFn(divisor, remainder, count);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+void DebugGLXApi::glXWaitXFn(void) {
+ GL_SERVICE_LOG("glXWaitX"
+ << "("
+ << ")");
+ glx_api_->glXWaitXFn();
+}
+
} // namespace gl
diff --git a/chromium/ui/gl/gl_bindings_autogen_osmesa.cc b/chromium/ui/gl/gl_bindings_autogen_osmesa.cc
index 7756f8a6014..27185e32f95 100644
--- a/chromium/ui/gl/gl_bindings_autogen_osmesa.cc
+++ b/chromium/ui/gl/gl_bindings_autogen_osmesa.cc
@@ -20,7 +20,6 @@
namespace gl {
-static bool g_debugBindingsInitialized;
DriverOSMESA g_driver_osmesa;
void DriverOSMESA::InitializeStaticBindings() {
@@ -52,188 +51,6 @@ void DriverOSMESA::InitializeExtensionBindings() {
std::string extensions(GetPlatformExtensions());
extensions += " ";
ALLOW_UNUSED_LOCAL(extensions);
-
- if (g_debugBindingsInitialized)
- InitializeDebugBindings();
-}
-
-extern "C" {
-
-static void GL_BINDING_CALL Debug_OSMesaColorClamp(GLboolean enable) {
- GL_SERVICE_LOG("OSMesaColorClamp"
- << "(" << GLEnums::GetStringBool(enable) << ")");
- DCHECK(g_driver_osmesa.debug_fn.OSMesaColorClampFn != nullptr);
- g_driver_osmesa.debug_fn.OSMesaColorClampFn(enable);
-}
-
-static OSMesaContext GL_BINDING_CALL
-Debug_OSMesaCreateContext(GLenum format, OSMesaContext sharelist) {
- GL_SERVICE_LOG("OSMesaCreateContext"
- << "(" << GLEnums::GetStringEnum(format) << ", " << sharelist
- << ")");
- DCHECK(g_driver_osmesa.debug_fn.OSMesaCreateContextFn != nullptr);
- OSMesaContext result =
- g_driver_osmesa.debug_fn.OSMesaCreateContextFn(format, sharelist);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static OSMesaContext GL_BINDING_CALL
-Debug_OSMesaCreateContextExt(GLenum format,
- GLint depthBits,
- GLint stencilBits,
- GLint accumBits,
- OSMesaContext sharelist) {
- GL_SERVICE_LOG("OSMesaCreateContextExt"
- << "(" << GLEnums::GetStringEnum(format) << ", " << depthBits
- << ", " << stencilBits << ", " << accumBits << ", "
- << sharelist << ")");
- DCHECK(g_driver_osmesa.debug_fn.OSMesaCreateContextExtFn != nullptr);
- OSMesaContext result = g_driver_osmesa.debug_fn.OSMesaCreateContextExtFn(
- format, depthBits, stencilBits, accumBits, sharelist);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static void GL_BINDING_CALL Debug_OSMesaDestroyContext(OSMesaContext ctx) {
- GL_SERVICE_LOG("OSMesaDestroyContext"
- << "(" << ctx << ")");
- DCHECK(g_driver_osmesa.debug_fn.OSMesaDestroyContextFn != nullptr);
- g_driver_osmesa.debug_fn.OSMesaDestroyContextFn(ctx);
-}
-
-static GLboolean GL_BINDING_CALL Debug_OSMesaGetColorBuffer(OSMesaContext c,
- GLint* width,
- GLint* height,
- GLint* format,
- void** buffer) {
- GL_SERVICE_LOG("OSMesaGetColorBuffer"
- << "(" << c << ", " << static_cast<const void*>(width) << ", "
- << static_cast<const void*>(height) << ", "
- << static_cast<const void*>(format) << ", " << buffer << ")");
- DCHECK(g_driver_osmesa.debug_fn.OSMesaGetColorBufferFn != nullptr);
- GLboolean result = g_driver_osmesa.debug_fn.OSMesaGetColorBufferFn(
- c, width, height, format, buffer);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static OSMesaContext GL_BINDING_CALL Debug_OSMesaGetCurrentContext(void) {
- GL_SERVICE_LOG("OSMesaGetCurrentContext"
- << "("
- << ")");
- DCHECK(g_driver_osmesa.debug_fn.OSMesaGetCurrentContextFn != nullptr);
- OSMesaContext result = g_driver_osmesa.debug_fn.OSMesaGetCurrentContextFn();
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static GLboolean GL_BINDING_CALL
-Debug_OSMesaGetDepthBuffer(OSMesaContext c,
- GLint* width,
- GLint* height,
- GLint* bytesPerValue,
- void** buffer) {
- GL_SERVICE_LOG("OSMesaGetDepthBuffer"
- << "(" << c << ", " << static_cast<const void*>(width) << ", "
- << static_cast<const void*>(height) << ", "
- << static_cast<const void*>(bytesPerValue) << ", " << buffer
- << ")");
- DCHECK(g_driver_osmesa.debug_fn.OSMesaGetDepthBufferFn != nullptr);
- GLboolean result = g_driver_osmesa.debug_fn.OSMesaGetDepthBufferFn(
- c, width, height, bytesPerValue, buffer);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static void GL_BINDING_CALL Debug_OSMesaGetIntegerv(GLint pname, GLint* value) {
- GL_SERVICE_LOG("OSMesaGetIntegerv"
- << "(" << pname << ", " << static_cast<const void*>(value)
- << ")");
- DCHECK(g_driver_osmesa.debug_fn.OSMesaGetIntegervFn != nullptr);
- g_driver_osmesa.debug_fn.OSMesaGetIntegervFn(pname, value);
-}
-
-static OSMESAproc GL_BINDING_CALL
-Debug_OSMesaGetProcAddress(const char* funcName) {
- GL_SERVICE_LOG("OSMesaGetProcAddress"
- << "(" << funcName << ")");
- DCHECK(g_driver_osmesa.debug_fn.OSMesaGetProcAddressFn != nullptr);
- OSMESAproc result = g_driver_osmesa.debug_fn.OSMesaGetProcAddressFn(funcName);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static GLboolean GL_BINDING_CALL Debug_OSMesaMakeCurrent(OSMesaContext ctx,
- void* buffer,
- GLenum type,
- GLsizei width,
- GLsizei height) {
- GL_SERVICE_LOG("OSMesaMakeCurrent"
- << "(" << ctx << ", " << static_cast<const void*>(buffer)
- << ", " << GLEnums::GetStringEnum(type) << ", " << width
- << ", " << height << ")");
- DCHECK(g_driver_osmesa.debug_fn.OSMesaMakeCurrentFn != nullptr);
- GLboolean result = g_driver_osmesa.debug_fn.OSMesaMakeCurrentFn(
- ctx, buffer, type, width, height);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static void GL_BINDING_CALL Debug_OSMesaPixelStore(GLint pname, GLint value) {
- GL_SERVICE_LOG("OSMesaPixelStore"
- << "(" << pname << ", " << value << ")");
- DCHECK(g_driver_osmesa.debug_fn.OSMesaPixelStoreFn != nullptr);
- g_driver_osmesa.debug_fn.OSMesaPixelStoreFn(pname, value);
-}
-} // extern "C"
-
-void DriverOSMESA::InitializeDebugBindings() {
- if (!debug_fn.OSMesaColorClampFn) {
- debug_fn.OSMesaColorClampFn = fn.OSMesaColorClampFn;
- fn.OSMesaColorClampFn = Debug_OSMesaColorClamp;
- }
- if (!debug_fn.OSMesaCreateContextFn) {
- debug_fn.OSMesaCreateContextFn = fn.OSMesaCreateContextFn;
- fn.OSMesaCreateContextFn = Debug_OSMesaCreateContext;
- }
- if (!debug_fn.OSMesaCreateContextExtFn) {
- debug_fn.OSMesaCreateContextExtFn = fn.OSMesaCreateContextExtFn;
- fn.OSMesaCreateContextExtFn = Debug_OSMesaCreateContextExt;
- }
- if (!debug_fn.OSMesaDestroyContextFn) {
- debug_fn.OSMesaDestroyContextFn = fn.OSMesaDestroyContextFn;
- fn.OSMesaDestroyContextFn = Debug_OSMesaDestroyContext;
- }
- if (!debug_fn.OSMesaGetColorBufferFn) {
- debug_fn.OSMesaGetColorBufferFn = fn.OSMesaGetColorBufferFn;
- fn.OSMesaGetColorBufferFn = Debug_OSMesaGetColorBuffer;
- }
- if (!debug_fn.OSMesaGetCurrentContextFn) {
- debug_fn.OSMesaGetCurrentContextFn = fn.OSMesaGetCurrentContextFn;
- fn.OSMesaGetCurrentContextFn = Debug_OSMesaGetCurrentContext;
- }
- if (!debug_fn.OSMesaGetDepthBufferFn) {
- debug_fn.OSMesaGetDepthBufferFn = fn.OSMesaGetDepthBufferFn;
- fn.OSMesaGetDepthBufferFn = Debug_OSMesaGetDepthBuffer;
- }
- if (!debug_fn.OSMesaGetIntegervFn) {
- debug_fn.OSMesaGetIntegervFn = fn.OSMesaGetIntegervFn;
- fn.OSMesaGetIntegervFn = Debug_OSMesaGetIntegerv;
- }
- if (!debug_fn.OSMesaGetProcAddressFn) {
- debug_fn.OSMesaGetProcAddressFn = fn.OSMesaGetProcAddressFn;
- fn.OSMesaGetProcAddressFn = Debug_OSMesaGetProcAddress;
- }
- if (!debug_fn.OSMesaMakeCurrentFn) {
- debug_fn.OSMesaMakeCurrentFn = fn.OSMesaMakeCurrentFn;
- fn.OSMesaMakeCurrentFn = Debug_OSMesaMakeCurrent;
- }
- if (!debug_fn.OSMesaPixelStoreFn) {
- debug_fn.OSMesaPixelStoreFn = fn.OSMesaPixelStoreFn;
- fn.OSMesaPixelStoreFn = Debug_OSMesaPixelStore;
- }
- g_debugBindingsInitialized = true;
}
void DriverOSMESA::ClearBindings() {
@@ -378,4 +195,118 @@ void TraceOSMESAApi::OSMesaPixelStoreFn(GLint pname, GLint value) {
osmesa_api_->OSMesaPixelStoreFn(pname, value);
}
+void DebugOSMESAApi::OSMesaColorClampFn(GLboolean enable) {
+ GL_SERVICE_LOG("OSMesaColorClamp"
+ << "(" << GLEnums::GetStringBool(enable) << ")");
+ osmesa_api_->OSMesaColorClampFn(enable);
+}
+
+OSMesaContext DebugOSMESAApi::OSMesaCreateContextFn(GLenum format,
+ OSMesaContext sharelist) {
+ GL_SERVICE_LOG("OSMesaCreateContext"
+ << "(" << GLEnums::GetStringEnum(format) << ", " << sharelist
+ << ")");
+ OSMesaContext result = osmesa_api_->OSMesaCreateContextFn(format, sharelist);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+OSMesaContext DebugOSMESAApi::OSMesaCreateContextExtFn(
+ GLenum format,
+ GLint depthBits,
+ GLint stencilBits,
+ GLint accumBits,
+ OSMesaContext sharelist) {
+ GL_SERVICE_LOG("OSMesaCreateContextExt"
+ << "(" << GLEnums::GetStringEnum(format) << ", " << depthBits
+ << ", " << stencilBits << ", " << accumBits << ", "
+ << sharelist << ")");
+ OSMesaContext result = osmesa_api_->OSMesaCreateContextExtFn(
+ format, depthBits, stencilBits, accumBits, sharelist);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+void DebugOSMESAApi::OSMesaDestroyContextFn(OSMesaContext ctx) {
+ GL_SERVICE_LOG("OSMesaDestroyContext"
+ << "(" << ctx << ")");
+ osmesa_api_->OSMesaDestroyContextFn(ctx);
+}
+
+GLboolean DebugOSMESAApi::OSMesaGetColorBufferFn(OSMesaContext c,
+ GLint* width,
+ GLint* height,
+ GLint* format,
+ void** buffer) {
+ GL_SERVICE_LOG("OSMesaGetColorBuffer"
+ << "(" << c << ", " << static_cast<const void*>(width) << ", "
+ << static_cast<const void*>(height) << ", "
+ << static_cast<const void*>(format) << ", " << buffer << ")");
+ GLboolean result =
+ osmesa_api_->OSMesaGetColorBufferFn(c, width, height, format, buffer);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+OSMesaContext DebugOSMESAApi::OSMesaGetCurrentContextFn(void) {
+ GL_SERVICE_LOG("OSMesaGetCurrentContext"
+ << "("
+ << ")");
+ OSMesaContext result = osmesa_api_->OSMesaGetCurrentContextFn();
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+GLboolean DebugOSMESAApi::OSMesaGetDepthBufferFn(OSMesaContext c,
+ GLint* width,
+ GLint* height,
+ GLint* bytesPerValue,
+ void** buffer) {
+ GL_SERVICE_LOG("OSMesaGetDepthBuffer"
+ << "(" << c << ", " << static_cast<const void*>(width) << ", "
+ << static_cast<const void*>(height) << ", "
+ << static_cast<const void*>(bytesPerValue) << ", " << buffer
+ << ")");
+ GLboolean result = osmesa_api_->OSMesaGetDepthBufferFn(c, width, height,
+ bytesPerValue, buffer);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+void DebugOSMESAApi::OSMesaGetIntegervFn(GLint pname, GLint* value) {
+ GL_SERVICE_LOG("OSMesaGetIntegerv"
+ << "(" << pname << ", " << static_cast<const void*>(value)
+ << ")");
+ osmesa_api_->OSMesaGetIntegervFn(pname, value);
+}
+
+OSMESAproc DebugOSMESAApi::OSMesaGetProcAddressFn(const char* funcName) {
+ GL_SERVICE_LOG("OSMesaGetProcAddress"
+ << "(" << funcName << ")");
+ OSMESAproc result = osmesa_api_->OSMesaGetProcAddressFn(funcName);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+GLboolean DebugOSMESAApi::OSMesaMakeCurrentFn(OSMesaContext ctx,
+ void* buffer,
+ GLenum type,
+ GLsizei width,
+ GLsizei height) {
+ GL_SERVICE_LOG("OSMesaMakeCurrent"
+ << "(" << ctx << ", " << static_cast<const void*>(buffer)
+ << ", " << GLEnums::GetStringEnum(type) << ", " << width
+ << ", " << height << ")");
+ GLboolean result =
+ osmesa_api_->OSMesaMakeCurrentFn(ctx, buffer, type, width, height);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+void DebugOSMESAApi::OSMesaPixelStoreFn(GLint pname, GLint value) {
+ GL_SERVICE_LOG("OSMesaPixelStore"
+ << "(" << pname << ", " << value << ")");
+ osmesa_api_->OSMesaPixelStoreFn(pname, value);
+}
+
} // namespace gl
diff --git a/chromium/ui/gl/gl_bindings_autogen_wgl.cc b/chromium/ui/gl/gl_bindings_autogen_wgl.cc
index c66533f2a22..465f13a2986 100644
--- a/chromium/ui/gl/gl_bindings_autogen_wgl.cc
+++ b/chromium/ui/gl/gl_bindings_autogen_wgl.cc
@@ -20,7 +20,6 @@
namespace gl {
-static bool g_debugBindingsInitialized;
DriverWGL g_driver_wgl;
void DriverWGL::InitializeStaticBindings() {
@@ -76,350 +75,47 @@ void DriverWGL::InitializeExtensionBindings() {
ext.b_WGL_EXT_swap_control =
extensions.find("WGL_EXT_swap_control ") != std::string::npos;
- debug_fn.wglChoosePixelFormatARBFn = 0;
if (ext.b_WGL_ARB_pixel_format) {
fn.wglChoosePixelFormatARBFn =
reinterpret_cast<wglChoosePixelFormatARBProc>(
GetGLProcAddress("wglChoosePixelFormatARB"));
}
- debug_fn.wglCreateContextAttribsARBFn = 0;
if (ext.b_WGL_ARB_create_context) {
fn.wglCreateContextAttribsARBFn =
reinterpret_cast<wglCreateContextAttribsARBProc>(
GetGLProcAddress("wglCreateContextAttribsARB"));
}
- debug_fn.wglCreatePbufferARBFn = 0;
if (ext.b_WGL_ARB_pbuffer) {
fn.wglCreatePbufferARBFn = reinterpret_cast<wglCreatePbufferARBProc>(
GetGLProcAddress("wglCreatePbufferARB"));
}
- debug_fn.wglDestroyPbufferARBFn = 0;
if (ext.b_WGL_ARB_pbuffer) {
fn.wglDestroyPbufferARBFn = reinterpret_cast<wglDestroyPbufferARBProc>(
GetGLProcAddress("wglDestroyPbufferARB"));
}
- debug_fn.wglGetPbufferDCARBFn = 0;
if (ext.b_WGL_ARB_pbuffer) {
fn.wglGetPbufferDCARBFn = reinterpret_cast<wglGetPbufferDCARBProc>(
GetGLProcAddress("wglGetPbufferDCARB"));
}
- debug_fn.wglQueryPbufferARBFn = 0;
if (ext.b_WGL_ARB_pbuffer) {
fn.wglQueryPbufferARBFn = reinterpret_cast<wglQueryPbufferARBProc>(
GetGLProcAddress("wglQueryPbufferARB"));
}
- debug_fn.wglReleasePbufferDCARBFn = 0;
if (ext.b_WGL_ARB_pbuffer) {
fn.wglReleasePbufferDCARBFn = reinterpret_cast<wglReleasePbufferDCARBProc>(
GetGLProcAddress("wglReleasePbufferDCARB"));
}
- debug_fn.wglSwapIntervalEXTFn = 0;
if (ext.b_WGL_EXT_swap_control) {
fn.wglSwapIntervalEXTFn = reinterpret_cast<wglSwapIntervalEXTProc>(
GetGLProcAddress("wglSwapIntervalEXT"));
}
-
- if (g_debugBindingsInitialized)
- InitializeDebugBindings();
-}
-
-extern "C" {
-
-static BOOL GL_BINDING_CALL
-Debug_wglChoosePixelFormatARB(HDC dc,
- const int* int_attrib_list,
- const float* float_attrib_list,
- UINT max_formats,
- int* formats,
- UINT* num_formats) {
- GL_SERVICE_LOG("wglChoosePixelFormatARB"
- << "(" << dc << ", "
- << static_cast<const void*>(int_attrib_list) << ", "
- << static_cast<const void*>(float_attrib_list) << ", "
- << max_formats << ", " << static_cast<const void*>(formats)
- << ", " << static_cast<const void*>(num_formats) << ")");
- DCHECK(g_driver_wgl.debug_fn.wglChoosePixelFormatARBFn != nullptr);
- BOOL result = g_driver_wgl.debug_fn.wglChoosePixelFormatARBFn(
- dc, int_attrib_list, float_attrib_list, max_formats, formats,
- num_formats);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static BOOL GL_BINDING_CALL Debug_wglCopyContext(HGLRC hglrcSrc,
- HGLRC hglrcDst,
- UINT mask) {
- GL_SERVICE_LOG("wglCopyContext"
- << "(" << hglrcSrc << ", " << hglrcDst << ", " << mask << ")");
- DCHECK(g_driver_wgl.debug_fn.wglCopyContextFn != nullptr);
- BOOL result =
- g_driver_wgl.debug_fn.wglCopyContextFn(hglrcSrc, hglrcDst, mask);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static HGLRC GL_BINDING_CALL Debug_wglCreateContext(HDC hdc) {
- GL_SERVICE_LOG("wglCreateContext"
- << "(" << hdc << ")");
- DCHECK(g_driver_wgl.debug_fn.wglCreateContextFn != nullptr);
- HGLRC result = g_driver_wgl.debug_fn.wglCreateContextFn(hdc);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static HGLRC GL_BINDING_CALL
-Debug_wglCreateContextAttribsARB(HDC hDC,
- HGLRC hShareContext,
- const int* attribList) {
- GL_SERVICE_LOG("wglCreateContextAttribsARB"
- << "(" << hDC << ", " << hShareContext << ", "
- << static_cast<const void*>(attribList) << ")");
- DCHECK(g_driver_wgl.debug_fn.wglCreateContextAttribsARBFn != nullptr);
- HGLRC result = g_driver_wgl.debug_fn.wglCreateContextAttribsARBFn(
- hDC, hShareContext, attribList);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static HGLRC GL_BINDING_CALL Debug_wglCreateLayerContext(HDC hdc,
- int iLayerPlane) {
- GL_SERVICE_LOG("wglCreateLayerContext"
- << "(" << hdc << ", " << iLayerPlane << ")");
- DCHECK(g_driver_wgl.debug_fn.wglCreateLayerContextFn != nullptr);
- HGLRC result =
- g_driver_wgl.debug_fn.wglCreateLayerContextFn(hdc, iLayerPlane);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static HPBUFFERARB GL_BINDING_CALL
-Debug_wglCreatePbufferARB(HDC hDC,
- int iPixelFormat,
- int iWidth,
- int iHeight,
- const int* piAttribList) {
- GL_SERVICE_LOG("wglCreatePbufferARB"
- << "(" << hDC << ", " << iPixelFormat << ", " << iWidth << ", "
- << iHeight << ", " << static_cast<const void*>(piAttribList)
- << ")");
- DCHECK(g_driver_wgl.debug_fn.wglCreatePbufferARBFn != nullptr);
- HPBUFFERARB result = g_driver_wgl.debug_fn.wglCreatePbufferARBFn(
- hDC, iPixelFormat, iWidth, iHeight, piAttribList);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static BOOL GL_BINDING_CALL Debug_wglDeleteContext(HGLRC hglrc) {
- GL_SERVICE_LOG("wglDeleteContext"
- << "(" << hglrc << ")");
- DCHECK(g_driver_wgl.debug_fn.wglDeleteContextFn != nullptr);
- BOOL result = g_driver_wgl.debug_fn.wglDeleteContextFn(hglrc);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static BOOL GL_BINDING_CALL Debug_wglDestroyPbufferARB(HPBUFFERARB hPbuffer) {
- GL_SERVICE_LOG("wglDestroyPbufferARB"
- << "(" << hPbuffer << ")");
- DCHECK(g_driver_wgl.debug_fn.wglDestroyPbufferARBFn != nullptr);
- BOOL result = g_driver_wgl.debug_fn.wglDestroyPbufferARBFn(hPbuffer);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static HGLRC GL_BINDING_CALL Debug_wglGetCurrentContext() {
- GL_SERVICE_LOG("wglGetCurrentContext"
- << "("
- << ")");
- DCHECK(g_driver_wgl.debug_fn.wglGetCurrentContextFn != nullptr);
- HGLRC result = g_driver_wgl.debug_fn.wglGetCurrentContextFn();
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static HDC GL_BINDING_CALL Debug_wglGetCurrentDC() {
- GL_SERVICE_LOG("wglGetCurrentDC"
- << "("
- << ")");
- DCHECK(g_driver_wgl.debug_fn.wglGetCurrentDCFn != nullptr);
- HDC result = g_driver_wgl.debug_fn.wglGetCurrentDCFn();
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static const char* GL_BINDING_CALL Debug_wglGetExtensionsStringARB(HDC hDC) {
- GL_SERVICE_LOG("wglGetExtensionsStringARB"
- << "(" << hDC << ")");
- DCHECK(g_driver_wgl.debug_fn.wglGetExtensionsStringARBFn != nullptr);
- const char* result = g_driver_wgl.debug_fn.wglGetExtensionsStringARBFn(hDC);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static const char* GL_BINDING_CALL Debug_wglGetExtensionsStringEXT() {
- GL_SERVICE_LOG("wglGetExtensionsStringEXT"
- << "("
- << ")");
- DCHECK(g_driver_wgl.debug_fn.wglGetExtensionsStringEXTFn != nullptr);
- const char* result = g_driver_wgl.debug_fn.wglGetExtensionsStringEXTFn();
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static HDC GL_BINDING_CALL Debug_wglGetPbufferDCARB(HPBUFFERARB hPbuffer) {
- GL_SERVICE_LOG("wglGetPbufferDCARB"
- << "(" << hPbuffer << ")");
- DCHECK(g_driver_wgl.debug_fn.wglGetPbufferDCARBFn != nullptr);
- HDC result = g_driver_wgl.debug_fn.wglGetPbufferDCARBFn(hPbuffer);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static BOOL GL_BINDING_CALL Debug_wglMakeCurrent(HDC hdc, HGLRC hglrc) {
- GL_SERVICE_LOG("wglMakeCurrent"
- << "(" << hdc << ", " << hglrc << ")");
- DCHECK(g_driver_wgl.debug_fn.wglMakeCurrentFn != nullptr);
- BOOL result = g_driver_wgl.debug_fn.wglMakeCurrentFn(hdc, hglrc);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static BOOL GL_BINDING_CALL Debug_wglQueryPbufferARB(HPBUFFERARB hPbuffer,
- int iAttribute,
- int* piValue) {
- GL_SERVICE_LOG("wglQueryPbufferARB"
- << "(" << hPbuffer << ", " << iAttribute << ", "
- << static_cast<const void*>(piValue) << ")");
- DCHECK(g_driver_wgl.debug_fn.wglQueryPbufferARBFn != nullptr);
- BOOL result =
- g_driver_wgl.debug_fn.wglQueryPbufferARBFn(hPbuffer, iAttribute, piValue);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static int GL_BINDING_CALL Debug_wglReleasePbufferDCARB(HPBUFFERARB hPbuffer,
- HDC hDC) {
- GL_SERVICE_LOG("wglReleasePbufferDCARB"
- << "(" << hPbuffer << ", " << hDC << ")");
- DCHECK(g_driver_wgl.debug_fn.wglReleasePbufferDCARBFn != nullptr);
- int result = g_driver_wgl.debug_fn.wglReleasePbufferDCARBFn(hPbuffer, hDC);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static BOOL GL_BINDING_CALL Debug_wglShareLists(HGLRC hglrc1, HGLRC hglrc2) {
- GL_SERVICE_LOG("wglShareLists"
- << "(" << hglrc1 << ", " << hglrc2 << ")");
- DCHECK(g_driver_wgl.debug_fn.wglShareListsFn != nullptr);
- BOOL result = g_driver_wgl.debug_fn.wglShareListsFn(hglrc1, hglrc2);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static BOOL GL_BINDING_CALL Debug_wglSwapIntervalEXT(int interval) {
- GL_SERVICE_LOG("wglSwapIntervalEXT"
- << "(" << interval << ")");
- DCHECK(g_driver_wgl.debug_fn.wglSwapIntervalEXTFn != nullptr);
- BOOL result = g_driver_wgl.debug_fn.wglSwapIntervalEXTFn(interval);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-
-static BOOL GL_BINDING_CALL Debug_wglSwapLayerBuffers(HDC hdc, UINT fuPlanes) {
- GL_SERVICE_LOG("wglSwapLayerBuffers"
- << "(" << hdc << ", " << fuPlanes << ")");
- DCHECK(g_driver_wgl.debug_fn.wglSwapLayerBuffersFn != nullptr);
- BOOL result = g_driver_wgl.debug_fn.wglSwapLayerBuffersFn(hdc, fuPlanes);
- GL_SERVICE_LOG("GL_RESULT: " << result);
- return result;
-}
-} // extern "C"
-
-void DriverWGL::InitializeDebugBindings() {
- if (!debug_fn.wglChoosePixelFormatARBFn) {
- debug_fn.wglChoosePixelFormatARBFn = fn.wglChoosePixelFormatARBFn;
- fn.wglChoosePixelFormatARBFn = Debug_wglChoosePixelFormatARB;
- }
- if (!debug_fn.wglCopyContextFn) {
- debug_fn.wglCopyContextFn = fn.wglCopyContextFn;
- fn.wglCopyContextFn = Debug_wglCopyContext;
- }
- if (!debug_fn.wglCreateContextFn) {
- debug_fn.wglCreateContextFn = fn.wglCreateContextFn;
- fn.wglCreateContextFn = Debug_wglCreateContext;
- }
- if (!debug_fn.wglCreateContextAttribsARBFn) {
- debug_fn.wglCreateContextAttribsARBFn = fn.wglCreateContextAttribsARBFn;
- fn.wglCreateContextAttribsARBFn = Debug_wglCreateContextAttribsARB;
- }
- if (!debug_fn.wglCreateLayerContextFn) {
- debug_fn.wglCreateLayerContextFn = fn.wglCreateLayerContextFn;
- fn.wglCreateLayerContextFn = Debug_wglCreateLayerContext;
- }
- if (!debug_fn.wglCreatePbufferARBFn) {
- debug_fn.wglCreatePbufferARBFn = fn.wglCreatePbufferARBFn;
- fn.wglCreatePbufferARBFn = Debug_wglCreatePbufferARB;
- }
- if (!debug_fn.wglDeleteContextFn) {
- debug_fn.wglDeleteContextFn = fn.wglDeleteContextFn;
- fn.wglDeleteContextFn = Debug_wglDeleteContext;
- }
- if (!debug_fn.wglDestroyPbufferARBFn) {
- debug_fn.wglDestroyPbufferARBFn = fn.wglDestroyPbufferARBFn;
- fn.wglDestroyPbufferARBFn = Debug_wglDestroyPbufferARB;
- }
- if (!debug_fn.wglGetCurrentContextFn) {
- debug_fn.wglGetCurrentContextFn = fn.wglGetCurrentContextFn;
- fn.wglGetCurrentContextFn = Debug_wglGetCurrentContext;
- }
- if (!debug_fn.wglGetCurrentDCFn) {
- debug_fn.wglGetCurrentDCFn = fn.wglGetCurrentDCFn;
- fn.wglGetCurrentDCFn = Debug_wglGetCurrentDC;
- }
- if (!debug_fn.wglGetExtensionsStringARBFn) {
- debug_fn.wglGetExtensionsStringARBFn = fn.wglGetExtensionsStringARBFn;
- fn.wglGetExtensionsStringARBFn = Debug_wglGetExtensionsStringARB;
- }
- if (!debug_fn.wglGetExtensionsStringEXTFn) {
- debug_fn.wglGetExtensionsStringEXTFn = fn.wglGetExtensionsStringEXTFn;
- fn.wglGetExtensionsStringEXTFn = Debug_wglGetExtensionsStringEXT;
- }
- if (!debug_fn.wglGetPbufferDCARBFn) {
- debug_fn.wglGetPbufferDCARBFn = fn.wglGetPbufferDCARBFn;
- fn.wglGetPbufferDCARBFn = Debug_wglGetPbufferDCARB;
- }
- if (!debug_fn.wglMakeCurrentFn) {
- debug_fn.wglMakeCurrentFn = fn.wglMakeCurrentFn;
- fn.wglMakeCurrentFn = Debug_wglMakeCurrent;
- }
- if (!debug_fn.wglQueryPbufferARBFn) {
- debug_fn.wglQueryPbufferARBFn = fn.wglQueryPbufferARBFn;
- fn.wglQueryPbufferARBFn = Debug_wglQueryPbufferARB;
- }
- if (!debug_fn.wglReleasePbufferDCARBFn) {
- debug_fn.wglReleasePbufferDCARBFn = fn.wglReleasePbufferDCARBFn;
- fn.wglReleasePbufferDCARBFn = Debug_wglReleasePbufferDCARB;
- }
- if (!debug_fn.wglShareListsFn) {
- debug_fn.wglShareListsFn = fn.wglShareListsFn;
- fn.wglShareListsFn = Debug_wglShareLists;
- }
- if (!debug_fn.wglSwapIntervalEXTFn) {
- debug_fn.wglSwapIntervalEXTFn = fn.wglSwapIntervalEXTFn;
- fn.wglSwapIntervalEXTFn = Debug_wglSwapIntervalEXT;
- }
- if (!debug_fn.wglSwapLayerBuffersFn) {
- debug_fn.wglSwapLayerBuffersFn = fn.wglSwapLayerBuffersFn;
- fn.wglSwapLayerBuffersFn = Debug_wglSwapLayerBuffers;
- }
- g_debugBindingsInitialized = true;
}
void DriverWGL::ClearBindings() {
@@ -630,4 +326,184 @@ BOOL TraceWGLApi::wglSwapLayerBuffersFn(HDC hdc, UINT fuPlanes) {
return wgl_api_->wglSwapLayerBuffersFn(hdc, fuPlanes);
}
+BOOL DebugWGLApi::wglChoosePixelFormatARBFn(HDC dc,
+ const int* int_attrib_list,
+ const float* float_attrib_list,
+ UINT max_formats,
+ int* formats,
+ UINT* num_formats) {
+ GL_SERVICE_LOG("wglChoosePixelFormatARB"
+ << "(" << dc << ", "
+ << static_cast<const void*>(int_attrib_list) << ", "
+ << static_cast<const void*>(float_attrib_list) << ", "
+ << max_formats << ", " << static_cast<const void*>(formats)
+ << ", " << static_cast<const void*>(num_formats) << ")");
+ BOOL result = wgl_api_->wglChoosePixelFormatARBFn(
+ dc, int_attrib_list, float_attrib_list, max_formats, formats,
+ num_formats);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+BOOL DebugWGLApi::wglCopyContextFn(HGLRC hglrcSrc, HGLRC hglrcDst, UINT mask) {
+ GL_SERVICE_LOG("wglCopyContext"
+ << "(" << hglrcSrc << ", " << hglrcDst << ", " << mask << ")");
+ BOOL result = wgl_api_->wglCopyContextFn(hglrcSrc, hglrcDst, mask);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+HGLRC DebugWGLApi::wglCreateContextFn(HDC hdc) {
+ GL_SERVICE_LOG("wglCreateContext"
+ << "(" << hdc << ")");
+ HGLRC result = wgl_api_->wglCreateContextFn(hdc);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+HGLRC DebugWGLApi::wglCreateContextAttribsARBFn(HDC hDC,
+ HGLRC hShareContext,
+ const int* attribList) {
+ GL_SERVICE_LOG("wglCreateContextAttribsARB"
+ << "(" << hDC << ", " << hShareContext << ", "
+ << static_cast<const void*>(attribList) << ")");
+ HGLRC result =
+ wgl_api_->wglCreateContextAttribsARBFn(hDC, hShareContext, attribList);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+HGLRC DebugWGLApi::wglCreateLayerContextFn(HDC hdc, int iLayerPlane) {
+ GL_SERVICE_LOG("wglCreateLayerContext"
+ << "(" << hdc << ", " << iLayerPlane << ")");
+ HGLRC result = wgl_api_->wglCreateLayerContextFn(hdc, iLayerPlane);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+HPBUFFERARB DebugWGLApi::wglCreatePbufferARBFn(HDC hDC,
+ int iPixelFormat,
+ int iWidth,
+ int iHeight,
+ const int* piAttribList) {
+ GL_SERVICE_LOG("wglCreatePbufferARB"
+ << "(" << hDC << ", " << iPixelFormat << ", " << iWidth << ", "
+ << iHeight << ", " << static_cast<const void*>(piAttribList)
+ << ")");
+ HPBUFFERARB result = wgl_api_->wglCreatePbufferARBFn(
+ hDC, iPixelFormat, iWidth, iHeight, piAttribList);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+BOOL DebugWGLApi::wglDeleteContextFn(HGLRC hglrc) {
+ GL_SERVICE_LOG("wglDeleteContext"
+ << "(" << hglrc << ")");
+ BOOL result = wgl_api_->wglDeleteContextFn(hglrc);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+BOOL DebugWGLApi::wglDestroyPbufferARBFn(HPBUFFERARB hPbuffer) {
+ GL_SERVICE_LOG("wglDestroyPbufferARB"
+ << "(" << hPbuffer << ")");
+ BOOL result = wgl_api_->wglDestroyPbufferARBFn(hPbuffer);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+HGLRC DebugWGLApi::wglGetCurrentContextFn() {
+ GL_SERVICE_LOG("wglGetCurrentContext"
+ << "("
+ << ")");
+ HGLRC result = wgl_api_->wglGetCurrentContextFn();
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+HDC DebugWGLApi::wglGetCurrentDCFn() {
+ GL_SERVICE_LOG("wglGetCurrentDC"
+ << "("
+ << ")");
+ HDC result = wgl_api_->wglGetCurrentDCFn();
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+const char* DebugWGLApi::wglGetExtensionsStringARBFn(HDC hDC) {
+ GL_SERVICE_LOG("wglGetExtensionsStringARB"
+ << "(" << hDC << ")");
+ const char* result = wgl_api_->wglGetExtensionsStringARBFn(hDC);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+const char* DebugWGLApi::wglGetExtensionsStringEXTFn() {
+ GL_SERVICE_LOG("wglGetExtensionsStringEXT"
+ << "("
+ << ")");
+ const char* result = wgl_api_->wglGetExtensionsStringEXTFn();
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+HDC DebugWGLApi::wglGetPbufferDCARBFn(HPBUFFERARB hPbuffer) {
+ GL_SERVICE_LOG("wglGetPbufferDCARB"
+ << "(" << hPbuffer << ")");
+ HDC result = wgl_api_->wglGetPbufferDCARBFn(hPbuffer);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+BOOL DebugWGLApi::wglMakeCurrentFn(HDC hdc, HGLRC hglrc) {
+ GL_SERVICE_LOG("wglMakeCurrent"
+ << "(" << hdc << ", " << hglrc << ")");
+ BOOL result = wgl_api_->wglMakeCurrentFn(hdc, hglrc);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+BOOL DebugWGLApi::wglQueryPbufferARBFn(HPBUFFERARB hPbuffer,
+ int iAttribute,
+ int* piValue) {
+ GL_SERVICE_LOG("wglQueryPbufferARB"
+ << "(" << hPbuffer << ", " << iAttribute << ", "
+ << static_cast<const void*>(piValue) << ")");
+ BOOL result = wgl_api_->wglQueryPbufferARBFn(hPbuffer, iAttribute, piValue);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+int DebugWGLApi::wglReleasePbufferDCARBFn(HPBUFFERARB hPbuffer, HDC hDC) {
+ GL_SERVICE_LOG("wglReleasePbufferDCARB"
+ << "(" << hPbuffer << ", " << hDC << ")");
+ int result = wgl_api_->wglReleasePbufferDCARBFn(hPbuffer, hDC);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+BOOL DebugWGLApi::wglShareListsFn(HGLRC hglrc1, HGLRC hglrc2) {
+ GL_SERVICE_LOG("wglShareLists"
+ << "(" << hglrc1 << ", " << hglrc2 << ")");
+ BOOL result = wgl_api_->wglShareListsFn(hglrc1, hglrc2);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+BOOL DebugWGLApi::wglSwapIntervalEXTFn(int interval) {
+ GL_SERVICE_LOG("wglSwapIntervalEXT"
+ << "(" << interval << ")");
+ BOOL result = wgl_api_->wglSwapIntervalEXTFn(interval);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
+BOOL DebugWGLApi::wglSwapLayerBuffersFn(HDC hdc, UINT fuPlanes) {
+ GL_SERVICE_LOG("wglSwapLayerBuffers"
+ << "(" << hdc << ", " << fuPlanes << ")");
+ BOOL result = wgl_api_->wglSwapLayerBuffersFn(hdc, fuPlanes);
+ GL_SERVICE_LOG("GL_RESULT: " << result);
+ return result;
+}
+
} // namespace gl
diff --git a/chromium/ui/gl/gl_context.cc b/chromium/ui/gl/gl_context.cc
index 609d131f03c..56591dcbebb 100644
--- a/chromium/ui/gl/gl_context.cc
+++ b/chromium/ui/gl/gl_context.cc
@@ -45,7 +45,9 @@ void GLContext::ScopedReleaseCurrent::Cancel() {
}
GLContext::GLContext(GLShareGroup* share_group)
- : share_group_(share_group),
+ : static_bindings_initialized_(false),
+ dynamic_bindings_initialized_(false),
+ share_group_(share_group),
current_virtual_context_(nullptr),
state_dirtied_externally_(false),
swap_interval_(1),
@@ -60,9 +62,16 @@ GLContext::~GLContext() {
share_group_->RemoveContext(this);
if (GetCurrent() == this) {
SetCurrent(nullptr);
+ SetCurrentGL(nullptr);
}
}
+GLApi* GLContext::CreateGLApi(DriverGL* driver) {
+ real_gl_api_ = new RealGLApi;
+ real_gl_api_->Initialize(driver);
+ return real_gl_api_;
+}
+
void GLContext::SetSafeToForceGpuSwitch() {
}
@@ -76,20 +85,22 @@ void GLContext::SetUnbindFboOnMakeCurrent() {
std::string GLContext::GetExtensions() {
DCHECK(IsCurrent(nullptr));
- return GetGLExtensionsFromCurrentContext();
+ return GetGLExtensionsFromCurrentContext(gl_api_.get());
}
std::string GLContext::GetGLVersion() {
DCHECK(IsCurrent(nullptr));
- const char *version =
- reinterpret_cast<const char*>(glGetString(GL_VERSION));
+ DCHECK(gl_api_ != nullptr);
+ const char* version =
+ reinterpret_cast<const char*>(gl_api_->glGetStringFn(GL_VERSION));
return std::string(version ? version : "");
}
std::string GLContext::GetGLRenderer() {
DCHECK(IsCurrent(nullptr));
- const char *renderer =
- reinterpret_cast<const char*>(glGetString(GL_RENDERER));
+ DCHECK(gl_api_ != nullptr);
+ const char* renderer =
+ reinterpret_cast<const char*>(gl_api_->glGetStringFn(GL_RENDERER));
return std::string(renderer ? renderer : "");
}
@@ -97,6 +108,36 @@ YUVToRGBConverter* GLContext::GetYUVToRGBConverter() {
return nullptr;
}
+CurrentGL* GLContext::GetCurrentGL() {
+ if (!static_bindings_initialized_) {
+ driver_gl_.reset(new DriverGL);
+ driver_gl_->InitializeStaticBindings();
+
+ gl_api_.reset(CreateGLApi(driver_gl_.get()));
+ GLApi* final_api = gl_api_.get();
+
+ if (base::CommandLine::ForCurrentProcess()->HasSwitch(
+ switches::kEnableGPUServiceTracing)) {
+ trace_gl_api_.reset(new TraceGLApi(final_api));
+ final_api = trace_gl_api_.get();
+ }
+
+ if (GetDebugGLBindingsInitializedGL()) {
+ debug_gl_api_.reset(new DebugGLApi(final_api));
+ final_api = debug_gl_api_.get();
+ }
+
+ current_gl_.reset(new CurrentGL);
+ current_gl_->Driver = driver_gl_.get();
+ current_gl_->Api = final_api;
+ current_gl_->Version = version_info_.get();
+
+ static_bindings_initialized_ = true;
+ }
+
+ return current_gl_.get();
+}
+
bool GLContext::HasExtension(const char* name) {
std::string extensions = GetExtensions();
extensions += " ";
@@ -109,10 +150,12 @@ bool GLContext::HasExtension(const char* name) {
const GLVersionInfo* GLContext::GetVersionInfo() {
if (!version_info_) {
- std::string version = GetGLVersion();
- std::string renderer = GetGLRenderer();
- version_info_ = base::MakeUnique<GLVersionInfo>(
- version.c_str(), renderer.c_str(), GetExtensions().c_str());
+ version_info_ = GenerateGLVersionInfo();
+
+ // current_gl_ may be null for virtual contexts
+ if (current_gl_) {
+ current_gl_->Version = version_info_.get();
+ }
}
return version_info_.get();
}
@@ -126,11 +169,13 @@ bool GLContext::LosesAllContextsOnContextLost() {
case kGLImplementationDesktopGL:
return false;
case kGLImplementationEGLGLES2:
+ case kGLImplementationSwiftShaderGL:
return true;
case kGLImplementationOSMesaGL:
case kGLImplementationAppleGL:
return false;
case kGLImplementationMockGL:
+ case kGLImplementationStubGL:
return false;
default:
NOTREACHED();
@@ -146,14 +191,20 @@ GLContext* GLContext::GetRealCurrent() {
return current_real_context_.Pointer()->Get();
}
+std::unique_ptr<gl::GLVersionInfo> GLContext::GenerateGLVersionInfo() {
+ return base::MakeUnique<GLVersionInfo>(
+ GetGLVersion().c_str(), GetGLRenderer().c_str(), GetExtensions().c_str());
+}
+
void GLContext::SetCurrent(GLSurface* surface) {
current_context_.Pointer()->Set(surface ? this : nullptr);
GLSurface::SetCurrent(surface);
// Leave the real GL api current so that unit tests work correctly.
// TODO(sievers): Remove this, but needs all gpu_unittest classes
// to create and make current a context.
- if (!surface && GetGLImplementation() != kGLImplementationMockGL) {
- SetGLApiToNoContext();
+ if (!surface && GetGLImplementation() != kGLImplementationMockGL &&
+ GetGLImplementation() != kGLImplementationStubGL) {
+ SetCurrentGL(nullptr);
}
}
@@ -181,7 +232,16 @@ bool GLContext::WasAllocatedUsingRobustnessExtension() {
void GLContext::InitializeDynamicBindings() {
DCHECK(IsCurrent(nullptr));
- InitializeDynamicGLBindingsGL(this);
+ DCHECK(static_bindings_initialized_);
+ if (!dynamic_bindings_initialized_) {
+ if (real_gl_api_) {
+ real_gl_api_->InitializeFilteredExtensions();
+ real_gl_api_->set_version(GenerateGLVersionInfo());
+ }
+
+ driver_gl_->InitializeDynamicBindings(GetVersionInfo(), GetExtensions());
+ dynamic_bindings_initialized_ = true;
+ }
}
bool GLContext::MakeVirtuallyCurrent(
@@ -247,8 +307,8 @@ void GLContext::OnReleaseVirtuallyCurrent(GLContext* virtual_context) {
current_virtual_context_ = nullptr;
}
-void GLContext::SetRealGLApi() {
- SetGLToRealGLApi();
+void GLContext::BindGLApi() {
+ SetCurrentGL(GetCurrentGL());
}
GLContextReal::GLContextReal(GLShareGroup* share_group)
diff --git a/chromium/ui/gl/gl_context.h b/chromium/ui/gl/gl_context.h
index 542940c7683..ecb9345e0bc 100644
--- a/chromium/ui/gl/gl_context.h
+++ b/chromium/ui/gl/gl_context.h
@@ -28,15 +28,24 @@ class GLContextVirtual;
namespace gl {
+struct CurrentGL;
+class DebugGLApi;
+struct DriverGL;
+class GLApi;
class GLSurface;
class GPUTiming;
class GPUTimingClient;
struct GLVersionInfo;
+class RealGLApi;
+class TraceGLApi;
struct GLContextAttribs {
GpuPreference gpu_preference = PreferIntegratedGpu;
bool bind_generates_resource = true;
bool webgl_compatibility_context = false;
+ bool global_texture_share_group = false;
+ int client_major_es_version = 3;
+ int client_minor_es_version = 0;
};
// Encapsulates an OpenGL context, hiding platform specific management.
@@ -137,9 +146,17 @@ class GL_EXPORT GLContext : public base::RefCounted<GLContext> {
// Returns a helper structure to convert YUV textures to RGB textures.
virtual YUVToRGBConverter* GetYUVToRGBConverter();
+ // Get the CurrentGL object for this context containing the driver, version
+ // and API.
+ CurrentGL* GetCurrentGL();
+
protected:
virtual ~GLContext();
+ // Create the GLApi for this context using the provided driver. Creates a
+ // RealGLApi by default.
+ virtual GLApi* CreateGLApi(DriverGL* driver);
+
// Will release the current context when going out of scope, unless canceled.
class ScopedReleaseCurrent {
public:
@@ -153,7 +170,7 @@ class GL_EXPORT GLContext : public base::RefCounted<GLContext> {
};
// Sets the GL api to the real hardware API (vs the VirtualAPI)
- static void SetRealGLApi();
+ void BindGLApi();
virtual void SetCurrent(GLSurface* surface);
// Initialize function pointers to functions where the bound version depends
@@ -172,6 +189,19 @@ class GL_EXPORT GLContext : public base::RefCounted<GLContext> {
// For GetRealCurrent.
friend class gpu::GLContextVirtual;
+ std::unique_ptr<GLVersionInfo> GenerateGLVersionInfo();
+
+ bool static_bindings_initialized_;
+ bool dynamic_bindings_initialized_;
+ std::unique_ptr<DriverGL> driver_gl_;
+ std::unique_ptr<GLApi> gl_api_;
+ std::unique_ptr<TraceGLApi> trace_gl_api_;
+ std::unique_ptr<DebugGLApi> debug_gl_api_;
+ std::unique_ptr<CurrentGL> current_gl_;
+
+ // Copy of the real API (if one was created) for dynamic initialization
+ RealGLApi* real_gl_api_ = nullptr;
+
scoped_refptr<GLShareGroup> share_group_;
GLContext* current_virtual_context_;
bool state_dirtied_externally_;
diff --git a/chromium/ui/gl/gl_context_cgl.cc b/chromium/ui/gl/gl_context_cgl.cc
index 2a105c4983d..06e5e73b93a 100644
--- a/chromium/ui/gl/gl_context_cgl.cc
+++ b/chromium/ui/gl/gl_context_cgl.cc
@@ -17,6 +17,7 @@
#include "base/threading/thread_task_runner_handle.h"
#include "base/trace_event/trace_event.h"
#include "ui/gl/gl_bindings.h"
+#include "ui/gl/gl_gl_api_implementation.h"
#include "ui/gl/gl_implementation.h"
#include "ui/gl/gl_surface.h"
#include "ui/gl/gpu_switching_manager.h"
@@ -149,8 +150,20 @@ bool GLContextCGL::Initialize(GLSurface* compatible_surface,
void GLContextCGL::Destroy() {
if (yuv_to_rgb_converter_) {
+ // If this context is not current, bind this context's API so that the YUV
+ // converter can safely destruct
+ GLContext* current_context = GetRealCurrent();
+ if (current_context != this) {
+ SetCurrentGL(GetCurrentGL());
+ }
+
ScopedCGLSetCurrentContext(static_cast<CGLContextObj>(context_));
yuv_to_rgb_converter_.reset();
+
+ // Rebind the current context's API if needed.
+ if (current_context && current_context != this) {
+ SetCurrentGL(current_context->GetCurrentGL());
+ }
}
if (discrete_pixelformat_) {
if (base::MessageLoop::current() != nullptr) {
@@ -236,7 +249,7 @@ bool GLContextCGL::MakeCurrent(GLSurface* surface) {
}
// Set this as soon as the context is current, since we might call into GL.
- SetRealGLApi();
+ BindGLApi();
SetCurrent(surface);
InitializeDynamicBindings();
diff --git a/chromium/ui/gl/gl_context_egl.cc b/chromium/ui/gl/gl_context_egl.cc
index 1cd08cd4049..4642b702885 100644
--- a/chromium/ui/gl/gl_context_egl.cc
+++ b/chromium/ui/gl/gl_context_egl.cc
@@ -32,6 +32,16 @@ extern "C" {
#define EGL_CONTEXT_WEBGL_COMPATIBILITY_ANGLE 0x3AAC
#endif /* EGL_ANGLE_create_context_webgl_compatibility */
+#ifndef EGL_ANGLE_display_texture_share_group
+#define EGL_ANGLE_display_texture_share_group 1
+#define EGL_DISPLAY_TEXTURE_SHARE_GROUP_ANGLE 0x3AAF
+#endif /* EGL_ANGLE_display_texture_share_group */
+
+#ifndef EGL_ANGLE_create_context_client_arrays
+#define EGL_ANGLE_create_context_client_arrays 1
+#define EGL_CONTEXT_CLIENT_ARRAYS_ENABLED_ANGLE 0x3452
+#endif /* EGL_ANGLE_create_context_client_arrays */
+
using ui::GetLastEGLErrorString;
namespace gl {
@@ -61,16 +71,36 @@ bool GLContextEGL::Initialize(GLSurface* compatible_surface,
return false;
}
- EGLint context_client_version = 2;
- if ((config_renderable_type & EGL_OPENGL_ES3_BIT) != 0 &&
- !base::CommandLine::ForCurrentProcess()->HasSwitch(
- switches::kDisableES3GLContext)) {
- context_client_version = 3;
+ EGLint context_client_major_version = attribs.client_major_es_version;
+ EGLint context_client_minor_version = attribs.client_minor_es_version;
+
+ // If the requested context is ES3 but the config cannot support ES3, request
+ // ES2 instead.
+ if ((config_renderable_type & EGL_OPENGL_ES3_BIT) == 0 &&
+ context_client_major_version >= 3) {
+ context_client_major_version = 2;
+ context_client_minor_version = 0;
}
std::vector<EGLint> context_attributes;
- context_attributes.push_back(EGL_CONTEXT_CLIENT_VERSION);
- context_attributes.push_back(context_client_version);
+
+ // EGL_KHR_create_context allows requesting both a major and minor context
+ // version
+ if (GLSurfaceEGL::HasEGLExtension("EGL_KHR_create_context")) {
+ context_attributes.push_back(EGL_CONTEXT_MAJOR_VERSION);
+ context_attributes.push_back(context_client_major_version);
+
+ context_attributes.push_back(EGL_CONTEXT_MINOR_VERSION);
+ context_attributes.push_back(context_client_minor_version);
+ } else {
+ context_attributes.push_back(EGL_CONTEXT_CLIENT_VERSION);
+ context_attributes.push_back(context_client_major_version);
+
+ // Can only request 2.0 or 3.0 contexts without the EGL_KHR_create_context
+ // extension, DCHECK to make sure we update the code to support devices
+ // without this extension
+ DCHECK(context_client_minor_version == 0);
+ }
if (GLSurfaceEGL::IsCreateContextRobustnessSupported()) {
DVLOG(1) << "EGL_EXT_create_context_robustness supported.";
@@ -105,6 +135,20 @@ bool GLContextEGL::Initialize(GLSurface* compatible_surface,
DCHECK(!attribs.webgl_compatibility_context);
}
+ if (GLSurfaceEGL::HasEGLExtension("EGL_ANGLE_display_texture_share_group")) {
+ context_attributes.push_back(EGL_DISPLAY_TEXTURE_SHARE_GROUP_ANGLE);
+ context_attributes.push_back(
+ attribs.global_texture_share_group ? EGL_TRUE : EGL_FALSE);
+ } else {
+ DCHECK(!attribs.global_texture_share_group);
+ }
+
+ if (GLSurfaceEGL::HasEGLExtension("EGL_ANGLE_create_context_client_arrays")) {
+ // Disable client arrays if the context supports it
+ context_attributes.push_back(EGL_CONTEXT_CLIENT_ARRAYS_ENABLED_ANGLE);
+ context_attributes.push_back(EGL_FALSE);
+ }
+
// Append final EGL_NONE to signal the context attributes are finished
context_attributes.push_back(EGL_NONE);
context_attributes.push_back(EGL_NONE);
@@ -157,7 +201,7 @@ bool GLContextEGL::MakeCurrent(GLSurface* surface) {
}
// Set this as soon as the context is current, since we might call into GL.
- SetRealGLApi();
+ BindGLApi();
SetCurrent(surface);
InitializeDynamicBindings();
diff --git a/chromium/ui/gl/gl_context_glx.cc b/chromium/ui/gl/gl_context_glx.cc
index cae4242e044..145162d0b36 100644
--- a/chromium/ui/gl/gl_context_glx.cc
+++ b/chromium/ui/gl/gl_context_glx.cc
@@ -71,69 +71,68 @@ GLXContext CreateContextAttribs(Display* display,
GLXContext CreateHighestVersionContext(Display* display,
GLXFBConfig config,
GLXContext share) {
- // It is commonly assumed that glXCreateContextAttrib will create a context
- // of the highest version possible but it is not specified in the spec and
- // is not true on the Mesa drivers. On Mesa, Instead we try to create a
- // context per GL version until we succeed, starting from newer version.
- // On both Mesa and other drivers we try to create a desktop context and fall
- // back to ES context.
- // The code could be simpler if the Mesa code path was used for all drivers,
- // however the cost of failing a context creation can be high (3 milliseconds
- // for the NVIDIA driver). The good thing is that failed context creation only
- // takes 0.1 milliseconds on Mesa.
+ // The only way to get a core profile context of the highest version using
+ // glXCreateContextAttrib is to try creationg contexts in decreasing version
+ // numbers. It might look that asking for a core context of version (0, 0)
+ // works on some driver but it create a _compatibility_ context of the highest
+ // version instead. The cost of failing a context creation is small (< 0.1 ms)
+ // on Mesa but is unfortunately a bit expensive on the Nvidia driver (~3ms).
+
+ // Also try to get any Desktop GL context, but if that fails fallback to
+ // asking for OpenGL ES contexts.
+
+ std::string client_vendor = glXGetClientString(display, GLX_VENDOR);
+ bool is_mesa = client_vendor.find("Mesa") != std::string::npos;
struct ContextCreationInfo {
+ ContextCreationInfo(int profileFlag, GLVersion version)
+ : profileFlag(profileFlag), version(version) {}
int profileFlag;
GLVersion version;
};
- // clang-format off
- // For regular drivers we try to create a compatibility, core, then ES
- // context. Without requiring any specific version.
- const ContextCreationInfo contexts_to_try[] = {
- { 0, GLVersion(0, 0) },
- { GLX_CONTEXT_CORE_PROFILE_BIT_ARB, GLVersion(0, 0) },
- { GLX_CONTEXT_ES2_PROFILE_BIT_EXT, GLVersion(0, 0) },
- };
-
- // On Mesa we try to create a core context, except for versions below 3.2
- // where it is not applicable. (and fallback to ES as well)
- const ContextCreationInfo mesa_contexts_to_try[] = {
- { GLX_CONTEXT_CORE_PROFILE_BIT_ARB, { GLVersion(4, 5) } },
- { GLX_CONTEXT_CORE_PROFILE_BIT_ARB, { GLVersion(4, 4) } },
- { GLX_CONTEXT_CORE_PROFILE_BIT_ARB, { GLVersion(4, 3) } },
- { GLX_CONTEXT_CORE_PROFILE_BIT_ARB, { GLVersion(4, 2) } },
- { GLX_CONTEXT_CORE_PROFILE_BIT_ARB, { GLVersion(4, 1) } },
- { GLX_CONTEXT_CORE_PROFILE_BIT_ARB, { GLVersion(4, 0) } },
- { GLX_CONTEXT_CORE_PROFILE_BIT_ARB, { GLVersion(3, 3) } },
- // Do not try to create OpenGL context versions between 3.0 and
- // 3.2 because of compatibility problems. crbug.com/659030
- { 0, { GLVersion(2, 0) } },
- { 0, { GLVersion(1, 5) } },
- { 0, { GLVersion(1, 4) } },
- { 0, { GLVersion(1, 3) } },
- { 0, { GLVersion(1, 2) } },
- { 0, { GLVersion(1, 1) } },
- { 0, { GLVersion(1, 0) } },
- { GLX_CONTEXT_ES2_PROFILE_BIT_EXT, { GLVersion(3, 2) } },
- { GLX_CONTEXT_ES2_PROFILE_BIT_EXT, { GLVersion(3, 1) } },
- { GLX_CONTEXT_ES2_PROFILE_BIT_EXT, { GLVersion(3, 0) } },
- { GLX_CONTEXT_ES2_PROFILE_BIT_EXT, { GLVersion(2, 0) } },
- };
- // clang-format on
-
- std::string client_vendor = glXGetClientString(display, GLX_VENDOR);
- bool is_mesa = client_vendor.find("Mesa") != std::string::npos;
-
- const ContextCreationInfo* to_try = contexts_to_try;
- size_t to_try_length = arraysize(contexts_to_try);
- if (is_mesa) {
- to_try = mesa_contexts_to_try;
- to_try_length = arraysize(mesa_contexts_to_try);
+ std::vector<ContextCreationInfo> contexts_to_try;
+ contexts_to_try.emplace_back(GLX_CONTEXT_CORE_PROFILE_BIT_ARB,
+ GLVersion(4, 5));
+ contexts_to_try.emplace_back(GLX_CONTEXT_CORE_PROFILE_BIT_ARB,
+ GLVersion(4, 4));
+ contexts_to_try.emplace_back(GLX_CONTEXT_CORE_PROFILE_BIT_ARB,
+ GLVersion(4, 3));
+ contexts_to_try.emplace_back(GLX_CONTEXT_CORE_PROFILE_BIT_ARB,
+ GLVersion(4, 2));
+ contexts_to_try.emplace_back(GLX_CONTEXT_CORE_PROFILE_BIT_ARB,
+ GLVersion(4, 1));
+ contexts_to_try.emplace_back(GLX_CONTEXT_CORE_PROFILE_BIT_ARB,
+ GLVersion(4, 0));
+ contexts_to_try.emplace_back(GLX_CONTEXT_CORE_PROFILE_BIT_ARB,
+ GLVersion(3, 3));
+
+ // On Mesa, do not try to create OpenGL context versions between 3.0 and
+ // 3.2 because of compatibility problems. See crbug.com/659030
+ if (!is_mesa) {
+ contexts_to_try.emplace_back(0, GLVersion(3, 2));
+ contexts_to_try.emplace_back(0, GLVersion(3, 1));
+ contexts_to_try.emplace_back(0, GLVersion(3, 0));
}
- for (size_t i = 0; i < to_try_length; ++i) {
- const ContextCreationInfo& info = to_try[i];
+ contexts_to_try.emplace_back(0, GLVersion(2, 1));
+ contexts_to_try.emplace_back(0, GLVersion(2, 0));
+ contexts_to_try.emplace_back(0, GLVersion(1, 5));
+ contexts_to_try.emplace_back(0, GLVersion(1, 4));
+ contexts_to_try.emplace_back(0, GLVersion(1, 3));
+ contexts_to_try.emplace_back(0, GLVersion(1, 2));
+ contexts_to_try.emplace_back(0, GLVersion(1, 1));
+ contexts_to_try.emplace_back(0, GLVersion(1, 0));
+ contexts_to_try.emplace_back(GLX_CONTEXT_ES2_PROFILE_BIT_EXT,
+ GLVersion(3, 2));
+ contexts_to_try.emplace_back(GLX_CONTEXT_ES2_PROFILE_BIT_EXT,
+ GLVersion(3, 1));
+ contexts_to_try.emplace_back(GLX_CONTEXT_ES2_PROFILE_BIT_EXT,
+ GLVersion(3, 0));
+ contexts_to_try.emplace_back(GLX_CONTEXT_ES2_PROFILE_BIT_EXT,
+ GLVersion(2, 0));
+
+ for (const auto& info : contexts_to_try) {
if (!GLSurfaceGLX::IsCreateContextES2ProfileSupported() &&
info.profileFlag == GLX_CONTEXT_ES2_PROFILE_BIT_EXT) {
continue;
@@ -243,7 +242,7 @@ bool GLContextGLX::MakeCurrent(GLSurface* surface) {
}
// Set this as soon as the context is current, since we might call into GL.
- SetRealGLApi();
+ BindGLApi();
SetCurrent(surface);
InitializeDynamicBindings();
diff --git a/chromium/ui/gl/gl_context_osmesa.cc b/chromium/ui/gl/gl_context_osmesa.cc
index f63cbce9240..b531eeb239e 100644
--- a/chromium/ui/gl/gl_context_osmesa.cc
+++ b/chromium/ui/gl/gl_context_osmesa.cc
@@ -82,7 +82,7 @@ bool GLContextOSMesa::MakeCurrent(GLSurface* surface) {
is_released_ = false;
// Set this as soon as the context is current, since we might call into GL.
- SetRealGLApi();
+ BindGLApi();
// Row 0 is at the top.
OSMesaPixelStore(OSMESA_Y_UP, 0);
diff --git a/chromium/ui/gl/gl_context_stub.cc b/chromium/ui/gl/gl_context_stub.cc
index a72f08080cc..1c54f9dd42c 100644
--- a/chromium/ui/gl/gl_context_stub.cc
+++ b/chromium/ui/gl/gl_context_stub.cc
@@ -5,12 +5,16 @@
#include "ui/gl/gl_context_stub.h"
#include "ui/gl/gl_gl_api_implementation.h"
+#include "ui/gl/gl_stub_api.h"
namespace gl {
-GLContextStub::GLContextStub() : GLContextReal(nullptr) {}
+GLContextStub::GLContextStub() : GLContextStub(nullptr) {}
GLContextStub::GLContextStub(GLShareGroup* share_group)
- : GLContextReal(share_group) {}
+ : GLContextReal(share_group),
+ use_stub_api_(false),
+ version_str_("OpenGL ES 3.0"),
+ extensions_("GL_EXT_framebuffer_object") {}
bool GLContextStub::Initialize(GLSurface* compatible_surface,
const GLContextAttribs& attribs) {
@@ -18,7 +22,7 @@ bool GLContextStub::Initialize(GLSurface* compatible_surface,
}
bool GLContextStub::MakeCurrent(GLSurface* surface) {
- SetGLToStubGLApi();
+ BindGLApi();
SetCurrent(surface);
InitializeDynamicBindings();
return true;
@@ -39,10 +43,50 @@ void* GLContextStub::GetHandle() {
void GLContextStub::OnSetSwapInterval(int interval) {
}
+std::string GLContextStub::GetGLVersion() {
+ return version_str_;
+}
+
std::string GLContextStub::GetGLRenderer() {
return std::string("CHROMIUM");
}
+bool GLContextStub::WasAllocatedUsingRobustnessExtension() {
+ return HasExtension("GL_ARB_robustness") ||
+ HasExtension("GL_KHR_robustness") || HasExtension("GL_EXT_robustness");
+}
+
+std::string GLContextStub::GetExtensions() {
+ return extensions_;
+}
+
+void GLContextStub::SetUseStubApi(bool stub_api) {
+ use_stub_api_ = stub_api;
+}
+
+void GLContextStub::SetExtensionsString(const char* extensions) {
+ extensions_ = extensions;
+}
+
+void GLContextStub::SetGLVersionString(const char* version_str) {
+ version_str_ = std::string(version_str ? version_str : "");
+}
+
GLContextStub::~GLContextStub() {}
+GLApi* GLContextStub::CreateGLApi(DriverGL* driver) {
+ if (use_stub_api_) {
+ GLStubApi* stub_api = new GLStubApi();
+ if (!version_str_.empty()) {
+ stub_api->set_version(version_str_);
+ }
+ if (!extensions_.empty()) {
+ stub_api->set_extensions(extensions_);
+ }
+ return stub_api;
+ }
+
+ return GLContext::CreateGLApi(driver);
+}
+
} // namespace gl
diff --git a/chromium/ui/gl/gl_context_stub.h b/chromium/ui/gl/gl_context_stub.h
index d98927b2c51..7ddc3d1f028 100644
--- a/chromium/ui/gl/gl_context_stub.h
+++ b/chromium/ui/gl/gl_context_stub.h
@@ -27,12 +27,25 @@ class GL_EXPORT GLContextStub : public GLContextReal {
bool IsCurrent(GLSurface* surface) override;
void* GetHandle() override;
void OnSetSwapInterval(int interval) override;
+ std::string GetGLVersion() override;
std::string GetGLRenderer() override;
+ bool WasAllocatedUsingRobustnessExtension() override;
+ std::string GetExtensions() override;
+
+ void SetUseStubApi(bool stub_api);
+ void SetExtensionsString(const char* extensions);
+ void SetGLVersionString(const char* version_str);
protected:
~GLContextStub() override;
+ GLApi* CreateGLApi(DriverGL* driver) override;
+
private:
+ bool use_stub_api_;
+ std::string version_str_;
+ std::string extensions_;
+
DISALLOW_COPY_AND_ASSIGN(GLContextStub);
};
diff --git a/chromium/ui/gl/gl_context_stub_with_extensions.cc b/chromium/ui/gl/gl_context_stub_with_extensions.cc
deleted file mode 100644
index 3b5677ca1aa..00000000000
--- a/chromium/ui/gl/gl_context_stub_with_extensions.cc
+++ /dev/null
@@ -1,36 +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_context_stub_with_extensions.h"
-
-namespace gl {
-
-void GLContextStubWithExtensions::AddExtensionsString(const char* extensions) {
- if (extensions == nullptr)
- return;
-
- if (extensions_.size() != 0)
- extensions_ += ' ';
- extensions_ += extensions;
-}
-
-std::string GLContextStubWithExtensions::GetExtensions() {
- return extensions_;
-}
-
-void GLContextStubWithExtensions::SetGLVersionString(const char* version_str) {
- version_str_ = std::string(version_str ? version_str : "");
-}
-
-std::string GLContextStubWithExtensions::GetGLVersion() {
- return version_str_;
-}
-
-bool GLContextStubWithExtensions::WasAllocatedUsingRobustnessExtension() {
- return HasExtension("GL_ARB_robustness") ||
- HasExtension("GL_KHR_robustness") ||
- HasExtension("GL_EXT_robustness");
-}
-
-} // namespace gl
diff --git a/chromium/ui/gl/gl_context_stub_with_extensions.h b/chromium/ui/gl/gl_context_stub_with_extensions.h
deleted file mode 100644
index f586c397cb5..00000000000
--- a/chromium/ui/gl/gl_context_stub_with_extensions.h
+++ /dev/null
@@ -1,40 +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_CONTEXT_STUB_WITH_EXTENSIONS_H_
-#define UI_GL_GL_CONTEXT_STUB_WITH_EXTENSIONS_H_
-
-#include "base/macros.h"
-#include "ui/gl/gl_context_stub.h"
-#include "ui/gl/gl_export.h"
-
-namespace gl {
-
-// Lightweight GLContext stub implementation that returns a constructed
-// extensions string. We use this to create a context that we can use to
-// initialize GL extensions with, without actually creating a platform context.
-class GL_EXPORT GLContextStubWithExtensions : public GLContextStub {
- public:
- GLContextStubWithExtensions() {}
- std::string GetExtensions() override;
-
- void AddExtensionsString(const char* extensions);
- void SetGLVersionString(const char* version_str);
- bool WasAllocatedUsingRobustnessExtension() override;
-
- protected:
- std::string GetGLVersion() override;
-
- ~GLContextStubWithExtensions() override {}
-
- private:
- std::string extensions_;
- std::string version_str_;
-
- DISALLOW_COPY_AND_ASSIGN(GLContextStubWithExtensions);
-};
-
-} // namespace gl
-
-#endif // UI_GL_GL_CONTEXT_STUB_WITH_EXTENSIONS_H_
diff --git a/chromium/ui/gl/gl_context_wgl.cc b/chromium/ui/gl/gl_context_wgl.cc
index 64b48b87253..726fcb62496 100644
--- a/chromium/ui/gl/gl_context_wgl.cc
+++ b/chromium/ui/gl/gl_context_wgl.cc
@@ -105,7 +105,7 @@ bool GLContextWGL::MakeCurrent(GLSurface* surface) {
}
// Set this as soon as the context is current, since we might call into GL.
- SetRealGLApi();
+ BindGLApi();
SetCurrent(surface);
InitializeDynamicBindings();
diff --git a/chromium/ui/gl/gl_egl_api_implementation.cc b/chromium/ui/gl/gl_egl_api_implementation.cc
index aa3ed1813cf..e0520524b4b 100644
--- a/chromium/ui/gl/gl_egl_api_implementation.cc
+++ b/chromium/ui/gl/gl_egl_api_implementation.cc
@@ -12,20 +12,8 @@
namespace gl {
-namespace {
-
-void GL_BINDING_CALL MarshalClearDepthToClearDepthf(GLclampd depth) {
- glClearDepthf(static_cast<GLclampf>(depth));
-}
-
-void GL_BINDING_CALL MarshalDepthRangeToDepthRangef(GLclampd z_near,
- GLclampd z_far) {
- glDepthRangef(static_cast<GLclampf>(z_near), static_cast<GLclampf>(z_far));
-}
-
-} // namespace
-
-RealEGLApi* g_real_egl;
+RealEGLApi* g_real_egl = nullptr;
+DebugEGLApi* g_debug_egl = nullptr;
void InitializeStaticGLBindingsEGL() {
g_driver_egl.InitializeStaticBindings();
@@ -34,18 +22,20 @@ void InitializeStaticGLBindingsEGL() {
}
g_real_egl->Initialize(&g_driver_egl);
g_current_egl_context = g_real_egl;
-
- // These two functions take single precision float rather than double
- // precision float parameters in GLES.
- ::gl::g_driver_gl.fn.glClearDepthFn = MarshalClearDepthToClearDepthf;
- ::gl::g_driver_gl.fn.glDepthRangeFn = MarshalDepthRangeToDepthRangef;
}
void InitializeDebugGLBindingsEGL() {
- g_driver_egl.InitializeDebugBindings();
+ if (!g_debug_egl) {
+ g_debug_egl = new DebugEGLApi(g_real_egl);
+ }
+ g_current_egl_context = g_debug_egl;
}
void ClearBindingsEGL() {
+ if (g_debug_egl) {
+ delete g_debug_egl;
+ g_debug_egl = NULL;
+ }
if (g_real_egl) {
delete g_real_egl;
g_real_egl = NULL;
@@ -110,6 +100,10 @@ const char* RealEGLApi::eglQueryStringFn(EGLDisplay dpy, EGLint name) {
return EGLApiBase::eglQueryStringFn(dpy, name);
}
+DebugEGLApi::DebugEGLApi(EGLApi* egl_api) : egl_api_(egl_api) {}
+
+DebugEGLApi::~DebugEGLApi() {}
+
TraceEGLApi::~TraceEGLApi() {
}
diff --git a/chromium/ui/gl/gl_egl_api_implementation.h b/chromium/ui/gl/gl_egl_api_implementation.h
index 9e6cabd8042..f120aab53fe 100644
--- a/chromium/ui/gl/gl_egl_api_implementation.h
+++ b/chromium/ui/gl/gl_egl_api_implementation.h
@@ -55,6 +55,20 @@ class GL_EXPORT RealEGLApi : public EGLApiBase {
std::map<EGLDisplay, std::string> filtered_exts_;
};
+// Logs debug information for every EGL call.
+class GL_EXPORT DebugEGLApi : public EGLApi {
+ public:
+ DebugEGLApi(EGLApi* egl_api);
+ ~DebugEGLApi() override;
+
+ // Include the auto-generated part of this class. We split this because
+ // it means we can easily edit the non-auto generated parts right here in
+ // this file instead of having to edit some template or the code generator.
+ #include "gl_bindings_api_autogen_egl.h"
+
+ private:
+ EGLApi* egl_api_;
+};
// Inserts a TRACE for every EGL call.
class GL_EXPORT TraceEGLApi : public EGLApi {
diff --git a/chromium/ui/gl/gl_fence.cc b/chromium/ui/gl/gl_fence.cc
index 5930a32b0d6..4634cbf42c8 100644
--- a/chromium/ui/gl/gl_fence.cc
+++ b/chromium/ui/gl/gl_fence.cc
@@ -11,7 +11,6 @@
#include "ui/gl/gl_fence_arb.h"
#include "ui/gl/gl_fence_egl.h"
#include "ui/gl/gl_fence_nv.h"
-#include "ui/gl/gl_gl_api_implementation.h"
#include "ui/gl/gl_implementation.h"
#include "ui/gl/gl_version_info.h"
@@ -28,15 +27,16 @@ GLFence::~GLFence() {
}
bool GLFence::IsSupported() {
- DCHECK(GetGLVersionInfo());
- return g_driver_gl.ext.b_GL_ARB_sync || GetGLVersionInfo()->is_es3 ||
- GetGLVersionInfo()->is_desktop_core_profile ||
+ DCHECK(g_current_gl_version && g_current_gl_driver);
+ return g_current_gl_driver->ext.b_GL_ARB_sync ||
+ g_current_gl_version->is_es3 ||
+ g_current_gl_version->is_desktop_core_profile ||
#if defined(OS_MACOSX)
- g_driver_gl.ext.b_GL_APPLE_fence ||
+ g_current_gl_driver->ext.b_GL_APPLE_fence ||
#else
g_driver_egl.ext.b_EGL_KHR_fence_sync ||
#endif
- g_driver_gl.ext.b_GL_NV_fence;
+ g_current_gl_driver->ext.b_GL_NV_fence;
}
GLFence* GLFence::Create() {
@@ -51,18 +51,19 @@ GLFence* GLFence::Create() {
fence.reset(new GLFenceEGL);
} else
#endif
- if (g_driver_gl.ext.b_GL_ARB_sync || GetGLVersionInfo()->is_es3 ||
- GetGLVersionInfo()->is_desktop_core_profile) {
+ if (g_current_gl_driver->ext.b_GL_ARB_sync ||
+ g_current_gl_version->is_es3 ||
+ g_current_gl_version->is_desktop_core_profile) {
// Prefer ARB_sync which supports server-side wait.
fence.reset(new GLFenceARB);
#if defined(OS_MACOSX)
- } else if (g_driver_gl.ext.b_GL_APPLE_fence) {
+ } else if (g_current_gl_driver->ext.b_GL_APPLE_fence) {
fence.reset(new GLFenceAPPLE);
#else
} else if (g_driver_egl.ext.b_EGL_KHR_fence_sync) {
fence.reset(new GLFenceEGL);
#endif
- } else if (g_driver_gl.ext.b_GL_NV_fence) {
+ } else if (g_current_gl_driver->ext.b_GL_NV_fence) {
fence.reset(new GLFenceNV);
}
diff --git a/chromium/ui/gl/gl_fence_arb.cc b/chromium/ui/gl/gl_fence_arb.cc
index 8f1711f00ec..7bc089d8bfc 100644
--- a/chromium/ui/gl/gl_fence_arb.cc
+++ b/chromium/ui/gl/gl_fence_arb.cc
@@ -78,8 +78,10 @@ void GLFenceARB::HandleClientWaitFailure() {
if (GLContext::GetCurrent()->WasAllocatedUsingRobustnessExtension()) {
// This function pointer is only set if one of the robustness
// extensions was available.
- DCHECK(g_driver_gl.fn.glGetGraphicsResetStatusARBFn);
- DCHECK(g_driver_gl.fn.glGetGraphicsResetStatusARBFn() != GL_NO_ERROR);
+ DCHECK(g_current_gl_driver &&
+ g_current_gl_driver->fn.glGetGraphicsResetStatusARBFn);
+ DCHECK(g_current_gl_driver->fn.glGetGraphicsResetStatusARBFn() !=
+ GL_NO_ERROR);
LOG(ERROR) << "Failed to wait for GLFence; context was lost. Error code: "
<< GetGLErrors();
} else {
diff --git a/chromium/ui/gl/gl_gl_api_implementation.cc b/chromium/ui/gl/gl_gl_api_implementation.cc
index 265bd31f2bc..ecd5881e5c6 100644
--- a/chromium/ui/gl/gl_gl_api_implementation.cc
+++ b/chromium/ui/gl/gl_gl_api_implementation.cc
@@ -7,6 +7,7 @@
#include <vector>
#include "base/command_line.h"
+#include "base/memory/ptr_util.h"
#include "base/stl_util.h"
#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
@@ -19,28 +20,25 @@
namespace gl {
-// The GL Api being used. This could be g_real_gl or gl_trace_gl
-static GLApi* g_gl = NULL;
-// A GL Api that calls directly into the driver.
-static RealGLApi* g_real_gl = NULL;
-// A GL Api that does nothing but warn about illegal GL calls without a context
-// current.
-static NoContextGLApi* g_no_context_gl = NULL;
-// A GL Api that calls TRACE and then calls another GL api.
-static TraceGLApi* g_trace_gl = NULL;
-// The GL Api being used for stub contexts. If null, g_gl is used instead.
-static GLApi* g_stub_gl = NULL;
-// GL version used when initializing dynamic bindings.
-static GLVersionInfo* g_version_info = NULL;
+// The GL state for when no context is bound
+static CurrentGL* g_no_context_current_gl = nullptr;
+
+// If the null draw bindings are currently enabled.
+// TODO: Consider adding a new GLApi that no-ops these functions
+static bool g_null_draw_bindings_enabled = false;
+
+// If the GL debug bindings are enabled.
+static bool g_debug_bindings_enabled = false;
namespace {
-static inline GLenum GetInternalFormat(GLenum internal_format) {
- if (!g_version_info->is_es) {
+static inline GLenum GetInternalFormat(const GLVersionInfo* version,
+ GLenum internal_format) {
+ if (!version->is_es) {
if (internal_format == GL_BGRA_EXT || internal_format == GL_BGRA8_EXT)
return GL_RGBA8;
}
- if (g_version_info->is_es3 && g_version_info->is_mesa) {
+ if (version->is_es3 && version->is_mesa) {
// Mesa bug workaround: Mipmapping does not work when using GL_BGRA_EXT
if (internal_format == GL_BGRA_EXT)
return GL_RGBA;
@@ -49,14 +47,14 @@ static inline GLenum GetInternalFormat(GLenum internal_format) {
}
// TODO(epenner): Could the above function be merged into this and removed?
-static inline GLenum GetTexInternalFormat(GLenum internal_format,
+static inline GLenum GetTexInternalFormat(const GLVersionInfo* version,
+ GLenum internal_format,
GLenum format,
GLenum type) {
- DCHECK(g_version_info);
- GLenum gl_internal_format = GetInternalFormat(internal_format);
+ GLenum gl_internal_format = GetInternalFormat(version, internal_format);
// g_version_info must be initialized when this function is bound.
- if (g_version_info->is_es3) {
+ if (version->is_es3) {
if (internal_format == GL_RED_EXT) {
// GL_EXT_texture_rg case in ES2.
switch (type) {
@@ -94,8 +92,8 @@ static inline GLenum GetTexInternalFormat(GLenum internal_format,
}
}
- if (type == GL_FLOAT && g_version_info->is_angle && g_version_info->is_es &&
- g_version_info->major_version == 2) {
+ if (type == GL_FLOAT && version->is_angle && version->is_es &&
+ version->major_version == 2) {
// It's possible that the texture is using a sized internal format, and
// ANGLE exposing GLES2 API doesn't support those.
// TODO(oetuaho@nvidia.com): Remove these conversions once ANGLE has the
@@ -113,8 +111,7 @@ static inline GLenum GetTexInternalFormat(GLenum internal_format,
}
}
- if (g_version_info->IsAtLeastGL(2, 1) ||
- g_version_info->IsAtLeastGLES(3, 0)) {
+ if (version->IsAtLeastGL(2, 1) || version->IsAtLeastGLES(3, 0)) {
switch (internal_format) {
case GL_SRGB_EXT:
gl_internal_format = GL_SRGB8;
@@ -127,7 +124,7 @@ static inline GLenum GetTexInternalFormat(GLenum internal_format,
}
}
- if (g_version_info->is_es)
+ if (version->is_es)
return gl_internal_format;
if (type == GL_FLOAT) {
@@ -195,12 +192,10 @@ static inline GLenum GetTexInternalFormat(GLenum internal_format,
return gl_internal_format;
}
-static inline GLenum GetTexFormat(GLenum format) {
+static inline GLenum GetTexFormat(const GLVersionInfo* version, GLenum format) {
GLenum gl_format = format;
- DCHECK(g_version_info);
- if (g_version_info->IsAtLeastGL(2, 1) ||
- g_version_info->IsAtLeastGLES(3, 0)) {
+ if (version->IsAtLeastGL(2, 1) || version->IsAtLeastGLES(3, 0)) {
switch (format) {
case GL_SRGB_EXT:
gl_format = GL_RGB;
@@ -216,271 +211,64 @@ static inline GLenum GetTexFormat(GLenum format) {
return gl_format;
}
-static inline GLenum GetTexType(GLenum type) {
- if (!g_version_info->is_es) {
+static inline GLenum GetTexType(const GLVersionInfo* version, GLenum type) {
+ if (!version->is_es) {
if (type == GL_HALF_FLOAT_OES)
return GL_HALF_FLOAT_ARB;
}
return type;
}
-static void GL_BINDING_CALL CustomTexImage2D(
- GLenum target, GLint level, GLint internalformat,
- GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type,
- const void* pixels) {
- GLenum gl_internal_format = GetTexInternalFormat(
- internalformat, format, type);
- GLenum gl_format = GetTexFormat(format);
- GLenum gl_type = GetTexType(type);
- g_driver_gl.orig_fn.glTexImage2DFn(
- target, level, gl_internal_format, width, height, border, gl_format,
- gl_type, pixels);
-}
-
-static void GL_BINDING_CALL CustomTexSubImage2D(
- GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width,
- GLsizei height, GLenum format, GLenum type, const void* pixels) {
- GLenum gl_format = GetTexFormat(format);
- GLenum gl_type = GetTexType(type);
- g_driver_gl.orig_fn.glTexSubImage2DFn(
- target, level, xoffset, yoffset, width, height, gl_format, gl_type,
- pixels);
-}
-
-static void GL_BINDING_CALL CustomTexStorage2DEXT(
- GLenum target, GLsizei levels, GLenum internalformat, GLsizei width,
- GLsizei height) {
- GLenum gl_internal_format = GetInternalFormat(internalformat);
- g_driver_gl.orig_fn.glTexStorage2DEXTFn(
- target, levels, gl_internal_format, width, height);
-}
-
-static void GL_BINDING_CALL CustomRenderbufferStorageEXT(
- GLenum target, GLenum internalformat, GLsizei width, GLsizei height) {
- GLenum gl_internal_format = GetInternalFormat(internalformat);
- g_driver_gl.orig_fn.glRenderbufferStorageEXTFn(
- target, gl_internal_format, width, height);
-}
-
-// The ANGLE and IMG variants of glRenderbufferStorageMultisample currently do
-// not support BGRA render buffers so only the EXT one is customized. If
-// GL_CHROMIUM_renderbuffer_format_BGRA8888 support is added to ANGLE then the
-// ANGLE version should also be customized.
-static void GL_BINDING_CALL CustomRenderbufferStorageMultisampleEXT(
- GLenum target, GLsizei samples, GLenum internalformat, GLsizei width,
- GLsizei height) {
- GLenum gl_internal_format = GetInternalFormat(internalformat);
- g_driver_gl.orig_fn.glRenderbufferStorageMultisampleEXTFn(
- target, samples, gl_internal_format, width, height);
-}
-
-static void GL_BINDING_CALL
-CustomRenderbufferStorageMultisample(GLenum target,
- GLsizei samples,
- GLenum internalformat,
- GLsizei width,
- GLsizei height) {
- GLenum gl_internal_format = GetInternalFormat(internalformat);
- g_driver_gl.orig_fn.glRenderbufferStorageMultisampleFn(
- target, samples, gl_internal_format, width, height);
-}
-
} // anonymous namespace
-void DriverGL::InitializeCustomDynamicBindings(GLContext* context) {
- InitializeDynamicBindings(context);
-
- DCHECK(orig_fn.glTexImage2DFn == NULL);
- orig_fn.glTexImage2DFn = fn.glTexImage2DFn;
- fn.glTexImage2DFn =
- reinterpret_cast<glTexImage2DProc>(CustomTexImage2D);
-
- DCHECK(orig_fn.glTexSubImage2DFn == NULL);
- orig_fn.glTexSubImage2DFn = fn.glTexSubImage2DFn;
- fn.glTexSubImage2DFn =
- reinterpret_cast<glTexSubImage2DProc>(CustomTexSubImage2D);
-
- DCHECK(orig_fn.glTexStorage2DEXTFn == NULL);
- orig_fn.glTexStorage2DEXTFn = fn.glTexStorage2DEXTFn;
- fn.glTexStorage2DEXTFn =
- reinterpret_cast<glTexStorage2DEXTProc>(CustomTexStorage2DEXT);
-
- DCHECK(orig_fn.glRenderbufferStorageEXTFn == NULL);
- orig_fn.glRenderbufferStorageEXTFn = fn.glRenderbufferStorageEXTFn;
- fn.glRenderbufferStorageEXTFn =
- reinterpret_cast<glRenderbufferStorageEXTProc>(
- CustomRenderbufferStorageEXT);
-
- DCHECK(orig_fn.glRenderbufferStorageMultisampleEXTFn == NULL);
- orig_fn.glRenderbufferStorageMultisampleEXTFn =
- fn.glRenderbufferStorageMultisampleEXTFn;
- fn.glRenderbufferStorageMultisampleEXTFn =
- reinterpret_cast<glRenderbufferStorageMultisampleEXTProc>(
- CustomRenderbufferStorageMultisampleEXT);
-
- DCHECK(orig_fn.glRenderbufferStorageMultisampleFn == NULL);
- orig_fn.glRenderbufferStorageMultisampleFn =
- fn.glRenderbufferStorageMultisampleFn;
- fn.glRenderbufferStorageMultisampleFn =
- reinterpret_cast<glRenderbufferStorageMultisampleProc>(
- CustomRenderbufferStorageMultisample);
-}
-
-static void GL_BINDING_CALL NullDrawClearFn(GLbitfield mask) {
- if (!g_driver_gl.null_draw_bindings_enabled)
- g_driver_gl.orig_fn.glClearFn(mask);
-}
-
-static void GL_BINDING_CALL
-NullDrawDrawArraysFn(GLenum mode, GLint first, GLsizei count) {
- if (!g_driver_gl.null_draw_bindings_enabled)
- g_driver_gl.orig_fn.glDrawArraysFn(mode, first, count);
-}
-
-static void GL_BINDING_CALL NullDrawDrawElementsFn(GLenum mode,
- GLsizei count,
- GLenum type,
- const void* indices) {
- if (!g_driver_gl.null_draw_bindings_enabled)
- g_driver_gl.orig_fn.glDrawElementsFn(mode, count, type, indices);
-}
-
-void DriverGL::InitializeNullDrawBindings() {
- DCHECK(orig_fn.glClearFn == NULL);
- orig_fn.glClearFn = fn.glClearFn;
- fn.glClearFn = NullDrawClearFn;
-
- DCHECK(orig_fn.glDrawArraysFn == NULL);
- orig_fn.glDrawArraysFn = fn.glDrawArraysFn;
- fn.glDrawArraysFn = NullDrawDrawArraysFn;
-
- DCHECK(orig_fn.glDrawElementsFn == NULL);
- orig_fn.glDrawElementsFn = fn.glDrawElementsFn;
- fn.glDrawElementsFn = NullDrawDrawElementsFn;
-
- null_draw_bindings_enabled = true;
-}
-
-bool DriverGL::HasInitializedNullDrawBindings() {
- return orig_fn.glClearFn != NULL && orig_fn.glDrawArraysFn != NULL &&
- orig_fn.glDrawElementsFn != NULL;
-}
-
-bool DriverGL::SetNullDrawBindingsEnabled(bool enabled) {
- DCHECK(orig_fn.glClearFn != NULL);
- DCHECK(orig_fn.glDrawArraysFn != NULL);
- DCHECK(orig_fn.glDrawElementsFn != NULL);
-
- bool before = null_draw_bindings_enabled;
- null_draw_bindings_enabled = enabled;
- return before;
-}
-
void InitializeStaticGLBindingsGL() {
- g_current_gl_context_tls = new base::ThreadLocalPointer<GLApi>;
- g_driver_gl.InitializeStaticBindings();
- if (!g_real_gl) {
- g_real_gl = new RealGLApi();
- g_trace_gl = new TraceGLApi(g_real_gl);
- g_no_context_gl = new NoContextGLApi();
- }
- g_real_gl->Initialize(&g_driver_gl);
- g_gl = g_real_gl;
- if (base::CommandLine::ForCurrentProcess()->HasSwitch(
- switches::kEnableGPUServiceTracing)) {
- g_gl = g_trace_gl;
- }
- SetGLToRealGLApi();
-}
-
-GLApi* GetCurrentGLApi() {
- return g_current_gl_context_tls ? g_current_gl_context_tls->Get() : nullptr;
-}
-
-void SetGLApi(GLApi* api) {
- g_current_gl_context_tls->Set(api);
-}
-
-void SetGLToRealGLApi() {
- SetGLApi(g_gl);
-}
-
-void SetGLToStubGLApi() {
- SetGLApi(g_stub_gl ? g_stub_gl : g_gl);
-}
-
-void SetGLApiToNoContext() {
- SetGLApi(g_no_context_gl);
-}
-
-void SetStubGLApi(GLApi* api) {
- g_stub_gl = api;
+ g_current_gl_context_tls = new base::ThreadLocalPointer<CurrentGL>;
+ g_no_context_current_gl = new CurrentGL;
+ g_no_context_current_gl->Api = new NoContextGLApi;
}
-const GLVersionInfo* GetGLVersionInfo() {
- return g_version_info;
-}
+void ClearBindingsGL() {
+ if (g_no_context_current_gl) {
+ delete g_no_context_current_gl->Api;
+ delete g_no_context_current_gl->Driver;
+ delete g_no_context_current_gl->Version;
+ delete g_no_context_current_gl;
+ g_no_context_current_gl = nullptr;
+ }
-void InitializeDynamicGLBindingsGL(GLContext* context) {
- if (g_version_info)
- return;
- g_real_gl->InitializeFilteredExtensions();
- g_driver_gl.InitializeCustomDynamicBindings(context);
- DCHECK(context && context->IsCurrent(NULL) && !g_version_info);
- g_version_info = new GLVersionInfo(
- context->GetGLVersion().c_str(),
- context->GetGLRenderer().c_str(),
- context->GetExtensions().c_str());
+ if (g_current_gl_context_tls) {
+ delete g_current_gl_context_tls;
+ g_current_gl_context_tls = nullptr;
+ }
}
void InitializeDebugGLBindingsGL() {
- g_driver_gl.InitializeDebugBindings();
+ g_debug_bindings_enabled = true;
}
-void InitializeNullDrawGLBindingsGL() {
- g_driver_gl.InitializeNullDrawBindings();
+bool GetDebugGLBindingsInitializedGL() {
+ return g_debug_bindings_enabled;
}
-bool HasInitializedNullDrawGLBindingsGL() {
- return g_driver_gl.HasInitializedNullDrawBindings();
+bool SetNullDrawGLBindingsEnabled(bool enabled) {
+ bool old_value = g_null_draw_bindings_enabled;
+ g_null_draw_bindings_enabled = enabled;
+ return old_value;
}
-bool SetNullDrawGLBindingsEnabledGL(bool enabled) {
- return g_driver_gl.SetNullDrawBindingsEnabled(enabled);
+bool GetNullDrawBindingsEnabled() {
+ return g_null_draw_bindings_enabled;
}
-void ClearBindingsGL() {
- if (g_real_gl) {
- delete g_real_gl;
- g_real_gl = NULL;
- }
- if (g_trace_gl) {
- delete g_trace_gl;
- g_trace_gl = NULL;
- }
- if (g_no_context_gl) {
- delete g_no_context_gl;
- g_no_context_gl = NULL;
- }
- g_gl = NULL;
- g_stub_gl = NULL;
- g_driver_gl.ClearBindings();
- if (g_current_gl_context_tls) {
- delete g_current_gl_context_tls;
- g_current_gl_context_tls = NULL;
- }
- if (g_version_info) {
- delete g_version_info;
- g_version_info = NULL;
- }
+void SetCurrentGL(CurrentGL* current) {
+ CurrentGL* new_current = current ? current : g_no_context_current_gl;
+ g_current_gl_context_tls->Set(new_current);
}
GLApi::GLApi() {
}
GLApi::~GLApi() {
- if (GetCurrentGLApi() == this)
- SetGLApi(NULL);
}
GLApiBase::GLApiBase()
@@ -555,10 +343,130 @@ const GLubyte* RealGLApi::glGetStringiFn(GLenum name, GLuint index) {
return GLApiBase::glGetStringiFn(name, index);
}
+void RealGLApi::glTexImage2DFn(GLenum target,
+ GLint level,
+ GLint internalformat,
+ GLsizei width,
+ GLsizei height,
+ GLint border,
+ GLenum format,
+ GLenum type,
+ const void* pixels) {
+ GLenum gl_internal_format =
+ GetTexInternalFormat(version_.get(), internalformat, format, type);
+ GLenum gl_format = GetTexFormat(version_.get(), format);
+ GLenum gl_type = GetTexType(version_.get(), type);
+ GLApiBase::glTexImage2DFn(target, level, gl_internal_format, width, height,
+ border, gl_format, gl_type, pixels);
+}
+
+void RealGLApi::glTexSubImage2DFn(GLenum target,
+ GLint level,
+ GLint xoffset,
+ GLint yoffset,
+ GLsizei width,
+ GLsizei height,
+ GLenum format,
+ GLenum type,
+ const void* pixels) {
+ GLenum gl_format = GetTexFormat(version_.get(), format);
+ GLenum gl_type = GetTexType(version_.get(), type);
+ GLApiBase::glTexSubImage2DFn(target, level, xoffset, yoffset, width, height,
+ gl_format, gl_type, pixels);
+}
+
+void RealGLApi::glTexStorage2DEXTFn(GLenum target,
+ GLsizei levels,
+ GLenum internalformat,
+ GLsizei width,
+ GLsizei height) {
+ GLenum gl_internal_format = GetInternalFormat(version_.get(), internalformat);
+ GLApiBase::glTexStorage2DEXTFn(target, levels, gl_internal_format, width,
+ height);
+}
+
+void RealGLApi::glRenderbufferStorageEXTFn(GLenum target,
+ GLenum internalformat,
+ GLsizei width,
+ GLsizei height) {
+ GLenum gl_internal_format = GetInternalFormat(version_.get(), internalformat);
+ GLApiBase::glRenderbufferStorageEXTFn(target, gl_internal_format, width,
+ height);
+}
+
+// The ANGLE and IMG variants of glRenderbufferStorageMultisample currently do
+// not support BGRA render buffers so only the EXT one is customized. If
+// GL_CHROMIUM_renderbuffer_format_BGRA8888 support is added to ANGLE then the
+// ANGLE version should also be customized.
+void RealGLApi::glRenderbufferStorageMultisampleEXTFn(GLenum target,
+ GLsizei samples,
+ GLenum internalformat,
+ GLsizei width,
+ GLsizei height) {
+ GLenum gl_internal_format = GetInternalFormat(version_.get(), internalformat);
+ GLApiBase::glRenderbufferStorageMultisampleEXTFn(
+ target, samples, gl_internal_format, width, height);
+}
+
+void RealGLApi::glRenderbufferStorageMultisampleFn(GLenum target,
+ GLsizei samples,
+ GLenum internalformat,
+ GLsizei width,
+ GLsizei height) {
+ GLenum gl_internal_format = GetInternalFormat(version_.get(), internalformat);
+ GLApiBase::glRenderbufferStorageMultisampleFn(
+ target, samples, gl_internal_format, width, height);
+}
+
+void RealGLApi::glClearFn(GLbitfield mask) {
+ if (!g_null_draw_bindings_enabled)
+ GLApiBase::glClearFn(mask);
+}
+
+void RealGLApi::glDrawArraysFn(GLenum mode, GLint first, GLsizei count) {
+ if (!g_null_draw_bindings_enabled)
+ GLApiBase::glDrawArraysFn(mode, first, count);
+}
+
+void RealGLApi::glDrawElementsFn(GLenum mode,
+ GLsizei count,
+ GLenum type,
+ const void* indices) {
+ if (!g_null_draw_bindings_enabled)
+ GLApiBase::glDrawElementsFn(mode, count, type, indices);
+}
+
+void RealGLApi::glClearDepthFn(GLclampd depth) {
+ // OpenGL ES only has glClearDepthf, forward the parameters from glClearDepth.
+ // Many mock tests expect only glClearDepth is called so don't make the
+ // interception when testing with mocks.
+ if (version_->is_es && GetGLImplementation() != kGLImplementationMockGL) {
+ DCHECK(driver_->fn.glClearDepthfFn);
+ GLApiBase::glClearDepthfFn(static_cast<GLclampf>(depth));
+ } else {
+ DCHECK(driver_->fn.glClearDepthFn);
+ GLApiBase::glClearDepthFn(depth);
+ }
+}
+
+void RealGLApi::glDepthRangeFn(GLclampd z_near, GLclampd z_far) {
+ // OpenGL ES only has glDepthRangef, forward the parameters from glDepthRange.
+ // Many mock tests expect only glDepthRange is called so don't make the
+ // interception when testing with mocks.
+ if (version_->is_es && GetGLImplementation() != kGLImplementationMockGL) {
+ DCHECK(driver_->fn.glDepthRangefFn);
+ GLApiBase::glDepthRangefFn(static_cast<GLclampf>(z_near),
+ static_cast<GLclampf>(z_far));
+ } else {
+ DCHECK(driver_->fn.glDepthRangeFn);
+ GLApiBase::glDepthRangeFn(z_near, z_far);
+ }
+}
+
void RealGLApi::InitializeFilteredExtensions() {
if (disabled_exts_.size()) {
filtered_exts_.clear();
- if (WillUseGLGetStringForExtensions()) {
+ if (WillUseGLGetStringForExtensions(this)) {
filtered_exts_str_ =
FilterGLExtensionList(reinterpret_cast<const char*>(
GLApiBase::glGetStringFn(GL_EXTENSIONS)),
@@ -583,9 +491,17 @@ void RealGLApi::InitializeFilteredExtensions() {
}
}
+void RealGLApi::set_version(std::unique_ptr<GLVersionInfo> version) {
+ version_ = std::move(version);
+}
+
TraceGLApi::~TraceGLApi() {
}
+DebugGLApi::DebugGLApi(GLApi* gl_api) : gl_api_(gl_api) {}
+
+DebugGLApi::~DebugGLApi() {}
+
NoContextGLApi::NoContextGLApi() {
}
diff --git a/chromium/ui/gl/gl_gl_api_implementation.h b/chromium/ui/gl/gl_gl_api_implementation.h
index 806f4535a4c..ba66b85ddf6 100644
--- a/chromium/ui/gl/gl_gl_api_implementation.h
+++ b/chromium/ui/gl/gl_gl_api_implementation.h
@@ -5,6 +5,7 @@
#ifndef UI_GL_GL_GL_API_IMPLEMENTATION_H_
#define UI_GL_GL_GL_API_IMPLEMENTATION_H_
+#include <memory>
#include <vector>
#include "base/compiler_specific.h"
@@ -17,24 +18,18 @@ class CommandLine;
namespace gl {
-class GLContext;
struct GLVersionInfo;
GL_EXPORT void InitializeStaticGLBindingsGL();
-void InitializeDynamicGLBindingsGL(GLContext* context);
-GL_EXPORT void InitializeDebugGLBindingsGL();
-void InitializeNullDrawGLBindingsGL();
-// TODO(danakj): Remove this when all test suites are using null-draw.
-bool HasInitializedNullDrawGLBindingsGL();
-bool SetNullDrawGLBindingsEnabledGL(bool enabled);
GL_EXPORT void ClearBindingsGL();
-void SetGLToRealGLApi();
-void SetGLToStubGLApi();
-void SetGLApi(GLApi* api);
-void SetGLApiToNoContext();
-GLApi* GetCurrentGLApi();
-GL_EXPORT void SetStubGLApi(GLApi* api);
-const GLVersionInfo* GetGLVersionInfo();
+
+GL_EXPORT void InitializeDebugGLBindingsGL();
+bool GetDebugGLBindingsInitializedGL();
+
+bool SetNullDrawGLBindingsEnabled(bool enabled);
+bool GetNullDrawBindingsEnabled();
+
+void SetCurrentGL(CurrentGL* current);
class GL_EXPORT GLApiBase : public GLApi {
public:
@@ -64,7 +59,61 @@ class GL_EXPORT RealGLApi : public GLApiBase {
const GLubyte* glGetStringFn(GLenum name) override;
const GLubyte* glGetStringiFn(GLenum name, GLuint index) override;
+ void glTexImage2DFn(GLenum target,
+ GLint level,
+ GLint internalformat,
+ GLsizei width,
+ GLsizei height,
+ GLint border,
+ GLenum format,
+ GLenum type,
+ const void* pixels) override;
+
+ void glTexSubImage2DFn(GLenum target,
+ GLint level,
+ GLint xoffset,
+ GLint yoffset,
+ GLsizei width,
+ GLsizei height,
+ GLenum format,
+ GLenum type,
+ const void* pixels) override;
+
+ void glTexStorage2DEXTFn(GLenum target,
+ GLsizei levels,
+ GLenum internalformat,
+ GLsizei width,
+ GLsizei height) override;
+
+ void glRenderbufferStorageEXTFn(GLenum target,
+ GLenum internalformat,
+ GLsizei width,
+ GLsizei height) override;
+
+ void glRenderbufferStorageMultisampleEXTFn(GLenum target,
+ GLsizei samples,
+ GLenum internalformat,
+ GLsizei width,
+ GLsizei height) override;
+
+ void glRenderbufferStorageMultisampleFn(GLenum target,
+ GLsizei samples,
+ GLenum internalformat,
+ GLsizei width,
+ GLsizei height) override;
+
+ void glClearFn(GLbitfield mask) override;
+ void glDrawArraysFn(GLenum mode, GLint first, GLsizei count) override;
+ void glDrawElementsFn(GLenum mode,
+ GLsizei count,
+ GLenum type,
+ const void* indices) override;
+
+ void glClearDepthFn(GLclampd depth) override;
+ void glDepthRangeFn(GLclampd z_near, GLclampd z_far) override;
+
void InitializeFilteredExtensions();
+ void set_version(std::unique_ptr<GLVersionInfo> version);
private:
// Filtered GL_EXTENSIONS we return to glGetString(i) calls.
@@ -72,6 +121,8 @@ class GL_EXPORT RealGLApi : public GLApiBase {
std::vector<std::string> filtered_exts_;
std::string filtered_exts_str_;
+ std::unique_ptr<GLVersionInfo> version_;
+
#if DCHECK_IS_ON()
bool filtered_exts_initialized_;
#endif
@@ -92,6 +143,21 @@ class TraceGLApi : public GLApi {
GLApi* gl_api_;
};
+// Logs debug information for every GL call.
+class DebugGLApi : public GLApi {
+ public:
+ DebugGLApi(GLApi* gl_api);
+ ~DebugGLApi() override;
+
+ // Include the auto-generated part of this class. We split this because
+ // it means we can easily edit the non-auto generated parts right here in
+ // this file instead of having to edit some template or the code generator.
+ #include "gl_bindings_api_autogen_gl.h"
+
+ private:
+ GLApi* gl_api_;
+};
+
// Catches incorrect usage when GL calls are made without a current context.
class NoContextGLApi : public GLApi {
public:
diff --git a/chromium/ui/gl/gl_glx_api_implementation.cc b/chromium/ui/gl/gl_glx_api_implementation.cc
index 01734bb7087..413a385f2e6 100644
--- a/chromium/ui/gl/gl_glx_api_implementation.cc
+++ b/chromium/ui/gl/gl_glx_api_implementation.cc
@@ -12,6 +12,7 @@
namespace gl {
RealGLXApi* g_real_glx;
+DebugGLXApi* g_debug_glx;
void InitializeStaticGLBindingsGLX() {
g_driver_glx.InitializeStaticBindings();
@@ -24,10 +25,17 @@ void InitializeStaticGLBindingsGLX() {
}
void InitializeDebugGLBindingsGLX() {
- g_driver_glx.InitializeDebugBindings();
+ if (!g_debug_glx) {
+ g_debug_glx = new DebugGLXApi(g_real_glx);
+ }
+ g_current_glx_context = g_debug_glx;
}
void ClearBindingsGLX() {
+ if (g_debug_glx) {
+ delete g_debug_glx;
+ g_debug_glx = NULL;
+ }
if (g_real_glx) {
delete g_real_glx;
g_real_glx = NULL;
@@ -96,6 +104,9 @@ const char* RealGLXApi::glXQueryExtensionsStringFn(Display* dpy,
return filtered_exts_.c_str();
}
+DebugGLXApi::DebugGLXApi(GLXApi* glx_api) : glx_api_(glx_api) {}
+DebugGLXApi::~DebugGLXApi() {}
+
TraceGLXApi::~TraceGLXApi() {
}
diff --git a/chromium/ui/gl/gl_glx_api_implementation.h b/chromium/ui/gl/gl_glx_api_implementation.h
index 9796d9cfae4..2c1815757ca 100644
--- a/chromium/ui/gl/gl_glx_api_implementation.h
+++ b/chromium/ui/gl/gl_glx_api_implementation.h
@@ -53,6 +53,21 @@ class GL_EXPORT RealGLXApi : public GLXApiBase {
std::string filtered_exts_;
};
+// Logs debug information for every GLX call.
+class GL_EXPORT DebugGLXApi : public GLXApi {
+ public:
+ DebugGLXApi(GLXApi* glx_api);
+ ~DebugGLXApi() override;
+
+ // Include the auto-generated part of this class. We split this because
+ // it means we can easily edit the non-auto generated parts right here in
+ // this file instead of having to edit some template or the code generator.
+ #include "gl_bindings_api_autogen_glx.h"
+
+ private:
+ GLXApi* glx_api_;
+};
+
// Inserts a TRACE for every GLX call.
class GL_EXPORT TraceGLXApi : public GLXApi {
public:
diff --git a/chromium/ui/gl/gl_image_io_surface.mm b/chromium/ui/gl/gl_image_io_surface.mm
index e56e4f21d77..7b24aeaa67e 100644
--- a/chromium/ui/gl/gl_image_io_surface.mm
+++ b/chromium/ui/gl/gl_image_io_surface.mm
@@ -16,7 +16,6 @@
#include "base/trace_event/trace_event.h"
#include "ui/gl/gl_bindings.h"
#include "ui/gl/gl_context.h"
-#include "ui/gl/scoped_api.h"
#include "ui/gl/scoped_binders.h"
#include "ui/gl/yuv_to_rgb_converter.h"
@@ -280,8 +279,6 @@ bool GLImageIOSurface::CopyTexImage(unsigned target) {
YUVToRGBConverter* yuv_to_rgb_converter = gl_context->GetYUVToRGBConverter();
DCHECK(yuv_to_rgb_converter);
- ScopedSetGLToRealGLApi scoped_set_gl_api;
-
// Note that state restoration is done explicitly instead of scoped binders to
// avoid https://crbug.com/601729.
GLint rgb_texture = 0;
diff --git a/chromium/ui/gl/gl_image_memory.cc b/chromium/ui/gl/gl_image_memory.cc
index 8fda6369472..43c82014d90 100644
--- a/chromium/ui/gl/gl_image_memory.cc
+++ b/chromium/ui/gl/gl_image_memory.cc
@@ -314,7 +314,7 @@ std::unique_ptr<uint8_t[]> GLES2Data(const gfx::Size& size,
size_t gles2_data_stride =
RowSizeForBufferFormat(size.width(), format, 0);
if (stride == gles2_data_stride ||
- g_driver_gl.ext.b_GL_EXT_unpack_subimage)
+ g_current_gl_driver->ext.b_GL_EXT_unpack_subimage)
return nullptr; // No data conversion needed
std::unique_ptr<uint8_t[]> gles2_data(
diff --git a/chromium/ui/gl/gl_implementation.cc b/chromium/ui/gl/gl_implementation.cc
index 0b88b820f71..9235cb935e5 100644
--- a/chromium/ui/gl/gl_implementation.cc
+++ b/chromium/ui/gl/gl_implementation.cc
@@ -13,6 +13,7 @@
#include "base/command_line.h"
#include "base/logging.h"
#include "base/macros.h"
+#include "base/memory/ptr_util.h"
#include "base/strings/string_split.h"
#include "base/strings/string_util.h"
#include "build/build_config.h"
@@ -28,14 +29,14 @@ const struct {
const char* name;
GLImplementation implementation;
} kGLImplementationNamePairs[] = {
- { kGLImplementationDesktopName, kGLImplementationDesktopGL },
- { kGLImplementationOSMesaName, kGLImplementationOSMesaGL },
+ {kGLImplementationDesktopName, kGLImplementationDesktopGL},
+ {kGLImplementationOSMesaName, kGLImplementationOSMesaGL},
+ {kGLImplementationSwiftShaderName, kGLImplementationSwiftShaderGL},
#if defined(OS_MACOSX)
- { kGLImplementationAppleName, kGLImplementationAppleGL },
+ {kGLImplementationAppleName, kGLImplementationAppleGL},
#endif
- { kGLImplementationEGLName, kGLImplementationEGLGLES2 },
- { kGLImplementationMockName, kGLImplementationMockGL }
-};
+ {kGLImplementationEGLName, kGLImplementationEGLGLES2},
+ {kGLImplementationMockName, kGLImplementationMockGL}};
typedef std::vector<base::NativeLibrary> LibraryArray;
@@ -55,7 +56,7 @@ void CleanupNativeLibraries(void* unused) {
} // namespace
-base::ThreadLocalPointer<GLApi>* g_current_gl_context_tls = NULL;
+base::ThreadLocalPointer<CurrentGL>* g_current_gl_context_tls = NULL;
OSMESAApi* g_current_osmesa_context;
#if defined(USE_EGL)
@@ -79,6 +80,10 @@ GLImplementation GetNamedGLImplementation(const std::string& name) {
return kGLImplementationNone;
}
+GLImplementation GetSoftwareGLImplementation() {
+ return kGLImplementationOSMesaGL;
+}
+
const char* GetGLImplementationName(GLImplementation implementation) {
for (size_t i = 0; i < arraysize(kGLImplementationNamePairs); ++i) {
if (implementation == kGLImplementationNamePairs[i].implementation)
@@ -144,13 +149,11 @@ GLFunctionPointerType GetGLProcAddress(const char* name) {
}
void InitializeNullDrawGLBindings() {
- // This is platform independent, so it does not need to live in a platform
- // specific implementation file.
- InitializeNullDrawGLBindingsGL();
+ SetNullDrawGLBindingsEnabled(true);
}
bool HasInitializedNullDrawGLBindings() {
- return HasInitializedNullDrawGLBindingsGL();
+ return GetNullDrawBindingsEnabled();
}
std::string FilterGLExtensionList(
@@ -174,36 +177,47 @@ std::string FilterGLExtensionList(
}
DisableNullDrawGLBindings::DisableNullDrawGLBindings() {
- initial_enabled_ = SetNullDrawGLBindingsEnabledGL(false);
+ initial_enabled_ = SetNullDrawGLBindingsEnabled(false);
}
DisableNullDrawGLBindings::~DisableNullDrawGLBindings() {
- SetNullDrawGLBindingsEnabledGL(initial_enabled_);
+ SetNullDrawGLBindingsEnabled(initial_enabled_);
}
GLWindowSystemBindingInfo::GLWindowSystemBindingInfo()
: direct_rendering(true) {}
std::string GetGLExtensionsFromCurrentContext() {
- if (WillUseGLGetStringForExtensions()) {
- return reinterpret_cast<const char*>(glGetString(GL_EXTENSIONS));
+ return GetGLExtensionsFromCurrentContext(g_current_gl_context);
+}
+
+std::string GetGLExtensionsFromCurrentContext(GLApi* api) {
+ if (WillUseGLGetStringForExtensions(api)) {
+ const char* extensions =
+ reinterpret_cast<const char*>(api->glGetStringFn(GL_EXTENSIONS));
+ return extensions ? std::string(extensions) : std::string();
}
- std::vector<std::string> exts;
GLint num_extensions = 0;
- glGetIntegerv(GL_NUM_EXTENSIONS, &num_extensions);
+ api->glGetIntegervFn(GL_NUM_EXTENSIONS, &num_extensions);
+
+ std::vector<std::string> exts(num_extensions);
for (GLint i = 0; i < num_extensions; ++i) {
- const char* extension = reinterpret_cast<const char*>(
- glGetStringi(GL_EXTENSIONS, i));
+ const char* extension =
+ reinterpret_cast<const char*>(api->glGetStringiFn(GL_EXTENSIONS, i));
DCHECK(extension != NULL);
- exts.push_back(extension);
+ exts[i] = extension;
}
return base::JoinString(exts, " ");
}
bool WillUseGLGetStringForExtensions() {
+ return WillUseGLGetStringForExtensions(g_current_gl_context);
+}
+
+bool WillUseGLGetStringForExtensions(GLApi* api) {
const char* version_str =
- reinterpret_cast<const char*>(glGetString(GL_VERSION));
+ reinterpret_cast<const char*>(api->glGetStringFn(GL_VERSION));
unsigned major_version, minor_version;
bool is_es, is_es2, is_es3;
GLVersionInfo::ParseVersionString(version_str, &major_version, &minor_version,
@@ -211,6 +225,14 @@ bool WillUseGLGetStringForExtensions() {
return is_es || major_version < 3;
}
+std::unique_ptr<GLVersionInfo> GetVersionInfoFromContext(GLApi* api) {
+ std::string extensions = GetGLExtensionsFromCurrentContext(api);
+ return base::MakeUnique<GLVersionInfo>(
+ reinterpret_cast<const char*>(api->glGetStringFn(GL_VERSION)),
+ reinterpret_cast<const char*>(api->glGetStringFn(GL_RENDERER)),
+ extensions.c_str());
+}
+
base::NativeLibrary LoadLibraryAndPrintError(
const base::FilePath::CharType* filename) {
return LoadLibraryAndPrintError(base::FilePath(filename));
diff --git a/chromium/ui/gl/gl_implementation.h b/chromium/ui/gl/gl_implementation.h
index dc425076a09..28cbde27188 100644
--- a/chromium/ui/gl/gl_implementation.h
+++ b/chromium/ui/gl/gl_implementation.h
@@ -5,6 +5,7 @@
#ifndef UI_GL_GL_IMPLEMENTATION_H_
#define UI_GL_GL_IMPLEMENTATION_H_
+#include <memory>
#include <string>
#include <vector>
@@ -16,15 +17,20 @@
namespace gl {
+class GLApi;
+struct GLVersionInfo;
+
// The GL implementation currently in use.
enum GLImplementation {
kGLImplementationNone,
kGLImplementationDesktopGL,
kGLImplementationDesktopGLCoreProfile,
kGLImplementationOSMesaGL,
+ kGLImplementationSwiftShaderGL,
kGLImplementationAppleGL,
kGLImplementationEGLGLES2,
- kGLImplementationMockGL
+ kGLImplementationMockGL,
+ kGLImplementationStubGL,
};
struct GL_EXPORT GLWindowSystemBindingInfo {
@@ -73,6 +79,9 @@ GL_EXPORT void SetGLImplementation(GLImplementation implementation);
// Get the current GL implementation.
GL_EXPORT GLImplementation GetGLImplementation();
+// Get the software GL implementation for the current platform.
+GL_EXPORT GLImplementation GetSoftwareGLImplementation();
+
// Does the underlying GL support all features from Desktop GL 2.0 that were
// removed from the ES 2.0 spec without requiring specific extension strings.
GL_EXPORT bool HasDesktopGLFeatures();
@@ -109,11 +118,15 @@ GL_EXPORT GLFunctionPointerType GetGLProcAddress(const char* name);
// bindings themselves. This is a relatively expensive call, so
// callers should cache the result.
GL_EXPORT std::string GetGLExtensionsFromCurrentContext();
+GL_EXPORT std::string GetGLExtensionsFromCurrentContext(GLApi* api);
// 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();
+GL_EXPORT bool WillUseGLGetStringForExtensions(GLApi* api);
+
+GL_EXPORT std::unique_ptr<GLVersionInfo> GetVersionInfoFromContext(GLApi* api);
// Helpers to load a library and log error on failure.
GL_EXPORT base::NativeLibrary LoadLibraryAndPrintError(
diff --git a/chromium/ui/gl/gl_osmesa_api_implementation.cc b/chromium/ui/gl/gl_osmesa_api_implementation.cc
index 2145711c3d8..081fc3208b2 100644
--- a/chromium/ui/gl/gl_osmesa_api_implementation.cc
+++ b/chromium/ui/gl/gl_osmesa_api_implementation.cc
@@ -6,7 +6,8 @@
namespace gl {
-RealOSMESAApi* g_real_osmesa;
+RealOSMESAApi* g_real_osmesa = nullptr;
+DebugOSMESAApi* g_debug_osmesa = nullptr;
void InitializeStaticGLBindingsOSMESA() {
g_driver_osmesa.InitializeStaticBindings();
@@ -19,10 +20,17 @@ void InitializeStaticGLBindingsOSMESA() {
}
void InitializeDebugGLBindingsOSMESA() {
- g_driver_osmesa.InitializeDebugBindings();
+ if (!g_debug_osmesa) {
+ g_debug_osmesa = new DebugOSMESAApi(g_real_osmesa);
+ }
+ g_current_osmesa_context = g_debug_osmesa;
}
void ClearBindingsOSMESA() {
+ if (g_debug_osmesa) {
+ delete g_debug_osmesa;
+ g_debug_osmesa = NULL;
+ }
if (g_real_osmesa) {
delete g_real_osmesa;
g_real_osmesa = NULL;
@@ -58,6 +66,10 @@ void RealOSMESAApi::Initialize(DriverOSMESA* driver) {
InitializeBase(driver);
}
+DebugOSMESAApi::DebugOSMESAApi(OSMESAApi* osmesa_api)
+ : osmesa_api_(osmesa_api) {}
+DebugOSMESAApi::~DebugOSMESAApi() {}
+
TraceOSMESAApi::~TraceOSMESAApi() {
}
diff --git a/chromium/ui/gl/gl_osmesa_api_implementation.h b/chromium/ui/gl/gl_osmesa_api_implementation.h
index 92e5f5acfb8..6163b198def 100644
--- a/chromium/ui/gl/gl_osmesa_api_implementation.h
+++ b/chromium/ui/gl/gl_osmesa_api_implementation.h
@@ -37,6 +37,21 @@ class GL_EXPORT RealOSMESAApi : public OSMESAApiBase {
void Initialize(DriverOSMESA* driver);
};
+// Logs debug information for every OSMESA call.
+class GL_EXPORT DebugOSMESAApi : public OSMESAApi {
+ public:
+ DebugOSMESAApi(OSMESAApi* osmesa_api);
+ ~DebugOSMESAApi() override;
+
+ // Include the auto-generated part of this class. We split this because
+ // it means we can easily edit the non-auto generated parts right here in
+ // this file instead of having to edit some template or the code generator.
+ #include "gl_bindings_api_autogen_osmesa.h"
+
+ private:
+ OSMESAApi* osmesa_api_;
+};
+
// Inserts a TRACE for every OSMESA call.
class GL_EXPORT TraceOSMESAApi : public OSMESAApi {
public:
diff --git a/chromium/ui/gl/gl_stub_api.cc b/chromium/ui/gl/gl_stub_api.cc
index 7d071cf8e90..5cdf6518b85 100644
--- a/chromium/ui/gl/gl_stub_api.cc
+++ b/chromium/ui/gl/gl_stub_api.cc
@@ -15,8 +15,7 @@ void GenHelper(GLsizei count, GLuint* objects) {
} // anonymous namespace
-GLStubApi::GLStubApi()
- : version_("OpenGL ES 3.0"), extensions_("GL_EXT_framebuffer_object") {}
+GLStubApi::GLStubApi() {}
GLStubApi::~GLStubApi() = default;
diff --git a/chromium/ui/gl/gl_surface.cc b/chromium/ui/gl/gl_surface.cc
index 70f2207150e..c0ac7f013cd 100644
--- a/chromium/ui/gl/gl_surface.cc
+++ b/chromium/ui/gl/gl_surface.cc
@@ -52,7 +52,7 @@ bool GLSurface::DeferDraws() {
return false;
}
-bool GLSurface::SupportsSwapBuffersWithDamage() {
+bool GLSurface::SupportsSwapBuffersWithBounds() {
return false;
}
@@ -76,10 +76,8 @@ void GLSurface::SwapBuffersAsync(const SwapCompletionCallback& callback) {
NOTREACHED();
}
-gfx::SwapResult GLSurface::SwapBuffersWithDamage(int x,
- int y,
- int width,
- int height) {
+gfx::SwapResult GLSurface::SwapBuffersWithBounds(
+ const std::vector<gfx::Rect>& rects) {
return gfx::SwapResult::SWAP_FAILED;
}
@@ -135,11 +133,6 @@ unsigned long GLSurface::GetCompatibilityKey() {
return 0;
}
-GLSurfaceFormat GLSurface::GetFormat() {
- NOTIMPLEMENTED();
- return GLSurfaceFormat();
-}
-
gfx::VSyncProvider* GLSurface::GetVSyncProvider() {
return NULL;
}
@@ -175,6 +168,14 @@ bool GLSurface::BuffersFlipped() const {
return false;
}
+bool GLSurface::SupportsSetDrawRectangle() const {
+ return false;
+}
+
+bool GLSurface::SetDrawRectangle(const gfx::Rect& rect) {
+ return false;
+}
+
GLSurface* GLSurface::GetCurrent() {
return current_surface_.Pointer()->Get();
}
@@ -241,11 +242,9 @@ void GLSurfaceAdapter::SwapBuffersAsync(
surface_->SwapBuffersAsync(callback);
}
-gfx::SwapResult GLSurfaceAdapter::SwapBuffersWithDamage(int x,
- int y,
- int width,
- int height) {
- return surface_->SwapBuffersWithDamage(x, y, width, height);
+gfx::SwapResult GLSurfaceAdapter::SwapBuffersWithBounds(
+ const std::vector<gfx::Rect>& rects) {
+ return surface_->SwapBuffersWithBounds(rects);
}
gfx::SwapResult GLSurfaceAdapter::PostSubBuffer(int x,
@@ -273,8 +272,8 @@ void GLSurfaceAdapter::CommitOverlayPlanesAsync(
surface_->CommitOverlayPlanesAsync(callback);
}
-bool GLSurfaceAdapter::SupportsSwapBuffersWithDamage() {
- return surface_->SupportsSwapBuffersWithDamage();
+bool GLSurfaceAdapter::SupportsSwapBuffersWithBounds() {
+ return surface_->SupportsSwapBuffersWithBounds();
}
bool GLSurfaceAdapter::SupportsPostSubBuffer() {
@@ -358,6 +357,18 @@ bool GLSurfaceAdapter::BuffersFlipped() const {
return surface_->BuffersFlipped();
}
+bool GLSurfaceAdapter::SupportsSetDrawRectangle() const {
+ return surface_->SupportsSetDrawRectangle();
+}
+
+bool GLSurfaceAdapter::SetDrawRectangle(const gfx::Rect& rect) {
+ return surface_->SetDrawRectangle(rect);
+}
+
+void GLSurfaceAdapter::OnSetSwapInterval(int interval) {
+ surface_->OnSetSwapInterval(interval);
+}
+
GLSurfaceAdapter::~GLSurfaceAdapter() {}
scoped_refptr<GLSurface> InitializeGLSurfaceWithFormat(
diff --git a/chromium/ui/gl/gl_surface.h b/chromium/ui/gl/gl_surface.h
index ce01dbc9e4a..1dee0591910 100644
--- a/chromium/ui/gl/gl_surface.h
+++ b/chromium/ui/gl/gl_surface.h
@@ -80,8 +80,8 @@ class GL_EXPORT GLSurface : public base::RefCounted<GLSurface> {
// Get the underlying platform specific surface "handle".
virtual void* GetHandle() = 0;
- // Returns whether or not the surface supports SwapBuffersWithDamage
- virtual bool SupportsSwapBuffersWithDamage();
+ // Returns whether or not the surface supports SwapBuffersWithBounds
+ virtual bool SupportsSwapBuffersWithBounds();
// Returns whether or not the surface supports PostSubBuffer.
virtual bool SupportsPostSubBuffer();
@@ -104,11 +104,9 @@ class GL_EXPORT GLSurface : public base::RefCounted<GLSurface> {
// the calling thread (i.e. same thread SwapBuffersAsync is called)
virtual void SwapBuffersAsync(const SwapCompletionCallback& callback);
- // Swap buffers with damage rect.
- virtual gfx::SwapResult SwapBuffersWithDamage(int x,
- int y,
- int width,
- int height);
+ // Swap buffers with content bounds.
+ virtual gfx::SwapResult SwapBuffersWithBounds(
+ const std::vector<gfx::Rect>& rects);
// Copy part of the backbuffer to the frontbuffer.
virtual gfx::SwapResult PostSubBuffer(int x, int y, int width, int height);
@@ -159,8 +157,10 @@ class GL_EXPORT GLSurface : public base::RefCounted<GLSurface> {
// with this GLSurface.
virtual unsigned long GetCompatibilityKey();
- // Get the GL pixel format of the surface, if available.
- virtual GLSurfaceFormat GetFormat();
+ // Get the GL pixel format of the surface. Must be implemented in a
+ // subclass, though it's ok to just "return GLSurfaceFormat()" if
+ // the default is appropriate.
+ virtual GLSurfaceFormat GetFormat() = 0;
// Get access to a helper providing time of recent refresh and period
// of screen refresh. If unavailable, returns NULL.
@@ -205,6 +205,11 @@ class GL_EXPORT GLSurface : public base::RefCounted<GLSurface> {
// the next buffer may be 2 frames old.
virtual bool BuffersFlipped() const;
+ virtual bool SupportsSetDrawRectangle() const;
+
+ // Set the rectangle that will be drawn into on the surface.
+ virtual bool SetDrawRectangle(const gfx::Rect& rect);
+
static GLSurface* GetCurrent();
// Called when the swap interval for the associated context changes.
@@ -240,10 +245,8 @@ class GL_EXPORT GLSurfaceAdapter : public GLSurface {
bool IsOffscreen() override;
gfx::SwapResult SwapBuffers() override;
void SwapBuffersAsync(const SwapCompletionCallback& callback) override;
- gfx::SwapResult SwapBuffersWithDamage(int x,
- int y,
- int width,
- int height) override;
+ gfx::SwapResult SwapBuffersWithBounds(
+ const std::vector<gfx::Rect>& rects) override;
gfx::SwapResult PostSubBuffer(int x, int y, int width, int height) override;
void PostSubBufferAsync(int x,
int y,
@@ -253,7 +256,7 @@ class GL_EXPORT GLSurfaceAdapter : public GLSurface {
gfx::SwapResult CommitOverlayPlanes() override;
void CommitOverlayPlanesAsync(
const SwapCompletionCallback& callback) override;
- bool SupportsSwapBuffersWithDamage() override;
+ bool SupportsSwapBuffersWithBounds() override;
bool SupportsPostSubBuffer() override;
bool SupportsCommitOverlayPlanes() override;
bool SupportsAsyncSwap() override;
@@ -277,6 +280,9 @@ class GL_EXPORT GLSurfaceAdapter : public GLSurface {
bool IsSurfaceless() const override;
bool FlipsVertically() const override;
bool BuffersFlipped() const override;
+ bool SupportsSetDrawRectangle() const override;
+ bool SetDrawRectangle(const gfx::Rect& rect) override;
+ void OnSetSwapInterval(int interval) override;
GLSurface* surface() const { return surface_.get(); }
diff --git a/chromium/ui/gl/gl_surface_egl.cc b/chromium/ui/gl/gl_surface_egl.cc
index 1d5c1409980..9196ca0b094 100644
--- a/chromium/ui/gl/gl_surface_egl.cc
+++ b/chromium/ui/gl/gl_surface_egl.cc
@@ -31,6 +31,7 @@
#include "ui/gl/gl_surface_stub.h"
#include "ui/gl/gl_switches.h"
#include "ui/gl/scoped_make_current.h"
+#include "ui/gl/sync_control_vsync_provider.h"
#if defined(USE_X11) && !defined(OS_CHROMEOS)
extern "C" {
@@ -136,9 +137,40 @@ bool g_egl_surfaceless_context_supported = false;
bool g_egl_surface_orientation_supported = false;
bool g_use_direct_composition = false;
-base::LazyInstance<ANGLEPlatformImpl> g_angle_platform_impl =
- LAZY_INSTANCE_INITIALIZER;
-ANGLEPlatformShutdownFunc g_angle_platform_shutdown = nullptr;
+class EGLSyncControlVSyncProvider : public SyncControlVSyncProvider {
+ public:
+ explicit EGLSyncControlVSyncProvider(EGLSurface surface)
+ : SyncControlVSyncProvider(),
+ surface_(surface) {
+ }
+
+ ~EGLSyncControlVSyncProvider() override {}
+
+ protected:
+ bool GetSyncValues(int64_t* system_time,
+ int64_t* media_stream_counter,
+ int64_t* swap_buffer_counter) override {
+ uint64_t u_system_time, u_media_stream_counter, u_swap_buffer_counter;
+ bool result = eglGetSyncValuesCHROMIUM(
+ g_display, surface_, &u_system_time,
+ &u_media_stream_counter, &u_swap_buffer_counter) == EGL_TRUE;
+ if (result) {
+ *system_time = static_cast<int64_t>(u_system_time);
+ *media_stream_counter = static_cast<int64_t>(u_media_stream_counter);
+ *swap_buffer_counter = static_cast<int64_t>(u_swap_buffer_counter);
+ }
+ return result;
+ }
+
+ bool GetMscRate(int32_t* numerator, int32_t* denominator) override {
+ return false;
+ }
+
+ private:
+ EGLSurface surface_;
+
+ DISALLOW_COPY_AND_ASSIGN(EGLSyncControlVSyncProvider);
+};
EGLDisplay GetPlatformANGLEDisplay(EGLNativeDisplayType native_display,
EGLenum platform_type,
@@ -242,6 +274,7 @@ bool ValidateEglConfig(EGLDisplay display,
EGLConfig ChooseConfig(GLSurfaceFormat format) {
// Choose an EGL configuration.
// On X this is only used for PBuffer surfaces.
+
std::vector<EGLint> renderable_types;
if (!base::CommandLine::ForCurrentProcess()->HasSwitch(
switches::kDisableES3GLContext)) {
@@ -252,6 +285,9 @@ EGLConfig ChooseConfig(GLSurfaceFormat format) {
EGLint buffer_size = format.GetBufferSize();
EGLint alpha_size = 8;
bool want_rgb565 = buffer_size == 16;
+ EGLint depth_size = format.GetDepthBits();
+ EGLint stencil_size = format.GetStencilBits();
+ EGLint samples = format.GetSamples();
#if defined(USE_X11) && !defined(OS_CHROMEOS)
// If we're using ANGLE_NULL, we may not have a display, in which case we
@@ -278,6 +314,12 @@ EGLConfig ChooseConfig(GLSurfaceFormat format) {
8,
EGL_RED_SIZE,
8,
+ EGL_SAMPLES,
+ samples,
+ EGL_DEPTH_SIZE,
+ depth_size,
+ EGL_STENCIL_SIZE,
+ stencil_size,
EGL_RENDERABLE_TYPE,
renderable_type,
EGL_SURFACE_TYPE,
@@ -292,6 +334,12 @@ EGLConfig ChooseConfig(GLSurfaceFormat format) {
6,
EGL_RED_SIZE,
5,
+ EGL_SAMPLES,
+ samples,
+ EGL_DEPTH_SIZE,
+ depth_size,
+ EGL_STENCIL_SIZE,
+ stencil_size,
EGL_RENDERABLE_TYPE,
renderable_type,
EGL_SURFACE_TYPE,
@@ -379,7 +427,7 @@ void GetEGLInitDisplays(bool supports_angle_d3d,
std::vector<DisplayType>* init_displays) {
// SwiftShader does not use the platform extensions
if (command_line->GetSwitchValueASCII(switches::kUseGL) ==
- kGLImplementationSwiftShaderName) {
+ kGLImplementationSwiftShaderForWebGLName) {
init_displays->push_back(SWIFT_SHADER);
return;
}
@@ -435,31 +483,6 @@ void GetEGLInitDisplays(bool supports_angle_d3d,
}
}
-EGLSyncControlVSyncProvider::EGLSyncControlVSyncProvider(EGLSurface surface)
- : SyncControlVSyncProvider(), surface_(surface) {}
-
-EGLSyncControlVSyncProvider::~EGLSyncControlVSyncProvider() {}
-
-bool EGLSyncControlVSyncProvider::GetSyncValues(int64_t* system_time,
- int64_t* media_stream_counter,
- int64_t* swap_buffer_counter) {
- uint64_t u_system_time, u_media_stream_counter, u_swap_buffer_counter;
- bool result = eglGetSyncValuesCHROMIUM(g_display, surface_, &u_system_time,
- &u_media_stream_counter,
- &u_swap_buffer_counter) == EGL_TRUE;
- if (result) {
- *system_time = static_cast<int64_t>(u_system_time);
- *media_stream_counter = static_cast<int64_t>(u_media_stream_counter);
- *swap_buffer_counter = static_cast<int64_t>(u_swap_buffer_counter);
- }
- return result;
-}
-
-bool EGLSyncControlVSyncProvider::GetMscRate(int32_t* numerator,
- int32_t* denominator) {
- return false;
-}
-
GLSurfaceEGL::GLSurfaceEGL() {}
GLSurfaceFormat GLSurfaceEGL::GetFormat() {
@@ -549,9 +572,7 @@ bool GLSurfaceEGL::InitializeOneOff(EGLNativeDisplayType native_display) {
// static
void GLSurfaceEGL::ShutdownOneOff() {
- if (g_angle_platform_shutdown) {
- g_angle_platform_shutdown();
- }
+ ResetANGLEPlatform(g_display);
if (g_display != EGL_NO_DISPLAY)
eglTerminate(g_display);
@@ -626,17 +647,6 @@ EGLDisplay GLSurfaceEGL::InitializeDisplay(
g_native_display = native_display;
- // Init ANGLE platform here, before we call GetPlatformDisplay().
- ANGLEPlatformInitializeFunc angle_platform_init =
- reinterpret_cast<ANGLEPlatformInitializeFunc>(
- eglGetProcAddress("ANGLEPlatformInitialize"));
- if (angle_platform_init) {
- angle_platform_init(&g_angle_platform_impl.Get());
-
- g_angle_platform_shutdown = reinterpret_cast<ANGLEPlatformShutdownFunc>(
- eglGetProcAddress("ANGLEPlatformShutdown"));
- }
-
// If EGL_EXT_client_extensions not supported this call to eglQueryString
// will return NULL.
const char* client_extensions =
@@ -670,6 +680,13 @@ EGLDisplay GLSurfaceEGL::InitializeDisplay(
<< GetLastEGLErrorString();
}
+ // Init ANGLE platform now that we have the global display.
+ if (supports_angle_d3d || supports_angle_opengl || supports_angle_null) {
+ if (!InitializeANGLEPlatform(display)) {
+ LOG(ERROR) << "ANGLE Platform initialization failed.";
+ }
+ }
+
if (!eglInitialize(display, nullptr, nullptr)) {
bool is_last = disp_index == init_displays.size() - 1;
@@ -787,9 +804,7 @@ bool NativeViewGLSurfaceEGL::Initialize(
}
supports_swap_buffer_with_damage_ =
- g_driver_egl.ext.b_EGL_KHR_swap_buffers_with_damage &&
- base::CommandLine::ForCurrentProcess()->HasSwitch(
- switches::kEnableSwapBuffersWithDamage);
+ g_driver_egl.ext.b_EGL_KHR_swap_buffers_with_damage;
if (sync_provider)
vsync_provider_ = std::move(sync_provider);
@@ -930,10 +945,6 @@ EGLSurface NativeViewGLSurfaceEGL::GetHandle() {
return surface_;
}
-bool NativeViewGLSurfaceEGL::SupportsSwapBuffersWithDamage() {
- return supports_swap_buffer_with_damage_;
-}
-
bool NativeViewGLSurfaceEGL::SupportsPostSubBuffer() {
return supports_post_sub_buffer_;
}
@@ -946,25 +957,18 @@ bool NativeViewGLSurfaceEGL::BuffersFlipped() const {
return g_use_direct_composition;
}
-gfx::SwapResult NativeViewGLSurfaceEGL::SwapBuffersWithDamage(int x,
- int y,
- int width,
- int height) {
+gfx::SwapResult NativeViewGLSurfaceEGL::SwapBuffersWithDamage(
+ const std::vector<int>& rects) {
DCHECK(supports_swap_buffer_with_damage_);
UpdateSwapInterval();
if (!CommitAndClearPendingOverlays()) {
DVLOG(1) << "Failed to commit pending overlay planes.";
return gfx::SwapResult::SWAP_FAILED;
}
- if (flips_vertically_) {
- // With EGL_SURFACE_ORIENTATION_INVERT_Y_ANGLE the contents are rendered
- // inverted, but the damage rectangle is still measured from the
- // bottom left.
- y = GetSize().height() - y - height;
- }
- EGLint damage_rect[4] = {x, y, width, height};
- if (!eglSwapBuffersWithDamageKHR(GetDisplay(), surface_, damage_rect, 1)) {
+ if (!eglSwapBuffersWithDamageKHR(GetDisplay(), surface_,
+ const_cast<EGLint*>(rects.data()),
+ static_cast<EGLint>(rects.size() / 4))) {
DVLOG(1) << "eglSwapBuffersWithDamageKHR failed with error "
<< GetLastEGLErrorString();
return gfx::SwapResult::SWAP_FAILED;
diff --git a/chromium/ui/gl/gl_surface_egl.h b/chromium/ui/gl/gl_surface_egl.h
index 6e003f88c48..d9caa8fe55b 100644
--- a/chromium/ui/gl/gl_surface_egl.h
+++ b/chromium/ui/gl/gl_surface_egl.h
@@ -24,7 +24,6 @@
#include "ui/gl/gl_export.h"
#include "ui/gl/gl_surface.h"
#include "ui/gl/gl_surface_overlay.h"
-#include "ui/gl/sync_control_vsync_provider.h"
namespace gl {
@@ -48,25 +47,6 @@ GL_EXPORT void GetEGLInitDisplays(bool supports_angle_d3d,
const base::CommandLine* command_line,
std::vector<DisplayType>* init_displays);
-// VSync provider for EGL surface;
-class GL_EXPORT EGLSyncControlVSyncProvider : public SyncControlVSyncProvider {
- public:
- explicit EGLSyncControlVSyncProvider(EGLSurface surface);
- ~EGLSyncControlVSyncProvider() override;
-
- protected:
- bool GetSyncValues(int64_t* system_time,
- int64_t* media_stream_counter,
- int64_t* swap_buffer_counter) override;
-
- bool GetMscRate(int32_t* numerator, int32_t* denominator) override;
-
- private:
- EGLSurface surface_;
-
- DISALLOW_COPY_AND_ASSIGN(EGLSyncControlVSyncProvider);
-};
-
// Interface for EGL surface.
class GL_EXPORT GLSurfaceEGL : public GLSurface {
public:
@@ -122,12 +102,7 @@ class GL_EXPORT NativeViewGLSurfaceEGL : public GLSurfaceEGL {
gfx::SwapResult SwapBuffers() override;
gfx::Size GetSize() override;
EGLSurface GetHandle() override;
- bool SupportsSwapBuffersWithDamage() override;
bool SupportsPostSubBuffer() override;
- gfx::SwapResult SwapBuffersWithDamage(int x,
- int y,
- int width,
- int height) override;
gfx::SwapResult PostSubBuffer(int x, int y, int width, int height) override;
bool SupportsCommitOverlayPlanes() override;
gfx::SwapResult CommitOverlayPlanes() override;
@@ -155,6 +130,7 @@ class GL_EXPORT NativeViewGLSurfaceEGL : public GLSurfaceEGL {
bool enable_fixed_size_angle_;
void OnSetSwapInterval(int interval) override;
+ gfx::SwapResult SwapBuffersWithDamage(const std::vector<int>& rects);
private:
// Commit the |pending_overlays_| and clear the vector. Returns false if any
diff --git a/chromium/ui/gl/gl_surface_format.h b/chromium/ui/gl/gl_surface_format.h
index cb7d51d7baa..2fcf504f887 100644
--- a/chromium/ui/gl/gl_surface_format.h
+++ b/chromium/ui/gl/gl_surface_format.h
@@ -9,6 +9,10 @@
namespace gl {
+// Expresses surface format properties that may vary depending
+// on the underlying gl_surface implementation or specific usage
+// scenarios. Intended usage is to support copying formats and
+// checking compatibility.
class GL_EXPORT GLSurfaceFormat {
public:
@@ -19,19 +23,36 @@ class GL_EXPORT GLSurfaceFormat {
PIXEL_LAYOUT_RGBA,
};
+ // Default surface format for the underlying gl_surface subtype.
+ // Use the setters below to change attributes if needed.
GLSurfaceFormat();
- ~GLSurfaceFormat();
-
+ // Use a specified pixel layout, cf. gl_surface_osmesa.
GLSurfaceFormat(SurfacePixelLayout layout);
+ // Copy constructor from pre-existing format.
GLSurfaceFormat(const GLSurfaceFormat& other);
+ ~GLSurfaceFormat();
+
+ // Helper method to determine if the format is unchanged from the
+ // default at creation time. TODO(klausw): can this be removed?
bool IsDefault();
+ // Surfaceless appears as a format property for backwards
+ // compatibility with the previous enum-based implementation.
+ // TODO(klausw): consider removing it and/or merging it into the
+ // pre-existing IsSurfaceless() predicate for the various Surface
+ // subclasses?
void SetIsSurfaceless();
bool IsSurfaceless();
+ // A given pair of surfaces is considered compatible if glSetSurface
+ // can be used to switch between them without generating BAD_MATCH
+ // errors, visual errors, or gross inefficiency, and incompatible
+ // otherwise. For example, a pixel layout mismatch would be
+ // considered incompatible. This comparison only makes sense within
+ // the context of a single gl_surface subtype.
bool IsCompatible(GLSurfaceFormat other_format);
// Default pixel format is RGBA8888. Use this method to select
@@ -53,6 +74,9 @@ class GL_EXPORT GLSurfaceFormat {
SurfacePixelLayout GetPixelLayout();
+ // Compute number of bits needed for storing one pixel, not
+ // including any padding. At this point mainly used to distinguish
+ // RGB565 (16) from RGBA8888 (32).
int GetBufferSize();
private:
diff --git a/chromium/ui/gl/gl_surface_glx.cc b/chromium/ui/gl/gl_surface_glx.cc
index 37ef1103c1f..d5f282dabb2 100644
--- a/chromium/ui/gl/gl_surface_glx.cc
+++ b/chromium/ui/gl/gl_surface_glx.cc
@@ -616,6 +616,10 @@ void* NativeViewGLSurfaceGLX::GetConfig() {
return config_;
}
+GLSurfaceFormat NativeViewGLSurfaceGLX::GetFormat() {
+ return GLSurfaceFormat();
+}
+
unsigned long NativeViewGLSurfaceGLX::GetCompatibilityKey() {
return visual_id_;
}
@@ -709,6 +713,10 @@ void* UnmappedNativeViewGLSurfaceGLX::GetConfig() {
return config_;
}
+GLSurfaceFormat UnmappedNativeViewGLSurfaceGLX::GetFormat() {
+ return GLSurfaceFormat();
+}
+
unsigned long UnmappedNativeViewGLSurfaceGLX::GetCompatibilityKey() {
return XVisualIDFromVisual(g_visual);
}
diff --git a/chromium/ui/gl/gl_surface_glx.h b/chromium/ui/gl/gl_surface_glx.h
index 3d2838ba1d0..7ab6b0aa6cf 100644
--- a/chromium/ui/gl/gl_surface_glx.h
+++ b/chromium/ui/gl/gl_surface_glx.h
@@ -72,6 +72,7 @@ class GL_EXPORT NativeViewGLSurfaceGLX : public GLSurfaceGLX {
void* GetHandle() override;
bool SupportsPostSubBuffer() override;
void* GetConfig() override;
+ GLSurfaceFormat GetFormat() override;
unsigned long GetCompatibilityKey() override;
gfx::SwapResult PostSubBuffer(int x, int y, int width, int height) override;
gfx::VSyncProvider* GetVSyncProvider() override;
@@ -127,6 +128,7 @@ class GL_EXPORT UnmappedNativeViewGLSurfaceGLX : public GLSurfaceGLX {
gfx::Size GetSize() override;
void* GetHandle() override;
void* GetConfig() override;
+ GLSurfaceFormat GetFormat() override;
unsigned long GetCompatibilityKey() override;
protected:
diff --git a/chromium/ui/gl/gl_surface_stub.cc b/chromium/ui/gl/gl_surface_stub.cc
index 9c94cb0da46..91cfbb27fb9 100644
--- a/chromium/ui/gl/gl_surface_stub.cc
+++ b/chromium/ui/gl/gl_surface_stub.cc
@@ -35,6 +35,10 @@ bool GLSurfaceStub::BuffersFlipped() const {
return buffers_flipped_;
}
+GLSurfaceFormat GLSurfaceStub::GetFormat() {
+ return GLSurfaceFormat();
+}
+
GLSurfaceStub::~GLSurfaceStub() {}
} // namespace gl
diff --git a/chromium/ui/gl/gl_surface_stub.h b/chromium/ui/gl/gl_surface_stub.h
index 9d52a5c9181..860f989667c 100644
--- a/chromium/ui/gl/gl_surface_stub.h
+++ b/chromium/ui/gl/gl_surface_stub.h
@@ -26,6 +26,7 @@ class GL_EXPORT GLSurfaceStub : public GLSurface {
gfx::Size GetSize() override;
void* GetHandle() override;
bool BuffersFlipped() const override;
+ GLSurfaceFormat GetFormat() override;
protected:
~GLSurfaceStub() override;
diff --git a/chromium/ui/gl/gl_surface_wgl.cc b/chromium/ui/gl/gl_surface_wgl.cc
index a971b152210..eb48cc462e4 100644
--- a/chromium/ui/gl/gl_surface_wgl.cc
+++ b/chromium/ui/gl/gl_surface_wgl.cc
@@ -320,6 +320,10 @@ void* NativeViewGLSurfaceWGL::GetHandle() {
return device_context_;
}
+GLSurfaceFormat NativeViewGLSurfaceWGL::GetFormat() {
+ return GLSurfaceFormat();
+}
+
PbufferGLSurfaceWGL::PbufferGLSurfaceWGL(const gfx::Size& size)
: size_(size),
device_context_(NULL),
@@ -394,4 +398,8 @@ void* PbufferGLSurfaceWGL::GetHandle() {
return device_context_;
}
+GLSurfaceFormat PbufferGLSurfaceWGL::GetFormat() {
+ return GLSurfaceFormat();
+}
+
} // namespace gl
diff --git a/chromium/ui/gl/gl_surface_wgl.h b/chromium/ui/gl/gl_surface_wgl.h
index 25990dff498..1396f059cef 100644
--- a/chromium/ui/gl/gl_surface_wgl.h
+++ b/chromium/ui/gl/gl_surface_wgl.h
@@ -47,6 +47,7 @@ class GL_EXPORT NativeViewGLSurfaceWGL : public GLSurfaceWGL {
gfx::SwapResult SwapBuffers() override;
gfx::Size GetSize() override;
void* GetHandle() override;
+ GLSurfaceFormat GetFormat() override;
private:
~NativeViewGLSurfaceWGL() override;
@@ -73,6 +74,7 @@ class GL_EXPORT PbufferGLSurfaceWGL : public GLSurfaceWGL {
gfx::SwapResult SwapBuffers() override;
gfx::Size GetSize() override;
void* GetHandle() override;
+ GLSurfaceFormat GetFormat() override;
private:
~PbufferGLSurfaceWGL() override;
diff --git a/chromium/ui/gl/gl_switches.cc b/chromium/ui/gl/gl_switches.cc
index dbf0e6e153e..2eccfc33dd3 100644
--- a/chromium/ui/gl/gl_switches.cc
+++ b/chromium/ui/gl/gl_switches.cc
@@ -13,7 +13,9 @@ const char kGLImplementationAppleName[] = "apple";
const char kGLImplementationEGLName[] = "egl";
const char kGLImplementationANGLEName[] = "angle";
const char kGLImplementationSwiftShaderName[] = "swiftshader";
+const char kGLImplementationSwiftShaderForWebGLName[] = "swiftshader-webgl";
const char kGLImplementationMockName[] = "mock";
+const char kGLImplementationStubName[] = "stub";
const char kANGLEImplementationDefaultName[] = "default";
const char kANGLEImplementationD3D9Name[] = "d3d9";
@@ -66,6 +68,7 @@ const char kUseANGLE[] = "use-angle";
// egl: whatever EGL / GLES2 the user has installed (Windows default - actually
// ANGLE).
// osmesa: The OSMesa software renderer.
+// swiftshader: The SwiftShader software renderer.
const char kUseGL[] = "use-gl";
const char kSwiftShaderPath[] = "swiftshader-path";
@@ -102,15 +105,15 @@ const char kEnableSgiVideoSync[] = "enable-sgi-video-sync";
// the GL output will not be correct but tests will run faster.
const char kDisableGLDrawingForTests[] = "disable-gl-drawing-for-tests";
-// Forces the use of OSMesa instead of hardware gpu.
-const char kOverrideUseGLWithOSMesaForTests[] =
- "override-use-gl-with-osmesa-for-tests";
+// Forces the use of software GL instead of hardware gpu.
+const char kOverrideUseSoftwareGLForTests[] =
+ "override-use-software-gl-for-tests";
// Disables specified comma separated GL Extensions if found.
const char kDisableGLExtensions[] = "disable-gl-extensions";
-// Use EGL_KHR_swap_buffers_with_damage to implement PostSubBuffers
-const char kEnableSwapBuffersWithDamage[] = "enable-swap-buffers-with-damage";
+// Enables SwapBuffersWithBounds if it is supported.
+const char kEnableSwapBuffersWithBounds[] = "enable-swap-buffers-with-bounds";
// This is the list of switches passed from this file that are passed from the
// GpuProcessHost to the GPU Process. Add your switch to this list if you need
@@ -123,12 +126,22 @@ const char* kGLSwitchesCopiedFromGpuProcessHost[] = {
kEnableSgiVideoSync,
kGpuNoContextLost,
kDisableGLDrawingForTests,
- kOverrideUseGLWithOSMesaForTests,
+ kOverrideUseSoftwareGLForTests,
kUseANGLE,
kDisableDirectComposition,
- kEnableSwapBuffersWithDamage,
+ kEnableSwapBuffersWithBounds,
};
const int kGLSwitchesCopiedFromGpuProcessHostNumSwitches =
arraysize(kGLSwitchesCopiedFromGpuProcessHost);
} // namespace switches
+
+namespace features {
+
+#if defined(OS_WIN)
+// Wait for D3D VSync signals in GPU process (as opposed to delay based VSync
+// generated in Browser process based on VSync parameters).
+const base::Feature kD3DVsync{"D3DVsync", base::FEATURE_DISABLED_BY_DEFAULT};
+#endif // defined(OS_WIN)
+
+} // namespace features
diff --git a/chromium/ui/gl/gl_switches.h b/chromium/ui/gl/gl_switches.h
index 5edf397857a..945783b725a 100644
--- a/chromium/ui/gl/gl_switches.h
+++ b/chromium/ui/gl/gl_switches.h
@@ -7,6 +7,7 @@
// Defines all the command-line switches used by ui/gl.
+#include "base/feature_list.h"
#include "ui/gl/gl_export.h"
namespace gl {
@@ -18,7 +19,9 @@ GL_EXPORT extern const char kGLImplementationAppleName[];
GL_EXPORT extern const char kGLImplementationEGLName[];
GL_EXPORT extern const char kGLImplementationANGLEName[];
GL_EXPORT extern const char kGLImplementationSwiftShaderName[];
+GL_EXPORT extern const char kGLImplementationSwiftShaderForWebGLName[];
extern const char kGLImplementationMockName[];
+extern const char kGLImplementationStubName[];
GL_EXPORT extern const char kANGLEImplementationDefaultName[];
GL_EXPORT extern const char kANGLEImplementationD3D9Name[];
@@ -51,15 +54,23 @@ GL_EXPORT extern const char kEnableES3APIs[];
GL_EXPORT extern const char kDisableES3APIs[];
GL_EXPORT extern const char kEnableSgiVideoSync[];
GL_EXPORT extern const char kDisableGLExtensions[];
-GL_EXPORT extern const char kEnableSwapBuffersWithDamage[];
+GL_EXPORT extern const char kEnableSwapBuffersWithBounds[];
// These flags are used by the test harness code, not passed in by users.
GL_EXPORT extern const char kDisableGLDrawingForTests[];
-GL_EXPORT extern const char kOverrideUseGLWithOSMesaForTests[];
+GL_EXPORT extern const char kOverrideUseSoftwareGLForTests[];
GL_EXPORT extern const char* kGLSwitchesCopiedFromGpuProcessHost[];
GL_EXPORT extern const int kGLSwitchesCopiedFromGpuProcessHostNumSwitches;
} // namespace switches
+namespace features {
+
+#if defined(OS_WIN)
+GL_EXPORT extern const base::Feature kD3DVsync;
+#endif // defined(OS_WIN)
+
+} // namespace features
+
#endif // UI_GL_GL_SWITCHES_H_
diff --git a/chromium/ui/gl/gl_wgl_api_implementation.cc b/chromium/ui/gl/gl_wgl_api_implementation.cc
index c26312cdf9a..c6a500fc6d8 100644
--- a/chromium/ui/gl/gl_wgl_api_implementation.cc
+++ b/chromium/ui/gl/gl_wgl_api_implementation.cc
@@ -11,7 +11,8 @@
namespace gl {
-RealWGLApi* g_real_wgl;
+RealWGLApi* g_real_wgl = nullptr;
+DebugWGLApi* g_debug_wgl = nullptr;
void InitializeStaticGLBindingsWGL() {
g_driver_wgl.InitializeStaticBindings();
@@ -24,10 +25,17 @@ void InitializeStaticGLBindingsWGL() {
}
void InitializeDebugGLBindingsWGL() {
- g_driver_wgl.InitializeDebugBindings();
+ if (!g_debug_wgl) {
+ g_debug_wgl = new DebugWGLApi(g_real_wgl);
+ }
+ g_current_wgl_context = g_debug_wgl;
}
void ClearBindingsWGL() {
+ if (g_debug_wgl) {
+ delete g_debug_wgl;
+ g_debug_wgl = NULL;
+ }
if (g_real_wgl) {
delete g_real_wgl;
g_real_wgl = NULL;
@@ -111,6 +119,10 @@ const char* RealWGLApi::wglGetExtensionsStringEXTFn() {
return filtered_ext_exts_.c_str();
}
+DebugWGLApi::DebugWGLApi(WGLApi* wgl_api) : wgl_api_(wgl_api) {}
+
+DebugWGLApi::~DebugWGLApi() {}
+
TraceWGLApi::~TraceWGLApi() {
}
diff --git a/chromium/ui/gl/gl_wgl_api_implementation.h b/chromium/ui/gl/gl_wgl_api_implementation.h
index 9366c636206..cc3628c15df 100644
--- a/chromium/ui/gl/gl_wgl_api_implementation.h
+++ b/chromium/ui/gl/gl_wgl_api_implementation.h
@@ -55,6 +55,21 @@ class GL_EXPORT RealWGLApi : public WGLApiBase {
std::string filtered_ext_exts_;
};
+// Logs debug information for every WGL call.
+class GL_EXPORT DebugWGLApi : public WGLApi {
+ public:
+ DebugWGLApi(WGLApi* wgl_api);
+ ~DebugWGLApi() override;
+
+ // Include the auto-generated part of this class. We split this because
+ // it means we can easily edit the non-auto generated parts right here in
+ // this file instead of having to edit some template or the code generator.
+ #include "gl_bindings_api_autogen_wgl.h"
+
+ private:
+ WGLApi* wgl_api_;
+};
+
// Inserts a TRACE for every WGL call.
class GL_EXPORT TraceWGLApi : public WGLApi {
public:
diff --git a/chromium/ui/gl/gpu_timing_unittest.cc b/chromium/ui/gl/gpu_timing_unittest.cc
index c895a7dbbf7..6fa9b06f7e1 100644
--- a/chromium/ui/gl/gpu_timing_unittest.cc
+++ b/chromium/ui/gl/gpu_timing_unittest.cc
@@ -10,7 +10,7 @@
#include "base/bind.h"
#include "testing/gtest/include/gtest/gtest.h"
-#include "ui/gl/gl_context_stub_with_extensions.h"
+#include "ui/gl/gl_context_stub.h"
#include "ui/gl/gl_implementation.h"
#include "ui/gl/gl_mock.h"
#include "ui/gl/gl_surface_stub.h"
@@ -54,8 +54,8 @@ class GPUTimingTest : public testing::Test {
gl_.reset(new ::testing::StrictMock<MockGLInterface>());
MockGLInterface::SetGLInterface(gl_.get());
- context_ = new GLContextStubWithExtensions;
- context_->AddExtensionsString(gl_extensions);
+ context_ = new GLContextStub;
+ context_->SetExtensionsString(gl_extensions);
context_->SetGLVersionString(gl_version);
surface_ = new GLSurfaceStub;
context_->MakeCurrent(surface_.get());
@@ -81,7 +81,7 @@ class GPUTimingTest : public testing::Test {
bool setup_ = false;
bool cpu_time_bounded_ = false;
std::unique_ptr<::testing::StrictMock<MockGLInterface>> gl_;
- scoped_refptr<GLContextStubWithExtensions> context_;
+ scoped_refptr<GLContextStub> context_;
scoped_refptr<GLSurfaceStub> surface_;
GPUTimingFake gpu_timing_fake_queries_;
};
diff --git a/chromium/ui/gl/init/gl_factory.cc b/chromium/ui/gl/init/gl_factory.cc
index dff751b2c79..20da613e0a6 100644
--- a/chromium/ui/gl/init/gl_factory.cc
+++ b/chromium/ui/gl/init/gl_factory.cc
@@ -29,16 +29,19 @@ bool InitializeGLOneOff() {
// The default implementation is always the first one in list.
GLImplementation impl = allowed_impls[0];
- bool fallback_to_osmesa = false;
- if (cmd->HasSwitch(switches::kOverrideUseGLWithOSMesaForTests)) {
- impl = kGLImplementationOSMesaGL;
+ bool fallback_to_software_gl = false;
+ if (cmd->HasSwitch(switches::kOverrideUseSoftwareGLForTests)) {
+ impl = GetSoftwareGLImplementation();
} else if (cmd->HasSwitch(switches::kUseGL)) {
std::string requested_implementation_name =
cmd->GetSwitchValueASCII(switches::kUseGL);
if (requested_implementation_name == "any") {
- fallback_to_osmesa = true;
+ fallback_to_software_gl = true;
} else if (requested_implementation_name ==
- kGLImplementationSwiftShaderName ||
+ kGLImplementationSwiftShaderName) {
+ impl = kGLImplementationSwiftShaderGL;
+ } else if (requested_implementation_name ==
+ kGLImplementationSwiftShaderForWebGLName ||
requested_implementation_name == kGLImplementationANGLEName) {
impl = kGLImplementationEGLGLES2;
} else {
@@ -54,18 +57,18 @@ bool InitializeGLOneOff() {
bool disable_gl_drawing = cmd->HasSwitch(switches::kDisableGLDrawingForTests);
return InitializeGLOneOffImplementation(
- impl, fallback_to_osmesa, gpu_service_logging, disable_gl_drawing);
+ impl, fallback_to_software_gl, gpu_service_logging, disable_gl_drawing);
}
bool InitializeGLOneOffImplementation(GLImplementation impl,
- bool fallback_to_osmesa,
+ bool fallback_to_software_gl,
bool gpu_service_logging,
bool disable_gl_drawing) {
bool initialized =
InitializeStaticGLBindings(impl) && InitializeGLOneOffPlatform();
- if (!initialized && fallback_to_osmesa) {
+ if (!initialized && fallback_to_software_gl) {
ShutdownGL();
- initialized = InitializeStaticGLBindings(kGLImplementationOSMesaGL) &&
+ initialized = InitializeStaticGLBindings(GetSoftwareGLImplementation()) &&
InitializeGLOneOffPlatform();
}
if (!initialized)
diff --git a/chromium/ui/gl/init/gl_factory.h b/chromium/ui/gl/init/gl_factory.h
index 4e62d2106a6..52dcbe1a074 100644
--- a/chromium/ui/gl/init/gl_factory.h
+++ b/chromium/ui/gl/init/gl_factory.h
@@ -5,6 +5,7 @@
#ifndef UI_GL_INIT_GL_FACTORY_H_
#define UI_GL_INIT_GL_FACTORY_H_
+#include <memory>
#include <vector>
#include "base/memory/ref_counted.h"
@@ -15,6 +16,10 @@
#include "ui/gl/gpu_preference.h"
#include "ui/gl/init/gl_init_export.h"
+namespace gfx {
+class VSyncProvider;
+} // namespace gfx
+
namespace gl {
class GLContext;
@@ -33,10 +38,11 @@ GL_INIT_EXPORT bool InitializeGLOneOff();
// Initializes GL bindings using the provided parameters. This might be required
// for use in tests, otherwise use InitializeGLOneOff() instead.
-GL_INIT_EXPORT bool InitializeGLOneOffImplementation(GLImplementation impl,
- bool fallback_to_osmesa,
- bool gpu_service_logging,
- bool disable_gl_drawing);
+GL_INIT_EXPORT bool InitializeGLOneOffImplementation(
+ GLImplementation impl,
+ bool fallback_to_software_gl,
+ bool gpu_service_logging,
+ bool disable_gl_drawing);
// Clears GL bindings and resets GL implementation.
GL_INIT_EXPORT void ShutdownGL();
@@ -58,6 +64,13 @@ GL_INIT_EXPORT scoped_refptr<GLContext> CreateGLContext(
GL_INIT_EXPORT scoped_refptr<GLSurface> CreateViewGLSurface(
gfx::AcceleratedWidget window);
+#if defined(OS_WIN)
+// Creates a GL surface that renders directly into a native window.
+GL_INIT_EXPORT scoped_refptr<GLSurface> CreateNativeViewGLSurfaceEGL(
+ gfx::AcceleratedWidget window,
+ std::unique_ptr<gfx::VSyncProvider> sync_provider);
+#endif
+
#if defined(USE_OZONE)
// Creates a GL surface that renders directly into a window with surfaceless
// semantics - there is no default framebuffer and the primary surface must
diff --git a/chromium/ui/gl/init/gl_factory_android.cc b/chromium/ui/gl/init/gl_factory_android.cc
index e9c681f1cf7..91f728b3ce7 100644
--- a/chromium/ui/gl/init/gl_factory_android.cc
+++ b/chromium/ui/gl/init/gl_factory_android.cc
@@ -60,7 +60,7 @@ bool GLNonOwnedContext::Initialize(GLSurface* compatible_surface,
}
bool GLNonOwnedContext::MakeCurrent(GLSurface* surface) {
- SetRealGLApi();
+ BindGLApi();
SetCurrent(surface);
InitializeDynamicBindings();
return true;
@@ -99,6 +99,12 @@ scoped_refptr<GLContext> CreateGLContext(GLShareGroup* share_group,
switch (GetGLImplementation()) {
case kGLImplementationMockGL:
return scoped_refptr<GLContext>(new GLContextStub(share_group));
+ case kGLImplementationStubGL: {
+ scoped_refptr<GLContextStub> stub_context =
+ new GLContextStub(share_group);
+ stub_context->SetUseStubApi(true);
+ return stub_context;
+ }
case kGLImplementationOSMesaGL:
return InitializeGLContext(new GLContextOSMesa(share_group),
compatible_surface, attribs);
@@ -152,6 +158,7 @@ scoped_refptr<GLSurface> CreateOffscreenGLSurfaceWithFormat(
}
}
case kGLImplementationMockGL:
+ case kGLImplementationStubGL:
return new GLSurfaceStub;
default:
NOTREACHED();
diff --git a/chromium/ui/gl/init/gl_factory_mac.cc b/chromium/ui/gl/init/gl_factory_mac.cc
index 1bcfbadd2e4..6716f4109df 100644
--- a/chromium/ui/gl/init/gl_factory_mac.cc
+++ b/chromium/ui/gl/init/gl_factory_mac.cc
@@ -43,6 +43,7 @@ class NoOpGLSurface : public GLSurface {
void* GetHandle() override { return nullptr; }
void* GetDisplay() override { return nullptr; }
bool IsSurfaceless() const override { return true; }
+ GLSurfaceFormat GetFormat() override { return GLSurfaceFormat(); }
protected:
~NoOpGLSurface() override {}
@@ -87,6 +88,12 @@ scoped_refptr<GLContext> CreateGLContext(GLShareGroup* share_group,
compatible_surface, attribs);
case kGLImplementationMockGL:
return new GLContextStub(share_group);
+ case kGLImplementationStubGL: {
+ scoped_refptr<GLContextStub> stub_context =
+ new GLContextStub(share_group);
+ stub_context->SetUseStubApi(true);
+ return stub_context;
+ }
default:
NOTREACHED();
return nullptr;
@@ -106,6 +113,7 @@ scoped_refptr<GLSurface> CreateViewGLSurface(gfx::AcceleratedWidget window) {
return InitializeGLSurface(new GLSurfaceOSMesaHeadless());
}
case kGLImplementationMockGL:
+ case kGLImplementationStubGL:
return new GLSurfaceStub;
default:
NOTREACHED();
@@ -127,6 +135,7 @@ scoped_refptr<GLSurface> CreateOffscreenGLSurfaceWithFormat(
return InitializeGLSurfaceWithFormat(
new NoOpGLSurface(size), format);
case kGLImplementationMockGL:
+ case kGLImplementationStubGL:
return new GLSurfaceStub;
default:
NOTREACHED();
diff --git a/chromium/ui/gl/init/gl_factory_ozone.cc b/chromium/ui/gl/init/gl_factory_ozone.cc
index f2d1cbd9aaa..e47eaae26a3 100644
--- a/chromium/ui/gl/init/gl_factory_ozone.cc
+++ b/chromium/ui/gl/init/gl_factory_ozone.cc
@@ -7,19 +7,14 @@
#include "base/logging.h"
#include "base/trace_event/trace_event.h"
#include "ui/gl/gl_context.h"
-#include "ui/gl/gl_context_egl.h"
#include "ui/gl/gl_context_osmesa.h"
#include "ui/gl/gl_context_stub.h"
-#include "ui/gl/gl_egl_api_implementation.h"
#include "ui/gl/gl_implementation.h"
#include "ui/gl/gl_share_group.h"
#include "ui/gl/gl_surface.h"
-#include "ui/gl/gl_surface_egl.h"
#include "ui/gl/gl_surface_osmesa.h"
#include "ui/gl/gl_surface_stub.h"
#include "ui/gl/init/ozone_util.h"
-#include "ui/ozone/public/ozone_platform.h"
-#include "ui/ozone/public/surface_factory_ozone.h"
namespace gl {
namespace init {
@@ -27,7 +22,8 @@ namespace init {
namespace {
bool HasDefaultImplementation(GLImplementation impl) {
- return impl == kGLImplementationOSMesaGL || impl == kGLImplementationMockGL;
+ return impl == kGLImplementationOSMesaGL || impl == kGLImplementationMockGL ||
+ impl == kGLImplementationStubGL;
}
scoped_refptr<GLSurface> CreateDefaultViewGLSurface(
@@ -36,6 +32,7 @@ scoped_refptr<GLSurface> CreateDefaultViewGLSurface(
case kGLImplementationOSMesaGL:
return InitializeGLSurface(new GLSurfaceOSMesaHeadless());
case kGLImplementationMockGL:
+ case kGLImplementationStubGL:
return InitializeGLSurface(new GLSurfaceStub());
default:
NOTREACHED();
@@ -51,6 +48,7 @@ scoped_refptr<GLSurface> CreateDefaultOffscreenGLSurface(
new GLSurfaceOSMesa(
GLSurfaceFormat(GLSurfaceFormat::PIXEL_LAYOUT_BGRA), size));
case kGLImplementationMockGL:
+ case kGLImplementationStubGL:
return InitializeGLSurface(new GLSurfaceStub);
default:
NOTREACHED();
@@ -69,14 +67,7 @@ bool GetGLWindowSystemBindingInfo(GLWindowSystemBindingInfo* info) {
if (HasGLOzone())
return GetGLOzone()->GetGLWindowSystemBindingInfo(info);
- // TODO(kylechar): This is deprecated and can be removed once all Ozone
- // platforms use GLOzone instead.
- switch (GetGLImplementation()) {
- case kGLImplementationEGLGLES2:
- return GetGLWindowSystemBindingInfoEGL(info);
- default:
- return false;
- }
+ return false;
}
scoped_refptr<GLContext> CreateGLContext(GLShareGroup* share_group,
@@ -92,12 +83,15 @@ scoped_refptr<GLContext> CreateGLContext(GLShareGroup* share_group,
switch (GetGLImplementation()) {
case kGLImplementationMockGL:
return scoped_refptr<GLContext>(new GLContextStub(share_group));
+ case kGLImplementationStubGL: {
+ scoped_refptr<GLContextStub> stub_context =
+ new GLContextStub(share_group);
+ stub_context->SetUseStubApi(true);
+ return stub_context;
+ }
case kGLImplementationOSMesaGL:
return InitializeGLContext(new GLContextOSMesa(share_group),
compatible_surface, attribs);
- case kGLImplementationEGLGLES2:
- return InitializeGLContext(new GLContextEGL(share_group),
- compatible_surface, attribs);
default:
NOTREACHED();
}
@@ -113,10 +107,7 @@ scoped_refptr<GLSurface> CreateViewGLSurface(gfx::AcceleratedWidget window) {
if (HasDefaultImplementation(GetGLImplementation()))
return CreateDefaultViewGLSurface(window);
- // TODO(kylechar): This is deprecated and can be removed once all Ozone
- // platforms use GLOzone instead.
- return GetSurfaceFactoryOzone()->CreateViewGLSurface(GetGLImplementation(),
- window);
+ return nullptr;
}
scoped_refptr<GLSurface> CreateSurfacelessViewGLSurface(
@@ -126,10 +117,7 @@ scoped_refptr<GLSurface> CreateSurfacelessViewGLSurface(
if (HasGLOzone())
return GetGLOzone()->CreateSurfacelessViewGLSurface(window);
- // TODO(kylechar): This is deprecated and can be removed once all Ozone
- // platforms use GLOzone instead.
- return GetSurfaceFactoryOzone()->CreateSurfacelessViewGLSurface(
- GetGLImplementation(), window);
+ return nullptr;
}
scoped_refptr<GLSurface> CreateOffscreenGLSurfaceWithFormat(
@@ -147,10 +135,7 @@ scoped_refptr<GLSurface> CreateOffscreenGLSurfaceWithFormat(
if (HasDefaultImplementation(GetGLImplementation()))
return CreateDefaultOffscreenGLSurface(size);
- // TODO(kylechar): This is deprecated and can be removed once all Ozone
- // platforms use GLOzone instead.
- return GetSurfaceFactoryOzone()->CreateOffscreenGLSurface(
- GetGLImplementation(), size);
+ return nullptr;
}
} // namespace init
diff --git a/chromium/ui/gl/init/gl_factory_win.cc b/chromium/ui/gl/init/gl_factory_win.cc
index 97760c45997..198147d3f57 100644
--- a/chromium/ui/gl/init/gl_factory_win.cc
+++ b/chromium/ui/gl/init/gl_factory_win.cc
@@ -31,6 +31,7 @@ std::vector<GLImplementation> GetAllowedGLImplementations() {
impls.push_back(kGLImplementationEGLGLES2);
impls.push_back(kGLImplementationDesktopGL);
impls.push_back(kGLImplementationOSMesaGL);
+ impls.push_back(kGLImplementationSwiftShaderGL);
return impls;
}
@@ -53,6 +54,7 @@ scoped_refptr<GLContext> CreateGLContext(GLShareGroup* share_group,
case kGLImplementationOSMesaGL:
return InitializeGLContext(new GLContextOSMesa(share_group),
compatible_surface, attribs);
+ case kGLImplementationSwiftShaderGL:
case kGLImplementationEGLGLES2:
return InitializeGLContext(new GLContextEGL(share_group),
compatible_surface, attribs);
@@ -61,6 +63,12 @@ scoped_refptr<GLContext> CreateGLContext(GLShareGroup* share_group,
compatible_surface, attribs);
case kGLImplementationMockGL:
return new GLContextStub(share_group);
+ case kGLImplementationStubGL: {
+ scoped_refptr<GLContextStub> stub_context =
+ new GLContextStub(share_group);
+ stub_context->SetUseStubApi(true);
+ return stub_context;
+ }
default:
NOTREACHED();
return nullptr;
@@ -72,20 +80,16 @@ scoped_refptr<GLSurface> CreateViewGLSurface(gfx::AcceleratedWidget window) {
switch (GetGLImplementation()) {
case kGLImplementationOSMesaGL:
return InitializeGLSurface(new GLSurfaceOSMesaWin(window));
+ case kGLImplementationSwiftShaderGL:
case kGLImplementationEGLGLES2: {
- DCHECK(window != gfx::kNullAcceleratedWidget);
- scoped_refptr<NativeViewGLSurfaceEGL> surface(
- new NativeViewGLSurfaceEGL(window));
- std::unique_ptr<gfx::VSyncProvider> sync_provider;
- sync_provider.reset(new VSyncProviderWin(window));
- if (!surface->Initialize(std::move(sync_provider)))
- return nullptr;
-
- return surface;
+ std::unique_ptr<gfx::VSyncProvider> sync_provider(
+ new VSyncProviderWin(window));
+ return CreateNativeViewGLSurfaceEGL(window, std::move(sync_provider));
}
case kGLImplementationDesktopGL:
return InitializeGLSurface(new NativeViewGLSurfaceWGL(window));
case kGLImplementationMockGL:
+ case kGLImplementationStubGL:
return new GLSurfaceStub;
default:
NOTREACHED();
@@ -93,6 +97,21 @@ scoped_refptr<GLSurface> CreateViewGLSurface(gfx::AcceleratedWidget window) {
}
}
+scoped_refptr<GLSurface> CreateNativeViewGLSurfaceEGL(
+ gfx::AcceleratedWidget window,
+ std::unique_ptr<gfx::VSyncProvider> sync_provider) {
+ DCHECK_EQ(kGLImplementationEGLGLES2, GetGLImplementation());
+ DCHECK(window != gfx::kNullAcceleratedWidget);
+
+ scoped_refptr<NativeViewGLSurfaceEGL> surface(
+ new NativeViewGLSurfaceEGL(window));
+
+ if (!surface->Initialize(std::move(sync_provider)))
+ return nullptr;
+
+ return surface;
+}
+
scoped_refptr<GLSurface> CreateOffscreenGLSurfaceWithFormat(
const gfx::Size& size, GLSurfaceFormat format) {
TRACE_EVENT0("gpu", "gl::init::CreateOffscreenGLSurface");
@@ -101,6 +120,7 @@ scoped_refptr<GLSurface> CreateOffscreenGLSurfaceWithFormat(
format.SetDefaultPixelLayout(GLSurfaceFormat::PIXEL_LAYOUT_RGBA);
return InitializeGLSurfaceWithFormat(
new GLSurfaceOSMesa(format, size), format);
+ case kGLImplementationSwiftShaderGL:
case kGLImplementationEGLGLES2:
return InitializeGLSurfaceWithFormat(
new PbufferGLSurfaceEGL(size), format);
@@ -108,6 +128,7 @@ scoped_refptr<GLSurface> CreateOffscreenGLSurfaceWithFormat(
return InitializeGLSurfaceWithFormat(
new PbufferGLSurfaceWGL(size), format);
case kGLImplementationMockGL:
+ case kGLImplementationStubGL:
return new GLSurfaceStub;
default:
NOTREACHED();
diff --git a/chromium/ui/gl/init/gl_factory_x11.cc b/chromium/ui/gl/init/gl_factory_x11.cc
index ec3f1ada0e4..38a4d2210d6 100644
--- a/chromium/ui/gl/init/gl_factory_x11.cc
+++ b/chromium/ui/gl/init/gl_factory_x11.cc
@@ -31,6 +31,7 @@ std::vector<GLImplementation> GetAllowedGLImplementations() {
impls.push_back(kGLImplementationDesktopGL);
impls.push_back(kGLImplementationEGLGLES2);
impls.push_back(kGLImplementationOSMesaGL);
+ impls.push_back(kGLImplementationSwiftShaderGL);
return impls;
}
@@ -56,11 +57,18 @@ scoped_refptr<GLContext> CreateGLContext(GLShareGroup* share_group,
case kGLImplementationDesktopGL:
return InitializeGLContext(new GLContextGLX(share_group),
compatible_surface, attribs);
+ case kGLImplementationSwiftShaderGL:
case kGLImplementationEGLGLES2:
return InitializeGLContext(new GLContextEGL(share_group),
compatible_surface, attribs);
case kGLImplementationMockGL:
return new GLContextStub(share_group);
+ case kGLImplementationStubGL: {
+ scoped_refptr<GLContextStub> stub_context =
+ new GLContextStub(share_group);
+ stub_context->SetUseStubApi(true);
+ return stub_context;
+ }
default:
NOTREACHED();
return nullptr;
@@ -74,10 +82,12 @@ scoped_refptr<GLSurface> CreateViewGLSurface(gfx::AcceleratedWidget window) {
return InitializeGLSurface(new GLSurfaceOSMesaX11(window));
case kGLImplementationDesktopGL:
return InitializeGLSurface(new GLSurfaceGLXX11(window));
+ case kGLImplementationSwiftShaderGL:
case kGLImplementationEGLGLES2:
DCHECK(window != gfx::kNullAcceleratedWidget);
return InitializeGLSurface(new NativeViewGLSurfaceEGLX11(window));
case kGLImplementationMockGL:
+ case kGLImplementationStubGL:
return new GLSurfaceStub;
default:
NOTREACHED();
@@ -96,10 +106,12 @@ scoped_refptr<GLSurface> CreateOffscreenGLSurfaceWithFormat(
case kGLImplementationDesktopGL:
return InitializeGLSurfaceWithFormat(
new UnmappedNativeViewGLSurfaceGLX(size), format);
+ case kGLImplementationSwiftShaderGL:
case kGLImplementationEGLGLES2:
return InitializeGLSurfaceWithFormat(
new PbufferGLSurfaceEGL(size), format);
case kGLImplementationMockGL:
+ case kGLImplementationStubGL:
return new GLSurfaceStub;
default:
NOTREACHED();
diff --git a/chromium/ui/gl/init/gl_initializer_android.cc b/chromium/ui/gl/init/gl_initializer_android.cc
index f338cc0689f..7293e29f564 100644
--- a/chromium/ui/gl/init/gl_initializer_android.cc
+++ b/chromium/ui/gl/init/gl_initializer_android.cc
@@ -80,7 +80,8 @@ bool InitializeStaticGLBindings(GLImplementation implementation) {
case kGLImplementationOSMesaGL:
return InitializeStaticGLBindingsOSMesaGL();
case kGLImplementationMockGL:
- SetGLImplementation(kGLImplementationMockGL);
+ case kGLImplementationStubGL:
+ SetGLImplementation(implementation);
InitializeStaticGLBindingsGL();
return true;
default:
diff --git a/chromium/ui/gl/init/gl_initializer_mac.cc b/chromium/ui/gl/init/gl_initializer_mac.cc
index 8e34502295c..a574fb9df48 100644
--- a/chromium/ui/gl/init/gl_initializer_mac.cc
+++ b/chromium/ui/gl/init/gl_initializer_mac.cc
@@ -163,7 +163,8 @@ bool InitializeStaticGLBindings(GLImplementation implementation) {
case kGLImplementationAppleGL:
return InitializeStaticCGLInternal(implementation);
case kGLImplementationMockGL:
- SetGLImplementation(kGLImplementationMockGL);
+ case kGLImplementationStubGL:
+ SetGLImplementation(implementation);
InitializeStaticGLBindingsGL();
return true;
default:
diff --git a/chromium/ui/gl/init/gl_initializer_ozone.cc b/chromium/ui/gl/init/gl_initializer_ozone.cc
index 213ef8ba7a8..6e5fc67f8e8 100644
--- a/chromium/ui/gl/init/gl_initializer_ozone.cc
+++ b/chromium/ui/gl/init/gl_initializer_ozone.cc
@@ -6,47 +6,23 @@
#include "base/logging.h"
#include "ui/gl/gl_bindings.h"
-#include "ui/gl/gl_egl_api_implementation.h"
#include "ui/gl/gl_gl_api_implementation.h"
#include "ui/gl/gl_implementation_osmesa.h"
#include "ui/gl/gl_osmesa_api_implementation.h"
-#include "ui/gl/gl_surface_egl.h"
+#include "ui/gl/gl_surface.h"
#include "ui/gl/init/ozone_util.h"
-#include "ui/ozone/public/ozone_platform.h"
-#include "ui/ozone/public/surface_factory_ozone.h"
namespace gl {
namespace init {
-namespace {
-
-bool InitializeStaticEGLInternal() {
- if (!GetSurfaceFactoryOzone()->LoadEGLGLES2Bindings())
- return false;
-
- SetGLImplementation(kGLImplementationEGLGLES2);
- InitializeStaticGLBindingsGL();
- InitializeStaticGLBindingsEGL();
-
- return true;
-}
-
-} // namespace
-
bool InitializeGLOneOffPlatform() {
if (HasGLOzone())
return GetGLOzone()->InitializeGLOneOffPlatform();
switch (GetGLImplementation()) {
- case kGLImplementationEGLGLES2:
- if (!GLSurfaceEGL::InitializeOneOff(
- GetSurfaceFactoryOzone()->GetNativeDisplay())) {
- LOG(ERROR) << "GLSurfaceEGL::InitializeOneOff failed.";
- return false;
- }
- return true;
case kGLImplementationOSMesaGL:
case kGLImplementationMockGL:
+ case kGLImplementationStubGL:
return true;
default:
return false;
@@ -67,10 +43,9 @@ bool InitializeStaticGLBindings(GLImplementation implementation) {
switch (implementation) {
case kGLImplementationOSMesaGL:
return InitializeStaticGLBindingsOSMesaGL();
- case kGLImplementationEGLGLES2:
- return InitializeStaticEGLInternal();
case kGLImplementationMockGL:
- SetGLImplementation(kGLImplementationMockGL);
+ case kGLImplementationStubGL:
+ SetGLImplementation(implementation);
InitializeStaticGLBindingsGL();
return true;
default:
@@ -86,19 +61,16 @@ void InitializeDebugGLBindings() {
return;
}
- InitializeDebugGLBindingsEGL();
InitializeDebugGLBindingsGL();
InitializeDebugGLBindingsOSMESA();
}
void ShutdownGLPlatform() {
- GLSurfaceEGL::ShutdownOneOff();
if (HasGLOzone()) {
GetGLOzone()->ShutdownGL();
return;
}
- ClearBindingsEGL();
ClearBindingsGL();
ClearBindingsOSMESA();
}
diff --git a/chromium/ui/gl/init/gl_initializer_win.cc b/chromium/ui/gl/init/gl_initializer_win.cc
index 89a3586dc1c..c8648a761c7 100644
--- a/chromium/ui/gl/init/gl_initializer_win.cc
+++ b/chromium/ui/gl/init/gl_initializer_win.cc
@@ -98,9 +98,11 @@ bool InitializeStaticEGLInternal() {
base::FilePath gles_path;
const base::CommandLine* command_line =
base::CommandLine::ForCurrentProcess();
+ const std::string use_gl =
+ command_line->GetSwitchValueASCII(switches::kUseGL);
bool using_swift_shader =
- command_line->GetSwitchValueASCII(switches::kUseGL) ==
- kGLImplementationSwiftShaderName;
+ (use_gl == kGLImplementationSwiftShaderName) ||
+ (use_gl == kGLImplementationSwiftShaderForWebGLName);
if (using_swift_shader) {
if (!command_line->HasSwitch(switches::kSwiftShaderPath))
return false;
@@ -242,6 +244,7 @@ bool InitializeGLOneOffPlatform() {
return false;
}
break;
+ case kGLImplementationSwiftShaderGL:
case kGLImplementationEGLGLES2:
if (!GLSurfaceEGL::InitializeOneOff(GetDC(nullptr))) {
LOG(ERROR) << "GLSurfaceEGL::InitializeOneOff failed.";
@@ -250,6 +253,7 @@ bool InitializeGLOneOffPlatform() {
break;
case kGLImplementationOSMesaGL:
case kGLImplementationMockGL:
+ case kGLImplementationStubGL:
break;
default:
NOTREACHED();
@@ -272,12 +276,14 @@ bool InitializeStaticGLBindings(GLImplementation implementation) {
switch (implementation) {
case kGLImplementationOSMesaGL:
return InitializeStaticOSMesaInternal();
+ case kGLImplementationSwiftShaderGL:
case kGLImplementationEGLGLES2:
return InitializeStaticEGLInternal();
case kGLImplementationDesktopGL:
return InitializeStaticWGLInternal();
case kGLImplementationMockGL:
- SetGLImplementation(kGLImplementationMockGL);
+ case kGLImplementationStubGL:
+ SetGLImplementation(implementation);
InitializeStaticGLBindingsGL();
return true;
default:
diff --git a/chromium/ui/gl/init/gl_initializer_x11.cc b/chromium/ui/gl/init/gl_initializer_x11.cc
index b8697bdb10b..2d88875feec 100644
--- a/chromium/ui/gl/init/gl_initializer_x11.cc
+++ b/chromium/ui/gl/init/gl_initializer_x11.cc
@@ -39,6 +39,9 @@ const char kEGLLibraryName[] = "libEGL.so.1";
const char kGLESv2ANGLELibraryName[] = "libGLESv2.so";
const char kEGLANGLELibraryName[] = "libEGL.so";
+const char kGLESv2SwiftShaderLibraryName[] = "libGLESv2.so";
+const char kEGLSwiftShaderLibraryName[] = "libEGL.so";
+
bool InitializeStaticGLXInternal() {
base::NativeLibrary library = NULL;
const base::CommandLine* command_line =
@@ -89,6 +92,15 @@ bool InitializeStaticEGLInternal() {
glesv2_path = module_path.Append(kGLESv2ANGLELibraryName);
egl_path = module_path.Append(kEGLANGLELibraryName);
+ } else if (command_line->GetSwitchValueASCII(switches::kUseGL) ==
+ kGLImplementationSwiftShaderName) {
+ base::FilePath module_path;
+ if (!command_line->HasSwitch(switches::kSwiftShaderPath))
+ return false;
+ module_path = command_line->GetSwitchValuePath(switches::kSwiftShaderPath);
+
+ glesv2_path = module_path.Append(kGLESv2SwiftShaderLibraryName);
+ egl_path = module_path.Append(kEGLSwiftShaderLibraryName);
}
base::NativeLibrary gles_library = LoadLibraryAndPrintError(glesv2_path);
@@ -143,6 +155,7 @@ bool InitializeGLOneOffPlatform() {
return false;
}
return true;
+ case kGLImplementationSwiftShaderGL:
case kGLImplementationEGLGLES2:
if (!GLSurfaceEGL::InitializeOneOff(gfx::GetXDisplay())) {
LOG(ERROR) << "GLSurfaceEGL::InitializeOneOff failed.";
@@ -171,10 +184,12 @@ bool InitializeStaticGLBindings(GLImplementation implementation) {
return InitializeStaticGLBindingsOSMesaGL();
case kGLImplementationDesktopGL:
return InitializeStaticGLXInternal();
+ case kGLImplementationSwiftShaderGL:
case kGLImplementationEGLGLES2:
return InitializeStaticEGLInternal();
case kGLImplementationMockGL:
- SetGLImplementation(kGLImplementationMockGL);
+ case kGLImplementationStubGL:
+ SetGLImplementation(implementation);
InitializeStaticGLBindingsGL();
return true;
default:
diff --git a/chromium/ui/gl/scoped_api.cc b/chromium/ui/gl/scoped_api.cc
deleted file mode 100644
index 99e92da4528..00000000000
--- a/chromium/ui/gl/scoped_api.cc
+++ /dev/null
@@ -1,20 +0,0 @@
-// 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 gl {
-
-ScopedSetGLToRealGLApi::ScopedSetGLToRealGLApi()
- : old_gl_api_(GetCurrentGLApi()) {
- SetGLToRealGLApi();
-}
-
-ScopedSetGLToRealGLApi::~ScopedSetGLToRealGLApi() {
- SetGLApi(old_gl_api_);
-}
-
-} // namespace gl
diff --git a/chromium/ui/gl/scoped_api.h b/chromium/ui/gl/scoped_api.h
deleted file mode 100644
index 4d35f3d8475..00000000000
--- a/chromium/ui/gl/scoped_api.h
+++ /dev/null
@@ -1,28 +0,0 @@
-// 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/macros.h"
-#include "ui/gl/gl_export.h"
-
-namespace gl {
-
-class GLApi;
-
-class GL_EXPORT ScopedSetGLToRealGLApi {
- public:
- ScopedSetGLToRealGLApi();
- ~ScopedSetGLToRealGLApi();
-
- private:
- GLApi* old_gl_api_;
-
- DISALLOW_COPY_AND_ASSIGN(ScopedSetGLToRealGLApi);
-};
-
-} // namespace gl
-
-#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 e181d70eb17..f9dc5c56e47 100644
--- a/chromium/ui/gl/sync_control_vsync_provider.cc
+++ b/chromium/ui/gl/sync_control_vsync_provider.cc
@@ -11,7 +11,7 @@
#include "base/trace_event/trace_event.h"
#include "build/build_config.h"
-#if defined(OS_LINUX) || defined(OS_WIN)
+#if defined(OS_LINUX)
// These constants define a reasonable range for a calculated refresh interval.
// Calculating refreshes out of this range will be considered a fatal error.
const int64_t kMinVsyncIntervalUs = base::Time::kMicrosecondsPerSecond / 400;
@@ -21,17 +21,17 @@ const int64_t kMaxVsyncIntervalUs = base::Time::kMicrosecondsPerSecond / 10;
// we think the latest computed interval is invalid (noisey due to
// monitor configuration change, moving a window between monitors, etc.).
const double kRelativeIntervalDifferenceThreshold = 0.05;
-#endif // defined(OS_LINUX) || defined(OS_WIN)
+#endif
namespace gl {
SyncControlVSyncProvider::SyncControlVSyncProvider() : gfx::VSyncProvider() {
-#if defined(OS_LINUX) || defined(OS_WIN)
+#if defined(OS_LINUX)
// On platforms where we can't get an accurate reading on the refresh
// rate we fall back to the assumption that we're displaying 60 frames
// per second.
last_good_interval_ = base::TimeDelta::FromSeconds(1) / 60;
-#endif // defined(OS_LINUX) || defined(OS_WIN)
+#endif
}
SyncControlVSyncProvider::~SyncControlVSyncProvider() {}
@@ -39,121 +39,33 @@ SyncControlVSyncProvider::~SyncControlVSyncProvider() {}
void SyncControlVSyncProvider::GetVSyncParameters(
const UpdateVSyncCallback& callback) {
TRACE_EVENT0("gpu", "SyncControlVSyncProvider::GetVSyncParameters");
-#if defined(OS_LINUX) || defined(OS_WIN)
+#if defined(OS_LINUX)
base::TimeTicks timebase;
+ // The actual clock used for the system time returned by glXGetSyncValuesOML
+ // is unspecified. In practice, the clock used is likely to be either
+ // CLOCK_REALTIME or CLOCK_MONOTONIC, so we compare the returned time to the
+ // current time according to both clocks, and assume that the returned time
+ // was produced by the clock whose current time is closest to it, subject
+ // to the restriction that the returned time must not be in the future
+ // (since it is the time of a vblank that has already occurred).
int64_t system_time;
int64_t media_stream_counter;
int64_t swap_buffer_counter;
if (!GetSyncValues(&system_time, &media_stream_counter, &swap_buffer_counter))
return;
- if (media_stream_counter == last_media_stream_counter_) {
- // SyncValues haven't updated, there is no reason to invoke the callback.
- return;
- }
-
- // Perform platform specific adjustment of |system_time| and
- // |media_stream_counter|.
- if (!AdjustSyncValues(&system_time, &media_stream_counter))
- return;
-
- timebase = base::TimeTicks::FromInternalValue(system_time);
-
- // Only need the previous calculated interval for our filtering.
- while (last_computed_intervals_.size() > 1)
- last_computed_intervals_.pop();
-
- base::TimeDelta timebase_diff;
- int64_t counter_diff = 0;
-
- int32_t numerator, denominator;
- if (GetMscRate(&numerator, &denominator) && numerator) {
- timebase_diff = base::TimeDelta::FromSeconds(denominator);
- counter_diff = numerator;
- } else if (!last_timebase_.is_null()) {
- timebase_diff = timebase - last_timebase_;
- counter_diff = media_stream_counter - last_media_stream_counter_;
- }
-
- if (counter_diff > 0 && timebase_diff > base::TimeDelta()) {
- last_computed_intervals_.push(timebase_diff / counter_diff);
-
- if (last_computed_intervals_.size() == 2) {
- const base::TimeDelta& old_interval = last_computed_intervals_.front();
- const base::TimeDelta& new_interval = last_computed_intervals_.back();
-
- double relative_change = fabs(old_interval.InMillisecondsF() -
- new_interval.InMillisecondsF()) /
- new_interval.InMillisecondsF();
- if (relative_change < kRelativeIntervalDifferenceThreshold) {
- if (new_interval.InMicroseconds() < kMinVsyncIntervalUs ||
- new_interval.InMicroseconds() > kMaxVsyncIntervalUs) {
-#if defined(OS_WIN) || defined(USE_ASH)
- // On ash platforms (ChromeOS essentially), the real refresh interval
- // is queried from XRandR, regardless of the value calculated here,
- // and this value is overriden by ui::CompositorVSyncManager. The log
- // should not be fatal in this case. Reconsider all this when XRandR
- // support is added to non-ash platforms.
- // http://crbug.com/340851
- // On Windows |system_time| is based on QPC and it seems it may
- // produce invalid value after a suspend/resume cycle.
- // http://crbug.com/656469
- LOG(ERROR)
-#else
- LOG(FATAL)
-#endif // OS_WIN || USE_ASH
- << "Calculated bogus refresh interval="
- << new_interval.InMicroseconds()
- << " us, old_interval=" << old_interval.InMicroseconds()
- << " us, last_timebase_=" << last_timebase_.ToInternalValue()
- << " us, timebase=" << timebase.ToInternalValue()
- << " us, timebase_diff=" << timebase_diff.ToInternalValue()
- << " us, last_timebase_diff_="
- << last_timebase_diff_.ToInternalValue()
- << " us, last_media_stream_counter_="
- << last_media_stream_counter_
- << ", media_stream_counter=" << media_stream_counter
- << ", counter_diff=" << counter_diff
- << ", last_counter_diff_=" << last_counter_diff_;
- } else {
- last_good_interval_ = new_interval;
- }
- }
- }
-
- last_timebase_diff_ = timebase_diff;
- last_counter_diff_ = counter_diff;
- }
-
- last_timebase_ = timebase;
- last_media_stream_counter_ = media_stream_counter;
- callback.Run(timebase, last_good_interval_);
-#endif // defined(OS_LINUX) || defined(OS_WIN)
-}
-
-#if defined(OS_LINUX)
-bool SyncControlVSyncProvider::AdjustSyncValues(int64_t* system_time,
- int64_t* media_stream_counter) {
// Both Intel and Mali drivers will return TRUE for GetSyncValues
// but a value of 0 for MSC if they cannot access the CRTC data structure
// associated with the surface. crbug.com/231945
bool prev_invalid_msc = invalid_msc_;
- invalid_msc_ = (*media_stream_counter == 0);
+ invalid_msc_ = (media_stream_counter == 0);
if (invalid_msc_) {
- LOG_IF(ERROR, !prev_invalid_msc)
- << "glXGetSyncValuesOML "
- "should not return TRUE with a media stream counter of 0.";
- return false;
+ LOG_IF(ERROR, !prev_invalid_msc) << "glXGetSyncValuesOML "
+ "should not return TRUE with a media stream counter of 0.";
+ return;
}
- // The actual clock used for the system time returned by glXGetSyncValuesOML
- // is unspecified. In practice, the clock used is likely to be either
- // CLOCK_REALTIME or CLOCK_MONOTONIC, so we compare the returned time to the
- // current time according to both clocks, and assume that the returned time
- // was produced by the clock whose current time is closest to it, subject
- // to the restriction that the returned time must not be in the future
- // (since it is the time of a vblank that has already occurred).
struct timespec real_time;
struct timespec monotonic_time;
clock_gettime(CLOCK_REALTIME, &real_time);
@@ -169,62 +81,81 @@ bool SyncControlVSyncProvider::AdjustSyncValues(int64_t* system_time,
// We need the time according to CLOCK_MONOTONIC, so if we've been given
// a time from CLOCK_REALTIME, we need to convert.
bool time_conversion_needed =
- llabs(*system_time - real_time_in_microseconds) <
- llabs(*system_time - monotonic_time_in_microseconds);
+ llabs(system_time - real_time_in_microseconds) <
+ llabs(system_time - monotonic_time_in_microseconds);
if (time_conversion_needed)
- *system_time += monotonic_time_in_microseconds - real_time_in_microseconds;
+ system_time += monotonic_time_in_microseconds - real_time_in_microseconds;
- // Return if |*system_time| is more than 1 frames in the future.
+ // Return if |system_time| is more than 1 frames in the future.
int64_t interval_in_microseconds = last_good_interval_.InMicroseconds();
- if (*system_time > monotonic_time_in_microseconds + interval_in_microseconds)
- return false;
+ if (system_time > monotonic_time_in_microseconds + interval_in_microseconds)
+ return;
// If |system_time| is slightly in the future, adjust it to the previous
// frame and use the last frame counter to prevent issues in the callback.
- if (*system_time > monotonic_time_in_microseconds) {
- *system_time -= interval_in_microseconds;
- (*media_stream_counter)--;
+ if (system_time > monotonic_time_in_microseconds) {
+ system_time -= interval_in_microseconds;
+ media_stream_counter--;
}
- if (monotonic_time_in_microseconds - *system_time >
+ if (monotonic_time_in_microseconds - system_time >
base::Time::kMicrosecondsPerSecond)
- return false;
+ return;
- return true;
-}
-#endif // defined(OS_LINUX)
+ timebase = base::TimeTicks::FromInternalValue(system_time);
-#if defined(OS_WIN)
-bool SyncControlVSyncProvider::AdjustSyncValues(int64_t* system_time,
- int64_t* media_stream_counter) {
- // Zero MSC is returned once when switching between windowed and full screen
- // modes.
- if (*media_stream_counter == 0)
- return false;
-
- // The actual clock used for the system time returned by glXGetSyncValuesEGL
- // is unspecified. In practice, the clock comes from QueryPerformanceCounter.
- LARGE_INTEGER perf_counter_now = {};
- ::QueryPerformanceCounter(&perf_counter_now);
- int64_t qpc_now =
- base::TimeDelta::FromQPCValue(perf_counter_now.QuadPart).InMicroseconds();
+ // Only need the previous calculated interval for our filtering.
+ while (last_computed_intervals_.size() > 1)
+ last_computed_intervals_.pop();
- // Return if |system_time| is more than 1 frames in the future.
- int64_t interval_in_microseconds = last_good_interval_.InMicroseconds();
- if (*system_time > qpc_now + interval_in_microseconds)
- return false;
+ int32_t numerator, denominator;
+ if (GetMscRate(&numerator, &denominator) && numerator) {
+ last_computed_intervals_.push(base::TimeDelta::FromSeconds(denominator) /
+ numerator);
+ } else if (!last_timebase_.is_null()) {
+ base::TimeDelta timebase_diff = timebase - last_timebase_;
+ int64_t counter_diff = media_stream_counter - last_media_stream_counter_;
+ if (counter_diff > 0 && timebase > last_timebase_)
+ last_computed_intervals_.push(timebase_diff / counter_diff);
+ }
- // If |system_time| is slightly in the future, adjust it to the previous
- // frame and use the last frame counter to prevent issues in the callback.
- if (*system_time > qpc_now) {
- *system_time -= interval_in_microseconds;
- (*media_stream_counter)--;
+ if (last_computed_intervals_.size() == 2) {
+ const base::TimeDelta& old_interval = last_computed_intervals_.front();
+ const base::TimeDelta& new_interval = last_computed_intervals_.back();
+
+ double relative_change =
+ fabs(old_interval.InMillisecondsF() - new_interval.InMillisecondsF()) /
+ new_interval.InMillisecondsF();
+ if (relative_change < kRelativeIntervalDifferenceThreshold) {
+ if (new_interval.InMicroseconds() < kMinVsyncIntervalUs ||
+ new_interval.InMicroseconds() > kMaxVsyncIntervalUs) {
+#if defined(USE_ASH)
+ // On ash platforms (ChromeOS essentially), the real refresh interval is
+ // queried from XRandR, regardless of the value calculated here, and
+ // this value is overriden by ui::CompositorVSyncManager. The log
+ // should not be fatal in this case. Reconsider all this when XRandR
+ // support is added to non-ash platforms.
+ // http://crbug.com/340851
+ LOG(ERROR)
+#else
+ LOG(FATAL)
+#endif // USE_ASH
+ << "Calculated bogus refresh interval="
+ << new_interval.InMicroseconds()
+ << " us., last_timebase_=" << last_timebase_.ToInternalValue()
+ << " us., timebase=" << timebase.ToInternalValue()
+ << " us., last_media_stream_counter_=" << last_media_stream_counter_
+ << ", media_stream_counter=" << media_stream_counter;
+ } else {
+ last_good_interval_ = new_interval;
+ }
+ }
}
- if (qpc_now - *system_time > base::Time::kMicrosecondsPerSecond)
- return false;
- return true;
+ last_timebase_ = timebase;
+ last_media_stream_counter_ = media_stream_counter;
+ callback.Run(timebase, last_good_interval_);
+#endif // defined(OS_LINUX)
}
-#endif // defined(OS_WIN)
} // namespace gl
diff --git a/chromium/ui/gl/sync_control_vsync_provider.h b/chromium/ui/gl/sync_control_vsync_provider.h
index 19d4a33bf21..9e196538e03 100644
--- a/chromium/ui/gl/sync_control_vsync_provider.h
+++ b/chromium/ui/gl/sync_control_vsync_provider.h
@@ -11,13 +11,12 @@
#include "base/macros.h"
#include "ui/gfx/vsync_provider.h"
-#include "ui/gl/gl_export.h"
namespace gl {
// Base class for providers based on extensions like GLX_OML_sync_control and
// EGL_CHROMIUM_sync_control.
-class GL_EXPORT SyncControlVSyncProvider : public gfx::VSyncProvider {
+class SyncControlVSyncProvider : public gfx::VSyncProvider {
public:
SyncControlVSyncProvider();
~SyncControlVSyncProvider() override;
@@ -32,24 +31,17 @@ class GL_EXPORT SyncControlVSyncProvider : public gfx::VSyncProvider {
virtual bool GetMscRate(int32_t* numerator, int32_t* denominator) = 0;
private:
-#if defined(OS_LINUX) || defined(OS_WIN)
- bool AdjustSyncValues(int64_t* system_time, int64_t* media_stream_counter);
-
+#if defined(OS_LINUX)
base::TimeTicks last_timebase_;
- base::TimeDelta last_timebase_diff_;
- int64_t last_media_stream_counter_ = 0;
- int64_t last_counter_diff_ = 0;
+ uint64_t last_media_stream_counter_ = 0;
base::TimeDelta last_good_interval_;
+ bool invalid_msc_ = false;
// A short history of the last few computed intervals.
// We use this to filter out the noise in the computation resulting
// from configuration change (monitor reconfiguration, moving windows
// between monitors, suspend and resume, etc.).
std::queue<base::TimeDelta> last_computed_intervals_;
-#endif // defined(OS_LINUX) || defined(OS_WIN)
-
-#if defined(OS_LINUX)
- bool invalid_msc_ = false;
#endif // defined(OS_LINUX)
DISALLOW_COPY_AND_ASSIGN(SyncControlVSyncProvider);
diff --git a/chromium/ui/gl/vsync_provider_win.h b/chromium/ui/gl/vsync_provider_win.h
index 8435fba662c..2a042a08b5f 100644
--- a/chromium/ui/gl/vsync_provider_win.h
+++ b/chromium/ui/gl/vsync_provider_win.h
@@ -2,6 +2,9 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#ifndef UI_GL_VSYNC_PROVIDER_WIN_H_
+#define UI_GL_VSYNC_PROVIDER_WIN_H_
+
#include "ui/gfx/native_widget_types.h"
#include "ui/gfx/vsync_provider.h"
#include "ui/gl/gl_export.h"
@@ -25,3 +28,5 @@ class GL_EXPORT VSyncProviderWin : public gfx::VSyncProvider {
};
} // namespace gl
+
+#endif // UI_GL_VSYNC_PROVIDER_WIN_H_
diff --git a/chromium/ui/gl/yuv_to_rgb_converter.cc b/chromium/ui/gl/yuv_to_rgb_converter.cc
index faf29b67f89..1cb715d2bf1 100644
--- a/chromium/ui/gl/yuv_to_rgb_converter.cc
+++ b/chromium/ui/gl/yuv_to_rgb_converter.cc
@@ -8,7 +8,6 @@
#include "base/strings/stringprintf.h"
#include "ui/gl/gl_helper.h"
#include "ui/gl/gl_version_info.h"
-#include "ui/gl/scoped_api.h"
#include "ui/gl/scoped_binders.h"
namespace gl {
@@ -72,7 +71,6 @@ STRINGIZE(
YUVToRGBConverter::YUVToRGBConverter(const GLVersionInfo& gl_version_info) {
bool use_core_profile = gl_version_info.is_desktop_core_profile;
- ScopedSetGLToRealGLApi scoped_set_gl_api;
glGenFramebuffersEXT(1, &framebuffer_);
vertex_buffer_ = GLHelper::SetupQuadVertexBuffer();
vertex_shader_ = GLHelper::LoadShader(
@@ -107,7 +105,6 @@ YUVToRGBConverter::YUVToRGBConverter(const GLVersionInfo& gl_version_info) {
}
YUVToRGBConverter::~YUVToRGBConverter() {
- ScopedSetGLToRealGLApi scoped_set_gl_api;
glDeleteTextures(1, &y_texture_);
glDeleteTextures(1, &uv_texture_);
glDeleteProgram(program_);
@@ -120,8 +117,6 @@ YUVToRGBConverter::~YUVToRGBConverter() {
void YUVToRGBConverter::CopyYUV420ToRGB(unsigned target,
const gfx::Size& size,
unsigned rgb_texture) {
- ScopedSetGLToRealGLApi scoped_set_gl_api;
-
// Note that state restoration is done explicitly instead of scoped binders to
// avoid https://crbug.com/601729.
GLint old_active_texture = -1;