Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(196)

Side by Side Diff: ui/gl/gl_bindings_autogen_gl.cc

Issue 1775353002: Add DCHECK for nullptr in gl bindings (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « ui/gl/gl_bindings_autogen_egl.cc ('k') | ui/gl/gl_bindings_autogen_glx.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 // 4 //
5 // This file is auto-generated from 5 // This file is auto-generated from
6 // ui/gl/generate_bindings.py 6 // ui/gl/generate_bindings.py
7 // It's formatted by clang-format using chromium coding style: 7 // It's formatted by clang-format using chromium coding style:
8 // clang-format -i -style=chromium filename 8 // clang-format -i -style=chromium filename
9 // DO NOT EDIT! 9 // DO NOT EDIT!
10 10
(...skipping 2018 matching lines...) Expand 10 before | Expand all | Expand 10 after
2029 2029
2030 if (g_debugBindingsInitialized) 2030 if (g_debugBindingsInitialized)
2031 InitializeDebugBindings(); 2031 InitializeDebugBindings();
2032 } 2032 }
2033 2033
2034 extern "C" { 2034 extern "C" {
2035 2035
2036 static void GL_BINDING_CALL Debug_glActiveTexture(GLenum texture) { 2036 static void GL_BINDING_CALL Debug_glActiveTexture(GLenum texture) {
2037 GL_SERVICE_LOG("glActiveTexture" 2037 GL_SERVICE_LOG("glActiveTexture"
2038 << "(" << GLEnums::GetStringEnum(texture) << ")"); 2038 << "(" << GLEnums::GetStringEnum(texture) << ")");
2039 DCHECK(g_driver_gl.debug_fn.glActiveTextureFn != nullptr);
2039 g_driver_gl.debug_fn.glActiveTextureFn(texture); 2040 g_driver_gl.debug_fn.glActiveTextureFn(texture);
2040 } 2041 }
2041 2042
2042 static void GL_BINDING_CALL Debug_glApplyFramebufferAttachmentCMAAINTEL(void) { 2043 static void GL_BINDING_CALL Debug_glApplyFramebufferAttachmentCMAAINTEL(void) {
2043 GL_SERVICE_LOG("glApplyFramebufferAttachmentCMAAINTEL" 2044 GL_SERVICE_LOG("glApplyFramebufferAttachmentCMAAINTEL"
2044 << "(" 2045 << "("
2045 << ")"); 2046 << ")");
2047 DCHECK(g_driver_gl.debug_fn.glApplyFramebufferAttachmentCMAAINTELFn !=
2048 nullptr);
2046 g_driver_gl.debug_fn.glApplyFramebufferAttachmentCMAAINTELFn(); 2049 g_driver_gl.debug_fn.glApplyFramebufferAttachmentCMAAINTELFn();
2047 } 2050 }
2048 2051
2049 static void GL_BINDING_CALL Debug_glAttachShader(GLuint program, 2052 static void GL_BINDING_CALL Debug_glAttachShader(GLuint program,
2050 GLuint shader) { 2053 GLuint shader) {
2051 GL_SERVICE_LOG("glAttachShader" 2054 GL_SERVICE_LOG("glAttachShader"
2052 << "(" << program << ", " << shader << ")"); 2055 << "(" << program << ", " << shader << ")");
2056 DCHECK(g_driver_gl.debug_fn.glAttachShaderFn != nullptr);
2053 g_driver_gl.debug_fn.glAttachShaderFn(program, shader); 2057 g_driver_gl.debug_fn.glAttachShaderFn(program, shader);
2054 } 2058 }
2055 2059
2056 static void GL_BINDING_CALL Debug_glBeginQuery(GLenum target, GLuint id) { 2060 static void GL_BINDING_CALL Debug_glBeginQuery(GLenum target, GLuint id) {
2057 GL_SERVICE_LOG("glBeginQuery" 2061 GL_SERVICE_LOG("glBeginQuery"
2058 << "(" << GLEnums::GetStringEnum(target) << ", " << id << ")"); 2062 << "(" << GLEnums::GetStringEnum(target) << ", " << id << ")");
2063 DCHECK(g_driver_gl.debug_fn.glBeginQueryFn != nullptr);
2059 g_driver_gl.debug_fn.glBeginQueryFn(target, id); 2064 g_driver_gl.debug_fn.glBeginQueryFn(target, id);
2060 } 2065 }
2061 2066
2062 static void GL_BINDING_CALL 2067 static void GL_BINDING_CALL
2063 Debug_glBeginTransformFeedback(GLenum primitiveMode) { 2068 Debug_glBeginTransformFeedback(GLenum primitiveMode) {
2064 GL_SERVICE_LOG("glBeginTransformFeedback" 2069 GL_SERVICE_LOG("glBeginTransformFeedback"
2065 << "(" << GLEnums::GetStringEnum(primitiveMode) << ")"); 2070 << "(" << GLEnums::GetStringEnum(primitiveMode) << ")");
2071 DCHECK(g_driver_gl.debug_fn.glBeginTransformFeedbackFn != nullptr);
2066 g_driver_gl.debug_fn.glBeginTransformFeedbackFn(primitiveMode); 2072 g_driver_gl.debug_fn.glBeginTransformFeedbackFn(primitiveMode);
2067 } 2073 }
2068 2074
2069 static void GL_BINDING_CALL Debug_glBindAttribLocation(GLuint program, 2075 static void GL_BINDING_CALL Debug_glBindAttribLocation(GLuint program,
2070 GLuint index, 2076 GLuint index,
2071 const char* name) { 2077 const char* name) {
2072 GL_SERVICE_LOG("glBindAttribLocation" 2078 GL_SERVICE_LOG("glBindAttribLocation"
2073 << "(" << program << ", " << index << ", " << name << ")"); 2079 << "(" << program << ", " << index << ", " << name << ")");
2080 DCHECK(g_driver_gl.debug_fn.glBindAttribLocationFn != nullptr);
2074 g_driver_gl.debug_fn.glBindAttribLocationFn(program, index, name); 2081 g_driver_gl.debug_fn.glBindAttribLocationFn(program, index, name);
2075 } 2082 }
2076 2083
2077 static void GL_BINDING_CALL Debug_glBindBuffer(GLenum target, GLuint buffer) { 2084 static void GL_BINDING_CALL Debug_glBindBuffer(GLenum target, GLuint buffer) {
2078 GL_SERVICE_LOG("glBindBuffer" 2085 GL_SERVICE_LOG("glBindBuffer"
2079 << "(" << GLEnums::GetStringEnum(target) << ", " << buffer 2086 << "(" << GLEnums::GetStringEnum(target) << ", " << buffer
2080 << ")"); 2087 << ")");
2088 DCHECK(g_driver_gl.debug_fn.glBindBufferFn != nullptr);
2081 g_driver_gl.debug_fn.glBindBufferFn(target, buffer); 2089 g_driver_gl.debug_fn.glBindBufferFn(target, buffer);
2082 } 2090 }
2083 2091
2084 static void GL_BINDING_CALL Debug_glBindBufferBase(GLenum target, 2092 static void GL_BINDING_CALL Debug_glBindBufferBase(GLenum target,
2085 GLuint index, 2093 GLuint index,
2086 GLuint buffer) { 2094 GLuint buffer) {
2087 GL_SERVICE_LOG("glBindBufferBase" 2095 GL_SERVICE_LOG("glBindBufferBase"
2088 << "(" << GLEnums::GetStringEnum(target) << ", " << index 2096 << "(" << GLEnums::GetStringEnum(target) << ", " << index
2089 << ", " << buffer << ")"); 2097 << ", " << buffer << ")");
2098 DCHECK(g_driver_gl.debug_fn.glBindBufferBaseFn != nullptr);
2090 g_driver_gl.debug_fn.glBindBufferBaseFn(target, index, buffer); 2099 g_driver_gl.debug_fn.glBindBufferBaseFn(target, index, buffer);
2091 } 2100 }
2092 2101
2093 static void GL_BINDING_CALL Debug_glBindBufferRange(GLenum target, 2102 static void GL_BINDING_CALL Debug_glBindBufferRange(GLenum target,
2094 GLuint index, 2103 GLuint index,
2095 GLuint buffer, 2104 GLuint buffer,
2096 GLintptr offset, 2105 GLintptr offset,
2097 GLsizeiptr size) { 2106 GLsizeiptr size) {
2098 GL_SERVICE_LOG("glBindBufferRange" 2107 GL_SERVICE_LOG("glBindBufferRange"
2099 << "(" << GLEnums::GetStringEnum(target) << ", " << index 2108 << "(" << GLEnums::GetStringEnum(target) << ", " << index
2100 << ", " << buffer << ", " << offset << ", " << size << ")"); 2109 << ", " << buffer << ", " << offset << ", " << size << ")");
2110 DCHECK(g_driver_gl.debug_fn.glBindBufferRangeFn != nullptr);
2101 g_driver_gl.debug_fn.glBindBufferRangeFn(target, index, buffer, offset, size); 2111 g_driver_gl.debug_fn.glBindBufferRangeFn(target, index, buffer, offset, size);
2102 } 2112 }
2103 2113
2104 static void GL_BINDING_CALL Debug_glBindFragDataLocation(GLuint program, 2114 static void GL_BINDING_CALL Debug_glBindFragDataLocation(GLuint program,
2105 GLuint colorNumber, 2115 GLuint colorNumber,
2106 const char* name) { 2116 const char* name) {
2107 GL_SERVICE_LOG("glBindFragDataLocation" 2117 GL_SERVICE_LOG("glBindFragDataLocation"
2108 << "(" << program << ", " << colorNumber << ", " << name 2118 << "(" << program << ", " << colorNumber << ", " << name
2109 << ")"); 2119 << ")");
2120 DCHECK(g_driver_gl.debug_fn.glBindFragDataLocationFn != nullptr);
2110 g_driver_gl.debug_fn.glBindFragDataLocationFn(program, colorNumber, name); 2121 g_driver_gl.debug_fn.glBindFragDataLocationFn(program, colorNumber, name);
2111 } 2122 }
2112 2123
2113 static void GL_BINDING_CALL 2124 static void GL_BINDING_CALL
2114 Debug_glBindFragDataLocationIndexed(GLuint program, 2125 Debug_glBindFragDataLocationIndexed(GLuint program,
2115 GLuint colorNumber, 2126 GLuint colorNumber,
2116 GLuint index, 2127 GLuint index,
2117 const char* name) { 2128 const char* name) {
2118 GL_SERVICE_LOG("glBindFragDataLocationIndexed" 2129 GL_SERVICE_LOG("glBindFragDataLocationIndexed"
2119 << "(" << program << ", " << colorNumber << ", " << index 2130 << "(" << program << ", " << colorNumber << ", " << index
2120 << ", " << name << ")"); 2131 << ", " << name << ")");
2132 DCHECK(g_driver_gl.debug_fn.glBindFragDataLocationIndexedFn != nullptr);
2121 g_driver_gl.debug_fn.glBindFragDataLocationIndexedFn(program, colorNumber, 2133 g_driver_gl.debug_fn.glBindFragDataLocationIndexedFn(program, colorNumber,
2122 index, name); 2134 index, name);
2123 } 2135 }
2124 2136
2125 static void GL_BINDING_CALL Debug_glBindFramebufferEXT(GLenum target, 2137 static void GL_BINDING_CALL Debug_glBindFramebufferEXT(GLenum target,
2126 GLuint framebuffer) { 2138 GLuint framebuffer) {
2127 GL_SERVICE_LOG("glBindFramebufferEXT" 2139 GL_SERVICE_LOG("glBindFramebufferEXT"
2128 << "(" << GLEnums::GetStringEnum(target) << ", " << framebuffer 2140 << "(" << GLEnums::GetStringEnum(target) << ", " << framebuffer
2129 << ")"); 2141 << ")");
2142 DCHECK(g_driver_gl.debug_fn.glBindFramebufferEXTFn != nullptr);
2130 g_driver_gl.debug_fn.glBindFramebufferEXTFn(target, framebuffer); 2143 g_driver_gl.debug_fn.glBindFramebufferEXTFn(target, framebuffer);
2131 } 2144 }
2132 2145
2133 static void GL_BINDING_CALL Debug_glBindImageTextureEXT(GLuint index, 2146 static void GL_BINDING_CALL Debug_glBindImageTextureEXT(GLuint index,
2134 GLuint texture, 2147 GLuint texture,
2135 GLint level, 2148 GLint level,
2136 GLboolean layered, 2149 GLboolean layered,
2137 GLint layer, 2150 GLint layer,
2138 GLenum access, 2151 GLenum access,
2139 GLint format) { 2152 GLint format) {
2140 GL_SERVICE_LOG("glBindImageTextureEXT" 2153 GL_SERVICE_LOG("glBindImageTextureEXT"
2141 << "(" << index << ", " << texture << ", " << level << ", " 2154 << "(" << index << ", " << texture << ", " << level << ", "
2142 << GLEnums::GetStringBool(layered) << ", " << layer << ", " 2155 << GLEnums::GetStringBool(layered) << ", " << layer << ", "
2143 << GLEnums::GetStringEnum(access) << ", " << format << ")"); 2156 << GLEnums::GetStringEnum(access) << ", " << format << ")");
2157 DCHECK(g_driver_gl.debug_fn.glBindImageTextureEXTFn != nullptr);
2144 g_driver_gl.debug_fn.glBindImageTextureEXTFn(index, texture, level, layered, 2158 g_driver_gl.debug_fn.glBindImageTextureEXTFn(index, texture, level, layered,
2145 layer, access, format); 2159 layer, access, format);
2146 } 2160 }
2147 2161
2148 static void GL_BINDING_CALL Debug_glBindRenderbufferEXT(GLenum target, 2162 static void GL_BINDING_CALL Debug_glBindRenderbufferEXT(GLenum target,
2149 GLuint renderbuffer) { 2163 GLuint renderbuffer) {
2150 GL_SERVICE_LOG("glBindRenderbufferEXT" 2164 GL_SERVICE_LOG("glBindRenderbufferEXT"
2151 << "(" << GLEnums::GetStringEnum(target) << ", " 2165 << "(" << GLEnums::GetStringEnum(target) << ", "
2152 << renderbuffer << ")"); 2166 << renderbuffer << ")");
2167 DCHECK(g_driver_gl.debug_fn.glBindRenderbufferEXTFn != nullptr);
2153 g_driver_gl.debug_fn.glBindRenderbufferEXTFn(target, renderbuffer); 2168 g_driver_gl.debug_fn.glBindRenderbufferEXTFn(target, renderbuffer);
2154 } 2169 }
2155 2170
2156 static void GL_BINDING_CALL Debug_glBindSampler(GLuint unit, GLuint sampler) { 2171 static void GL_BINDING_CALL Debug_glBindSampler(GLuint unit, GLuint sampler) {
2157 GL_SERVICE_LOG("glBindSampler" 2172 GL_SERVICE_LOG("glBindSampler"
2158 << "(" << unit << ", " << sampler << ")"); 2173 << "(" << unit << ", " << sampler << ")");
2174 DCHECK(g_driver_gl.debug_fn.glBindSamplerFn != nullptr);
2159 g_driver_gl.debug_fn.glBindSamplerFn(unit, sampler); 2175 g_driver_gl.debug_fn.glBindSamplerFn(unit, sampler);
2160 } 2176 }
2161 2177
2162 static void GL_BINDING_CALL Debug_glBindTexture(GLenum target, GLuint texture) { 2178 static void GL_BINDING_CALL Debug_glBindTexture(GLenum target, GLuint texture) {
2163 GL_SERVICE_LOG("glBindTexture" 2179 GL_SERVICE_LOG("glBindTexture"
2164 << "(" << GLEnums::GetStringEnum(target) << ", " << texture 2180 << "(" << GLEnums::GetStringEnum(target) << ", " << texture
2165 << ")"); 2181 << ")");
2182 DCHECK(g_driver_gl.debug_fn.glBindTextureFn != nullptr);
2166 g_driver_gl.debug_fn.glBindTextureFn(target, texture); 2183 g_driver_gl.debug_fn.glBindTextureFn(target, texture);
2167 } 2184 }
2168 2185
2169 static void GL_BINDING_CALL Debug_glBindTransformFeedback(GLenum target, 2186 static void GL_BINDING_CALL Debug_glBindTransformFeedback(GLenum target,
2170 GLuint id) { 2187 GLuint id) {
2171 GL_SERVICE_LOG("glBindTransformFeedback" 2188 GL_SERVICE_LOG("glBindTransformFeedback"
2172 << "(" << GLEnums::GetStringEnum(target) << ", " << id << ")"); 2189 << "(" << GLEnums::GetStringEnum(target) << ", " << id << ")");
2190 DCHECK(g_driver_gl.debug_fn.glBindTransformFeedbackFn != nullptr);
2173 g_driver_gl.debug_fn.glBindTransformFeedbackFn(target, id); 2191 g_driver_gl.debug_fn.glBindTransformFeedbackFn(target, id);
2174 } 2192 }
2175 2193
2176 static void GL_BINDING_CALL Debug_glBindVertexArrayOES(GLuint array) { 2194 static void GL_BINDING_CALL Debug_glBindVertexArrayOES(GLuint array) {
2177 GL_SERVICE_LOG("glBindVertexArrayOES" 2195 GL_SERVICE_LOG("glBindVertexArrayOES"
2178 << "(" << array << ")"); 2196 << "(" << array << ")");
2197 DCHECK(g_driver_gl.debug_fn.glBindVertexArrayOESFn != nullptr);
2179 g_driver_gl.debug_fn.glBindVertexArrayOESFn(array); 2198 g_driver_gl.debug_fn.glBindVertexArrayOESFn(array);
2180 } 2199 }
2181 2200
2182 static void GL_BINDING_CALL Debug_glBlendBarrierKHR(void) { 2201 static void GL_BINDING_CALL Debug_glBlendBarrierKHR(void) {
2183 GL_SERVICE_LOG("glBlendBarrierKHR" 2202 GL_SERVICE_LOG("glBlendBarrierKHR"
2184 << "(" 2203 << "("
2185 << ")"); 2204 << ")");
2205 DCHECK(g_driver_gl.debug_fn.glBlendBarrierKHRFn != nullptr);
2186 g_driver_gl.debug_fn.glBlendBarrierKHRFn(); 2206 g_driver_gl.debug_fn.glBlendBarrierKHRFn();
2187 } 2207 }
2188 2208
2189 static void GL_BINDING_CALL Debug_glBlendColor(GLclampf red, 2209 static void GL_BINDING_CALL Debug_glBlendColor(GLclampf red,
2190 GLclampf green, 2210 GLclampf green,
2191 GLclampf blue, 2211 GLclampf blue,
2192 GLclampf alpha) { 2212 GLclampf alpha) {
2193 GL_SERVICE_LOG("glBlendColor" 2213 GL_SERVICE_LOG("glBlendColor"
2194 << "(" << red << ", " << green << ", " << blue << ", " << alpha 2214 << "(" << red << ", " << green << ", " << blue << ", " << alpha
2195 << ")"); 2215 << ")");
2216 DCHECK(g_driver_gl.debug_fn.glBlendColorFn != nullptr);
2196 g_driver_gl.debug_fn.glBlendColorFn(red, green, blue, alpha); 2217 g_driver_gl.debug_fn.glBlendColorFn(red, green, blue, alpha);
2197 } 2218 }
2198 2219
2199 static void GL_BINDING_CALL Debug_glBlendEquation(GLenum mode) { 2220 static void GL_BINDING_CALL Debug_glBlendEquation(GLenum mode) {
2200 GL_SERVICE_LOG("glBlendEquation" 2221 GL_SERVICE_LOG("glBlendEquation"
2201 << "(" << GLEnums::GetStringEnum(mode) << ")"); 2222 << "(" << GLEnums::GetStringEnum(mode) << ")");
2223 DCHECK(g_driver_gl.debug_fn.glBlendEquationFn != nullptr);
2202 g_driver_gl.debug_fn.glBlendEquationFn(mode); 2224 g_driver_gl.debug_fn.glBlendEquationFn(mode);
2203 } 2225 }
2204 2226
2205 static void GL_BINDING_CALL Debug_glBlendEquationSeparate(GLenum modeRGB, 2227 static void GL_BINDING_CALL Debug_glBlendEquationSeparate(GLenum modeRGB,
2206 GLenum modeAlpha) { 2228 GLenum modeAlpha) {
2207 GL_SERVICE_LOG("glBlendEquationSeparate" 2229 GL_SERVICE_LOG("glBlendEquationSeparate"
2208 << "(" << GLEnums::GetStringEnum(modeRGB) << ", " 2230 << "(" << GLEnums::GetStringEnum(modeRGB) << ", "
2209 << GLEnums::GetStringEnum(modeAlpha) << ")"); 2231 << GLEnums::GetStringEnum(modeAlpha) << ")");
2232 DCHECK(g_driver_gl.debug_fn.glBlendEquationSeparateFn != nullptr);
2210 g_driver_gl.debug_fn.glBlendEquationSeparateFn(modeRGB, modeAlpha); 2233 g_driver_gl.debug_fn.glBlendEquationSeparateFn(modeRGB, modeAlpha);
2211 } 2234 }
2212 2235
2213 static void GL_BINDING_CALL Debug_glBlendFunc(GLenum sfactor, GLenum dfactor) { 2236 static void GL_BINDING_CALL Debug_glBlendFunc(GLenum sfactor, GLenum dfactor) {
2214 GL_SERVICE_LOG("glBlendFunc" 2237 GL_SERVICE_LOG("glBlendFunc"
2215 << "(" << GLEnums::GetStringEnum(sfactor) << ", " 2238 << "(" << GLEnums::GetStringEnum(sfactor) << ", "
2216 << GLEnums::GetStringEnum(dfactor) << ")"); 2239 << GLEnums::GetStringEnum(dfactor) << ")");
2240 DCHECK(g_driver_gl.debug_fn.glBlendFuncFn != nullptr);
2217 g_driver_gl.debug_fn.glBlendFuncFn(sfactor, dfactor); 2241 g_driver_gl.debug_fn.glBlendFuncFn(sfactor, dfactor);
2218 } 2242 }
2219 2243
2220 static void GL_BINDING_CALL Debug_glBlendFuncSeparate(GLenum srcRGB, 2244 static void GL_BINDING_CALL Debug_glBlendFuncSeparate(GLenum srcRGB,
2221 GLenum dstRGB, 2245 GLenum dstRGB,
2222 GLenum srcAlpha, 2246 GLenum srcAlpha,
2223 GLenum dstAlpha) { 2247 GLenum dstAlpha) {
2224 GL_SERVICE_LOG("glBlendFuncSeparate" 2248 GL_SERVICE_LOG("glBlendFuncSeparate"
2225 << "(" << GLEnums::GetStringEnum(srcRGB) << ", " 2249 << "(" << GLEnums::GetStringEnum(srcRGB) << ", "
2226 << GLEnums::GetStringEnum(dstRGB) << ", " 2250 << GLEnums::GetStringEnum(dstRGB) << ", "
2227 << GLEnums::GetStringEnum(srcAlpha) << ", " 2251 << GLEnums::GetStringEnum(srcAlpha) << ", "
2228 << GLEnums::GetStringEnum(dstAlpha) << ")"); 2252 << GLEnums::GetStringEnum(dstAlpha) << ")");
2253 DCHECK(g_driver_gl.debug_fn.glBlendFuncSeparateFn != nullptr);
2229 g_driver_gl.debug_fn.glBlendFuncSeparateFn(srcRGB, dstRGB, srcAlpha, 2254 g_driver_gl.debug_fn.glBlendFuncSeparateFn(srcRGB, dstRGB, srcAlpha,
2230 dstAlpha); 2255 dstAlpha);
2231 } 2256 }
2232 2257
2233 static void GL_BINDING_CALL Debug_glBlitFramebuffer(GLint srcX0, 2258 static void GL_BINDING_CALL Debug_glBlitFramebuffer(GLint srcX0,
2234 GLint srcY0, 2259 GLint srcY0,
2235 GLint srcX1, 2260 GLint srcX1,
2236 GLint srcY1, 2261 GLint srcY1,
2237 GLint dstX0, 2262 GLint dstX0,
2238 GLint dstY0, 2263 GLint dstY0,
2239 GLint dstX1, 2264 GLint dstX1,
2240 GLint dstY1, 2265 GLint dstY1,
2241 GLbitfield mask, 2266 GLbitfield mask,
2242 GLenum filter) { 2267 GLenum filter) {
2243 GL_SERVICE_LOG("glBlitFramebuffer" 2268 GL_SERVICE_LOG("glBlitFramebuffer"
2244 << "(" << srcX0 << ", " << srcY0 << ", " << srcX1 << ", " 2269 << "(" << srcX0 << ", " << srcY0 << ", " << srcX1 << ", "
2245 << srcY1 << ", " << dstX0 << ", " << dstY0 << ", " << dstX1 2270 << srcY1 << ", " << dstX0 << ", " << dstY0 << ", " << dstX1
2246 << ", " << dstY1 << ", " << mask << ", " 2271 << ", " << dstY1 << ", " << mask << ", "
2247 << GLEnums::GetStringEnum(filter) << ")"); 2272 << GLEnums::GetStringEnum(filter) << ")");
2273 DCHECK(g_driver_gl.debug_fn.glBlitFramebufferFn != nullptr);
2248 g_driver_gl.debug_fn.glBlitFramebufferFn(srcX0, srcY0, srcX1, srcY1, dstX0, 2274 g_driver_gl.debug_fn.glBlitFramebufferFn(srcX0, srcY0, srcX1, srcY1, dstX0,
2249 dstY0, dstX1, dstY1, mask, filter); 2275 dstY0, dstX1, dstY1, mask, filter);
2250 } 2276 }
2251 2277
2252 static void GL_BINDING_CALL Debug_glBlitFramebufferANGLE(GLint srcX0, 2278 static void GL_BINDING_CALL Debug_glBlitFramebufferANGLE(GLint srcX0,
2253 GLint srcY0, 2279 GLint srcY0,
2254 GLint srcX1, 2280 GLint srcX1,
2255 GLint srcY1, 2281 GLint srcY1,
2256 GLint dstX0, 2282 GLint dstX0,
2257 GLint dstY0, 2283 GLint dstY0,
2258 GLint dstX1, 2284 GLint dstX1,
2259 GLint dstY1, 2285 GLint dstY1,
2260 GLbitfield mask, 2286 GLbitfield mask,
2261 GLenum filter) { 2287 GLenum filter) {
2262 GL_SERVICE_LOG("glBlitFramebufferANGLE" 2288 GL_SERVICE_LOG("glBlitFramebufferANGLE"
2263 << "(" << srcX0 << ", " << srcY0 << ", " << srcX1 << ", " 2289 << "(" << srcX0 << ", " << srcY0 << ", " << srcX1 << ", "
2264 << srcY1 << ", " << dstX0 << ", " << dstY0 << ", " << dstX1 2290 << srcY1 << ", " << dstX0 << ", " << dstY0 << ", " << dstX1
2265 << ", " << dstY1 << ", " << mask << ", " 2291 << ", " << dstY1 << ", " << mask << ", "
2266 << GLEnums::GetStringEnum(filter) << ")"); 2292 << GLEnums::GetStringEnum(filter) << ")");
2293 DCHECK(g_driver_gl.debug_fn.glBlitFramebufferANGLEFn != nullptr);
2267 g_driver_gl.debug_fn.glBlitFramebufferANGLEFn( 2294 g_driver_gl.debug_fn.glBlitFramebufferANGLEFn(
2268 srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter); 2295 srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
2269 } 2296 }
2270 2297
2271 static void GL_BINDING_CALL Debug_glBlitFramebufferEXT(GLint srcX0, 2298 static void GL_BINDING_CALL Debug_glBlitFramebufferEXT(GLint srcX0,
2272 GLint srcY0, 2299 GLint srcY0,
2273 GLint srcX1, 2300 GLint srcX1,
2274 GLint srcY1, 2301 GLint srcY1,
2275 GLint dstX0, 2302 GLint dstX0,
2276 GLint dstY0, 2303 GLint dstY0,
2277 GLint dstX1, 2304 GLint dstX1,
2278 GLint dstY1, 2305 GLint dstY1,
2279 GLbitfield mask, 2306 GLbitfield mask,
2280 GLenum filter) { 2307 GLenum filter) {
2281 GL_SERVICE_LOG("glBlitFramebufferEXT" 2308 GL_SERVICE_LOG("glBlitFramebufferEXT"
2282 << "(" << srcX0 << ", " << srcY0 << ", " << srcX1 << ", " 2309 << "(" << srcX0 << ", " << srcY0 << ", " << srcX1 << ", "
2283 << srcY1 << ", " << dstX0 << ", " << dstY0 << ", " << dstX1 2310 << srcY1 << ", " << dstX0 << ", " << dstY0 << ", " << dstX1
2284 << ", " << dstY1 << ", " << mask << ", " 2311 << ", " << dstY1 << ", " << mask << ", "
2285 << GLEnums::GetStringEnum(filter) << ")"); 2312 << GLEnums::GetStringEnum(filter) << ")");
2313 DCHECK(g_driver_gl.debug_fn.glBlitFramebufferEXTFn != nullptr);
2286 g_driver_gl.debug_fn.glBlitFramebufferEXTFn( 2314 g_driver_gl.debug_fn.glBlitFramebufferEXTFn(
2287 srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter); 2315 srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
2288 } 2316 }
2289 2317
2290 static void GL_BINDING_CALL Debug_glBufferData(GLenum target, 2318 static void GL_BINDING_CALL Debug_glBufferData(GLenum target,
2291 GLsizeiptr size, 2319 GLsizeiptr size,
2292 const void* data, 2320 const void* data,
2293 GLenum usage) { 2321 GLenum usage) {
2294 GL_SERVICE_LOG("glBufferData" 2322 GL_SERVICE_LOG("glBufferData"
2295 << "(" << GLEnums::GetStringEnum(target) << ", " << size 2323 << "(" << GLEnums::GetStringEnum(target) << ", " << size
2296 << ", " << static_cast<const void*>(data) << ", " 2324 << ", " << static_cast<const void*>(data) << ", "
2297 << GLEnums::GetStringEnum(usage) << ")"); 2325 << GLEnums::GetStringEnum(usage) << ")");
2326 DCHECK(g_driver_gl.debug_fn.glBufferDataFn != nullptr);
2298 g_driver_gl.debug_fn.glBufferDataFn(target, size, data, usage); 2327 g_driver_gl.debug_fn.glBufferDataFn(target, size, data, usage);
2299 } 2328 }
2300 2329
2301 static void GL_BINDING_CALL Debug_glBufferSubData(GLenum target, 2330 static void GL_BINDING_CALL Debug_glBufferSubData(GLenum target,
2302 GLintptr offset, 2331 GLintptr offset,
2303 GLsizeiptr size, 2332 GLsizeiptr size,
2304 const void* data) { 2333 const void* data) {
2305 GL_SERVICE_LOG("glBufferSubData" 2334 GL_SERVICE_LOG("glBufferSubData"
2306 << "(" << GLEnums::GetStringEnum(target) << ", " << offset 2335 << "(" << GLEnums::GetStringEnum(target) << ", " << offset
2307 << ", " << size << ", " << static_cast<const void*>(data) 2336 << ", " << size << ", " << static_cast<const void*>(data)
2308 << ")"); 2337 << ")");
2338 DCHECK(g_driver_gl.debug_fn.glBufferSubDataFn != nullptr);
2309 g_driver_gl.debug_fn.glBufferSubDataFn(target, offset, size, data); 2339 g_driver_gl.debug_fn.glBufferSubDataFn(target, offset, size, data);
2310 } 2340 }
2311 2341
2312 static GLenum GL_BINDING_CALL Debug_glCheckFramebufferStatusEXT(GLenum target) { 2342 static GLenum GL_BINDING_CALL Debug_glCheckFramebufferStatusEXT(GLenum target) {
2313 GL_SERVICE_LOG("glCheckFramebufferStatusEXT" 2343 GL_SERVICE_LOG("glCheckFramebufferStatusEXT"
2314 << "(" << GLEnums::GetStringEnum(target) << ")"); 2344 << "(" << GLEnums::GetStringEnum(target) << ")");
2345 DCHECK(g_driver_gl.debug_fn.glCheckFramebufferStatusEXTFn != nullptr);
2315 GLenum result = g_driver_gl.debug_fn.glCheckFramebufferStatusEXTFn(target); 2346 GLenum result = g_driver_gl.debug_fn.glCheckFramebufferStatusEXTFn(target);
2316 2347
2317 GL_SERVICE_LOG("GL_RESULT: " << GLEnums::GetStringEnum(result)); 2348 GL_SERVICE_LOG("GL_RESULT: " << GLEnums::GetStringEnum(result));
2318 2349
2319 return result; 2350 return result;
2320 } 2351 }
2321 2352
2322 static void GL_BINDING_CALL Debug_glClear(GLbitfield mask) { 2353 static void GL_BINDING_CALL Debug_glClear(GLbitfield mask) {
2323 GL_SERVICE_LOG("glClear" 2354 GL_SERVICE_LOG("glClear"
2324 << "(" << mask << ")"); 2355 << "(" << mask << ")");
2356 DCHECK(g_driver_gl.debug_fn.glClearFn != nullptr);
2325 g_driver_gl.debug_fn.glClearFn(mask); 2357 g_driver_gl.debug_fn.glClearFn(mask);
2326 } 2358 }
2327 2359
2328 static void GL_BINDING_CALL Debug_glClearBufferfi(GLenum buffer, 2360 static void GL_BINDING_CALL Debug_glClearBufferfi(GLenum buffer,
2329 GLint drawbuffer, 2361 GLint drawbuffer,
2330 const GLfloat depth, 2362 const GLfloat depth,
2331 GLint stencil) { 2363 GLint stencil) {
2332 GL_SERVICE_LOG("glClearBufferfi" 2364 GL_SERVICE_LOG("glClearBufferfi"
2333 << "(" << GLEnums::GetStringEnum(buffer) << ", " << drawbuffer 2365 << "(" << GLEnums::GetStringEnum(buffer) << ", " << drawbuffer
2334 << ", " << depth << ", " << stencil << ")"); 2366 << ", " << depth << ", " << stencil << ")");
2367 DCHECK(g_driver_gl.debug_fn.glClearBufferfiFn != nullptr);
2335 g_driver_gl.debug_fn.glClearBufferfiFn(buffer, drawbuffer, depth, stencil); 2368 g_driver_gl.debug_fn.glClearBufferfiFn(buffer, drawbuffer, depth, stencil);
2336 } 2369 }
2337 2370
2338 static void GL_BINDING_CALL Debug_glClearBufferfv(GLenum buffer, 2371 static void GL_BINDING_CALL Debug_glClearBufferfv(GLenum buffer,
2339 GLint drawbuffer, 2372 GLint drawbuffer,
2340 const GLfloat* value) { 2373 const GLfloat* value) {
2341 GL_SERVICE_LOG("glClearBufferfv" 2374 GL_SERVICE_LOG("glClearBufferfv"
2342 << "(" << GLEnums::GetStringEnum(buffer) << ", " << drawbuffer 2375 << "(" << GLEnums::GetStringEnum(buffer) << ", " << drawbuffer
2343 << ", " << static_cast<const void*>(value) << ")"); 2376 << ", " << static_cast<const void*>(value) << ")");
2377 DCHECK(g_driver_gl.debug_fn.glClearBufferfvFn != nullptr);
2344 g_driver_gl.debug_fn.glClearBufferfvFn(buffer, drawbuffer, value); 2378 g_driver_gl.debug_fn.glClearBufferfvFn(buffer, drawbuffer, value);
2345 } 2379 }
2346 2380
2347 static void GL_BINDING_CALL Debug_glClearBufferiv(GLenum buffer, 2381 static void GL_BINDING_CALL Debug_glClearBufferiv(GLenum buffer,
2348 GLint drawbuffer, 2382 GLint drawbuffer,
2349 const GLint* value) { 2383 const GLint* value) {
2350 GL_SERVICE_LOG("glClearBufferiv" 2384 GL_SERVICE_LOG("glClearBufferiv"
2351 << "(" << GLEnums::GetStringEnum(buffer) << ", " << drawbuffer 2385 << "(" << GLEnums::GetStringEnum(buffer) << ", " << drawbuffer
2352 << ", " << static_cast<const void*>(value) << ")"); 2386 << ", " << static_cast<const void*>(value) << ")");
2387 DCHECK(g_driver_gl.debug_fn.glClearBufferivFn != nullptr);
2353 g_driver_gl.debug_fn.glClearBufferivFn(buffer, drawbuffer, value); 2388 g_driver_gl.debug_fn.glClearBufferivFn(buffer, drawbuffer, value);
2354 } 2389 }
2355 2390
2356 static void GL_BINDING_CALL Debug_glClearBufferuiv(GLenum buffer, 2391 static void GL_BINDING_CALL Debug_glClearBufferuiv(GLenum buffer,
2357 GLint drawbuffer, 2392 GLint drawbuffer,
2358 const GLuint* value) { 2393 const GLuint* value) {
2359 GL_SERVICE_LOG("glClearBufferuiv" 2394 GL_SERVICE_LOG("glClearBufferuiv"
2360 << "(" << GLEnums::GetStringEnum(buffer) << ", " << drawbuffer 2395 << "(" << GLEnums::GetStringEnum(buffer) << ", " << drawbuffer
2361 << ", " << static_cast<const void*>(value) << ")"); 2396 << ", " << static_cast<const void*>(value) << ")");
2397 DCHECK(g_driver_gl.debug_fn.glClearBufferuivFn != nullptr);
2362 g_driver_gl.debug_fn.glClearBufferuivFn(buffer, drawbuffer, value); 2398 g_driver_gl.debug_fn.glClearBufferuivFn(buffer, drawbuffer, value);
2363 } 2399 }
2364 2400
2365 static void GL_BINDING_CALL Debug_glClearColor(GLclampf red, 2401 static void GL_BINDING_CALL Debug_glClearColor(GLclampf red,
2366 GLclampf green, 2402 GLclampf green,
2367 GLclampf blue, 2403 GLclampf blue,
2368 GLclampf alpha) { 2404 GLclampf alpha) {
2369 GL_SERVICE_LOG("glClearColor" 2405 GL_SERVICE_LOG("glClearColor"
2370 << "(" << red << ", " << green << ", " << blue << ", " << alpha 2406 << "(" << red << ", " << green << ", " << blue << ", " << alpha
2371 << ")"); 2407 << ")");
2408 DCHECK(g_driver_gl.debug_fn.glClearColorFn != nullptr);
2372 g_driver_gl.debug_fn.glClearColorFn(red, green, blue, alpha); 2409 g_driver_gl.debug_fn.glClearColorFn(red, green, blue, alpha);
2373 } 2410 }
2374 2411
2375 static void GL_BINDING_CALL Debug_glClearDepth(GLclampd depth) { 2412 static void GL_BINDING_CALL Debug_glClearDepth(GLclampd depth) {
2376 GL_SERVICE_LOG("glClearDepth" 2413 GL_SERVICE_LOG("glClearDepth"
2377 << "(" << depth << ")"); 2414 << "(" << depth << ")");
2415 DCHECK(g_driver_gl.debug_fn.glClearDepthFn != nullptr);
2378 g_driver_gl.debug_fn.glClearDepthFn(depth); 2416 g_driver_gl.debug_fn.glClearDepthFn(depth);
2379 } 2417 }
2380 2418
2381 static void GL_BINDING_CALL Debug_glClearDepthf(GLclampf depth) { 2419 static void GL_BINDING_CALL Debug_glClearDepthf(GLclampf depth) {
2382 GL_SERVICE_LOG("glClearDepthf" 2420 GL_SERVICE_LOG("glClearDepthf"
2383 << "(" << depth << ")"); 2421 << "(" << depth << ")");
2422 DCHECK(g_driver_gl.debug_fn.glClearDepthfFn != nullptr);
2384 g_driver_gl.debug_fn.glClearDepthfFn(depth); 2423 g_driver_gl.debug_fn.glClearDepthfFn(depth);
2385 } 2424 }
2386 2425
2387 static void GL_BINDING_CALL Debug_glClearStencil(GLint s) { 2426 static void GL_BINDING_CALL Debug_glClearStencil(GLint s) {
2388 GL_SERVICE_LOG("glClearStencil" 2427 GL_SERVICE_LOG("glClearStencil"
2389 << "(" << s << ")"); 2428 << "(" << s << ")");
2429 DCHECK(g_driver_gl.debug_fn.glClearStencilFn != nullptr);
2390 g_driver_gl.debug_fn.glClearStencilFn(s); 2430 g_driver_gl.debug_fn.glClearStencilFn(s);
2391 } 2431 }
2392 2432
2393 static GLenum GL_BINDING_CALL Debug_glClientWaitSync(GLsync sync, 2433 static GLenum GL_BINDING_CALL Debug_glClientWaitSync(GLsync sync,
2394 GLbitfield flags, 2434 GLbitfield flags,
2395 GLuint64 timeout) { 2435 GLuint64 timeout) {
2396 GL_SERVICE_LOG("glClientWaitSync" 2436 GL_SERVICE_LOG("glClientWaitSync"
2397 << "(" << sync << ", " << flags << ", " << timeout << ")"); 2437 << "(" << sync << ", " << flags << ", " << timeout << ")");
2438 DCHECK(g_driver_gl.debug_fn.glClientWaitSyncFn != nullptr);
2398 GLenum result = g_driver_gl.debug_fn.glClientWaitSyncFn(sync, flags, timeout); 2439 GLenum result = g_driver_gl.debug_fn.glClientWaitSyncFn(sync, flags, timeout);
2399 GL_SERVICE_LOG("GL_RESULT: " << result); 2440 GL_SERVICE_LOG("GL_RESULT: " << result);
2400 return result; 2441 return result;
2401 } 2442 }
2402 2443
2403 static void GL_BINDING_CALL Debug_glColorMask(GLboolean red, 2444 static void GL_BINDING_CALL Debug_glColorMask(GLboolean red,
2404 GLboolean green, 2445 GLboolean green,
2405 GLboolean blue, 2446 GLboolean blue,
2406 GLboolean alpha) { 2447 GLboolean alpha) {
2407 GL_SERVICE_LOG("glColorMask" 2448 GL_SERVICE_LOG("glColorMask"
2408 << "(" << GLEnums::GetStringBool(red) << ", " 2449 << "(" << GLEnums::GetStringBool(red) << ", "
2409 << GLEnums::GetStringBool(green) << ", " 2450 << GLEnums::GetStringBool(green) << ", "
2410 << GLEnums::GetStringBool(blue) << ", " 2451 << GLEnums::GetStringBool(blue) << ", "
2411 << GLEnums::GetStringBool(alpha) << ")"); 2452 << GLEnums::GetStringBool(alpha) << ")");
2453 DCHECK(g_driver_gl.debug_fn.glColorMaskFn != nullptr);
2412 g_driver_gl.debug_fn.glColorMaskFn(red, green, blue, alpha); 2454 g_driver_gl.debug_fn.glColorMaskFn(red, green, blue, alpha);
2413 } 2455 }
2414 2456
2415 static void GL_BINDING_CALL Debug_glCompileShader(GLuint shader) { 2457 static void GL_BINDING_CALL Debug_glCompileShader(GLuint shader) {
2416 GL_SERVICE_LOG("glCompileShader" 2458 GL_SERVICE_LOG("glCompileShader"
2417 << "(" << shader << ")"); 2459 << "(" << shader << ")");
2460 DCHECK(g_driver_gl.debug_fn.glCompileShaderFn != nullptr);
2418 g_driver_gl.debug_fn.glCompileShaderFn(shader); 2461 g_driver_gl.debug_fn.glCompileShaderFn(shader);
2419 } 2462 }
2420 2463
2421 static void GL_BINDING_CALL Debug_glCompressedTexImage2D(GLenum target, 2464 static void GL_BINDING_CALL Debug_glCompressedTexImage2D(GLenum target,
2422 GLint level, 2465 GLint level,
2423 GLenum internalformat, 2466 GLenum internalformat,
2424 GLsizei width, 2467 GLsizei width,
2425 GLsizei height, 2468 GLsizei height,
2426 GLint border, 2469 GLint border,
2427 GLsizei imageSize, 2470 GLsizei imageSize,
2428 const void* data) { 2471 const void* data) {
2429 GL_SERVICE_LOG("glCompressedTexImage2D" 2472 GL_SERVICE_LOG("glCompressedTexImage2D"
2430 << "(" << GLEnums::GetStringEnum(target) << ", " << level 2473 << "(" << GLEnums::GetStringEnum(target) << ", " << level
2431 << ", " << GLEnums::GetStringEnum(internalformat) << ", " 2474 << ", " << GLEnums::GetStringEnum(internalformat) << ", "
2432 << width << ", " << height << ", " << border << ", " 2475 << width << ", " << height << ", " << border << ", "
2433 << imageSize << ", " << static_cast<const void*>(data) << ")"); 2476 << imageSize << ", " << static_cast<const void*>(data) << ")");
2477 DCHECK(g_driver_gl.debug_fn.glCompressedTexImage2DFn != nullptr);
2434 g_driver_gl.debug_fn.glCompressedTexImage2DFn( 2478 g_driver_gl.debug_fn.glCompressedTexImage2DFn(
2435 target, level, internalformat, width, height, border, imageSize, data); 2479 target, level, internalformat, width, height, border, imageSize, data);
2436 } 2480 }
2437 2481
2438 static void GL_BINDING_CALL Debug_glCompressedTexImage3D(GLenum target, 2482 static void GL_BINDING_CALL Debug_glCompressedTexImage3D(GLenum target,
2439 GLint level, 2483 GLint level,
2440 GLenum internalformat, 2484 GLenum internalformat,
2441 GLsizei width, 2485 GLsizei width,
2442 GLsizei height, 2486 GLsizei height,
2443 GLsizei depth, 2487 GLsizei depth,
2444 GLint border, 2488 GLint border,
2445 GLsizei imageSize, 2489 GLsizei imageSize,
2446 const void* data) { 2490 const void* data) {
2447 GL_SERVICE_LOG("glCompressedTexImage3D" 2491 GL_SERVICE_LOG("glCompressedTexImage3D"
2448 << "(" << GLEnums::GetStringEnum(target) << ", " << level 2492 << "(" << GLEnums::GetStringEnum(target) << ", " << level
2449 << ", " << GLEnums::GetStringEnum(internalformat) << ", " 2493 << ", " << GLEnums::GetStringEnum(internalformat) << ", "
2450 << width << ", " << height << ", " << depth << ", " << border 2494 << width << ", " << height << ", " << depth << ", " << border
2451 << ", " << imageSize << ", " << static_cast<const void*>(data) 2495 << ", " << imageSize << ", " << static_cast<const void*>(data)
2452 << ")"); 2496 << ")");
2497 DCHECK(g_driver_gl.debug_fn.glCompressedTexImage3DFn != nullptr);
2453 g_driver_gl.debug_fn.glCompressedTexImage3DFn(target, level, internalformat, 2498 g_driver_gl.debug_fn.glCompressedTexImage3DFn(target, level, internalformat,
2454 width, height, depth, border, 2499 width, height, depth, border,
2455 imageSize, data); 2500 imageSize, data);
2456 } 2501 }
2457 2502
2458 static void GL_BINDING_CALL Debug_glCompressedTexSubImage2D(GLenum target, 2503 static void GL_BINDING_CALL Debug_glCompressedTexSubImage2D(GLenum target,
2459 GLint level, 2504 GLint level,
2460 GLint xoffset, 2505 GLint xoffset,
2461 GLint yoffset, 2506 GLint yoffset,
2462 GLsizei width, 2507 GLsizei width,
2463 GLsizei height, 2508 GLsizei height,
2464 GLenum format, 2509 GLenum format,
2465 GLsizei imageSize, 2510 GLsizei imageSize,
2466 const void* data) { 2511 const void* data) {
2467 GL_SERVICE_LOG("glCompressedTexSubImage2D" 2512 GL_SERVICE_LOG("glCompressedTexSubImage2D"
2468 << "(" << GLEnums::GetStringEnum(target) << ", " << level 2513 << "(" << GLEnums::GetStringEnum(target) << ", " << level
2469 << ", " << xoffset << ", " << yoffset << ", " << width << ", " 2514 << ", " << xoffset << ", " << yoffset << ", " << width << ", "
2470 << height << ", " << GLEnums::GetStringEnum(format) << ", " 2515 << height << ", " << GLEnums::GetStringEnum(format) << ", "
2471 << imageSize << ", " << static_cast<const void*>(data) << ")"); 2516 << imageSize << ", " << static_cast<const void*>(data) << ")");
2517 DCHECK(g_driver_gl.debug_fn.glCompressedTexSubImage2DFn != nullptr);
2472 g_driver_gl.debug_fn.glCompressedTexSubImage2DFn( 2518 g_driver_gl.debug_fn.glCompressedTexSubImage2DFn(
2473 target, level, xoffset, yoffset, width, height, format, imageSize, data); 2519 target, level, xoffset, yoffset, width, height, format, imageSize, data);
2474 } 2520 }
2475 2521
2476 static void GL_BINDING_CALL Debug_glCompressedTexSubImage3D(GLenum target, 2522 static void GL_BINDING_CALL Debug_glCompressedTexSubImage3D(GLenum target,
2477 GLint level, 2523 GLint level,
2478 GLint xoffset, 2524 GLint xoffset,
2479 GLint yoffset, 2525 GLint yoffset,
2480 GLint zoffset, 2526 GLint zoffset,
2481 GLsizei width, 2527 GLsizei width,
2482 GLsizei height, 2528 GLsizei height,
2483 GLsizei depth, 2529 GLsizei depth,
2484 GLenum format, 2530 GLenum format,
2485 GLsizei imageSize, 2531 GLsizei imageSize,
2486 const void* data) { 2532 const void* data) {
2487 GL_SERVICE_LOG("glCompressedTexSubImage3D" 2533 GL_SERVICE_LOG("glCompressedTexSubImage3D"
2488 << "(" << GLEnums::GetStringEnum(target) << ", " << level 2534 << "(" << GLEnums::GetStringEnum(target) << ", " << level
2489 << ", " << xoffset << ", " << yoffset << ", " << zoffset 2535 << ", " << xoffset << ", " << yoffset << ", " << zoffset
2490 << ", " << width << ", " << height << ", " << depth << ", " 2536 << ", " << width << ", " << height << ", " << depth << ", "
2491 << GLEnums::GetStringEnum(format) << ", " << imageSize << ", " 2537 << GLEnums::GetStringEnum(format) << ", " << imageSize << ", "
2492 << static_cast<const void*>(data) << ")"); 2538 << static_cast<const void*>(data) << ")");
2539 DCHECK(g_driver_gl.debug_fn.glCompressedTexSubImage3DFn != nullptr);
2493 g_driver_gl.debug_fn.glCompressedTexSubImage3DFn( 2540 g_driver_gl.debug_fn.glCompressedTexSubImage3DFn(
2494 target, level, xoffset, yoffset, zoffset, width, height, depth, format, 2541 target, level, xoffset, yoffset, zoffset, width, height, depth, format,
2495 imageSize, data); 2542 imageSize, data);
2496 } 2543 }
2497 2544
2498 static void GL_BINDING_CALL Debug_glCopyBufferSubData(GLenum readTarget, 2545 static void GL_BINDING_CALL Debug_glCopyBufferSubData(GLenum readTarget,
2499 GLenum writeTarget, 2546 GLenum writeTarget,
2500 GLintptr readOffset, 2547 GLintptr readOffset,
2501 GLintptr writeOffset, 2548 GLintptr writeOffset,
2502 GLsizeiptr size) { 2549 GLsizeiptr size) {
2503 GL_SERVICE_LOG("glCopyBufferSubData" 2550 GL_SERVICE_LOG("glCopyBufferSubData"
2504 << "(" << GLEnums::GetStringEnum(readTarget) << ", " 2551 << "(" << GLEnums::GetStringEnum(readTarget) << ", "
2505 << GLEnums::GetStringEnum(writeTarget) << ", " << readOffset 2552 << GLEnums::GetStringEnum(writeTarget) << ", " << readOffset
2506 << ", " << writeOffset << ", " << size << ")"); 2553 << ", " << writeOffset << ", " << size << ")");
2554 DCHECK(g_driver_gl.debug_fn.glCopyBufferSubDataFn != nullptr);
2507 g_driver_gl.debug_fn.glCopyBufferSubDataFn(readTarget, writeTarget, 2555 g_driver_gl.debug_fn.glCopyBufferSubDataFn(readTarget, writeTarget,
2508 readOffset, writeOffset, size); 2556 readOffset, writeOffset, size);
2509 } 2557 }
2510 2558
2511 static void GL_BINDING_CALL Debug_glCopyTexImage2D(GLenum target, 2559 static void GL_BINDING_CALL Debug_glCopyTexImage2D(GLenum target,
2512 GLint level, 2560 GLint level,
2513 GLenum internalformat, 2561 GLenum internalformat,
2514 GLint x, 2562 GLint x,
2515 GLint y, 2563 GLint y,
2516 GLsizei width, 2564 GLsizei width,
2517 GLsizei height, 2565 GLsizei height,
2518 GLint border) { 2566 GLint border) {
2519 GL_SERVICE_LOG("glCopyTexImage2D" 2567 GL_SERVICE_LOG("glCopyTexImage2D"
2520 << "(" << GLEnums::GetStringEnum(target) << ", " << level 2568 << "(" << GLEnums::GetStringEnum(target) << ", " << level
2521 << ", " << GLEnums::GetStringEnum(internalformat) << ", " << x 2569 << ", " << GLEnums::GetStringEnum(internalformat) << ", " << x
2522 << ", " << y << ", " << width << ", " << height << ", " 2570 << ", " << y << ", " << width << ", " << height << ", "
2523 << border << ")"); 2571 << border << ")");
2572 DCHECK(g_driver_gl.debug_fn.glCopyTexImage2DFn != nullptr);
2524 g_driver_gl.debug_fn.glCopyTexImage2DFn(target, level, internalformat, x, y, 2573 g_driver_gl.debug_fn.glCopyTexImage2DFn(target, level, internalformat, x, y,
2525 width, height, border); 2574 width, height, border);
2526 } 2575 }
2527 2576
2528 static void GL_BINDING_CALL Debug_glCopyTexSubImage2D(GLenum target, 2577 static void GL_BINDING_CALL Debug_glCopyTexSubImage2D(GLenum target,
2529 GLint level, 2578 GLint level,
2530 GLint xoffset, 2579 GLint xoffset,
2531 GLint yoffset, 2580 GLint yoffset,
2532 GLint x, 2581 GLint x,
2533 GLint y, 2582 GLint y,
2534 GLsizei width, 2583 GLsizei width,
2535 GLsizei height) { 2584 GLsizei height) {
2536 GL_SERVICE_LOG("glCopyTexSubImage2D" 2585 GL_SERVICE_LOG("glCopyTexSubImage2D"
2537 << "(" << GLEnums::GetStringEnum(target) << ", " << level 2586 << "(" << GLEnums::GetStringEnum(target) << ", " << level
2538 << ", " << xoffset << ", " << yoffset << ", " << x << ", " << y 2587 << ", " << xoffset << ", " << yoffset << ", " << x << ", " << y
2539 << ", " << width << ", " << height << ")"); 2588 << ", " << width << ", " << height << ")");
2589 DCHECK(g_driver_gl.debug_fn.glCopyTexSubImage2DFn != nullptr);
2540 g_driver_gl.debug_fn.glCopyTexSubImage2DFn(target, level, xoffset, yoffset, x, 2590 g_driver_gl.debug_fn.glCopyTexSubImage2DFn(target, level, xoffset, yoffset, x,
2541 y, width, height); 2591 y, width, height);
2542 } 2592 }
2543 2593
2544 static void GL_BINDING_CALL Debug_glCopyTexSubImage3D(GLenum target, 2594 static void GL_BINDING_CALL Debug_glCopyTexSubImage3D(GLenum target,
2545 GLint level, 2595 GLint level,
2546 GLint xoffset, 2596 GLint xoffset,
2547 GLint yoffset, 2597 GLint yoffset,
2548 GLint zoffset, 2598 GLint zoffset,
2549 GLint x, 2599 GLint x,
2550 GLint y, 2600 GLint y,
2551 GLsizei width, 2601 GLsizei width,
2552 GLsizei height) { 2602 GLsizei height) {
2553 GL_SERVICE_LOG("glCopyTexSubImage3D" 2603 GL_SERVICE_LOG("glCopyTexSubImage3D"
2554 << "(" << GLEnums::GetStringEnum(target) << ", " << level 2604 << "(" << GLEnums::GetStringEnum(target) << ", " << level
2555 << ", " << xoffset << ", " << yoffset << ", " << zoffset 2605 << ", " << xoffset << ", " << yoffset << ", " << zoffset
2556 << ", " << x << ", " << y << ", " << width << ", " << height 2606 << ", " << x << ", " << y << ", " << width << ", " << height
2557 << ")"); 2607 << ")");
2608 DCHECK(g_driver_gl.debug_fn.glCopyTexSubImage3DFn != nullptr);
2558 g_driver_gl.debug_fn.glCopyTexSubImage3DFn(target, level, xoffset, yoffset, 2609 g_driver_gl.debug_fn.glCopyTexSubImage3DFn(target, level, xoffset, yoffset,
2559 zoffset, x, y, width, height); 2610 zoffset, x, y, width, height);
2560 } 2611 }
2561 2612
2562 static void GL_BINDING_CALL Debug_glCoverageModulationNV(GLenum components) { 2613 static void GL_BINDING_CALL Debug_glCoverageModulationNV(GLenum components) {
2563 GL_SERVICE_LOG("glCoverageModulationNV" 2614 GL_SERVICE_LOG("glCoverageModulationNV"
2564 << "(" << GLEnums::GetStringEnum(components) << ")"); 2615 << "(" << GLEnums::GetStringEnum(components) << ")");
2616 DCHECK(g_driver_gl.debug_fn.glCoverageModulationNVFn != nullptr);
2565 g_driver_gl.debug_fn.glCoverageModulationNVFn(components); 2617 g_driver_gl.debug_fn.glCoverageModulationNVFn(components);
2566 } 2618 }
2567 2619
2568 static void GL_BINDING_CALL 2620 static void GL_BINDING_CALL
2569 Debug_glCoverFillPathInstancedNV(GLsizei numPaths, 2621 Debug_glCoverFillPathInstancedNV(GLsizei numPaths,
2570 GLenum pathNameType, 2622 GLenum pathNameType,
2571 const void* paths, 2623 const void* paths,
2572 GLuint pathBase, 2624 GLuint pathBase,
2573 GLenum coverMode, 2625 GLenum coverMode,
2574 GLenum transformType, 2626 GLenum transformType,
2575 const GLfloat* transformValues) { 2627 const GLfloat* transformValues) {
2576 GL_SERVICE_LOG("glCoverFillPathInstancedNV" 2628 GL_SERVICE_LOG("glCoverFillPathInstancedNV"
2577 << "(" << numPaths << ", " 2629 << "(" << numPaths << ", "
2578 << GLEnums::GetStringEnum(pathNameType) << ", " 2630 << GLEnums::GetStringEnum(pathNameType) << ", "
2579 << static_cast<const void*>(paths) << ", " << pathBase << ", " 2631 << static_cast<const void*>(paths) << ", " << pathBase << ", "
2580 << GLEnums::GetStringEnum(coverMode) << ", " 2632 << GLEnums::GetStringEnum(coverMode) << ", "
2581 << GLEnums::GetStringEnum(transformType) << ", " 2633 << GLEnums::GetStringEnum(transformType) << ", "
2582 << static_cast<const void*>(transformValues) << ")"); 2634 << static_cast<const void*>(transformValues) << ")");
2635 DCHECK(g_driver_gl.debug_fn.glCoverFillPathInstancedNVFn != nullptr);
2583 g_driver_gl.debug_fn.glCoverFillPathInstancedNVFn( 2636 g_driver_gl.debug_fn.glCoverFillPathInstancedNVFn(
2584 numPaths, pathNameType, paths, pathBase, coverMode, transformType, 2637 numPaths, pathNameType, paths, pathBase, coverMode, transformType,
2585 transformValues); 2638 transformValues);
2586 } 2639 }
2587 2640
2588 static void GL_BINDING_CALL Debug_glCoverFillPathNV(GLuint path, 2641 static void GL_BINDING_CALL Debug_glCoverFillPathNV(GLuint path,
2589 GLenum coverMode) { 2642 GLenum coverMode) {
2590 GL_SERVICE_LOG("glCoverFillPathNV" 2643 GL_SERVICE_LOG("glCoverFillPathNV"
2591 << "(" << path << ", " << GLEnums::GetStringEnum(coverMode) 2644 << "(" << path << ", " << GLEnums::GetStringEnum(coverMode)
2592 << ")"); 2645 << ")");
2646 DCHECK(g_driver_gl.debug_fn.glCoverFillPathNVFn != nullptr);
2593 g_driver_gl.debug_fn.glCoverFillPathNVFn(path, coverMode); 2647 g_driver_gl.debug_fn.glCoverFillPathNVFn(path, coverMode);
2594 } 2648 }
2595 2649
2596 static void GL_BINDING_CALL 2650 static void GL_BINDING_CALL
2597 Debug_glCoverStrokePathInstancedNV(GLsizei numPaths, 2651 Debug_glCoverStrokePathInstancedNV(GLsizei numPaths,
2598 GLenum pathNameType, 2652 GLenum pathNameType,
2599 const void* paths, 2653 const void* paths,
2600 GLuint pathBase, 2654 GLuint pathBase,
2601 GLenum coverMode, 2655 GLenum coverMode,
2602 GLenum transformType, 2656 GLenum transformType,
2603 const GLfloat* transformValues) { 2657 const GLfloat* transformValues) {
2604 GL_SERVICE_LOG("glCoverStrokePathInstancedNV" 2658 GL_SERVICE_LOG("glCoverStrokePathInstancedNV"
2605 << "(" << numPaths << ", " 2659 << "(" << numPaths << ", "
2606 << GLEnums::GetStringEnum(pathNameType) << ", " 2660 << GLEnums::GetStringEnum(pathNameType) << ", "
2607 << static_cast<const void*>(paths) << ", " << pathBase << ", " 2661 << static_cast<const void*>(paths) << ", " << pathBase << ", "
2608 << GLEnums::GetStringEnum(coverMode) << ", " 2662 << GLEnums::GetStringEnum(coverMode) << ", "
2609 << GLEnums::GetStringEnum(transformType) << ", " 2663 << GLEnums::GetStringEnum(transformType) << ", "
2610 << static_cast<const void*>(transformValues) << ")"); 2664 << static_cast<const void*>(transformValues) << ")");
2665 DCHECK(g_driver_gl.debug_fn.glCoverStrokePathInstancedNVFn != nullptr);
2611 g_driver_gl.debug_fn.glCoverStrokePathInstancedNVFn( 2666 g_driver_gl.debug_fn.glCoverStrokePathInstancedNVFn(
2612 numPaths, pathNameType, paths, pathBase, coverMode, transformType, 2667 numPaths, pathNameType, paths, pathBase, coverMode, transformType,
2613 transformValues); 2668 transformValues);
2614 } 2669 }
2615 2670
2616 static void GL_BINDING_CALL Debug_glCoverStrokePathNV(GLuint name, 2671 static void GL_BINDING_CALL Debug_glCoverStrokePathNV(GLuint name,
2617 GLenum coverMode) { 2672 GLenum coverMode) {
2618 GL_SERVICE_LOG("glCoverStrokePathNV" 2673 GL_SERVICE_LOG("glCoverStrokePathNV"
2619 << "(" << name << ", " << GLEnums::GetStringEnum(coverMode) 2674 << "(" << name << ", " << GLEnums::GetStringEnum(coverMode)
2620 << ")"); 2675 << ")");
2676 DCHECK(g_driver_gl.debug_fn.glCoverStrokePathNVFn != nullptr);
2621 g_driver_gl.debug_fn.glCoverStrokePathNVFn(name, coverMode); 2677 g_driver_gl.debug_fn.glCoverStrokePathNVFn(name, coverMode);
2622 } 2678 }
2623 2679
2624 static GLuint GL_BINDING_CALL Debug_glCreateProgram(void) { 2680 static GLuint GL_BINDING_CALL Debug_glCreateProgram(void) {
2625 GL_SERVICE_LOG("glCreateProgram" 2681 GL_SERVICE_LOG("glCreateProgram"
2626 << "(" 2682 << "("
2627 << ")"); 2683 << ")");
2684 DCHECK(g_driver_gl.debug_fn.glCreateProgramFn != nullptr);
2628 GLuint result = g_driver_gl.debug_fn.glCreateProgramFn(); 2685 GLuint result = g_driver_gl.debug_fn.glCreateProgramFn();
2629 GL_SERVICE_LOG("GL_RESULT: " << result); 2686 GL_SERVICE_LOG("GL_RESULT: " << result);
2630 return result; 2687 return result;
2631 } 2688 }
2632 2689
2633 static GLuint GL_BINDING_CALL Debug_glCreateShader(GLenum type) { 2690 static GLuint GL_BINDING_CALL Debug_glCreateShader(GLenum type) {
2634 GL_SERVICE_LOG("glCreateShader" 2691 GL_SERVICE_LOG("glCreateShader"
2635 << "(" << GLEnums::GetStringEnum(type) << ")"); 2692 << "(" << GLEnums::GetStringEnum(type) << ")");
2693 DCHECK(g_driver_gl.debug_fn.glCreateShaderFn != nullptr);
2636 GLuint result = g_driver_gl.debug_fn.glCreateShaderFn(type); 2694 GLuint result = g_driver_gl.debug_fn.glCreateShaderFn(type);
2637 GL_SERVICE_LOG("GL_RESULT: " << result); 2695 GL_SERVICE_LOG("GL_RESULT: " << result);
2638 return result; 2696 return result;
2639 } 2697 }
2640 2698
2641 static void GL_BINDING_CALL Debug_glCullFace(GLenum mode) { 2699 static void GL_BINDING_CALL Debug_glCullFace(GLenum mode) {
2642 GL_SERVICE_LOG("glCullFace" 2700 GL_SERVICE_LOG("glCullFace"
2643 << "(" << GLEnums::GetStringEnum(mode) << ")"); 2701 << "(" << GLEnums::GetStringEnum(mode) << ")");
2702 DCHECK(g_driver_gl.debug_fn.glCullFaceFn != nullptr);
2644 g_driver_gl.debug_fn.glCullFaceFn(mode); 2703 g_driver_gl.debug_fn.glCullFaceFn(mode);
2645 } 2704 }
2646 2705
2647 static void GL_BINDING_CALL Debug_glDeleteBuffersARB(GLsizei n, 2706 static void GL_BINDING_CALL Debug_glDeleteBuffersARB(GLsizei n,
2648 const GLuint* buffers) { 2707 const GLuint* buffers) {
2649 GL_SERVICE_LOG("glDeleteBuffersARB" 2708 GL_SERVICE_LOG("glDeleteBuffersARB"
2650 << "(" << n << ", " << static_cast<const void*>(buffers) 2709 << "(" << n << ", " << static_cast<const void*>(buffers)
2651 << ")"); 2710 << ")");
2711 DCHECK(g_driver_gl.debug_fn.glDeleteBuffersARBFn != nullptr);
2652 g_driver_gl.debug_fn.glDeleteBuffersARBFn(n, buffers); 2712 g_driver_gl.debug_fn.glDeleteBuffersARBFn(n, buffers);
2653 } 2713 }
2654 2714
2655 static void GL_BINDING_CALL Debug_glDeleteFencesAPPLE(GLsizei n, 2715 static void GL_BINDING_CALL Debug_glDeleteFencesAPPLE(GLsizei n,
2656 const GLuint* fences) { 2716 const GLuint* fences) {
2657 GL_SERVICE_LOG("glDeleteFencesAPPLE" 2717 GL_SERVICE_LOG("glDeleteFencesAPPLE"
2658 << "(" << n << ", " << static_cast<const void*>(fences) 2718 << "(" << n << ", " << static_cast<const void*>(fences)
2659 << ")"); 2719 << ")");
2720 DCHECK(g_driver_gl.debug_fn.glDeleteFencesAPPLEFn != nullptr);
2660 g_driver_gl.debug_fn.glDeleteFencesAPPLEFn(n, fences); 2721 g_driver_gl.debug_fn.glDeleteFencesAPPLEFn(n, fences);
2661 } 2722 }
2662 2723
2663 static void GL_BINDING_CALL Debug_glDeleteFencesNV(GLsizei n, 2724 static void GL_BINDING_CALL Debug_glDeleteFencesNV(GLsizei n,
2664 const GLuint* fences) { 2725 const GLuint* fences) {
2665 GL_SERVICE_LOG("glDeleteFencesNV" 2726 GL_SERVICE_LOG("glDeleteFencesNV"
2666 << "(" << n << ", " << static_cast<const void*>(fences) 2727 << "(" << n << ", " << static_cast<const void*>(fences)
2667 << ")"); 2728 << ")");
2729 DCHECK(g_driver_gl.debug_fn.glDeleteFencesNVFn != nullptr);
2668 g_driver_gl.debug_fn.glDeleteFencesNVFn(n, fences); 2730 g_driver_gl.debug_fn.glDeleteFencesNVFn(n, fences);
2669 } 2731 }
2670 2732
2671 static void GL_BINDING_CALL 2733 static void GL_BINDING_CALL
2672 Debug_glDeleteFramebuffersEXT(GLsizei n, const GLuint* framebuffers) { 2734 Debug_glDeleteFramebuffersEXT(GLsizei n, const GLuint* framebuffers) {
2673 GL_SERVICE_LOG("glDeleteFramebuffersEXT" 2735 GL_SERVICE_LOG("glDeleteFramebuffersEXT"
2674 << "(" << n << ", " << static_cast<const void*>(framebuffers) 2736 << "(" << n << ", " << static_cast<const void*>(framebuffers)
2675 << ")"); 2737 << ")");
2738 DCHECK(g_driver_gl.debug_fn.glDeleteFramebuffersEXTFn != nullptr);
2676 g_driver_gl.debug_fn.glDeleteFramebuffersEXTFn(n, framebuffers); 2739 g_driver_gl.debug_fn.glDeleteFramebuffersEXTFn(n, framebuffers);
2677 } 2740 }
2678 2741
2679 static void GL_BINDING_CALL Debug_glDeletePathsNV(GLuint path, GLsizei range) { 2742 static void GL_BINDING_CALL Debug_glDeletePathsNV(GLuint path, GLsizei range) {
2680 GL_SERVICE_LOG("glDeletePathsNV" 2743 GL_SERVICE_LOG("glDeletePathsNV"
2681 << "(" << path << ", " << range << ")"); 2744 << "(" << path << ", " << range << ")");
2745 DCHECK(g_driver_gl.debug_fn.glDeletePathsNVFn != nullptr);
2682 g_driver_gl.debug_fn.glDeletePathsNVFn(path, range); 2746 g_driver_gl.debug_fn.glDeletePathsNVFn(path, range);
2683 } 2747 }
2684 2748
2685 static void GL_BINDING_CALL Debug_glDeleteProgram(GLuint program) { 2749 static void GL_BINDING_CALL Debug_glDeleteProgram(GLuint program) {
2686 GL_SERVICE_LOG("glDeleteProgram" 2750 GL_SERVICE_LOG("glDeleteProgram"
2687 << "(" << program << ")"); 2751 << "(" << program << ")");
2752 DCHECK(g_driver_gl.debug_fn.glDeleteProgramFn != nullptr);
2688 g_driver_gl.debug_fn.glDeleteProgramFn(program); 2753 g_driver_gl.debug_fn.glDeleteProgramFn(program);
2689 } 2754 }
2690 2755
2691 static void GL_BINDING_CALL Debug_glDeleteQueries(GLsizei n, 2756 static void GL_BINDING_CALL Debug_glDeleteQueries(GLsizei n,
2692 const GLuint* ids) { 2757 const GLuint* ids) {
2693 GL_SERVICE_LOG("glDeleteQueries" 2758 GL_SERVICE_LOG("glDeleteQueries"
2694 << "(" << n << ", " << static_cast<const void*>(ids) << ")"); 2759 << "(" << n << ", " << static_cast<const void*>(ids) << ")");
2760 DCHECK(g_driver_gl.debug_fn.glDeleteQueriesFn != nullptr);
2695 g_driver_gl.debug_fn.glDeleteQueriesFn(n, ids); 2761 g_driver_gl.debug_fn.glDeleteQueriesFn(n, ids);
2696 } 2762 }
2697 2763
2698 static void GL_BINDING_CALL 2764 static void GL_BINDING_CALL
2699 Debug_glDeleteRenderbuffersEXT(GLsizei n, const GLuint* renderbuffers) { 2765 Debug_glDeleteRenderbuffersEXT(GLsizei n, const GLuint* renderbuffers) {
2700 GL_SERVICE_LOG("glDeleteRenderbuffersEXT" 2766 GL_SERVICE_LOG("glDeleteRenderbuffersEXT"
2701 << "(" << n << ", " << static_cast<const void*>(renderbuffers) 2767 << "(" << n << ", " << static_cast<const void*>(renderbuffers)
2702 << ")"); 2768 << ")");
2769 DCHECK(g_driver_gl.debug_fn.glDeleteRenderbuffersEXTFn != nullptr);
2703 g_driver_gl.debug_fn.glDeleteRenderbuffersEXTFn(n, renderbuffers); 2770 g_driver_gl.debug_fn.glDeleteRenderbuffersEXTFn(n, renderbuffers);
2704 } 2771 }
2705 2772
2706 static void GL_BINDING_CALL Debug_glDeleteSamplers(GLsizei n, 2773 static void GL_BINDING_CALL Debug_glDeleteSamplers(GLsizei n,
2707 const GLuint* samplers) { 2774 const GLuint* samplers) {
2708 GL_SERVICE_LOG("glDeleteSamplers" 2775 GL_SERVICE_LOG("glDeleteSamplers"
2709 << "(" << n << ", " << static_cast<const void*>(samplers) 2776 << "(" << n << ", " << static_cast<const void*>(samplers)
2710 << ")"); 2777 << ")");
2778 DCHECK(g_driver_gl.debug_fn.glDeleteSamplersFn != nullptr);
2711 g_driver_gl.debug_fn.glDeleteSamplersFn(n, samplers); 2779 g_driver_gl.debug_fn.glDeleteSamplersFn(n, samplers);
2712 } 2780 }
2713 2781
2714 static void GL_BINDING_CALL Debug_glDeleteShader(GLuint shader) { 2782 static void GL_BINDING_CALL Debug_glDeleteShader(GLuint shader) {
2715 GL_SERVICE_LOG("glDeleteShader" 2783 GL_SERVICE_LOG("glDeleteShader"
2716 << "(" << shader << ")"); 2784 << "(" << shader << ")");
2785 DCHECK(g_driver_gl.debug_fn.glDeleteShaderFn != nullptr);
2717 g_driver_gl.debug_fn.glDeleteShaderFn(shader); 2786 g_driver_gl.debug_fn.glDeleteShaderFn(shader);
2718 } 2787 }
2719 2788
2720 static void GL_BINDING_CALL Debug_glDeleteSync(GLsync sync) { 2789 static void GL_BINDING_CALL Debug_glDeleteSync(GLsync sync) {
2721 GL_SERVICE_LOG("glDeleteSync" 2790 GL_SERVICE_LOG("glDeleteSync"
2722 << "(" << sync << ")"); 2791 << "(" << sync << ")");
2792 DCHECK(g_driver_gl.debug_fn.glDeleteSyncFn != nullptr);
2723 g_driver_gl.debug_fn.glDeleteSyncFn(sync); 2793 g_driver_gl.debug_fn.glDeleteSyncFn(sync);
2724 } 2794 }
2725 2795
2726 static void GL_BINDING_CALL Debug_glDeleteTextures(GLsizei n, 2796 static void GL_BINDING_CALL Debug_glDeleteTextures(GLsizei n,
2727 const GLuint* textures) { 2797 const GLuint* textures) {
2728 GL_SERVICE_LOG("glDeleteTextures" 2798 GL_SERVICE_LOG("glDeleteTextures"
2729 << "(" << n << ", " << static_cast<const void*>(textures) 2799 << "(" << n << ", " << static_cast<const void*>(textures)
2730 << ")"); 2800 << ")");
2801 DCHECK(g_driver_gl.debug_fn.glDeleteTexturesFn != nullptr);
2731 g_driver_gl.debug_fn.glDeleteTexturesFn(n, textures); 2802 g_driver_gl.debug_fn.glDeleteTexturesFn(n, textures);
2732 } 2803 }
2733 2804
2734 static void GL_BINDING_CALL 2805 static void GL_BINDING_CALL
2735 Debug_glDeleteTransformFeedbacks(GLsizei n, const GLuint* ids) { 2806 Debug_glDeleteTransformFeedbacks(GLsizei n, const GLuint* ids) {
2736 GL_SERVICE_LOG("glDeleteTransformFeedbacks" 2807 GL_SERVICE_LOG("glDeleteTransformFeedbacks"
2737 << "(" << n << ", " << static_cast<const void*>(ids) << ")"); 2808 << "(" << n << ", " << static_cast<const void*>(ids) << ")");
2809 DCHECK(g_driver_gl.debug_fn.glDeleteTransformFeedbacksFn != nullptr);
2738 g_driver_gl.debug_fn.glDeleteTransformFeedbacksFn(n, ids); 2810 g_driver_gl.debug_fn.glDeleteTransformFeedbacksFn(n, ids);
2739 } 2811 }
2740 2812
2741 static void GL_BINDING_CALL 2813 static void GL_BINDING_CALL
2742 Debug_glDeleteVertexArraysOES(GLsizei n, const GLuint* arrays) { 2814 Debug_glDeleteVertexArraysOES(GLsizei n, const GLuint* arrays) {
2743 GL_SERVICE_LOG("glDeleteVertexArraysOES" 2815 GL_SERVICE_LOG("glDeleteVertexArraysOES"
2744 << "(" << n << ", " << static_cast<const void*>(arrays) 2816 << "(" << n << ", " << static_cast<const void*>(arrays)
2745 << ")"); 2817 << ")");
2818 DCHECK(g_driver_gl.debug_fn.glDeleteVertexArraysOESFn != nullptr);
2746 g_driver_gl.debug_fn.glDeleteVertexArraysOESFn(n, arrays); 2819 g_driver_gl.debug_fn.glDeleteVertexArraysOESFn(n, arrays);
2747 } 2820 }
2748 2821
2749 static void GL_BINDING_CALL Debug_glDepthFunc(GLenum func) { 2822 static void GL_BINDING_CALL Debug_glDepthFunc(GLenum func) {
2750 GL_SERVICE_LOG("glDepthFunc" 2823 GL_SERVICE_LOG("glDepthFunc"
2751 << "(" << GLEnums::GetStringEnum(func) << ")"); 2824 << "(" << GLEnums::GetStringEnum(func) << ")");
2825 DCHECK(g_driver_gl.debug_fn.glDepthFuncFn != nullptr);
2752 g_driver_gl.debug_fn.glDepthFuncFn(func); 2826 g_driver_gl.debug_fn.glDepthFuncFn(func);
2753 } 2827 }
2754 2828
2755 static void GL_BINDING_CALL Debug_glDepthMask(GLboolean flag) { 2829 static void GL_BINDING_CALL Debug_glDepthMask(GLboolean flag) {
2756 GL_SERVICE_LOG("glDepthMask" 2830 GL_SERVICE_LOG("glDepthMask"
2757 << "(" << GLEnums::GetStringBool(flag) << ")"); 2831 << "(" << GLEnums::GetStringBool(flag) << ")");
2832 DCHECK(g_driver_gl.debug_fn.glDepthMaskFn != nullptr);
2758 g_driver_gl.debug_fn.glDepthMaskFn(flag); 2833 g_driver_gl.debug_fn.glDepthMaskFn(flag);
2759 } 2834 }
2760 2835
2761 static void GL_BINDING_CALL Debug_glDepthRange(GLclampd zNear, GLclampd zFar) { 2836 static void GL_BINDING_CALL Debug_glDepthRange(GLclampd zNear, GLclampd zFar) {
2762 GL_SERVICE_LOG("glDepthRange" 2837 GL_SERVICE_LOG("glDepthRange"
2763 << "(" << zNear << ", " << zFar << ")"); 2838 << "(" << zNear << ", " << zFar << ")");
2839 DCHECK(g_driver_gl.debug_fn.glDepthRangeFn != nullptr);
2764 g_driver_gl.debug_fn.glDepthRangeFn(zNear, zFar); 2840 g_driver_gl.debug_fn.glDepthRangeFn(zNear, zFar);
2765 } 2841 }
2766 2842
2767 static void GL_BINDING_CALL Debug_glDepthRangef(GLclampf zNear, GLclampf zFar) { 2843 static void GL_BINDING_CALL Debug_glDepthRangef(GLclampf zNear, GLclampf zFar) {
2768 GL_SERVICE_LOG("glDepthRangef" 2844 GL_SERVICE_LOG("glDepthRangef"
2769 << "(" << zNear << ", " << zFar << ")"); 2845 << "(" << zNear << ", " << zFar << ")");
2846 DCHECK(g_driver_gl.debug_fn.glDepthRangefFn != nullptr);
2770 g_driver_gl.debug_fn.glDepthRangefFn(zNear, zFar); 2847 g_driver_gl.debug_fn.glDepthRangefFn(zNear, zFar);
2771 } 2848 }
2772 2849
2773 static void GL_BINDING_CALL Debug_glDetachShader(GLuint program, 2850 static void GL_BINDING_CALL Debug_glDetachShader(GLuint program,
2774 GLuint shader) { 2851 GLuint shader) {
2775 GL_SERVICE_LOG("glDetachShader" 2852 GL_SERVICE_LOG("glDetachShader"
2776 << "(" << program << ", " << shader << ")"); 2853 << "(" << program << ", " << shader << ")");
2854 DCHECK(g_driver_gl.debug_fn.glDetachShaderFn != nullptr);
2777 g_driver_gl.debug_fn.glDetachShaderFn(program, shader); 2855 g_driver_gl.debug_fn.glDetachShaderFn(program, shader);
2778 } 2856 }
2779 2857
2780 static void GL_BINDING_CALL Debug_glDisable(GLenum cap) { 2858 static void GL_BINDING_CALL Debug_glDisable(GLenum cap) {
2781 GL_SERVICE_LOG("glDisable" 2859 GL_SERVICE_LOG("glDisable"
2782 << "(" << GLEnums::GetStringEnum(cap) << ")"); 2860 << "(" << GLEnums::GetStringEnum(cap) << ")");
2861 DCHECK(g_driver_gl.debug_fn.glDisableFn != nullptr);
2783 g_driver_gl.debug_fn.glDisableFn(cap); 2862 g_driver_gl.debug_fn.glDisableFn(cap);
2784 } 2863 }
2785 2864
2786 static void GL_BINDING_CALL Debug_glDisableVertexAttribArray(GLuint index) { 2865 static void GL_BINDING_CALL Debug_glDisableVertexAttribArray(GLuint index) {
2787 GL_SERVICE_LOG("glDisableVertexAttribArray" 2866 GL_SERVICE_LOG("glDisableVertexAttribArray"
2788 << "(" << index << ")"); 2867 << "(" << index << ")");
2868 DCHECK(g_driver_gl.debug_fn.glDisableVertexAttribArrayFn != nullptr);
2789 g_driver_gl.debug_fn.glDisableVertexAttribArrayFn(index); 2869 g_driver_gl.debug_fn.glDisableVertexAttribArrayFn(index);
2790 } 2870 }
2791 2871
2792 static void GL_BINDING_CALL 2872 static void GL_BINDING_CALL
2793 Debug_glDiscardFramebufferEXT(GLenum target, 2873 Debug_glDiscardFramebufferEXT(GLenum target,
2794 GLsizei numAttachments, 2874 GLsizei numAttachments,
2795 const GLenum* attachments) { 2875 const GLenum* attachments) {
2796 GL_SERVICE_LOG("glDiscardFramebufferEXT" 2876 GL_SERVICE_LOG("glDiscardFramebufferEXT"
2797 << "(" << GLEnums::GetStringEnum(target) << ", " 2877 << "(" << GLEnums::GetStringEnum(target) << ", "
2798 << numAttachments << ", " 2878 << numAttachments << ", "
2799 << static_cast<const void*>(attachments) << ")"); 2879 << static_cast<const void*>(attachments) << ")");
2880 DCHECK(g_driver_gl.debug_fn.glDiscardFramebufferEXTFn != nullptr);
2800 g_driver_gl.debug_fn.glDiscardFramebufferEXTFn(target, numAttachments, 2881 g_driver_gl.debug_fn.glDiscardFramebufferEXTFn(target, numAttachments,
2801 attachments); 2882 attachments);
2802 } 2883 }
2803 2884
2804 static void GL_BINDING_CALL Debug_glDrawArrays(GLenum mode, 2885 static void GL_BINDING_CALL Debug_glDrawArrays(GLenum mode,
2805 GLint first, 2886 GLint first,
2806 GLsizei count) { 2887 GLsizei count) {
2807 GL_SERVICE_LOG("glDrawArrays" 2888 GL_SERVICE_LOG("glDrawArrays"
2808 << "(" << GLEnums::GetStringEnum(mode) << ", " << first << ", " 2889 << "(" << GLEnums::GetStringEnum(mode) << ", " << first << ", "
2809 << count << ")"); 2890 << count << ")");
2891 DCHECK(g_driver_gl.debug_fn.glDrawArraysFn != nullptr);
2810 g_driver_gl.debug_fn.glDrawArraysFn(mode, first, count); 2892 g_driver_gl.debug_fn.glDrawArraysFn(mode, first, count);
2811 } 2893 }
2812 2894
2813 static void GL_BINDING_CALL 2895 static void GL_BINDING_CALL
2814 Debug_glDrawArraysInstancedANGLE(GLenum mode, 2896 Debug_glDrawArraysInstancedANGLE(GLenum mode,
2815 GLint first, 2897 GLint first,
2816 GLsizei count, 2898 GLsizei count,
2817 GLsizei primcount) { 2899 GLsizei primcount) {
2818 GL_SERVICE_LOG("glDrawArraysInstancedANGLE" 2900 GL_SERVICE_LOG("glDrawArraysInstancedANGLE"
2819 << "(" << GLEnums::GetStringEnum(mode) << ", " << first << ", " 2901 << "(" << GLEnums::GetStringEnum(mode) << ", " << first << ", "
2820 << count << ", " << primcount << ")"); 2902 << count << ", " << primcount << ")");
2903 DCHECK(g_driver_gl.debug_fn.glDrawArraysInstancedANGLEFn != nullptr);
2821 g_driver_gl.debug_fn.glDrawArraysInstancedANGLEFn(mode, first, count, 2904 g_driver_gl.debug_fn.glDrawArraysInstancedANGLEFn(mode, first, count,
2822 primcount); 2905 primcount);
2823 } 2906 }
2824 2907
2825 static void GL_BINDING_CALL Debug_glDrawBuffer(GLenum mode) { 2908 static void GL_BINDING_CALL Debug_glDrawBuffer(GLenum mode) {
2826 GL_SERVICE_LOG("glDrawBuffer" 2909 GL_SERVICE_LOG("glDrawBuffer"
2827 << "(" << GLEnums::GetStringEnum(mode) << ")"); 2910 << "(" << GLEnums::GetStringEnum(mode) << ")");
2911 DCHECK(g_driver_gl.debug_fn.glDrawBufferFn != nullptr);
2828 g_driver_gl.debug_fn.glDrawBufferFn(mode); 2912 g_driver_gl.debug_fn.glDrawBufferFn(mode);
2829 } 2913 }
2830 2914
2831 static void GL_BINDING_CALL Debug_glDrawBuffersARB(GLsizei n, 2915 static void GL_BINDING_CALL Debug_glDrawBuffersARB(GLsizei n,
2832 const GLenum* bufs) { 2916 const GLenum* bufs) {
2833 GL_SERVICE_LOG("glDrawBuffersARB" 2917 GL_SERVICE_LOG("glDrawBuffersARB"
2834 << "(" << n << ", " << static_cast<const void*>(bufs) << ")"); 2918 << "(" << n << ", " << static_cast<const void*>(bufs) << ")");
2919 DCHECK(g_driver_gl.debug_fn.glDrawBuffersARBFn != nullptr);
2835 g_driver_gl.debug_fn.glDrawBuffersARBFn(n, bufs); 2920 g_driver_gl.debug_fn.glDrawBuffersARBFn(n, bufs);
2836 } 2921 }
2837 2922
2838 static void GL_BINDING_CALL Debug_glDrawElements(GLenum mode, 2923 static void GL_BINDING_CALL Debug_glDrawElements(GLenum mode,
2839 GLsizei count, 2924 GLsizei count,
2840 GLenum type, 2925 GLenum type,
2841 const void* indices) { 2926 const void* indices) {
2842 GL_SERVICE_LOG("glDrawElements" 2927 GL_SERVICE_LOG("glDrawElements"
2843 << "(" << GLEnums::GetStringEnum(mode) << ", " << count << ", " 2928 << "(" << GLEnums::GetStringEnum(mode) << ", " << count << ", "
2844 << GLEnums::GetStringEnum(type) << ", " 2929 << GLEnums::GetStringEnum(type) << ", "
2845 << static_cast<const void*>(indices) << ")"); 2930 << static_cast<const void*>(indices) << ")");
2931 DCHECK(g_driver_gl.debug_fn.glDrawElementsFn != nullptr);
2846 g_driver_gl.debug_fn.glDrawElementsFn(mode, count, type, indices); 2932 g_driver_gl.debug_fn.glDrawElementsFn(mode, count, type, indices);
2847 } 2933 }
2848 2934
2849 static void GL_BINDING_CALL 2935 static void GL_BINDING_CALL
2850 Debug_glDrawElementsInstancedANGLE(GLenum mode, 2936 Debug_glDrawElementsInstancedANGLE(GLenum mode,
2851 GLsizei count, 2937 GLsizei count,
2852 GLenum type, 2938 GLenum type,
2853 const void* indices, 2939 const void* indices,
2854 GLsizei primcount) { 2940 GLsizei primcount) {
2855 GL_SERVICE_LOG("glDrawElementsInstancedANGLE" 2941 GL_SERVICE_LOG("glDrawElementsInstancedANGLE"
2856 << "(" << GLEnums::GetStringEnum(mode) << ", " << count << ", " 2942 << "(" << GLEnums::GetStringEnum(mode) << ", " << count << ", "
2857 << GLEnums::GetStringEnum(type) << ", " 2943 << GLEnums::GetStringEnum(type) << ", "
2858 << static_cast<const void*>(indices) << ", " << primcount 2944 << static_cast<const void*>(indices) << ", " << primcount
2859 << ")"); 2945 << ")");
2946 DCHECK(g_driver_gl.debug_fn.glDrawElementsInstancedANGLEFn != nullptr);
2860 g_driver_gl.debug_fn.glDrawElementsInstancedANGLEFn(mode, count, type, 2947 g_driver_gl.debug_fn.glDrawElementsInstancedANGLEFn(mode, count, type,
2861 indices, primcount); 2948 indices, primcount);
2862 } 2949 }
2863 2950
2864 static void GL_BINDING_CALL Debug_glDrawRangeElements(GLenum mode, 2951 static void GL_BINDING_CALL Debug_glDrawRangeElements(GLenum mode,
2865 GLuint start, 2952 GLuint start,
2866 GLuint end, 2953 GLuint end,
2867 GLsizei count, 2954 GLsizei count,
2868 GLenum type, 2955 GLenum type,
2869 const void* indices) { 2956 const void* indices) {
2870 GL_SERVICE_LOG("glDrawRangeElements" 2957 GL_SERVICE_LOG("glDrawRangeElements"
2871 << "(" << GLEnums::GetStringEnum(mode) << ", " << start << ", " 2958 << "(" << GLEnums::GetStringEnum(mode) << ", " << start << ", "
2872 << end << ", " << count << ", " << GLEnums::GetStringEnum(type) 2959 << end << ", " << count << ", " << GLEnums::GetStringEnum(type)
2873 << ", " << static_cast<const void*>(indices) << ")"); 2960 << ", " << static_cast<const void*>(indices) << ")");
2961 DCHECK(g_driver_gl.debug_fn.glDrawRangeElementsFn != nullptr);
2874 g_driver_gl.debug_fn.glDrawRangeElementsFn(mode, start, end, count, type, 2962 g_driver_gl.debug_fn.glDrawRangeElementsFn(mode, start, end, count, type,
2875 indices); 2963 indices);
2876 } 2964 }
2877 2965
2878 static void GL_BINDING_CALL 2966 static void GL_BINDING_CALL
2879 Debug_glEGLImageTargetRenderbufferStorageOES(GLenum target, 2967 Debug_glEGLImageTargetRenderbufferStorageOES(GLenum target,
2880 GLeglImageOES image) { 2968 GLeglImageOES image) {
2881 GL_SERVICE_LOG("glEGLImageTargetRenderbufferStorageOES" 2969 GL_SERVICE_LOG("glEGLImageTargetRenderbufferStorageOES"
2882 << "(" << GLEnums::GetStringEnum(target) << ", " << image 2970 << "(" << GLEnums::GetStringEnum(target) << ", " << image
2883 << ")"); 2971 << ")");
2972 DCHECK(g_driver_gl.debug_fn.glEGLImageTargetRenderbufferStorageOESFn !=
2973 nullptr);
2884 g_driver_gl.debug_fn.glEGLImageTargetRenderbufferStorageOESFn(target, image); 2974 g_driver_gl.debug_fn.glEGLImageTargetRenderbufferStorageOESFn(target, image);
2885 } 2975 }
2886 2976
2887 static void GL_BINDING_CALL 2977 static void GL_BINDING_CALL
2888 Debug_glEGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image) { 2978 Debug_glEGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image) {
2889 GL_SERVICE_LOG("glEGLImageTargetTexture2DOES" 2979 GL_SERVICE_LOG("glEGLImageTargetTexture2DOES"
2890 << "(" << GLEnums::GetStringEnum(target) << ", " << image 2980 << "(" << GLEnums::GetStringEnum(target) << ", " << image
2891 << ")"); 2981 << ")");
2982 DCHECK(g_driver_gl.debug_fn.glEGLImageTargetTexture2DOESFn != nullptr);
2892 g_driver_gl.debug_fn.glEGLImageTargetTexture2DOESFn(target, image); 2983 g_driver_gl.debug_fn.glEGLImageTargetTexture2DOESFn(target, image);
2893 } 2984 }
2894 2985
2895 static void GL_BINDING_CALL Debug_glEnable(GLenum cap) { 2986 static void GL_BINDING_CALL Debug_glEnable(GLenum cap) {
2896 GL_SERVICE_LOG("glEnable" 2987 GL_SERVICE_LOG("glEnable"
2897 << "(" << GLEnums::GetStringEnum(cap) << ")"); 2988 << "(" << GLEnums::GetStringEnum(cap) << ")");
2989 DCHECK(g_driver_gl.debug_fn.glEnableFn != nullptr);
2898 g_driver_gl.debug_fn.glEnableFn(cap); 2990 g_driver_gl.debug_fn.glEnableFn(cap);
2899 } 2991 }
2900 2992
2901 static void GL_BINDING_CALL Debug_glEnableVertexAttribArray(GLuint index) { 2993 static void GL_BINDING_CALL Debug_glEnableVertexAttribArray(GLuint index) {
2902 GL_SERVICE_LOG("glEnableVertexAttribArray" 2994 GL_SERVICE_LOG("glEnableVertexAttribArray"
2903 << "(" << index << ")"); 2995 << "(" << index << ")");
2996 DCHECK(g_driver_gl.debug_fn.glEnableVertexAttribArrayFn != nullptr);
2904 g_driver_gl.debug_fn.glEnableVertexAttribArrayFn(index); 2997 g_driver_gl.debug_fn.glEnableVertexAttribArrayFn(index);
2905 } 2998 }
2906 2999
2907 static void GL_BINDING_CALL Debug_glEndQuery(GLenum target) { 3000 static void GL_BINDING_CALL Debug_glEndQuery(GLenum target) {
2908 GL_SERVICE_LOG("glEndQuery" 3001 GL_SERVICE_LOG("glEndQuery"
2909 << "(" << GLEnums::GetStringEnum(target) << ")"); 3002 << "(" << GLEnums::GetStringEnum(target) << ")");
3003 DCHECK(g_driver_gl.debug_fn.glEndQueryFn != nullptr);
2910 g_driver_gl.debug_fn.glEndQueryFn(target); 3004 g_driver_gl.debug_fn.glEndQueryFn(target);
2911 } 3005 }
2912 3006
2913 static void GL_BINDING_CALL Debug_glEndTransformFeedback(void) { 3007 static void GL_BINDING_CALL Debug_glEndTransformFeedback(void) {
2914 GL_SERVICE_LOG("glEndTransformFeedback" 3008 GL_SERVICE_LOG("glEndTransformFeedback"
2915 << "(" 3009 << "("
2916 << ")"); 3010 << ")");
3011 DCHECK(g_driver_gl.debug_fn.glEndTransformFeedbackFn != nullptr);
2917 g_driver_gl.debug_fn.glEndTransformFeedbackFn(); 3012 g_driver_gl.debug_fn.glEndTransformFeedbackFn();
2918 } 3013 }
2919 3014
2920 static GLsync GL_BINDING_CALL Debug_glFenceSync(GLenum condition, 3015 static GLsync GL_BINDING_CALL Debug_glFenceSync(GLenum condition,
2921 GLbitfield flags) { 3016 GLbitfield flags) {
2922 GL_SERVICE_LOG("glFenceSync" 3017 GL_SERVICE_LOG("glFenceSync"
2923 << "(" << GLEnums::GetStringEnum(condition) << ", " << flags 3018 << "(" << GLEnums::GetStringEnum(condition) << ", " << flags
2924 << ")"); 3019 << ")");
3020 DCHECK(g_driver_gl.debug_fn.glFenceSyncFn != nullptr);
2925 GLsync result = g_driver_gl.debug_fn.glFenceSyncFn(condition, flags); 3021 GLsync result = g_driver_gl.debug_fn.glFenceSyncFn(condition, flags);
2926 GL_SERVICE_LOG("GL_RESULT: " << result); 3022 GL_SERVICE_LOG("GL_RESULT: " << result);
2927 return result; 3023 return result;
2928 } 3024 }
2929 3025
2930 static void GL_BINDING_CALL Debug_glFinish(void) { 3026 static void GL_BINDING_CALL Debug_glFinish(void) {
2931 GL_SERVICE_LOG("glFinish" 3027 GL_SERVICE_LOG("glFinish"
2932 << "(" 3028 << "("
2933 << ")"); 3029 << ")");
3030 DCHECK(g_driver_gl.debug_fn.glFinishFn != nullptr);
2934 g_driver_gl.debug_fn.glFinishFn(); 3031 g_driver_gl.debug_fn.glFinishFn();
2935 } 3032 }
2936 3033
2937 static void GL_BINDING_CALL Debug_glFinishFenceAPPLE(GLuint fence) { 3034 static void GL_BINDING_CALL Debug_glFinishFenceAPPLE(GLuint fence) {
2938 GL_SERVICE_LOG("glFinishFenceAPPLE" 3035 GL_SERVICE_LOG("glFinishFenceAPPLE"
2939 << "(" << fence << ")"); 3036 << "(" << fence << ")");
3037 DCHECK(g_driver_gl.debug_fn.glFinishFenceAPPLEFn != nullptr);
2940 g_driver_gl.debug_fn.glFinishFenceAPPLEFn(fence); 3038 g_driver_gl.debug_fn.glFinishFenceAPPLEFn(fence);
2941 } 3039 }
2942 3040
2943 static void GL_BINDING_CALL Debug_glFinishFenceNV(GLuint fence) { 3041 static void GL_BINDING_CALL Debug_glFinishFenceNV(GLuint fence) {
2944 GL_SERVICE_LOG("glFinishFenceNV" 3042 GL_SERVICE_LOG("glFinishFenceNV"
2945 << "(" << fence << ")"); 3043 << "(" << fence << ")");
3044 DCHECK(g_driver_gl.debug_fn.glFinishFenceNVFn != nullptr);
2946 g_driver_gl.debug_fn.glFinishFenceNVFn(fence); 3045 g_driver_gl.debug_fn.glFinishFenceNVFn(fence);
2947 } 3046 }
2948 3047
2949 static void GL_BINDING_CALL Debug_glFlush(void) { 3048 static void GL_BINDING_CALL Debug_glFlush(void) {
2950 GL_SERVICE_LOG("glFlush" 3049 GL_SERVICE_LOG("glFlush"
2951 << "(" 3050 << "("
2952 << ")"); 3051 << ")");
3052 DCHECK(g_driver_gl.debug_fn.glFlushFn != nullptr);
2953 g_driver_gl.debug_fn.glFlushFn(); 3053 g_driver_gl.debug_fn.glFlushFn();
2954 } 3054 }
2955 3055
2956 static void GL_BINDING_CALL Debug_glFlushMappedBufferRange(GLenum target, 3056 static void GL_BINDING_CALL Debug_glFlushMappedBufferRange(GLenum target,
2957 GLintptr offset, 3057 GLintptr offset,
2958 GLsizeiptr length) { 3058 GLsizeiptr length) {
2959 GL_SERVICE_LOG("glFlushMappedBufferRange" 3059 GL_SERVICE_LOG("glFlushMappedBufferRange"
2960 << "(" << GLEnums::GetStringEnum(target) << ", " << offset 3060 << "(" << GLEnums::GetStringEnum(target) << ", " << offset
2961 << ", " << length << ")"); 3061 << ", " << length << ")");
3062 DCHECK(g_driver_gl.debug_fn.glFlushMappedBufferRangeFn != nullptr);
2962 g_driver_gl.debug_fn.glFlushMappedBufferRangeFn(target, offset, length); 3063 g_driver_gl.debug_fn.glFlushMappedBufferRangeFn(target, offset, length);
2963 } 3064 }
2964 3065
2965 static void GL_BINDING_CALL 3066 static void GL_BINDING_CALL
2966 Debug_glFramebufferRenderbufferEXT(GLenum target, 3067 Debug_glFramebufferRenderbufferEXT(GLenum target,
2967 GLenum attachment, 3068 GLenum attachment,
2968 GLenum renderbuffertarget, 3069 GLenum renderbuffertarget,
2969 GLuint renderbuffer) { 3070 GLuint renderbuffer) {
2970 GL_SERVICE_LOG("glFramebufferRenderbufferEXT" 3071 GL_SERVICE_LOG("glFramebufferRenderbufferEXT"
2971 << "(" << GLEnums::GetStringEnum(target) << ", " 3072 << "(" << GLEnums::GetStringEnum(target) << ", "
2972 << GLEnums::GetStringEnum(attachment) << ", " 3073 << GLEnums::GetStringEnum(attachment) << ", "
2973 << GLEnums::GetStringEnum(renderbuffertarget) << ", " 3074 << GLEnums::GetStringEnum(renderbuffertarget) << ", "
2974 << renderbuffer << ")"); 3075 << renderbuffer << ")");
3076 DCHECK(g_driver_gl.debug_fn.glFramebufferRenderbufferEXTFn != nullptr);
2975 g_driver_gl.debug_fn.glFramebufferRenderbufferEXTFn( 3077 g_driver_gl.debug_fn.glFramebufferRenderbufferEXTFn(
2976 target, attachment, renderbuffertarget, renderbuffer); 3078 target, attachment, renderbuffertarget, renderbuffer);
2977 } 3079 }
2978 3080
2979 static void GL_BINDING_CALL Debug_glFramebufferTexture2DEXT(GLenum target, 3081 static void GL_BINDING_CALL Debug_glFramebufferTexture2DEXT(GLenum target,
2980 GLenum attachment, 3082 GLenum attachment,
2981 GLenum textarget, 3083 GLenum textarget,
2982 GLuint texture, 3084 GLuint texture,
2983 GLint level) { 3085 GLint level) {
2984 GL_SERVICE_LOG("glFramebufferTexture2DEXT" 3086 GL_SERVICE_LOG("glFramebufferTexture2DEXT"
2985 << "(" << GLEnums::GetStringEnum(target) << ", " 3087 << "(" << GLEnums::GetStringEnum(target) << ", "
2986 << GLEnums::GetStringEnum(attachment) << ", " 3088 << GLEnums::GetStringEnum(attachment) << ", "
2987 << GLEnums::GetStringEnum(textarget) << ", " << texture << ", " 3089 << GLEnums::GetStringEnum(textarget) << ", " << texture << ", "
2988 << level << ")"); 3090 << level << ")");
3091 DCHECK(g_driver_gl.debug_fn.glFramebufferTexture2DEXTFn != nullptr);
2989 g_driver_gl.debug_fn.glFramebufferTexture2DEXTFn(target, attachment, 3092 g_driver_gl.debug_fn.glFramebufferTexture2DEXTFn(target, attachment,
2990 textarget, texture, level); 3093 textarget, texture, level);
2991 } 3094 }
2992 3095
2993 static void GL_BINDING_CALL 3096 static void GL_BINDING_CALL
2994 Debug_glFramebufferTexture2DMultisampleEXT(GLenum target, 3097 Debug_glFramebufferTexture2DMultisampleEXT(GLenum target,
2995 GLenum attachment, 3098 GLenum attachment,
2996 GLenum textarget, 3099 GLenum textarget,
2997 GLuint texture, 3100 GLuint texture,
2998 GLint level, 3101 GLint level,
2999 GLsizei samples) { 3102 GLsizei samples) {
3000 GL_SERVICE_LOG("glFramebufferTexture2DMultisampleEXT" 3103 GL_SERVICE_LOG("glFramebufferTexture2DMultisampleEXT"
3001 << "(" << GLEnums::GetStringEnum(target) << ", " 3104 << "(" << GLEnums::GetStringEnum(target) << ", "
3002 << GLEnums::GetStringEnum(attachment) << ", " 3105 << GLEnums::GetStringEnum(attachment) << ", "
3003 << GLEnums::GetStringEnum(textarget) << ", " << texture << ", " 3106 << GLEnums::GetStringEnum(textarget) << ", " << texture << ", "
3004 << level << ", " << samples << ")"); 3107 << level << ", " << samples << ")");
3108 DCHECK(g_driver_gl.debug_fn.glFramebufferTexture2DMultisampleEXTFn !=
3109 nullptr);
3005 g_driver_gl.debug_fn.glFramebufferTexture2DMultisampleEXTFn( 3110 g_driver_gl.debug_fn.glFramebufferTexture2DMultisampleEXTFn(
3006 target, attachment, textarget, texture, level, samples); 3111 target, attachment, textarget, texture, level, samples);
3007 } 3112 }
3008 3113
3009 static void GL_BINDING_CALL 3114 static void GL_BINDING_CALL
3010 Debug_glFramebufferTexture2DMultisampleIMG(GLenum target, 3115 Debug_glFramebufferTexture2DMultisampleIMG(GLenum target,
3011 GLenum attachment, 3116 GLenum attachment,
3012 GLenum textarget, 3117 GLenum textarget,
3013 GLuint texture, 3118 GLuint texture,
3014 GLint level, 3119 GLint level,
3015 GLsizei samples) { 3120 GLsizei samples) {
3016 GL_SERVICE_LOG("glFramebufferTexture2DMultisampleIMG" 3121 GL_SERVICE_LOG("glFramebufferTexture2DMultisampleIMG"
3017 << "(" << GLEnums::GetStringEnum(target) << ", " 3122 << "(" << GLEnums::GetStringEnum(target) << ", "
3018 << GLEnums::GetStringEnum(attachment) << ", " 3123 << GLEnums::GetStringEnum(attachment) << ", "
3019 << GLEnums::GetStringEnum(textarget) << ", " << texture << ", " 3124 << GLEnums::GetStringEnum(textarget) << ", " << texture << ", "
3020 << level << ", " << samples << ")"); 3125 << level << ", " << samples << ")");
3126 DCHECK(g_driver_gl.debug_fn.glFramebufferTexture2DMultisampleIMGFn !=
3127 nullptr);
3021 g_driver_gl.debug_fn.glFramebufferTexture2DMultisampleIMGFn( 3128 g_driver_gl.debug_fn.glFramebufferTexture2DMultisampleIMGFn(
3022 target, attachment, textarget, texture, level, samples); 3129 target, attachment, textarget, texture, level, samples);
3023 } 3130 }
3024 3131
3025 static void GL_BINDING_CALL Debug_glFramebufferTextureLayer(GLenum target, 3132 static void GL_BINDING_CALL Debug_glFramebufferTextureLayer(GLenum target,
3026 GLenum attachment, 3133 GLenum attachment,
3027 GLuint texture, 3134 GLuint texture,
3028 GLint level, 3135 GLint level,
3029 GLint layer) { 3136 GLint layer) {
3030 GL_SERVICE_LOG("glFramebufferTextureLayer" 3137 GL_SERVICE_LOG("glFramebufferTextureLayer"
3031 << "(" << GLEnums::GetStringEnum(target) << ", " 3138 << "(" << GLEnums::GetStringEnum(target) << ", "
3032 << GLEnums::GetStringEnum(attachment) << ", " << texture 3139 << GLEnums::GetStringEnum(attachment) << ", " << texture
3033 << ", " << level << ", " << layer << ")"); 3140 << ", " << level << ", " << layer << ")");
3141 DCHECK(g_driver_gl.debug_fn.glFramebufferTextureLayerFn != nullptr);
3034 g_driver_gl.debug_fn.glFramebufferTextureLayerFn(target, attachment, texture, 3142 g_driver_gl.debug_fn.glFramebufferTextureLayerFn(target, attachment, texture,
3035 level, layer); 3143 level, layer);
3036 } 3144 }
3037 3145
3038 static void GL_BINDING_CALL Debug_glFrontFace(GLenum mode) { 3146 static void GL_BINDING_CALL Debug_glFrontFace(GLenum mode) {
3039 GL_SERVICE_LOG("glFrontFace" 3147 GL_SERVICE_LOG("glFrontFace"
3040 << "(" << GLEnums::GetStringEnum(mode) << ")"); 3148 << "(" << GLEnums::GetStringEnum(mode) << ")");
3149 DCHECK(g_driver_gl.debug_fn.glFrontFaceFn != nullptr);
3041 g_driver_gl.debug_fn.glFrontFaceFn(mode); 3150 g_driver_gl.debug_fn.glFrontFaceFn(mode);
3042 } 3151 }
3043 3152
3044 static void GL_BINDING_CALL Debug_glGenBuffersARB(GLsizei n, GLuint* buffers) { 3153 static void GL_BINDING_CALL Debug_glGenBuffersARB(GLsizei n, GLuint* buffers) {
3045 GL_SERVICE_LOG("glGenBuffersARB" 3154 GL_SERVICE_LOG("glGenBuffersARB"
3046 << "(" << n << ", " << static_cast<const void*>(buffers) 3155 << "(" << n << ", " << static_cast<const void*>(buffers)
3047 << ")"); 3156 << ")");
3157 DCHECK(g_driver_gl.debug_fn.glGenBuffersARBFn != nullptr);
3048 g_driver_gl.debug_fn.glGenBuffersARBFn(n, buffers); 3158 g_driver_gl.debug_fn.glGenBuffersARBFn(n, buffers);
3049 } 3159 }
3050 3160
3051 static void GL_BINDING_CALL Debug_glGenerateMipmapEXT(GLenum target) { 3161 static void GL_BINDING_CALL Debug_glGenerateMipmapEXT(GLenum target) {
3052 GL_SERVICE_LOG("glGenerateMipmapEXT" 3162 GL_SERVICE_LOG("glGenerateMipmapEXT"
3053 << "(" << GLEnums::GetStringEnum(target) << ")"); 3163 << "(" << GLEnums::GetStringEnum(target) << ")");
3164 DCHECK(g_driver_gl.debug_fn.glGenerateMipmapEXTFn != nullptr);
3054 g_driver_gl.debug_fn.glGenerateMipmapEXTFn(target); 3165 g_driver_gl.debug_fn.glGenerateMipmapEXTFn(target);
3055 } 3166 }
3056 3167
3057 static void GL_BINDING_CALL Debug_glGenFencesAPPLE(GLsizei n, GLuint* fences) { 3168 static void GL_BINDING_CALL Debug_glGenFencesAPPLE(GLsizei n, GLuint* fences) {
3058 GL_SERVICE_LOG("glGenFencesAPPLE" 3169 GL_SERVICE_LOG("glGenFencesAPPLE"
3059 << "(" << n << ", " << static_cast<const void*>(fences) 3170 << "(" << n << ", " << static_cast<const void*>(fences)
3060 << ")"); 3171 << ")");
3172 DCHECK(g_driver_gl.debug_fn.glGenFencesAPPLEFn != nullptr);
3061 g_driver_gl.debug_fn.glGenFencesAPPLEFn(n, fences); 3173 g_driver_gl.debug_fn.glGenFencesAPPLEFn(n, fences);
3062 } 3174 }
3063 3175
3064 static void GL_BINDING_CALL Debug_glGenFencesNV(GLsizei n, GLuint* fences) { 3176 static void GL_BINDING_CALL Debug_glGenFencesNV(GLsizei n, GLuint* fences) {
3065 GL_SERVICE_LOG("glGenFencesNV" 3177 GL_SERVICE_LOG("glGenFencesNV"
3066 << "(" << n << ", " << static_cast<const void*>(fences) 3178 << "(" << n << ", " << static_cast<const void*>(fences)
3067 << ")"); 3179 << ")");
3180 DCHECK(g_driver_gl.debug_fn.glGenFencesNVFn != nullptr);
3068 g_driver_gl.debug_fn.glGenFencesNVFn(n, fences); 3181 g_driver_gl.debug_fn.glGenFencesNVFn(n, fences);
3069 } 3182 }
3070 3183
3071 static void GL_BINDING_CALL Debug_glGenFramebuffersEXT(GLsizei n, 3184 static void GL_BINDING_CALL Debug_glGenFramebuffersEXT(GLsizei n,
3072 GLuint* framebuffers) { 3185 GLuint* framebuffers) {
3073 GL_SERVICE_LOG("glGenFramebuffersEXT" 3186 GL_SERVICE_LOG("glGenFramebuffersEXT"
3074 << "(" << n << ", " << static_cast<const void*>(framebuffers) 3187 << "(" << n << ", " << static_cast<const void*>(framebuffers)
3075 << ")"); 3188 << ")");
3189 DCHECK(g_driver_gl.debug_fn.glGenFramebuffersEXTFn != nullptr);
3076 g_driver_gl.debug_fn.glGenFramebuffersEXTFn(n, framebuffers); 3190 g_driver_gl.debug_fn.glGenFramebuffersEXTFn(n, framebuffers);
3077 } 3191 }
3078 3192
3079 static GLuint GL_BINDING_CALL Debug_glGenPathsNV(GLsizei range) { 3193 static GLuint GL_BINDING_CALL Debug_glGenPathsNV(GLsizei range) {
3080 GL_SERVICE_LOG("glGenPathsNV" 3194 GL_SERVICE_LOG("glGenPathsNV"
3081 << "(" << range << ")"); 3195 << "(" << range << ")");
3196 DCHECK(g_driver_gl.debug_fn.glGenPathsNVFn != nullptr);
3082 GLuint result = g_driver_gl.debug_fn.glGenPathsNVFn(range); 3197 GLuint result = g_driver_gl.debug_fn.glGenPathsNVFn(range);
3083 GL_SERVICE_LOG("GL_RESULT: " << result); 3198 GL_SERVICE_LOG("GL_RESULT: " << result);
3084 return result; 3199 return result;
3085 } 3200 }
3086 3201
3087 static void GL_BINDING_CALL Debug_glGenQueries(GLsizei n, GLuint* ids) { 3202 static void GL_BINDING_CALL Debug_glGenQueries(GLsizei n, GLuint* ids) {
3088 GL_SERVICE_LOG("glGenQueries" 3203 GL_SERVICE_LOG("glGenQueries"
3089 << "(" << n << ", " << static_cast<const void*>(ids) << ")"); 3204 << "(" << n << ", " << static_cast<const void*>(ids) << ")");
3205 DCHECK(g_driver_gl.debug_fn.glGenQueriesFn != nullptr);
3090 g_driver_gl.debug_fn.glGenQueriesFn(n, ids); 3206 g_driver_gl.debug_fn.glGenQueriesFn(n, ids);
3091 } 3207 }
3092 3208
3093 static void GL_BINDING_CALL Debug_glGenRenderbuffersEXT(GLsizei n, 3209 static void GL_BINDING_CALL Debug_glGenRenderbuffersEXT(GLsizei n,
3094 GLuint* renderbuffers) { 3210 GLuint* renderbuffers) {
3095 GL_SERVICE_LOG("glGenRenderbuffersEXT" 3211 GL_SERVICE_LOG("glGenRenderbuffersEXT"
3096 << "(" << n << ", " << static_cast<const void*>(renderbuffers) 3212 << "(" << n << ", " << static_cast<const void*>(renderbuffers)
3097 << ")"); 3213 << ")");
3214 DCHECK(g_driver_gl.debug_fn.glGenRenderbuffersEXTFn != nullptr);
3098 g_driver_gl.debug_fn.glGenRenderbuffersEXTFn(n, renderbuffers); 3215 g_driver_gl.debug_fn.glGenRenderbuffersEXTFn(n, renderbuffers);
3099 } 3216 }
3100 3217
3101 static void GL_BINDING_CALL Debug_glGenSamplers(GLsizei n, GLuint* samplers) { 3218 static void GL_BINDING_CALL Debug_glGenSamplers(GLsizei n, GLuint* samplers) {
3102 GL_SERVICE_LOG("glGenSamplers" 3219 GL_SERVICE_LOG("glGenSamplers"
3103 << "(" << n << ", " << static_cast<const void*>(samplers) 3220 << "(" << n << ", " << static_cast<const void*>(samplers)
3104 << ")"); 3221 << ")");
3222 DCHECK(g_driver_gl.debug_fn.glGenSamplersFn != nullptr);
3105 g_driver_gl.debug_fn.glGenSamplersFn(n, samplers); 3223 g_driver_gl.debug_fn.glGenSamplersFn(n, samplers);
3106 } 3224 }
3107 3225
3108 static void GL_BINDING_CALL Debug_glGenTextures(GLsizei n, GLuint* textures) { 3226 static void GL_BINDING_CALL Debug_glGenTextures(GLsizei n, GLuint* textures) {
3109 GL_SERVICE_LOG("glGenTextures" 3227 GL_SERVICE_LOG("glGenTextures"
3110 << "(" << n << ", " << static_cast<const void*>(textures) 3228 << "(" << n << ", " << static_cast<const void*>(textures)
3111 << ")"); 3229 << ")");
3230 DCHECK(g_driver_gl.debug_fn.glGenTexturesFn != nullptr);
3112 g_driver_gl.debug_fn.glGenTexturesFn(n, textures); 3231 g_driver_gl.debug_fn.glGenTexturesFn(n, textures);
3113 } 3232 }
3114 3233
3115 static void GL_BINDING_CALL Debug_glGenTransformFeedbacks(GLsizei n, 3234 static void GL_BINDING_CALL Debug_glGenTransformFeedbacks(GLsizei n,
3116 GLuint* ids) { 3235 GLuint* ids) {
3117 GL_SERVICE_LOG("glGenTransformFeedbacks" 3236 GL_SERVICE_LOG("glGenTransformFeedbacks"
3118 << "(" << n << ", " << static_cast<const void*>(ids) << ")"); 3237 << "(" << n << ", " << static_cast<const void*>(ids) << ")");
3238 DCHECK(g_driver_gl.debug_fn.glGenTransformFeedbacksFn != nullptr);
3119 g_driver_gl.debug_fn.glGenTransformFeedbacksFn(n, ids); 3239 g_driver_gl.debug_fn.glGenTransformFeedbacksFn(n, ids);
3120 } 3240 }
3121 3241
3122 static void GL_BINDING_CALL Debug_glGenVertexArraysOES(GLsizei n, 3242 static void GL_BINDING_CALL Debug_glGenVertexArraysOES(GLsizei n,
3123 GLuint* arrays) { 3243 GLuint* arrays) {
3124 GL_SERVICE_LOG("glGenVertexArraysOES" 3244 GL_SERVICE_LOG("glGenVertexArraysOES"
3125 << "(" << n << ", " << static_cast<const void*>(arrays) 3245 << "(" << n << ", " << static_cast<const void*>(arrays)
3126 << ")"); 3246 << ")");
3247 DCHECK(g_driver_gl.debug_fn.glGenVertexArraysOESFn != nullptr);
3127 g_driver_gl.debug_fn.glGenVertexArraysOESFn(n, arrays); 3248 g_driver_gl.debug_fn.glGenVertexArraysOESFn(n, arrays);
3128 } 3249 }
3129 3250
3130 static void GL_BINDING_CALL Debug_glGetActiveAttrib(GLuint program, 3251 static void GL_BINDING_CALL Debug_glGetActiveAttrib(GLuint program,
3131 GLuint index, 3252 GLuint index,
3132 GLsizei bufsize, 3253 GLsizei bufsize,
3133 GLsizei* length, 3254 GLsizei* length,
3134 GLint* size, 3255 GLint* size,
3135 GLenum* type, 3256 GLenum* type,
3136 char* name) { 3257 char* name) {
3137 GL_SERVICE_LOG("glGetActiveAttrib" 3258 GL_SERVICE_LOG("glGetActiveAttrib"
3138 << "(" << program << ", " << index << ", " << bufsize << ", " 3259 << "(" << program << ", " << index << ", " << bufsize << ", "
3139 << static_cast<const void*>(length) << ", " 3260 << static_cast<const void*>(length) << ", "
3140 << static_cast<const void*>(size) << ", " 3261 << static_cast<const void*>(size) << ", "
3141 << static_cast<const void*>(type) << ", " 3262 << static_cast<const void*>(type) << ", "
3142 << static_cast<const void*>(name) << ")"); 3263 << static_cast<const void*>(name) << ")");
3264 DCHECK(g_driver_gl.debug_fn.glGetActiveAttribFn != nullptr);
3143 g_driver_gl.debug_fn.glGetActiveAttribFn(program, index, bufsize, length, 3265 g_driver_gl.debug_fn.glGetActiveAttribFn(program, index, bufsize, length,
3144 size, type, name); 3266 size, type, name);
3145 } 3267 }
3146 3268
3147 static void GL_BINDING_CALL Debug_glGetActiveUniform(GLuint program, 3269 static void GL_BINDING_CALL Debug_glGetActiveUniform(GLuint program,
3148 GLuint index, 3270 GLuint index,
3149 GLsizei bufsize, 3271 GLsizei bufsize,
3150 GLsizei* length, 3272 GLsizei* length,
3151 GLint* size, 3273 GLint* size,
3152 GLenum* type, 3274 GLenum* type,
3153 char* name) { 3275 char* name) {
3154 GL_SERVICE_LOG("glGetActiveUniform" 3276 GL_SERVICE_LOG("glGetActiveUniform"
3155 << "(" << program << ", " << index << ", " << bufsize << ", " 3277 << "(" << program << ", " << index << ", " << bufsize << ", "
3156 << static_cast<const void*>(length) << ", " 3278 << static_cast<const void*>(length) << ", "
3157 << static_cast<const void*>(size) << ", " 3279 << static_cast<const void*>(size) << ", "
3158 << static_cast<const void*>(type) << ", " 3280 << static_cast<const void*>(type) << ", "
3159 << static_cast<const void*>(name) << ")"); 3281 << static_cast<const void*>(name) << ")");
3282 DCHECK(g_driver_gl.debug_fn.glGetActiveUniformFn != nullptr);
3160 g_driver_gl.debug_fn.glGetActiveUniformFn(program, index, bufsize, length, 3283 g_driver_gl.debug_fn.glGetActiveUniformFn(program, index, bufsize, length,
3161 size, type, name); 3284 size, type, name);
3162 } 3285 }
3163 3286
3164 static void GL_BINDING_CALL 3287 static void GL_BINDING_CALL
3165 Debug_glGetActiveUniformBlockiv(GLuint program, 3288 Debug_glGetActiveUniformBlockiv(GLuint program,
3166 GLuint uniformBlockIndex, 3289 GLuint uniformBlockIndex,
3167 GLenum pname, 3290 GLenum pname,
3168 GLint* params) { 3291 GLint* params) {
3169 GL_SERVICE_LOG("glGetActiveUniformBlockiv" 3292 GL_SERVICE_LOG("glGetActiveUniformBlockiv"
3170 << "(" << program << ", " << uniformBlockIndex << ", " 3293 << "(" << program << ", " << uniformBlockIndex << ", "
3171 << GLEnums::GetStringEnum(pname) << ", " 3294 << GLEnums::GetStringEnum(pname) << ", "
3172 << static_cast<const void*>(params) << ")"); 3295 << static_cast<const void*>(params) << ")");
3296 DCHECK(g_driver_gl.debug_fn.glGetActiveUniformBlockivFn != nullptr);
3173 g_driver_gl.debug_fn.glGetActiveUniformBlockivFn(program, uniformBlockIndex, 3297 g_driver_gl.debug_fn.glGetActiveUniformBlockivFn(program, uniformBlockIndex,
3174 pname, params); 3298 pname, params);
3175 } 3299 }
3176 3300
3177 static void GL_BINDING_CALL 3301 static void GL_BINDING_CALL
3178 Debug_glGetActiveUniformBlockName(GLuint program, 3302 Debug_glGetActiveUniformBlockName(GLuint program,
3179 GLuint uniformBlockIndex, 3303 GLuint uniformBlockIndex,
3180 GLsizei bufSize, 3304 GLsizei bufSize,
3181 GLsizei* length, 3305 GLsizei* length,
3182 char* uniformBlockName) { 3306 char* uniformBlockName) {
3183 GL_SERVICE_LOG("glGetActiveUniformBlockName" 3307 GL_SERVICE_LOG("glGetActiveUniformBlockName"
3184 << "(" << program << ", " << uniformBlockIndex << ", " 3308 << "(" << program << ", " << uniformBlockIndex << ", "
3185 << bufSize << ", " << static_cast<const void*>(length) << ", " 3309 << bufSize << ", " << static_cast<const void*>(length) << ", "
3186 << static_cast<const void*>(uniformBlockName) << ")"); 3310 << static_cast<const void*>(uniformBlockName) << ")");
3311 DCHECK(g_driver_gl.debug_fn.glGetActiveUniformBlockNameFn != nullptr);
3187 g_driver_gl.debug_fn.glGetActiveUniformBlockNameFn( 3312 g_driver_gl.debug_fn.glGetActiveUniformBlockNameFn(
3188 program, uniformBlockIndex, bufSize, length, uniformBlockName); 3313 program, uniformBlockIndex, bufSize, length, uniformBlockName);
3189 } 3314 }
3190 3315
3191 static void GL_BINDING_CALL 3316 static void GL_BINDING_CALL
3192 Debug_glGetActiveUniformsiv(GLuint program, 3317 Debug_glGetActiveUniformsiv(GLuint program,
3193 GLsizei uniformCount, 3318 GLsizei uniformCount,
3194 const GLuint* uniformIndices, 3319 const GLuint* uniformIndices,
3195 GLenum pname, 3320 GLenum pname,
3196 GLint* params) { 3321 GLint* params) {
3197 GL_SERVICE_LOG("glGetActiveUniformsiv" 3322 GL_SERVICE_LOG("glGetActiveUniformsiv"
3198 << "(" << program << ", " << uniformCount << ", " 3323 << "(" << program << ", " << uniformCount << ", "
3199 << static_cast<const void*>(uniformIndices) << ", " 3324 << static_cast<const void*>(uniformIndices) << ", "
3200 << GLEnums::GetStringEnum(pname) << ", " 3325 << GLEnums::GetStringEnum(pname) << ", "
3201 << static_cast<const void*>(params) << ")"); 3326 << static_cast<const void*>(params) << ")");
3327 DCHECK(g_driver_gl.debug_fn.glGetActiveUniformsivFn != nullptr);
3202 g_driver_gl.debug_fn.glGetActiveUniformsivFn(program, uniformCount, 3328 g_driver_gl.debug_fn.glGetActiveUniformsivFn(program, uniformCount,
3203 uniformIndices, pname, params); 3329 uniformIndices, pname, params);
3204 } 3330 }
3205 3331
3206 static void GL_BINDING_CALL Debug_glGetAttachedShaders(GLuint program, 3332 static void GL_BINDING_CALL Debug_glGetAttachedShaders(GLuint program,
3207 GLsizei maxcount, 3333 GLsizei maxcount,
3208 GLsizei* count, 3334 GLsizei* count,
3209 GLuint* shaders) { 3335 GLuint* shaders) {
3210 GL_SERVICE_LOG("glGetAttachedShaders" 3336 GL_SERVICE_LOG("glGetAttachedShaders"
3211 << "(" << program << ", " << maxcount << ", " 3337 << "(" << program << ", " << maxcount << ", "
3212 << static_cast<const void*>(count) << ", " 3338 << static_cast<const void*>(count) << ", "
3213 << static_cast<const void*>(shaders) << ")"); 3339 << static_cast<const void*>(shaders) << ")");
3340 DCHECK(g_driver_gl.debug_fn.glGetAttachedShadersFn != nullptr);
3214 g_driver_gl.debug_fn.glGetAttachedShadersFn(program, maxcount, count, 3341 g_driver_gl.debug_fn.glGetAttachedShadersFn(program, maxcount, count,
3215 shaders); 3342 shaders);
3216 } 3343 }
3217 3344
3218 static GLint GL_BINDING_CALL Debug_glGetAttribLocation(GLuint program, 3345 static GLint GL_BINDING_CALL Debug_glGetAttribLocation(GLuint program,
3219 const char* name) { 3346 const char* name) {
3220 GL_SERVICE_LOG("glGetAttribLocation" 3347 GL_SERVICE_LOG("glGetAttribLocation"
3221 << "(" << program << ", " << name << ")"); 3348 << "(" << program << ", " << name << ")");
3349 DCHECK(g_driver_gl.debug_fn.glGetAttribLocationFn != nullptr);
3222 GLint result = g_driver_gl.debug_fn.glGetAttribLocationFn(program, name); 3350 GLint result = g_driver_gl.debug_fn.glGetAttribLocationFn(program, name);
3223 GL_SERVICE_LOG("GL_RESULT: " << result); 3351 GL_SERVICE_LOG("GL_RESULT: " << result);
3224 return result; 3352 return result;
3225 } 3353 }
3226 3354
3227 static void GL_BINDING_CALL Debug_glGetBooleanv(GLenum pname, 3355 static void GL_BINDING_CALL Debug_glGetBooleanv(GLenum pname,
3228 GLboolean* params) { 3356 GLboolean* params) {
3229 GL_SERVICE_LOG("glGetBooleanv" 3357 GL_SERVICE_LOG("glGetBooleanv"
3230 << "(" << GLEnums::GetStringEnum(pname) << ", " 3358 << "(" << GLEnums::GetStringEnum(pname) << ", "
3231 << static_cast<const void*>(params) << ")"); 3359 << static_cast<const void*>(params) << ")");
3360 DCHECK(g_driver_gl.debug_fn.glGetBooleanvFn != nullptr);
3232 g_driver_gl.debug_fn.glGetBooleanvFn(pname, params); 3361 g_driver_gl.debug_fn.glGetBooleanvFn(pname, params);
3233 } 3362 }
3234 3363
3235 static void GL_BINDING_CALL Debug_glGetBufferParameteriv(GLenum target, 3364 static void GL_BINDING_CALL Debug_glGetBufferParameteriv(GLenum target,
3236 GLenum pname, 3365 GLenum pname,
3237 GLint* params) { 3366 GLint* params) {
3238 GL_SERVICE_LOG("glGetBufferParameteriv" 3367 GL_SERVICE_LOG("glGetBufferParameteriv"
3239 << "(" << GLEnums::GetStringEnum(target) << ", " 3368 << "(" << GLEnums::GetStringEnum(target) << ", "
3240 << GLEnums::GetStringEnum(pname) << ", " 3369 << GLEnums::GetStringEnum(pname) << ", "
3241 << static_cast<const void*>(params) << ")"); 3370 << static_cast<const void*>(params) << ")");
3371 DCHECK(g_driver_gl.debug_fn.glGetBufferParameterivFn != nullptr);
3242 g_driver_gl.debug_fn.glGetBufferParameterivFn(target, pname, params); 3372 g_driver_gl.debug_fn.glGetBufferParameterivFn(target, pname, params);
3243 } 3373 }
3244 3374
3245 static GLenum GL_BINDING_CALL Debug_glGetError(void) { 3375 static GLenum GL_BINDING_CALL Debug_glGetError(void) {
3246 GL_SERVICE_LOG("glGetError" 3376 GL_SERVICE_LOG("glGetError"
3247 << "(" 3377 << "("
3248 << ")"); 3378 << ")");
3379 DCHECK(g_driver_gl.debug_fn.glGetErrorFn != nullptr);
3249 GLenum result = g_driver_gl.debug_fn.glGetErrorFn(); 3380 GLenum result = g_driver_gl.debug_fn.glGetErrorFn();
3250 3381
3251 GL_SERVICE_LOG("GL_RESULT: " << GLEnums::GetStringError(result)); 3382 GL_SERVICE_LOG("GL_RESULT: " << GLEnums::GetStringError(result));
3252 3383
3253 return result; 3384 return result;
3254 } 3385 }
3255 3386
3256 static void GL_BINDING_CALL Debug_glGetFenceivNV(GLuint fence, 3387 static void GL_BINDING_CALL Debug_glGetFenceivNV(GLuint fence,
3257 GLenum pname, 3388 GLenum pname,
3258 GLint* params) { 3389 GLint* params) {
3259 GL_SERVICE_LOG("glGetFenceivNV" 3390 GL_SERVICE_LOG("glGetFenceivNV"
3260 << "(" << fence << ", " << GLEnums::GetStringEnum(pname) 3391 << "(" << fence << ", " << GLEnums::GetStringEnum(pname)
3261 << ", " << static_cast<const void*>(params) << ")"); 3392 << ", " << static_cast<const void*>(params) << ")");
3393 DCHECK(g_driver_gl.debug_fn.glGetFenceivNVFn != nullptr);
3262 g_driver_gl.debug_fn.glGetFenceivNVFn(fence, pname, params); 3394 g_driver_gl.debug_fn.glGetFenceivNVFn(fence, pname, params);
3263 } 3395 }
3264 3396
3265 static void GL_BINDING_CALL Debug_glGetFloatv(GLenum pname, GLfloat* params) { 3397 static void GL_BINDING_CALL Debug_glGetFloatv(GLenum pname, GLfloat* params) {
3266 GL_SERVICE_LOG("glGetFloatv" 3398 GL_SERVICE_LOG("glGetFloatv"
3267 << "(" << GLEnums::GetStringEnum(pname) << ", " 3399 << "(" << GLEnums::GetStringEnum(pname) << ", "
3268 << static_cast<const void*>(params) << ")"); 3400 << static_cast<const void*>(params) << ")");
3401 DCHECK(g_driver_gl.debug_fn.glGetFloatvFn != nullptr);
3269 g_driver_gl.debug_fn.glGetFloatvFn(pname, params); 3402 g_driver_gl.debug_fn.glGetFloatvFn(pname, params);
3270 } 3403 }
3271 3404
3272 static GLint GL_BINDING_CALL Debug_glGetFragDataIndex(GLuint program, 3405 static GLint GL_BINDING_CALL Debug_glGetFragDataIndex(GLuint program,
3273 const char* name) { 3406 const char* name) {
3274 GL_SERVICE_LOG("glGetFragDataIndex" 3407 GL_SERVICE_LOG("glGetFragDataIndex"
3275 << "(" << program << ", " << name << ")"); 3408 << "(" << program << ", " << name << ")");
3409 DCHECK(g_driver_gl.debug_fn.glGetFragDataIndexFn != nullptr);
3276 GLint result = g_driver_gl.debug_fn.glGetFragDataIndexFn(program, name); 3410 GLint result = g_driver_gl.debug_fn.glGetFragDataIndexFn(program, name);
3277 GL_SERVICE_LOG("GL_RESULT: " << result); 3411 GL_SERVICE_LOG("GL_RESULT: " << result);
3278 return result; 3412 return result;
3279 } 3413 }
3280 3414
3281 static GLint GL_BINDING_CALL Debug_glGetFragDataLocation(GLuint program, 3415 static GLint GL_BINDING_CALL Debug_glGetFragDataLocation(GLuint program,
3282 const char* name) { 3416 const char* name) {
3283 GL_SERVICE_LOG("glGetFragDataLocation" 3417 GL_SERVICE_LOG("glGetFragDataLocation"
3284 << "(" << program << ", " << name << ")"); 3418 << "(" << program << ", " << name << ")");
3419 DCHECK(g_driver_gl.debug_fn.glGetFragDataLocationFn != nullptr);
3285 GLint result = g_driver_gl.debug_fn.glGetFragDataLocationFn(program, name); 3420 GLint result = g_driver_gl.debug_fn.glGetFragDataLocationFn(program, name);
3286 GL_SERVICE_LOG("GL_RESULT: " << result); 3421 GL_SERVICE_LOG("GL_RESULT: " << result);
3287 return result; 3422 return result;
3288 } 3423 }
3289 3424
3290 static void GL_BINDING_CALL 3425 static void GL_BINDING_CALL
3291 Debug_glGetFramebufferAttachmentParameterivEXT(GLenum target, 3426 Debug_glGetFramebufferAttachmentParameterivEXT(GLenum target,
3292 GLenum attachment, 3427 GLenum attachment,
3293 GLenum pname, 3428 GLenum pname,
3294 GLint* params) { 3429 GLint* params) {
3295 GL_SERVICE_LOG("glGetFramebufferAttachmentParameterivEXT" 3430 GL_SERVICE_LOG("glGetFramebufferAttachmentParameterivEXT"
3296 << "(" << GLEnums::GetStringEnum(target) << ", " 3431 << "(" << GLEnums::GetStringEnum(target) << ", "
3297 << GLEnums::GetStringEnum(attachment) << ", " 3432 << GLEnums::GetStringEnum(attachment) << ", "
3298 << GLEnums::GetStringEnum(pname) << ", " 3433 << GLEnums::GetStringEnum(pname) << ", "
3299 << static_cast<const void*>(params) << ")"); 3434 << static_cast<const void*>(params) << ")");
3435 DCHECK(g_driver_gl.debug_fn.glGetFramebufferAttachmentParameterivEXTFn !=
3436 nullptr);
3300 g_driver_gl.debug_fn.glGetFramebufferAttachmentParameterivEXTFn( 3437 g_driver_gl.debug_fn.glGetFramebufferAttachmentParameterivEXTFn(
3301 target, attachment, pname, params); 3438 target, attachment, pname, params);
3302 } 3439 }
3303 3440
3304 static GLenum GL_BINDING_CALL Debug_glGetGraphicsResetStatusARB(void) { 3441 static GLenum GL_BINDING_CALL Debug_glGetGraphicsResetStatusARB(void) {
3305 GL_SERVICE_LOG("glGetGraphicsResetStatusARB" 3442 GL_SERVICE_LOG("glGetGraphicsResetStatusARB"
3306 << "(" 3443 << "("
3307 << ")"); 3444 << ")");
3445 DCHECK(g_driver_gl.debug_fn.glGetGraphicsResetStatusARBFn != nullptr);
3308 GLenum result = g_driver_gl.debug_fn.glGetGraphicsResetStatusARBFn(); 3446 GLenum result = g_driver_gl.debug_fn.glGetGraphicsResetStatusARBFn();
3309 GL_SERVICE_LOG("GL_RESULT: " << result); 3447 GL_SERVICE_LOG("GL_RESULT: " << result);
3310 return result; 3448 return result;
3311 } 3449 }
3312 3450
3313 static void GL_BINDING_CALL Debug_glGetInteger64i_v(GLenum target, 3451 static void GL_BINDING_CALL Debug_glGetInteger64i_v(GLenum target,
3314 GLuint index, 3452 GLuint index,
3315 GLint64* data) { 3453 GLint64* data) {
3316 GL_SERVICE_LOG("glGetInteger64i_v" 3454 GL_SERVICE_LOG("glGetInteger64i_v"
3317 << "(" << GLEnums::GetStringEnum(target) << ", " << index 3455 << "(" << GLEnums::GetStringEnum(target) << ", " << index
3318 << ", " << static_cast<const void*>(data) << ")"); 3456 << ", " << static_cast<const void*>(data) << ")");
3457 DCHECK(g_driver_gl.debug_fn.glGetInteger64i_vFn != nullptr);
3319 g_driver_gl.debug_fn.glGetInteger64i_vFn(target, index, data); 3458 g_driver_gl.debug_fn.glGetInteger64i_vFn(target, index, data);
3320 } 3459 }
3321 3460
3322 static void GL_BINDING_CALL Debug_glGetInteger64v(GLenum pname, 3461 static void GL_BINDING_CALL Debug_glGetInteger64v(GLenum pname,
3323 GLint64* params) { 3462 GLint64* params) {
3324 GL_SERVICE_LOG("glGetInteger64v" 3463 GL_SERVICE_LOG("glGetInteger64v"
3325 << "(" << GLEnums::GetStringEnum(pname) << ", " 3464 << "(" << GLEnums::GetStringEnum(pname) << ", "
3326 << static_cast<const void*>(params) << ")"); 3465 << static_cast<const void*>(params) << ")");
3466 DCHECK(g_driver_gl.debug_fn.glGetInteger64vFn != nullptr);
3327 g_driver_gl.debug_fn.glGetInteger64vFn(pname, params); 3467 g_driver_gl.debug_fn.glGetInteger64vFn(pname, params);
3328 } 3468 }
3329 3469
3330 static void GL_BINDING_CALL Debug_glGetIntegeri_v(GLenum target, 3470 static void GL_BINDING_CALL Debug_glGetIntegeri_v(GLenum target,
3331 GLuint index, 3471 GLuint index,
3332 GLint* data) { 3472 GLint* data) {
3333 GL_SERVICE_LOG("glGetIntegeri_v" 3473 GL_SERVICE_LOG("glGetIntegeri_v"
3334 << "(" << GLEnums::GetStringEnum(target) << ", " << index 3474 << "(" << GLEnums::GetStringEnum(target) << ", " << index
3335 << ", " << static_cast<const void*>(data) << ")"); 3475 << ", " << static_cast<const void*>(data) << ")");
3476 DCHECK(g_driver_gl.debug_fn.glGetIntegeri_vFn != nullptr);
3336 g_driver_gl.debug_fn.glGetIntegeri_vFn(target, index, data); 3477 g_driver_gl.debug_fn.glGetIntegeri_vFn(target, index, data);
3337 } 3478 }
3338 3479
3339 static void GL_BINDING_CALL Debug_glGetIntegerv(GLenum pname, GLint* params) { 3480 static void GL_BINDING_CALL Debug_glGetIntegerv(GLenum pname, GLint* params) {
3340 GL_SERVICE_LOG("glGetIntegerv" 3481 GL_SERVICE_LOG("glGetIntegerv"
3341 << "(" << GLEnums::GetStringEnum(pname) << ", " 3482 << "(" << GLEnums::GetStringEnum(pname) << ", "
3342 << static_cast<const void*>(params) << ")"); 3483 << static_cast<const void*>(params) << ")");
3484 DCHECK(g_driver_gl.debug_fn.glGetIntegervFn != nullptr);
3343 g_driver_gl.debug_fn.glGetIntegervFn(pname, params); 3485 g_driver_gl.debug_fn.glGetIntegervFn(pname, params);
3344 } 3486 }
3345 3487
3346 static void GL_BINDING_CALL Debug_glGetInternalformativ(GLenum target, 3488 static void GL_BINDING_CALL Debug_glGetInternalformativ(GLenum target,
3347 GLenum internalformat, 3489 GLenum internalformat,
3348 GLenum pname, 3490 GLenum pname,
3349 GLsizei bufSize, 3491 GLsizei bufSize,
3350 GLint* params) { 3492 GLint* params) {
3351 GL_SERVICE_LOG("glGetInternalformativ" 3493 GL_SERVICE_LOG("glGetInternalformativ"
3352 << "(" << GLEnums::GetStringEnum(target) << ", " 3494 << "(" << GLEnums::GetStringEnum(target) << ", "
3353 << GLEnums::GetStringEnum(internalformat) << ", " 3495 << GLEnums::GetStringEnum(internalformat) << ", "
3354 << GLEnums::GetStringEnum(pname) << ", " << bufSize << ", " 3496 << GLEnums::GetStringEnum(pname) << ", " << bufSize << ", "
3355 << static_cast<const void*>(params) << ")"); 3497 << static_cast<const void*>(params) << ")");
3498 DCHECK(g_driver_gl.debug_fn.glGetInternalformativFn != nullptr);
3356 g_driver_gl.debug_fn.glGetInternalformativFn(target, internalformat, pname, 3499 g_driver_gl.debug_fn.glGetInternalformativFn(target, internalformat, pname,
3357 bufSize, params); 3500 bufSize, params);
3358 } 3501 }
3359 3502
3360 static void GL_BINDING_CALL Debug_glGetProgramBinary(GLuint program, 3503 static void GL_BINDING_CALL Debug_glGetProgramBinary(GLuint program,
3361 GLsizei bufSize, 3504 GLsizei bufSize,
3362 GLsizei* length, 3505 GLsizei* length,
3363 GLenum* binaryFormat, 3506 GLenum* binaryFormat,
3364 GLvoid* binary) { 3507 GLvoid* binary) {
3365 GL_SERVICE_LOG("glGetProgramBinary" 3508 GL_SERVICE_LOG("glGetProgramBinary"
3366 << "(" << program << ", " << bufSize << ", " 3509 << "(" << program << ", " << bufSize << ", "
3367 << static_cast<const void*>(length) << ", " 3510 << static_cast<const void*>(length) << ", "
3368 << static_cast<const void*>(binaryFormat) << ", " 3511 << static_cast<const void*>(binaryFormat) << ", "
3369 << static_cast<const void*>(binary) << ")"); 3512 << static_cast<const void*>(binary) << ")");
3513 DCHECK(g_driver_gl.debug_fn.glGetProgramBinaryFn != nullptr);
3370 g_driver_gl.debug_fn.glGetProgramBinaryFn(program, bufSize, length, 3514 g_driver_gl.debug_fn.glGetProgramBinaryFn(program, bufSize, length,
3371 binaryFormat, binary); 3515 binaryFormat, binary);
3372 } 3516 }
3373 3517
3374 static void GL_BINDING_CALL Debug_glGetProgramInfoLog(GLuint program, 3518 static void GL_BINDING_CALL Debug_glGetProgramInfoLog(GLuint program,
3375 GLsizei bufsize, 3519 GLsizei bufsize,
3376 GLsizei* length, 3520 GLsizei* length,
3377 char* infolog) { 3521 char* infolog) {
3378 GL_SERVICE_LOG("glGetProgramInfoLog" 3522 GL_SERVICE_LOG("glGetProgramInfoLog"
3379 << "(" << program << ", " << bufsize << ", " 3523 << "(" << program << ", " << bufsize << ", "
3380 << static_cast<const void*>(length) << ", " 3524 << static_cast<const void*>(length) << ", "
3381 << static_cast<const void*>(infolog) << ")"); 3525 << static_cast<const void*>(infolog) << ")");
3526 DCHECK(g_driver_gl.debug_fn.glGetProgramInfoLogFn != nullptr);
3382 g_driver_gl.debug_fn.glGetProgramInfoLogFn(program, bufsize, length, infolog); 3527 g_driver_gl.debug_fn.glGetProgramInfoLogFn(program, bufsize, length, infolog);
3383 } 3528 }
3384 3529
3385 static void GL_BINDING_CALL 3530 static void GL_BINDING_CALL
3386 Debug_glGetProgramInterfaceiv(GLuint program, 3531 Debug_glGetProgramInterfaceiv(GLuint program,
3387 GLenum programInterface, 3532 GLenum programInterface,
3388 GLenum pname, 3533 GLenum pname,
3389 GLint* params) { 3534 GLint* params) {
3390 GL_SERVICE_LOG("glGetProgramInterfaceiv" 3535 GL_SERVICE_LOG("glGetProgramInterfaceiv"
3391 << "(" << program << ", " 3536 << "(" << program << ", "
3392 << GLEnums::GetStringEnum(programInterface) << ", " 3537 << GLEnums::GetStringEnum(programInterface) << ", "
3393 << GLEnums::GetStringEnum(pname) << ", " 3538 << GLEnums::GetStringEnum(pname) << ", "
3394 << static_cast<const void*>(params) << ")"); 3539 << static_cast<const void*>(params) << ")");
3540 DCHECK(g_driver_gl.debug_fn.glGetProgramInterfaceivFn != nullptr);
3395 g_driver_gl.debug_fn.glGetProgramInterfaceivFn(program, programInterface, 3541 g_driver_gl.debug_fn.glGetProgramInterfaceivFn(program, programInterface,
3396 pname, params); 3542 pname, params);
3397 } 3543 }
3398 3544
3399 static void GL_BINDING_CALL Debug_glGetProgramiv(GLuint program, 3545 static void GL_BINDING_CALL Debug_glGetProgramiv(GLuint program,
3400 GLenum pname, 3546 GLenum pname,
3401 GLint* params) { 3547 GLint* params) {
3402 GL_SERVICE_LOG("glGetProgramiv" 3548 GL_SERVICE_LOG("glGetProgramiv"
3403 << "(" << program << ", " << GLEnums::GetStringEnum(pname) 3549 << "(" << program << ", " << GLEnums::GetStringEnum(pname)
3404 << ", " << static_cast<const void*>(params) << ")"); 3550 << ", " << static_cast<const void*>(params) << ")");
3551 DCHECK(g_driver_gl.debug_fn.glGetProgramivFn != nullptr);
3405 g_driver_gl.debug_fn.glGetProgramivFn(program, pname, params); 3552 g_driver_gl.debug_fn.glGetProgramivFn(program, pname, params);
3406 } 3553 }
3407 3554
3408 static void GL_BINDING_CALL 3555 static void GL_BINDING_CALL
3409 Debug_glGetProgramResourceiv(GLuint program, 3556 Debug_glGetProgramResourceiv(GLuint program,
3410 GLenum programInterface, 3557 GLenum programInterface,
3411 GLuint index, 3558 GLuint index,
3412 GLsizei propCount, 3559 GLsizei propCount,
3413 const GLenum* props, 3560 const GLenum* props,
3414 GLsizei bufSize, 3561 GLsizei bufSize,
3415 GLsizei* length, 3562 GLsizei* length,
3416 GLint* params) { 3563 GLint* params) {
3417 GL_SERVICE_LOG("glGetProgramResourceiv" 3564 GL_SERVICE_LOG("glGetProgramResourceiv"
3418 << "(" << program << ", " 3565 << "(" << program << ", "
3419 << GLEnums::GetStringEnum(programInterface) << ", " << index 3566 << GLEnums::GetStringEnum(programInterface) << ", " << index
3420 << ", " << propCount << ", " << static_cast<const void*>(props) 3567 << ", " << propCount << ", " << static_cast<const void*>(props)
3421 << ", " << bufSize << ", " << static_cast<const void*>(length) 3568 << ", " << bufSize << ", " << static_cast<const void*>(length)
3422 << ", " << static_cast<const void*>(params) << ")"); 3569 << ", " << static_cast<const void*>(params) << ")");
3570 DCHECK(g_driver_gl.debug_fn.glGetProgramResourceivFn != nullptr);
3423 g_driver_gl.debug_fn.glGetProgramResourceivFn(program, programInterface, 3571 g_driver_gl.debug_fn.glGetProgramResourceivFn(program, programInterface,
3424 index, propCount, props, 3572 index, propCount, props,
3425 bufSize, length, params); 3573 bufSize, length, params);
3426 } 3574 }
3427 3575
3428 static GLint GL_BINDING_CALL 3576 static GLint GL_BINDING_CALL
3429 Debug_glGetProgramResourceLocation(GLuint program, 3577 Debug_glGetProgramResourceLocation(GLuint program,
3430 GLenum programInterface, 3578 GLenum programInterface,
3431 const char* name) { 3579 const char* name) {
3432 GL_SERVICE_LOG("glGetProgramResourceLocation" 3580 GL_SERVICE_LOG("glGetProgramResourceLocation"
3433 << "(" << program << ", " 3581 << "(" << program << ", "
3434 << GLEnums::GetStringEnum(programInterface) << ", " << name 3582 << GLEnums::GetStringEnum(programInterface) << ", " << name
3435 << ")"); 3583 << ")");
3584 DCHECK(g_driver_gl.debug_fn.glGetProgramResourceLocationFn != nullptr);
3436 GLint result = g_driver_gl.debug_fn.glGetProgramResourceLocationFn( 3585 GLint result = g_driver_gl.debug_fn.glGetProgramResourceLocationFn(
3437 program, programInterface, name); 3586 program, programInterface, name);
3438 GL_SERVICE_LOG("GL_RESULT: " << result); 3587 GL_SERVICE_LOG("GL_RESULT: " << result);
3439 return result; 3588 return result;
3440 } 3589 }
3441 3590
3442 static void GL_BINDING_CALL 3591 static void GL_BINDING_CALL
3443 Debug_glGetProgramResourceName(GLuint program, 3592 Debug_glGetProgramResourceName(GLuint program,
3444 GLenum programInterface, 3593 GLenum programInterface,
3445 GLuint index, 3594 GLuint index,
3446 GLsizei bufSize, 3595 GLsizei bufSize,
3447 GLsizei* length, 3596 GLsizei* length,
3448 GLchar* name) { 3597 GLchar* name) {
3449 GL_SERVICE_LOG("glGetProgramResourceName" 3598 GL_SERVICE_LOG("glGetProgramResourceName"
3450 << "(" << program << ", " 3599 << "(" << program << ", "
3451 << GLEnums::GetStringEnum(programInterface) << ", " << index 3600 << GLEnums::GetStringEnum(programInterface) << ", " << index
3452 << ", " << bufSize << ", " << static_cast<const void*>(length) 3601 << ", " << bufSize << ", " << static_cast<const void*>(length)
3453 << ", " << static_cast<const void*>(name) << ")"); 3602 << ", " << static_cast<const void*>(name) << ")");
3603 DCHECK(g_driver_gl.debug_fn.glGetProgramResourceNameFn != nullptr);
3454 g_driver_gl.debug_fn.glGetProgramResourceNameFn(program, programInterface, 3604 g_driver_gl.debug_fn.glGetProgramResourceNameFn(program, programInterface,
3455 index, bufSize, length, name); 3605 index, bufSize, length, name);
3456 } 3606 }
3457 3607
3458 static void GL_BINDING_CALL Debug_glGetQueryiv(GLenum target, 3608 static void GL_BINDING_CALL Debug_glGetQueryiv(GLenum target,
3459 GLenum pname, 3609 GLenum pname,
3460 GLint* params) { 3610 GLint* params) {
3461 GL_SERVICE_LOG("glGetQueryiv" 3611 GL_SERVICE_LOG("glGetQueryiv"
3462 << "(" << GLEnums::GetStringEnum(target) << ", " 3612 << "(" << GLEnums::GetStringEnum(target) << ", "
3463 << GLEnums::GetStringEnum(pname) << ", " 3613 << GLEnums::GetStringEnum(pname) << ", "
3464 << static_cast<const void*>(params) << ")"); 3614 << static_cast<const void*>(params) << ")");
3615 DCHECK(g_driver_gl.debug_fn.glGetQueryivFn != nullptr);
3465 g_driver_gl.debug_fn.glGetQueryivFn(target, pname, params); 3616 g_driver_gl.debug_fn.glGetQueryivFn(target, pname, params);
3466 } 3617 }
3467 3618
3468 static void GL_BINDING_CALL Debug_glGetQueryObjecti64v(GLuint id, 3619 static void GL_BINDING_CALL Debug_glGetQueryObjecti64v(GLuint id,
3469 GLenum pname, 3620 GLenum pname,
3470 GLint64* params) { 3621 GLint64* params) {
3471 GL_SERVICE_LOG("glGetQueryObjecti64v" 3622 GL_SERVICE_LOG("glGetQueryObjecti64v"
3472 << "(" << id << ", " << GLEnums::GetStringEnum(pname) << ", " 3623 << "(" << id << ", " << GLEnums::GetStringEnum(pname) << ", "
3473 << static_cast<const void*>(params) << ")"); 3624 << static_cast<const void*>(params) << ")");
3625 DCHECK(g_driver_gl.debug_fn.glGetQueryObjecti64vFn != nullptr);
3474 g_driver_gl.debug_fn.glGetQueryObjecti64vFn(id, pname, params); 3626 g_driver_gl.debug_fn.glGetQueryObjecti64vFn(id, pname, params);
3475 } 3627 }
3476 3628
3477 static void GL_BINDING_CALL Debug_glGetQueryObjectiv(GLuint id, 3629 static void GL_BINDING_CALL Debug_glGetQueryObjectiv(GLuint id,
3478 GLenum pname, 3630 GLenum pname,
3479 GLint* params) { 3631 GLint* params) {
3480 GL_SERVICE_LOG("glGetQueryObjectiv" 3632 GL_SERVICE_LOG("glGetQueryObjectiv"
3481 << "(" << id << ", " << GLEnums::GetStringEnum(pname) << ", " 3633 << "(" << id << ", " << GLEnums::GetStringEnum(pname) << ", "
3482 << static_cast<const void*>(params) << ")"); 3634 << static_cast<const void*>(params) << ")");
3635 DCHECK(g_driver_gl.debug_fn.glGetQueryObjectivFn != nullptr);
3483 g_driver_gl.debug_fn.glGetQueryObjectivFn(id, pname, params); 3636 g_driver_gl.debug_fn.glGetQueryObjectivFn(id, pname, params);
3484 } 3637 }
3485 3638
3486 static void GL_BINDING_CALL Debug_glGetQueryObjectui64v(GLuint id, 3639 static void GL_BINDING_CALL Debug_glGetQueryObjectui64v(GLuint id,
3487 GLenum pname, 3640 GLenum pname,
3488 GLuint64* params) { 3641 GLuint64* params) {
3489 GL_SERVICE_LOG("glGetQueryObjectui64v" 3642 GL_SERVICE_LOG("glGetQueryObjectui64v"
3490 << "(" << id << ", " << GLEnums::GetStringEnum(pname) << ", " 3643 << "(" << id << ", " << GLEnums::GetStringEnum(pname) << ", "
3491 << static_cast<const void*>(params) << ")"); 3644 << static_cast<const void*>(params) << ")");
3645 DCHECK(g_driver_gl.debug_fn.glGetQueryObjectui64vFn != nullptr);
3492 g_driver_gl.debug_fn.glGetQueryObjectui64vFn(id, pname, params); 3646 g_driver_gl.debug_fn.glGetQueryObjectui64vFn(id, pname, params);
3493 } 3647 }
3494 3648
3495 static void GL_BINDING_CALL Debug_glGetQueryObjectuiv(GLuint id, 3649 static void GL_BINDING_CALL Debug_glGetQueryObjectuiv(GLuint id,
3496 GLenum pname, 3650 GLenum pname,
3497 GLuint* params) { 3651 GLuint* params) {
3498 GL_SERVICE_LOG("glGetQueryObjectuiv" 3652 GL_SERVICE_LOG("glGetQueryObjectuiv"
3499 << "(" << id << ", " << GLEnums::GetStringEnum(pname) << ", " 3653 << "(" << id << ", " << GLEnums::GetStringEnum(pname) << ", "
3500 << static_cast<const void*>(params) << ")"); 3654 << static_cast<const void*>(params) << ")");
3655 DCHECK(g_driver_gl.debug_fn.glGetQueryObjectuivFn != nullptr);
3501 g_driver_gl.debug_fn.glGetQueryObjectuivFn(id, pname, params); 3656 g_driver_gl.debug_fn.glGetQueryObjectuivFn(id, pname, params);
3502 } 3657 }
3503 3658
3504 static void GL_BINDING_CALL 3659 static void GL_BINDING_CALL
3505 Debug_glGetRenderbufferParameterivEXT(GLenum target, 3660 Debug_glGetRenderbufferParameterivEXT(GLenum target,
3506 GLenum pname, 3661 GLenum pname,
3507 GLint* params) { 3662 GLint* params) {
3508 GL_SERVICE_LOG("glGetRenderbufferParameterivEXT" 3663 GL_SERVICE_LOG("glGetRenderbufferParameterivEXT"
3509 << "(" << GLEnums::GetStringEnum(target) << ", " 3664 << "(" << GLEnums::GetStringEnum(target) << ", "
3510 << GLEnums::GetStringEnum(pname) << ", " 3665 << GLEnums::GetStringEnum(pname) << ", "
3511 << static_cast<const void*>(params) << ")"); 3666 << static_cast<const void*>(params) << ")");
3667 DCHECK(g_driver_gl.debug_fn.glGetRenderbufferParameterivEXTFn != nullptr);
3512 g_driver_gl.debug_fn.glGetRenderbufferParameterivEXTFn(target, pname, params); 3668 g_driver_gl.debug_fn.glGetRenderbufferParameterivEXTFn(target, pname, params);
3513 } 3669 }
3514 3670
3515 static void GL_BINDING_CALL Debug_glGetSamplerParameterfv(GLuint sampler, 3671 static void GL_BINDING_CALL Debug_glGetSamplerParameterfv(GLuint sampler,
3516 GLenum pname, 3672 GLenum pname,
3517 GLfloat* params) { 3673 GLfloat* params) {
3518 GL_SERVICE_LOG("glGetSamplerParameterfv" 3674 GL_SERVICE_LOG("glGetSamplerParameterfv"
3519 << "(" << sampler << ", " << GLEnums::GetStringEnum(pname) 3675 << "(" << sampler << ", " << GLEnums::GetStringEnum(pname)
3520 << ", " << static_cast<const void*>(params) << ")"); 3676 << ", " << static_cast<const void*>(params) << ")");
3677 DCHECK(g_driver_gl.debug_fn.glGetSamplerParameterfvFn != nullptr);
3521 g_driver_gl.debug_fn.glGetSamplerParameterfvFn(sampler, pname, params); 3678 g_driver_gl.debug_fn.glGetSamplerParameterfvFn(sampler, pname, params);
3522 } 3679 }
3523 3680
3524 static void GL_BINDING_CALL Debug_glGetSamplerParameteriv(GLuint sampler, 3681 static void GL_BINDING_CALL Debug_glGetSamplerParameteriv(GLuint sampler,
3525 GLenum pname, 3682 GLenum pname,
3526 GLint* params) { 3683 GLint* params) {
3527 GL_SERVICE_LOG("glGetSamplerParameteriv" 3684 GL_SERVICE_LOG("glGetSamplerParameteriv"
3528 << "(" << sampler << ", " << GLEnums::GetStringEnum(pname) 3685 << "(" << sampler << ", " << GLEnums::GetStringEnum(pname)
3529 << ", " << static_cast<const void*>(params) << ")"); 3686 << ", " << static_cast<const void*>(params) << ")");
3687 DCHECK(g_driver_gl.debug_fn.glGetSamplerParameterivFn != nullptr);
3530 g_driver_gl.debug_fn.glGetSamplerParameterivFn(sampler, pname, params); 3688 g_driver_gl.debug_fn.glGetSamplerParameterivFn(sampler, pname, params);
3531 } 3689 }
3532 3690
3533 static void GL_BINDING_CALL Debug_glGetShaderInfoLog(GLuint shader, 3691 static void GL_BINDING_CALL Debug_glGetShaderInfoLog(GLuint shader,
3534 GLsizei bufsize, 3692 GLsizei bufsize,
3535 GLsizei* length, 3693 GLsizei* length,
3536 char* infolog) { 3694 char* infolog) {
3537 GL_SERVICE_LOG("glGetShaderInfoLog" 3695 GL_SERVICE_LOG("glGetShaderInfoLog"
3538 << "(" << shader << ", " << bufsize << ", " 3696 << "(" << shader << ", " << bufsize << ", "
3539 << static_cast<const void*>(length) << ", " 3697 << static_cast<const void*>(length) << ", "
3540 << static_cast<const void*>(infolog) << ")"); 3698 << static_cast<const void*>(infolog) << ")");
3699 DCHECK(g_driver_gl.debug_fn.glGetShaderInfoLogFn != nullptr);
3541 g_driver_gl.debug_fn.glGetShaderInfoLogFn(shader, bufsize, length, infolog); 3700 g_driver_gl.debug_fn.glGetShaderInfoLogFn(shader, bufsize, length, infolog);
3542 } 3701 }
3543 3702
3544 static void GL_BINDING_CALL Debug_glGetShaderiv(GLuint shader, 3703 static void GL_BINDING_CALL Debug_glGetShaderiv(GLuint shader,
3545 GLenum pname, 3704 GLenum pname,
3546 GLint* params) { 3705 GLint* params) {
3547 GL_SERVICE_LOG("glGetShaderiv" 3706 GL_SERVICE_LOG("glGetShaderiv"
3548 << "(" << shader << ", " << GLEnums::GetStringEnum(pname) 3707 << "(" << shader << ", " << GLEnums::GetStringEnum(pname)
3549 << ", " << static_cast<const void*>(params) << ")"); 3708 << ", " << static_cast<const void*>(params) << ")");
3709 DCHECK(g_driver_gl.debug_fn.glGetShaderivFn != nullptr);
3550 g_driver_gl.debug_fn.glGetShaderivFn(shader, pname, params); 3710 g_driver_gl.debug_fn.glGetShaderivFn(shader, pname, params);
3551 } 3711 }
3552 3712
3553 static void GL_BINDING_CALL 3713 static void GL_BINDING_CALL
3554 Debug_glGetShaderPrecisionFormat(GLenum shadertype, 3714 Debug_glGetShaderPrecisionFormat(GLenum shadertype,
3555 GLenum precisiontype, 3715 GLenum precisiontype,
3556 GLint* range, 3716 GLint* range,
3557 GLint* precision) { 3717 GLint* precision) {
3558 GL_SERVICE_LOG("glGetShaderPrecisionFormat" 3718 GL_SERVICE_LOG("glGetShaderPrecisionFormat"
3559 << "(" << GLEnums::GetStringEnum(shadertype) << ", " 3719 << "(" << GLEnums::GetStringEnum(shadertype) << ", "
3560 << GLEnums::GetStringEnum(precisiontype) << ", " 3720 << GLEnums::GetStringEnum(precisiontype) << ", "
3561 << static_cast<const void*>(range) << ", " 3721 << static_cast<const void*>(range) << ", "
3562 << static_cast<const void*>(precision) << ")"); 3722 << static_cast<const void*>(precision) << ")");
3723 DCHECK(g_driver_gl.debug_fn.glGetShaderPrecisionFormatFn != nullptr);
3563 g_driver_gl.debug_fn.glGetShaderPrecisionFormatFn(shadertype, precisiontype, 3724 g_driver_gl.debug_fn.glGetShaderPrecisionFormatFn(shadertype, precisiontype,
3564 range, precision); 3725 range, precision);
3565 } 3726 }
3566 3727
3567 static void GL_BINDING_CALL Debug_glGetShaderSource(GLuint shader, 3728 static void GL_BINDING_CALL Debug_glGetShaderSource(GLuint shader,
3568 GLsizei bufsize, 3729 GLsizei bufsize,
3569 GLsizei* length, 3730 GLsizei* length,
3570 char* source) { 3731 char* source) {
3571 GL_SERVICE_LOG("glGetShaderSource" 3732 GL_SERVICE_LOG("glGetShaderSource"
3572 << "(" << shader << ", " << bufsize << ", " 3733 << "(" << shader << ", " << bufsize << ", "
3573 << static_cast<const void*>(length) << ", " 3734 << static_cast<const void*>(length) << ", "
3574 << static_cast<const void*>(source) << ")"); 3735 << static_cast<const void*>(source) << ")");
3736 DCHECK(g_driver_gl.debug_fn.glGetShaderSourceFn != nullptr);
3575 g_driver_gl.debug_fn.glGetShaderSourceFn(shader, bufsize, length, source); 3737 g_driver_gl.debug_fn.glGetShaderSourceFn(shader, bufsize, length, source);
3576 } 3738 }
3577 3739
3578 static const GLubyte* GL_BINDING_CALL Debug_glGetString(GLenum name) { 3740 static const GLubyte* GL_BINDING_CALL Debug_glGetString(GLenum name) {
3579 GL_SERVICE_LOG("glGetString" 3741 GL_SERVICE_LOG("glGetString"
3580 << "(" << GLEnums::GetStringEnum(name) << ")"); 3742 << "(" << GLEnums::GetStringEnum(name) << ")");
3743 DCHECK(g_driver_gl.debug_fn.glGetStringFn != nullptr);
3581 const GLubyte* result = g_driver_gl.debug_fn.glGetStringFn(name); 3744 const GLubyte* result = g_driver_gl.debug_fn.glGetStringFn(name);
3582 GL_SERVICE_LOG("GL_RESULT: " << result); 3745 GL_SERVICE_LOG("GL_RESULT: " << result);
3583 return result; 3746 return result;
3584 } 3747 }
3585 3748
3586 static const GLubyte* GL_BINDING_CALL Debug_glGetStringi(GLenum name, 3749 static const GLubyte* GL_BINDING_CALL Debug_glGetStringi(GLenum name,
3587 GLuint index) { 3750 GLuint index) {
3588 GL_SERVICE_LOG("glGetStringi" 3751 GL_SERVICE_LOG("glGetStringi"
3589 << "(" << GLEnums::GetStringEnum(name) << ", " << index 3752 << "(" << GLEnums::GetStringEnum(name) << ", " << index
3590 << ")"); 3753 << ")");
3754 DCHECK(g_driver_gl.debug_fn.glGetStringiFn != nullptr);
3591 const GLubyte* result = g_driver_gl.debug_fn.glGetStringiFn(name, index); 3755 const GLubyte* result = g_driver_gl.debug_fn.glGetStringiFn(name, index);
3592 GL_SERVICE_LOG("GL_RESULT: " << result); 3756 GL_SERVICE_LOG("GL_RESULT: " << result);
3593 return result; 3757 return result;
3594 } 3758 }
3595 3759
3596 static void GL_BINDING_CALL Debug_glGetSynciv(GLsync sync, 3760 static void GL_BINDING_CALL Debug_glGetSynciv(GLsync sync,
3597 GLenum pname, 3761 GLenum pname,
3598 GLsizei bufSize, 3762 GLsizei bufSize,
3599 GLsizei* length, 3763 GLsizei* length,
3600 GLint* values) { 3764 GLint* values) {
3601 GL_SERVICE_LOG("glGetSynciv" 3765 GL_SERVICE_LOG("glGetSynciv"
3602 << "(" << sync << ", " << GLEnums::GetStringEnum(pname) << ", " 3766 << "(" << sync << ", " << GLEnums::GetStringEnum(pname) << ", "
3603 << bufSize << ", " << static_cast<const void*>(length) << ", " 3767 << bufSize << ", " << static_cast<const void*>(length) << ", "
3604 << static_cast<const void*>(values) << ")"); 3768 << static_cast<const void*>(values) << ")");
3769 DCHECK(g_driver_gl.debug_fn.glGetSyncivFn != nullptr);
3605 g_driver_gl.debug_fn.glGetSyncivFn(sync, pname, bufSize, length, values); 3770 g_driver_gl.debug_fn.glGetSyncivFn(sync, pname, bufSize, length, values);
3606 } 3771 }
3607 3772
3608 static void GL_BINDING_CALL Debug_glGetTexLevelParameterfv(GLenum target, 3773 static void GL_BINDING_CALL Debug_glGetTexLevelParameterfv(GLenum target,
3609 GLint level, 3774 GLint level,
3610 GLenum pname, 3775 GLenum pname,
3611 GLfloat* params) { 3776 GLfloat* params) {
3612 GL_SERVICE_LOG("glGetTexLevelParameterfv" 3777 GL_SERVICE_LOG("glGetTexLevelParameterfv"
3613 << "(" << GLEnums::GetStringEnum(target) << ", " << level 3778 << "(" << GLEnums::GetStringEnum(target) << ", " << level
3614 << ", " << GLEnums::GetStringEnum(pname) << ", " 3779 << ", " << GLEnums::GetStringEnum(pname) << ", "
3615 << static_cast<const void*>(params) << ")"); 3780 << static_cast<const void*>(params) << ")");
3781 DCHECK(g_driver_gl.debug_fn.glGetTexLevelParameterfvFn != nullptr);
3616 g_driver_gl.debug_fn.glGetTexLevelParameterfvFn(target, level, pname, params); 3782 g_driver_gl.debug_fn.glGetTexLevelParameterfvFn(target, level, pname, params);
3617 } 3783 }
3618 3784
3619 static void GL_BINDING_CALL Debug_glGetTexLevelParameteriv(GLenum target, 3785 static void GL_BINDING_CALL Debug_glGetTexLevelParameteriv(GLenum target,
3620 GLint level, 3786 GLint level,
3621 GLenum pname, 3787 GLenum pname,
3622 GLint* params) { 3788 GLint* params) {
3623 GL_SERVICE_LOG("glGetTexLevelParameteriv" 3789 GL_SERVICE_LOG("glGetTexLevelParameteriv"
3624 << "(" << GLEnums::GetStringEnum(target) << ", " << level 3790 << "(" << GLEnums::GetStringEnum(target) << ", " << level
3625 << ", " << GLEnums::GetStringEnum(pname) << ", " 3791 << ", " << GLEnums::GetStringEnum(pname) << ", "
3626 << static_cast<const void*>(params) << ")"); 3792 << static_cast<const void*>(params) << ")");
3793 DCHECK(g_driver_gl.debug_fn.glGetTexLevelParameterivFn != nullptr);
3627 g_driver_gl.debug_fn.glGetTexLevelParameterivFn(target, level, pname, params); 3794 g_driver_gl.debug_fn.glGetTexLevelParameterivFn(target, level, pname, params);
3628 } 3795 }
3629 3796
3630 static void GL_BINDING_CALL Debug_glGetTexParameterfv(GLenum target, 3797 static void GL_BINDING_CALL Debug_glGetTexParameterfv(GLenum target,
3631 GLenum pname, 3798 GLenum pname,
3632 GLfloat* params) { 3799 GLfloat* params) {
3633 GL_SERVICE_LOG("glGetTexParameterfv" 3800 GL_SERVICE_LOG("glGetTexParameterfv"
3634 << "(" << GLEnums::GetStringEnum(target) << ", " 3801 << "(" << GLEnums::GetStringEnum(target) << ", "
3635 << GLEnums::GetStringEnum(pname) << ", " 3802 << GLEnums::GetStringEnum(pname) << ", "
3636 << static_cast<const void*>(params) << ")"); 3803 << static_cast<const void*>(params) << ")");
3804 DCHECK(g_driver_gl.debug_fn.glGetTexParameterfvFn != nullptr);
3637 g_driver_gl.debug_fn.glGetTexParameterfvFn(target, pname, params); 3805 g_driver_gl.debug_fn.glGetTexParameterfvFn(target, pname, params);
3638 } 3806 }
3639 3807
3640 static void GL_BINDING_CALL Debug_glGetTexParameteriv(GLenum target, 3808 static void GL_BINDING_CALL Debug_glGetTexParameteriv(GLenum target,
3641 GLenum pname, 3809 GLenum pname,
3642 GLint* params) { 3810 GLint* params) {
3643 GL_SERVICE_LOG("glGetTexParameteriv" 3811 GL_SERVICE_LOG("glGetTexParameteriv"
3644 << "(" << GLEnums::GetStringEnum(target) << ", " 3812 << "(" << GLEnums::GetStringEnum(target) << ", "
3645 << GLEnums::GetStringEnum(pname) << ", " 3813 << GLEnums::GetStringEnum(pname) << ", "
3646 << static_cast<const void*>(params) << ")"); 3814 << static_cast<const void*>(params) << ")");
3815 DCHECK(g_driver_gl.debug_fn.glGetTexParameterivFn != nullptr);
3647 g_driver_gl.debug_fn.glGetTexParameterivFn(target, pname, params); 3816 g_driver_gl.debug_fn.glGetTexParameterivFn(target, pname, params);
3648 } 3817 }
3649 3818
3650 static void GL_BINDING_CALL Debug_glGetTransformFeedbackVarying(GLuint program, 3819 static void GL_BINDING_CALL Debug_glGetTransformFeedbackVarying(GLuint program,
3651 GLuint index, 3820 GLuint index,
3652 GLsizei bufSize, 3821 GLsizei bufSize,
3653 GLsizei* length, 3822 GLsizei* length,
3654 GLsizei* size, 3823 GLsizei* size,
3655 GLenum* type, 3824 GLenum* type,
3656 char* name) { 3825 char* name) {
3657 GL_SERVICE_LOG("glGetTransformFeedbackVarying" 3826 GL_SERVICE_LOG("glGetTransformFeedbackVarying"
3658 << "(" << program << ", " << index << ", " << bufSize << ", " 3827 << "(" << program << ", " << index << ", " << bufSize << ", "
3659 << static_cast<const void*>(length) << ", " 3828 << static_cast<const void*>(length) << ", "
3660 << static_cast<const void*>(size) << ", " 3829 << static_cast<const void*>(size) << ", "
3661 << static_cast<const void*>(type) << ", " 3830 << static_cast<const void*>(type) << ", "
3662 << static_cast<const void*>(name) << ")"); 3831 << static_cast<const void*>(name) << ")");
3832 DCHECK(g_driver_gl.debug_fn.glGetTransformFeedbackVaryingFn != nullptr);
3663 g_driver_gl.debug_fn.glGetTransformFeedbackVaryingFn( 3833 g_driver_gl.debug_fn.glGetTransformFeedbackVaryingFn(
3664 program, index, bufSize, length, size, type, name); 3834 program, index, bufSize, length, size, type, name);
3665 } 3835 }
3666 3836
3667 static void GL_BINDING_CALL 3837 static void GL_BINDING_CALL
3668 Debug_glGetTranslatedShaderSourceANGLE(GLuint shader, 3838 Debug_glGetTranslatedShaderSourceANGLE(GLuint shader,
3669 GLsizei bufsize, 3839 GLsizei bufsize,
3670 GLsizei* length, 3840 GLsizei* length,
3671 char* source) { 3841 char* source) {
3672 GL_SERVICE_LOG("glGetTranslatedShaderSourceANGLE" 3842 GL_SERVICE_LOG("glGetTranslatedShaderSourceANGLE"
3673 << "(" << shader << ", " << bufsize << ", " 3843 << "(" << shader << ", " << bufsize << ", "
3674 << static_cast<const void*>(length) << ", " 3844 << static_cast<const void*>(length) << ", "
3675 << static_cast<const void*>(source) << ")"); 3845 << static_cast<const void*>(source) << ")");
3846 DCHECK(g_driver_gl.debug_fn.glGetTranslatedShaderSourceANGLEFn != nullptr);
3676 g_driver_gl.debug_fn.glGetTranslatedShaderSourceANGLEFn(shader, bufsize, 3847 g_driver_gl.debug_fn.glGetTranslatedShaderSourceANGLEFn(shader, bufsize,
3677 length, source); 3848 length, source);
3678 } 3849 }
3679 3850
3680 static GLuint GL_BINDING_CALL 3851 static GLuint GL_BINDING_CALL
3681 Debug_glGetUniformBlockIndex(GLuint program, const char* uniformBlockName) { 3852 Debug_glGetUniformBlockIndex(GLuint program, const char* uniformBlockName) {
3682 GL_SERVICE_LOG("glGetUniformBlockIndex" 3853 GL_SERVICE_LOG("glGetUniformBlockIndex"
3683 << "(" << program << ", " << uniformBlockName << ")"); 3854 << "(" << program << ", " << uniformBlockName << ")");
3855 DCHECK(g_driver_gl.debug_fn.glGetUniformBlockIndexFn != nullptr);
3684 GLuint result = 3856 GLuint result =
3685 g_driver_gl.debug_fn.glGetUniformBlockIndexFn(program, uniformBlockName); 3857 g_driver_gl.debug_fn.glGetUniformBlockIndexFn(program, uniformBlockName);
3686 GL_SERVICE_LOG("GL_RESULT: " << result); 3858 GL_SERVICE_LOG("GL_RESULT: " << result);
3687 return result; 3859 return result;
3688 } 3860 }
3689 3861
3690 static void GL_BINDING_CALL Debug_glGetUniformfv(GLuint program, 3862 static void GL_BINDING_CALL Debug_glGetUniformfv(GLuint program,
3691 GLint location, 3863 GLint location,
3692 GLfloat* params) { 3864 GLfloat* params) {
3693 GL_SERVICE_LOG("glGetUniformfv" 3865 GL_SERVICE_LOG("glGetUniformfv"
3694 << "(" << program << ", " << location << ", " 3866 << "(" << program << ", " << location << ", "
3695 << static_cast<const void*>(params) << ")"); 3867 << static_cast<const void*>(params) << ")");
3868 DCHECK(g_driver_gl.debug_fn.glGetUniformfvFn != nullptr);
3696 g_driver_gl.debug_fn.glGetUniformfvFn(program, location, params); 3869 g_driver_gl.debug_fn.glGetUniformfvFn(program, location, params);
3697 } 3870 }
3698 3871
3699 static void GL_BINDING_CALL 3872 static void GL_BINDING_CALL
3700 Debug_glGetUniformIndices(GLuint program, 3873 Debug_glGetUniformIndices(GLuint program,
3701 GLsizei uniformCount, 3874 GLsizei uniformCount,
3702 const char* const* uniformNames, 3875 const char* const* uniformNames,
3703 GLuint* uniformIndices) { 3876 GLuint* uniformIndices) {
3704 GL_SERVICE_LOG("glGetUniformIndices" 3877 GL_SERVICE_LOG("glGetUniformIndices"
3705 << "(" << program << ", " << uniformCount << ", " 3878 << "(" << program << ", " << uniformCount << ", "
3706 << static_cast<const void*>(uniformNames) << ", " 3879 << static_cast<const void*>(uniformNames) << ", "
3707 << static_cast<const void*>(uniformIndices) << ")"); 3880 << static_cast<const void*>(uniformIndices) << ")");
3881 DCHECK(g_driver_gl.debug_fn.glGetUniformIndicesFn != nullptr);
3708 g_driver_gl.debug_fn.glGetUniformIndicesFn(program, uniformCount, 3882 g_driver_gl.debug_fn.glGetUniformIndicesFn(program, uniformCount,
3709 uniformNames, uniformIndices); 3883 uniformNames, uniformIndices);
3710 } 3884 }
3711 3885
3712 static void GL_BINDING_CALL Debug_glGetUniformiv(GLuint program, 3886 static void GL_BINDING_CALL Debug_glGetUniformiv(GLuint program,
3713 GLint location, 3887 GLint location,
3714 GLint* params) { 3888 GLint* params) {
3715 GL_SERVICE_LOG("glGetUniformiv" 3889 GL_SERVICE_LOG("glGetUniformiv"
3716 << "(" << program << ", " << location << ", " 3890 << "(" << program << ", " << location << ", "
3717 << static_cast<const void*>(params) << ")"); 3891 << static_cast<const void*>(params) << ")");
3892 DCHECK(g_driver_gl.debug_fn.glGetUniformivFn != nullptr);
3718 g_driver_gl.debug_fn.glGetUniformivFn(program, location, params); 3893 g_driver_gl.debug_fn.glGetUniformivFn(program, location, params);
3719 } 3894 }
3720 3895
3721 static GLint GL_BINDING_CALL Debug_glGetUniformLocation(GLuint program, 3896 static GLint GL_BINDING_CALL Debug_glGetUniformLocation(GLuint program,
3722 const char* name) { 3897 const char* name) {
3723 GL_SERVICE_LOG("glGetUniformLocation" 3898 GL_SERVICE_LOG("glGetUniformLocation"
3724 << "(" << program << ", " << name << ")"); 3899 << "(" << program << ", " << name << ")");
3900 DCHECK(g_driver_gl.debug_fn.glGetUniformLocationFn != nullptr);
3725 GLint result = g_driver_gl.debug_fn.glGetUniformLocationFn(program, name); 3901 GLint result = g_driver_gl.debug_fn.glGetUniformLocationFn(program, name);
3726 GL_SERVICE_LOG("GL_RESULT: " << result); 3902 GL_SERVICE_LOG("GL_RESULT: " << result);
3727 return result; 3903 return result;
3728 } 3904 }
3729 3905
3730 static void GL_BINDING_CALL Debug_glGetUniformuiv(GLuint program, 3906 static void GL_BINDING_CALL Debug_glGetUniformuiv(GLuint program,
3731 GLint location, 3907 GLint location,
3732 GLuint* params) { 3908 GLuint* params) {
3733 GL_SERVICE_LOG("glGetUniformuiv" 3909 GL_SERVICE_LOG("glGetUniformuiv"
3734 << "(" << program << ", " << location << ", " 3910 << "(" << program << ", " << location << ", "
3735 << static_cast<const void*>(params) << ")"); 3911 << static_cast<const void*>(params) << ")");
3912 DCHECK(g_driver_gl.debug_fn.glGetUniformuivFn != nullptr);
3736 g_driver_gl.debug_fn.glGetUniformuivFn(program, location, params); 3913 g_driver_gl.debug_fn.glGetUniformuivFn(program, location, params);
3737 } 3914 }
3738 3915
3739 static void GL_BINDING_CALL Debug_glGetVertexAttribfv(GLuint index, 3916 static void GL_BINDING_CALL Debug_glGetVertexAttribfv(GLuint index,
3740 GLenum pname, 3917 GLenum pname,
3741 GLfloat* params) { 3918 GLfloat* params) {
3742 GL_SERVICE_LOG("glGetVertexAttribfv" 3919 GL_SERVICE_LOG("glGetVertexAttribfv"
3743 << "(" << index << ", " << GLEnums::GetStringEnum(pname) 3920 << "(" << index << ", " << GLEnums::GetStringEnum(pname)
3744 << ", " << static_cast<const void*>(params) << ")"); 3921 << ", " << static_cast<const void*>(params) << ")");
3922 DCHECK(g_driver_gl.debug_fn.glGetVertexAttribfvFn != nullptr);
3745 g_driver_gl.debug_fn.glGetVertexAttribfvFn(index, pname, params); 3923 g_driver_gl.debug_fn.glGetVertexAttribfvFn(index, pname, params);
3746 } 3924 }
3747 3925
3748 static void GL_BINDING_CALL Debug_glGetVertexAttribiv(GLuint index, 3926 static void GL_BINDING_CALL Debug_glGetVertexAttribiv(GLuint index,
3749 GLenum pname, 3927 GLenum pname,
3750 GLint* params) { 3928 GLint* params) {
3751 GL_SERVICE_LOG("glGetVertexAttribiv" 3929 GL_SERVICE_LOG("glGetVertexAttribiv"
3752 << "(" << index << ", " << GLEnums::GetStringEnum(pname) 3930 << "(" << index << ", " << GLEnums::GetStringEnum(pname)
3753 << ", " << static_cast<const void*>(params) << ")"); 3931 << ", " << static_cast<const void*>(params) << ")");
3932 DCHECK(g_driver_gl.debug_fn.glGetVertexAttribivFn != nullptr);
3754 g_driver_gl.debug_fn.glGetVertexAttribivFn(index, pname, params); 3933 g_driver_gl.debug_fn.glGetVertexAttribivFn(index, pname, params);
3755 } 3934 }
3756 3935
3757 static void GL_BINDING_CALL Debug_glGetVertexAttribPointerv(GLuint index, 3936 static void GL_BINDING_CALL Debug_glGetVertexAttribPointerv(GLuint index,
3758 GLenum pname, 3937 GLenum pname,
3759 void** pointer) { 3938 void** pointer) {
3760 GL_SERVICE_LOG("glGetVertexAttribPointerv" 3939 GL_SERVICE_LOG("glGetVertexAttribPointerv"
3761 << "(" << index << ", " << GLEnums::GetStringEnum(pname) 3940 << "(" << index << ", " << GLEnums::GetStringEnum(pname)
3762 << ", " << pointer << ")"); 3941 << ", " << pointer << ")");
3942 DCHECK(g_driver_gl.debug_fn.glGetVertexAttribPointervFn != nullptr);
3763 g_driver_gl.debug_fn.glGetVertexAttribPointervFn(index, pname, pointer); 3943 g_driver_gl.debug_fn.glGetVertexAttribPointervFn(index, pname, pointer);
3764 } 3944 }
3765 3945
3766 static void GL_BINDING_CALL Debug_glHint(GLenum target, GLenum mode) { 3946 static void GL_BINDING_CALL Debug_glHint(GLenum target, GLenum mode) {
3767 GL_SERVICE_LOG("glHint" 3947 GL_SERVICE_LOG("glHint"
3768 << "(" << GLEnums::GetStringEnum(target) << ", " 3948 << "(" << GLEnums::GetStringEnum(target) << ", "
3769 << GLEnums::GetStringEnum(mode) << ")"); 3949 << GLEnums::GetStringEnum(mode) << ")");
3950 DCHECK(g_driver_gl.debug_fn.glHintFn != nullptr);
3770 g_driver_gl.debug_fn.glHintFn(target, mode); 3951 g_driver_gl.debug_fn.glHintFn(target, mode);
3771 } 3952 }
3772 3953
3773 static void GL_BINDING_CALL Debug_glInsertEventMarkerEXT(GLsizei length, 3954 static void GL_BINDING_CALL Debug_glInsertEventMarkerEXT(GLsizei length,
3774 const char* marker) { 3955 const char* marker) {
3775 GL_SERVICE_LOG("glInsertEventMarkerEXT" 3956 GL_SERVICE_LOG("glInsertEventMarkerEXT"
3776 << "(" << length << ", " << marker << ")"); 3957 << "(" << length << ", " << marker << ")");
3958 DCHECK(g_driver_gl.debug_fn.glInsertEventMarkerEXTFn != nullptr);
3777 g_driver_gl.debug_fn.glInsertEventMarkerEXTFn(length, marker); 3959 g_driver_gl.debug_fn.glInsertEventMarkerEXTFn(length, marker);
3778 } 3960 }
3779 3961
3780 static void GL_BINDING_CALL 3962 static void GL_BINDING_CALL
3781 Debug_glInvalidateFramebuffer(GLenum target, 3963 Debug_glInvalidateFramebuffer(GLenum target,
3782 GLsizei numAttachments, 3964 GLsizei numAttachments,
3783 const GLenum* attachments) { 3965 const GLenum* attachments) {
3784 GL_SERVICE_LOG("glInvalidateFramebuffer" 3966 GL_SERVICE_LOG("glInvalidateFramebuffer"
3785 << "(" << GLEnums::GetStringEnum(target) << ", " 3967 << "(" << GLEnums::GetStringEnum(target) << ", "
3786 << numAttachments << ", " 3968 << numAttachments << ", "
3787 << static_cast<const void*>(attachments) << ")"); 3969 << static_cast<const void*>(attachments) << ")");
3970 DCHECK(g_driver_gl.debug_fn.glInvalidateFramebufferFn != nullptr);
3788 g_driver_gl.debug_fn.glInvalidateFramebufferFn(target, numAttachments, 3971 g_driver_gl.debug_fn.glInvalidateFramebufferFn(target, numAttachments,
3789 attachments); 3972 attachments);
3790 } 3973 }
3791 3974
3792 static void GL_BINDING_CALL 3975 static void GL_BINDING_CALL
3793 Debug_glInvalidateSubFramebuffer(GLenum target, 3976 Debug_glInvalidateSubFramebuffer(GLenum target,
3794 GLsizei numAttachments, 3977 GLsizei numAttachments,
3795 const GLenum* attachments, 3978 const GLenum* attachments,
3796 GLint x, 3979 GLint x,
3797 GLint y, 3980 GLint y,
3798 GLint width, 3981 GLint width,
3799 GLint height) { 3982 GLint height) {
3800 GL_SERVICE_LOG("glInvalidateSubFramebuffer" 3983 GL_SERVICE_LOG("glInvalidateSubFramebuffer"
3801 << "(" << GLEnums::GetStringEnum(target) << ", " 3984 << "(" << GLEnums::GetStringEnum(target) << ", "
3802 << numAttachments << ", " 3985 << numAttachments << ", "
3803 << static_cast<const void*>(attachments) << ", " << x << ", " 3986 << static_cast<const void*>(attachments) << ", " << x << ", "
3804 << y << ", " << width << ", " << height << ")"); 3987 << y << ", " << width << ", " << height << ")");
3988 DCHECK(g_driver_gl.debug_fn.glInvalidateSubFramebufferFn != nullptr);
3805 g_driver_gl.debug_fn.glInvalidateSubFramebufferFn( 3989 g_driver_gl.debug_fn.glInvalidateSubFramebufferFn(
3806 target, numAttachments, attachments, x, y, width, height); 3990 target, numAttachments, attachments, x, y, width, height);
3807 } 3991 }
3808 3992
3809 static GLboolean GL_BINDING_CALL Debug_glIsBuffer(GLuint buffer) { 3993 static GLboolean GL_BINDING_CALL Debug_glIsBuffer(GLuint buffer) {
3810 GL_SERVICE_LOG("glIsBuffer" 3994 GL_SERVICE_LOG("glIsBuffer"
3811 << "(" << buffer << ")"); 3995 << "(" << buffer << ")");
3996 DCHECK(g_driver_gl.debug_fn.glIsBufferFn != nullptr);
3812 GLboolean result = g_driver_gl.debug_fn.glIsBufferFn(buffer); 3997 GLboolean result = g_driver_gl.debug_fn.glIsBufferFn(buffer);
3813 GL_SERVICE_LOG("GL_RESULT: " << result); 3998 GL_SERVICE_LOG("GL_RESULT: " << result);
3814 return result; 3999 return result;
3815 } 4000 }
3816 4001
3817 static GLboolean GL_BINDING_CALL Debug_glIsEnabled(GLenum cap) { 4002 static GLboolean GL_BINDING_CALL Debug_glIsEnabled(GLenum cap) {
3818 GL_SERVICE_LOG("glIsEnabled" 4003 GL_SERVICE_LOG("glIsEnabled"
3819 << "(" << GLEnums::GetStringEnum(cap) << ")"); 4004 << "(" << GLEnums::GetStringEnum(cap) << ")");
4005 DCHECK(g_driver_gl.debug_fn.glIsEnabledFn != nullptr);
3820 GLboolean result = g_driver_gl.debug_fn.glIsEnabledFn(cap); 4006 GLboolean result = g_driver_gl.debug_fn.glIsEnabledFn(cap);
3821 GL_SERVICE_LOG("GL_RESULT: " << result); 4007 GL_SERVICE_LOG("GL_RESULT: " << result);
3822 return result; 4008 return result;
3823 } 4009 }
3824 4010
3825 static GLboolean GL_BINDING_CALL Debug_glIsFenceAPPLE(GLuint fence) { 4011 static GLboolean GL_BINDING_CALL Debug_glIsFenceAPPLE(GLuint fence) {
3826 GL_SERVICE_LOG("glIsFenceAPPLE" 4012 GL_SERVICE_LOG("glIsFenceAPPLE"
3827 << "(" << fence << ")"); 4013 << "(" << fence << ")");
4014 DCHECK(g_driver_gl.debug_fn.glIsFenceAPPLEFn != nullptr);
3828 GLboolean result = g_driver_gl.debug_fn.glIsFenceAPPLEFn(fence); 4015 GLboolean result = g_driver_gl.debug_fn.glIsFenceAPPLEFn(fence);
3829 GL_SERVICE_LOG("GL_RESULT: " << result); 4016 GL_SERVICE_LOG("GL_RESULT: " << result);
3830 return result; 4017 return result;
3831 } 4018 }
3832 4019
3833 static GLboolean GL_BINDING_CALL Debug_glIsFenceNV(GLuint fence) { 4020 static GLboolean GL_BINDING_CALL Debug_glIsFenceNV(GLuint fence) {
3834 GL_SERVICE_LOG("glIsFenceNV" 4021 GL_SERVICE_LOG("glIsFenceNV"
3835 << "(" << fence << ")"); 4022 << "(" << fence << ")");
4023 DCHECK(g_driver_gl.debug_fn.glIsFenceNVFn != nullptr);
3836 GLboolean result = g_driver_gl.debug_fn.glIsFenceNVFn(fence); 4024 GLboolean result = g_driver_gl.debug_fn.glIsFenceNVFn(fence);
3837 GL_SERVICE_LOG("GL_RESULT: " << result); 4025 GL_SERVICE_LOG("GL_RESULT: " << result);
3838 return result; 4026 return result;
3839 } 4027 }
3840 4028
3841 static GLboolean GL_BINDING_CALL Debug_glIsFramebufferEXT(GLuint framebuffer) { 4029 static GLboolean GL_BINDING_CALL Debug_glIsFramebufferEXT(GLuint framebuffer) {
3842 GL_SERVICE_LOG("glIsFramebufferEXT" 4030 GL_SERVICE_LOG("glIsFramebufferEXT"
3843 << "(" << framebuffer << ")"); 4031 << "(" << framebuffer << ")");
4032 DCHECK(g_driver_gl.debug_fn.glIsFramebufferEXTFn != nullptr);
3844 GLboolean result = g_driver_gl.debug_fn.glIsFramebufferEXTFn(framebuffer); 4033 GLboolean result = g_driver_gl.debug_fn.glIsFramebufferEXTFn(framebuffer);
3845 GL_SERVICE_LOG("GL_RESULT: " << result); 4034 GL_SERVICE_LOG("GL_RESULT: " << result);
3846 return result; 4035 return result;
3847 } 4036 }
3848 4037
3849 static GLboolean GL_BINDING_CALL Debug_glIsPathNV(GLuint path) { 4038 static GLboolean GL_BINDING_CALL Debug_glIsPathNV(GLuint path) {
3850 GL_SERVICE_LOG("glIsPathNV" 4039 GL_SERVICE_LOG("glIsPathNV"
3851 << "(" << path << ")"); 4040 << "(" << path << ")");
4041 DCHECK(g_driver_gl.debug_fn.glIsPathNVFn != nullptr);
3852 GLboolean result = g_driver_gl.debug_fn.glIsPathNVFn(path); 4042 GLboolean result = g_driver_gl.debug_fn.glIsPathNVFn(path);
3853 GL_SERVICE_LOG("GL_RESULT: " << result); 4043 GL_SERVICE_LOG("GL_RESULT: " << result);
3854 return result; 4044 return result;
3855 } 4045 }
3856 4046
3857 static GLboolean GL_BINDING_CALL Debug_glIsProgram(GLuint program) { 4047 static GLboolean GL_BINDING_CALL Debug_glIsProgram(GLuint program) {
3858 GL_SERVICE_LOG("glIsProgram" 4048 GL_SERVICE_LOG("glIsProgram"
3859 << "(" << program << ")"); 4049 << "(" << program << ")");
4050 DCHECK(g_driver_gl.debug_fn.glIsProgramFn != nullptr);
3860 GLboolean result = g_driver_gl.debug_fn.glIsProgramFn(program); 4051 GLboolean result = g_driver_gl.debug_fn.glIsProgramFn(program);
3861 GL_SERVICE_LOG("GL_RESULT: " << result); 4052 GL_SERVICE_LOG("GL_RESULT: " << result);
3862 return result; 4053 return result;
3863 } 4054 }
3864 4055
3865 static GLboolean GL_BINDING_CALL Debug_glIsQuery(GLuint query) { 4056 static GLboolean GL_BINDING_CALL Debug_glIsQuery(GLuint query) {
3866 GL_SERVICE_LOG("glIsQuery" 4057 GL_SERVICE_LOG("glIsQuery"
3867 << "(" << query << ")"); 4058 << "(" << query << ")");
4059 DCHECK(g_driver_gl.debug_fn.glIsQueryFn != nullptr);
3868 GLboolean result = g_driver_gl.debug_fn.glIsQueryFn(query); 4060 GLboolean result = g_driver_gl.debug_fn.glIsQueryFn(query);
3869 GL_SERVICE_LOG("GL_RESULT: " << result); 4061 GL_SERVICE_LOG("GL_RESULT: " << result);
3870 return result; 4062 return result;
3871 } 4063 }
3872 4064
3873 static GLboolean GL_BINDING_CALL 4065 static GLboolean GL_BINDING_CALL
3874 Debug_glIsRenderbufferEXT(GLuint renderbuffer) { 4066 Debug_glIsRenderbufferEXT(GLuint renderbuffer) {
3875 GL_SERVICE_LOG("glIsRenderbufferEXT" 4067 GL_SERVICE_LOG("glIsRenderbufferEXT"
3876 << "(" << renderbuffer << ")"); 4068 << "(" << renderbuffer << ")");
4069 DCHECK(g_driver_gl.debug_fn.glIsRenderbufferEXTFn != nullptr);
3877 GLboolean result = g_driver_gl.debug_fn.glIsRenderbufferEXTFn(renderbuffer); 4070 GLboolean result = g_driver_gl.debug_fn.glIsRenderbufferEXTFn(renderbuffer);
3878 GL_SERVICE_LOG("GL_RESULT: " << result); 4071 GL_SERVICE_LOG("GL_RESULT: " << result);
3879 return result; 4072 return result;
3880 } 4073 }
3881 4074
3882 static GLboolean GL_BINDING_CALL Debug_glIsSampler(GLuint sampler) { 4075 static GLboolean GL_BINDING_CALL Debug_glIsSampler(GLuint sampler) {
3883 GL_SERVICE_LOG("glIsSampler" 4076 GL_SERVICE_LOG("glIsSampler"
3884 << "(" << sampler << ")"); 4077 << "(" << sampler << ")");
4078 DCHECK(g_driver_gl.debug_fn.glIsSamplerFn != nullptr);
3885 GLboolean result = g_driver_gl.debug_fn.glIsSamplerFn(sampler); 4079 GLboolean result = g_driver_gl.debug_fn.glIsSamplerFn(sampler);
3886 GL_SERVICE_LOG("GL_RESULT: " << result); 4080 GL_SERVICE_LOG("GL_RESULT: " << result);
3887 return result; 4081 return result;
3888 } 4082 }
3889 4083
3890 static GLboolean GL_BINDING_CALL Debug_glIsShader(GLuint shader) { 4084 static GLboolean GL_BINDING_CALL Debug_glIsShader(GLuint shader) {
3891 GL_SERVICE_LOG("glIsShader" 4085 GL_SERVICE_LOG("glIsShader"
3892 << "(" << shader << ")"); 4086 << "(" << shader << ")");
4087 DCHECK(g_driver_gl.debug_fn.glIsShaderFn != nullptr);
3893 GLboolean result = g_driver_gl.debug_fn.glIsShaderFn(shader); 4088 GLboolean result = g_driver_gl.debug_fn.glIsShaderFn(shader);
3894 GL_SERVICE_LOG("GL_RESULT: " << result); 4089 GL_SERVICE_LOG("GL_RESULT: " << result);
3895 return result; 4090 return result;
3896 } 4091 }
3897 4092
3898 static GLboolean GL_BINDING_CALL Debug_glIsSync(GLsync sync) { 4093 static GLboolean GL_BINDING_CALL Debug_glIsSync(GLsync sync) {
3899 GL_SERVICE_LOG("glIsSync" 4094 GL_SERVICE_LOG("glIsSync"
3900 << "(" << sync << ")"); 4095 << "(" << sync << ")");
4096 DCHECK(g_driver_gl.debug_fn.glIsSyncFn != nullptr);
3901 GLboolean result = g_driver_gl.debug_fn.glIsSyncFn(sync); 4097 GLboolean result = g_driver_gl.debug_fn.glIsSyncFn(sync);
3902 GL_SERVICE_LOG("GL_RESULT: " << result); 4098 GL_SERVICE_LOG("GL_RESULT: " << result);
3903 return result; 4099 return result;
3904 } 4100 }
3905 4101
3906 static GLboolean GL_BINDING_CALL Debug_glIsTexture(GLuint texture) { 4102 static GLboolean GL_BINDING_CALL Debug_glIsTexture(GLuint texture) {
3907 GL_SERVICE_LOG("glIsTexture" 4103 GL_SERVICE_LOG("glIsTexture"
3908 << "(" << texture << ")"); 4104 << "(" << texture << ")");
4105 DCHECK(g_driver_gl.debug_fn.glIsTextureFn != nullptr);
3909 GLboolean result = g_driver_gl.debug_fn.glIsTextureFn(texture); 4106 GLboolean result = g_driver_gl.debug_fn.glIsTextureFn(texture);
3910 GL_SERVICE_LOG("GL_RESULT: " << result); 4107 GL_SERVICE_LOG("GL_RESULT: " << result);
3911 return result; 4108 return result;
3912 } 4109 }
3913 4110
3914 static GLboolean GL_BINDING_CALL Debug_glIsTransformFeedback(GLuint id) { 4111 static GLboolean GL_BINDING_CALL Debug_glIsTransformFeedback(GLuint id) {
3915 GL_SERVICE_LOG("glIsTransformFeedback" 4112 GL_SERVICE_LOG("glIsTransformFeedback"
3916 << "(" << id << ")"); 4113 << "(" << id << ")");
4114 DCHECK(g_driver_gl.debug_fn.glIsTransformFeedbackFn != nullptr);
3917 GLboolean result = g_driver_gl.debug_fn.glIsTransformFeedbackFn(id); 4115 GLboolean result = g_driver_gl.debug_fn.glIsTransformFeedbackFn(id);
3918 GL_SERVICE_LOG("GL_RESULT: " << result); 4116 GL_SERVICE_LOG("GL_RESULT: " << result);
3919 return result; 4117 return result;
3920 } 4118 }
3921 4119
3922 static GLboolean GL_BINDING_CALL Debug_glIsVertexArrayOES(GLuint array) { 4120 static GLboolean GL_BINDING_CALL Debug_glIsVertexArrayOES(GLuint array) {
3923 GL_SERVICE_LOG("glIsVertexArrayOES" 4121 GL_SERVICE_LOG("glIsVertexArrayOES"
3924 << "(" << array << ")"); 4122 << "(" << array << ")");
4123 DCHECK(g_driver_gl.debug_fn.glIsVertexArrayOESFn != nullptr);
3925 GLboolean result = g_driver_gl.debug_fn.glIsVertexArrayOESFn(array); 4124 GLboolean result = g_driver_gl.debug_fn.glIsVertexArrayOESFn(array);
3926 GL_SERVICE_LOG("GL_RESULT: " << result); 4125 GL_SERVICE_LOG("GL_RESULT: " << result);
3927 return result; 4126 return result;
3928 } 4127 }
3929 4128
3930 static void GL_BINDING_CALL Debug_glLineWidth(GLfloat width) { 4129 static void GL_BINDING_CALL Debug_glLineWidth(GLfloat width) {
3931 GL_SERVICE_LOG("glLineWidth" 4130 GL_SERVICE_LOG("glLineWidth"
3932 << "(" << width << ")"); 4131 << "(" << width << ")");
4132 DCHECK(g_driver_gl.debug_fn.glLineWidthFn != nullptr);
3933 g_driver_gl.debug_fn.glLineWidthFn(width); 4133 g_driver_gl.debug_fn.glLineWidthFn(width);
3934 } 4134 }
3935 4135
3936 static void GL_BINDING_CALL Debug_glLinkProgram(GLuint program) { 4136 static void GL_BINDING_CALL Debug_glLinkProgram(GLuint program) {
3937 GL_SERVICE_LOG("glLinkProgram" 4137 GL_SERVICE_LOG("glLinkProgram"
3938 << "(" << program << ")"); 4138 << "(" << program << ")");
4139 DCHECK(g_driver_gl.debug_fn.glLinkProgramFn != nullptr);
3939 g_driver_gl.debug_fn.glLinkProgramFn(program); 4140 g_driver_gl.debug_fn.glLinkProgramFn(program);
3940 } 4141 }
3941 4142
3942 static void* GL_BINDING_CALL Debug_glMapBuffer(GLenum target, GLenum access) { 4143 static void* GL_BINDING_CALL Debug_glMapBuffer(GLenum target, GLenum access) {
3943 GL_SERVICE_LOG("glMapBuffer" 4144 GL_SERVICE_LOG("glMapBuffer"
3944 << "(" << GLEnums::GetStringEnum(target) << ", " 4145 << "(" << GLEnums::GetStringEnum(target) << ", "
3945 << GLEnums::GetStringEnum(access) << ")"); 4146 << GLEnums::GetStringEnum(access) << ")");
4147 DCHECK(g_driver_gl.debug_fn.glMapBufferFn != nullptr);
3946 void* result = g_driver_gl.debug_fn.glMapBufferFn(target, access); 4148 void* result = g_driver_gl.debug_fn.glMapBufferFn(target, access);
3947 GL_SERVICE_LOG("GL_RESULT: " << result); 4149 GL_SERVICE_LOG("GL_RESULT: " << result);
3948 return result; 4150 return result;
3949 } 4151 }
3950 4152
3951 static void* GL_BINDING_CALL Debug_glMapBufferRange(GLenum target, 4153 static void* GL_BINDING_CALL Debug_glMapBufferRange(GLenum target,
3952 GLintptr offset, 4154 GLintptr offset,
3953 GLsizeiptr length, 4155 GLsizeiptr length,
3954 GLbitfield access) { 4156 GLbitfield access) {
3955 GL_SERVICE_LOG("glMapBufferRange" 4157 GL_SERVICE_LOG("glMapBufferRange"
3956 << "(" << GLEnums::GetStringEnum(target) << ", " << offset 4158 << "(" << GLEnums::GetStringEnum(target) << ", " << offset
3957 << ", " << length << ", " << access << ")"); 4159 << ", " << length << ", " << access << ")");
4160 DCHECK(g_driver_gl.debug_fn.glMapBufferRangeFn != nullptr);
3958 void* result = 4161 void* result =
3959 g_driver_gl.debug_fn.glMapBufferRangeFn(target, offset, length, access); 4162 g_driver_gl.debug_fn.glMapBufferRangeFn(target, offset, length, access);
3960 GL_SERVICE_LOG("GL_RESULT: " << result); 4163 GL_SERVICE_LOG("GL_RESULT: " << result);
3961 return result; 4164 return result;
3962 } 4165 }
3963 4166
3964 static void GL_BINDING_CALL Debug_glMatrixLoadfEXT(GLenum matrixMode, 4167 static void GL_BINDING_CALL Debug_glMatrixLoadfEXT(GLenum matrixMode,
3965 const GLfloat* m) { 4168 const GLfloat* m) {
3966 GL_SERVICE_LOG("glMatrixLoadfEXT" 4169 GL_SERVICE_LOG("glMatrixLoadfEXT"
3967 << "(" << GLEnums::GetStringEnum(matrixMode) << ", " 4170 << "(" << GLEnums::GetStringEnum(matrixMode) << ", "
3968 << static_cast<const void*>(m) << ")"); 4171 << static_cast<const void*>(m) << ")");
4172 DCHECK(g_driver_gl.debug_fn.glMatrixLoadfEXTFn != nullptr);
3969 g_driver_gl.debug_fn.glMatrixLoadfEXTFn(matrixMode, m); 4173 g_driver_gl.debug_fn.glMatrixLoadfEXTFn(matrixMode, m);
3970 } 4174 }
3971 4175
3972 static void GL_BINDING_CALL Debug_glMatrixLoadIdentityEXT(GLenum matrixMode) { 4176 static void GL_BINDING_CALL Debug_glMatrixLoadIdentityEXT(GLenum matrixMode) {
3973 GL_SERVICE_LOG("glMatrixLoadIdentityEXT" 4177 GL_SERVICE_LOG("glMatrixLoadIdentityEXT"
3974 << "(" << GLEnums::GetStringEnum(matrixMode) << ")"); 4178 << "(" << GLEnums::GetStringEnum(matrixMode) << ")");
4179 DCHECK(g_driver_gl.debug_fn.glMatrixLoadIdentityEXTFn != nullptr);
3975 g_driver_gl.debug_fn.glMatrixLoadIdentityEXTFn(matrixMode); 4180 g_driver_gl.debug_fn.glMatrixLoadIdentityEXTFn(matrixMode);
3976 } 4181 }
3977 4182
3978 static void GL_BINDING_CALL Debug_glMemoryBarrierEXT(GLbitfield barriers) { 4183 static void GL_BINDING_CALL Debug_glMemoryBarrierEXT(GLbitfield barriers) {
3979 GL_SERVICE_LOG("glMemoryBarrierEXT" 4184 GL_SERVICE_LOG("glMemoryBarrierEXT"
3980 << "(" << barriers << ")"); 4185 << "(" << barriers << ")");
4186 DCHECK(g_driver_gl.debug_fn.glMemoryBarrierEXTFn != nullptr);
3981 g_driver_gl.debug_fn.glMemoryBarrierEXTFn(barriers); 4187 g_driver_gl.debug_fn.glMemoryBarrierEXTFn(barriers);
3982 } 4188 }
3983 4189
3984 static void GL_BINDING_CALL Debug_glPathCommandsNV(GLuint path, 4190 static void GL_BINDING_CALL Debug_glPathCommandsNV(GLuint path,
3985 GLsizei numCommands, 4191 GLsizei numCommands,
3986 const GLubyte* commands, 4192 const GLubyte* commands,
3987 GLsizei numCoords, 4193 GLsizei numCoords,
3988 GLenum coordType, 4194 GLenum coordType,
3989 const GLvoid* coords) { 4195 const GLvoid* coords) {
3990 GL_SERVICE_LOG("glPathCommandsNV" 4196 GL_SERVICE_LOG("glPathCommandsNV"
3991 << "(" << path << ", " << numCommands << ", " 4197 << "(" << path << ", " << numCommands << ", "
3992 << static_cast<const void*>(commands) << ", " << numCoords 4198 << static_cast<const void*>(commands) << ", " << numCoords
3993 << ", " << GLEnums::GetStringEnum(coordType) << ", " 4199 << ", " << GLEnums::GetStringEnum(coordType) << ", "
3994 << static_cast<const void*>(coords) << ")"); 4200 << static_cast<const void*>(coords) << ")");
4201 DCHECK(g_driver_gl.debug_fn.glPathCommandsNVFn != nullptr);
3995 g_driver_gl.debug_fn.glPathCommandsNVFn(path, numCommands, commands, 4202 g_driver_gl.debug_fn.glPathCommandsNVFn(path, numCommands, commands,
3996 numCoords, coordType, coords); 4203 numCoords, coordType, coords);
3997 } 4204 }
3998 4205
3999 static void GL_BINDING_CALL Debug_glPathParameterfNV(GLuint path, 4206 static void GL_BINDING_CALL Debug_glPathParameterfNV(GLuint path,
4000 GLenum pname, 4207 GLenum pname,
4001 GLfloat value) { 4208 GLfloat value) {
4002 GL_SERVICE_LOG("glPathParameterfNV" 4209 GL_SERVICE_LOG("glPathParameterfNV"
4003 << "(" << path << ", " << GLEnums::GetStringEnum(pname) << ", " 4210 << "(" << path << ", " << GLEnums::GetStringEnum(pname) << ", "
4004 << value << ")"); 4211 << value << ")");
4212 DCHECK(g_driver_gl.debug_fn.glPathParameterfNVFn != nullptr);
4005 g_driver_gl.debug_fn.glPathParameterfNVFn(path, pname, value); 4213 g_driver_gl.debug_fn.glPathParameterfNVFn(path, pname, value);
4006 } 4214 }
4007 4215
4008 static void GL_BINDING_CALL Debug_glPathParameteriNV(GLuint path, 4216 static void GL_BINDING_CALL Debug_glPathParameteriNV(GLuint path,
4009 GLenum pname, 4217 GLenum pname,
4010 GLint value) { 4218 GLint value) {
4011 GL_SERVICE_LOG("glPathParameteriNV" 4219 GL_SERVICE_LOG("glPathParameteriNV"
4012 << "(" << path << ", " << GLEnums::GetStringEnum(pname) << ", " 4220 << "(" << path << ", " << GLEnums::GetStringEnum(pname) << ", "
4013 << value << ")"); 4221 << value << ")");
4222 DCHECK(g_driver_gl.debug_fn.glPathParameteriNVFn != nullptr);
4014 g_driver_gl.debug_fn.glPathParameteriNVFn(path, pname, value); 4223 g_driver_gl.debug_fn.glPathParameteriNVFn(path, pname, value);
4015 } 4224 }
4016 4225
4017 static void GL_BINDING_CALL Debug_glPathStencilFuncNV(GLenum func, 4226 static void GL_BINDING_CALL Debug_glPathStencilFuncNV(GLenum func,
4018 GLint ref, 4227 GLint ref,
4019 GLuint mask) { 4228 GLuint mask) {
4020 GL_SERVICE_LOG("glPathStencilFuncNV" 4229 GL_SERVICE_LOG("glPathStencilFuncNV"
4021 << "(" << GLEnums::GetStringEnum(func) << ", " << ref << ", " 4230 << "(" << GLEnums::GetStringEnum(func) << ", " << ref << ", "
4022 << mask << ")"); 4231 << mask << ")");
4232 DCHECK(g_driver_gl.debug_fn.glPathStencilFuncNVFn != nullptr);
4023 g_driver_gl.debug_fn.glPathStencilFuncNVFn(func, ref, mask); 4233 g_driver_gl.debug_fn.glPathStencilFuncNVFn(func, ref, mask);
4024 } 4234 }
4025 4235
4026 static void GL_BINDING_CALL Debug_glPauseTransformFeedback(void) { 4236 static void GL_BINDING_CALL Debug_glPauseTransformFeedback(void) {
4027 GL_SERVICE_LOG("glPauseTransformFeedback" 4237 GL_SERVICE_LOG("glPauseTransformFeedback"
4028 << "(" 4238 << "("
4029 << ")"); 4239 << ")");
4240 DCHECK(g_driver_gl.debug_fn.glPauseTransformFeedbackFn != nullptr);
4030 g_driver_gl.debug_fn.glPauseTransformFeedbackFn(); 4241 g_driver_gl.debug_fn.glPauseTransformFeedbackFn();
4031 } 4242 }
4032 4243
4033 static void GL_BINDING_CALL Debug_glPixelStorei(GLenum pname, GLint param) { 4244 static void GL_BINDING_CALL Debug_glPixelStorei(GLenum pname, GLint param) {
4034 GL_SERVICE_LOG("glPixelStorei" 4245 GL_SERVICE_LOG("glPixelStorei"
4035 << "(" << GLEnums::GetStringEnum(pname) << ", " << param 4246 << "(" << GLEnums::GetStringEnum(pname) << ", " << param
4036 << ")"); 4247 << ")");
4248 DCHECK(g_driver_gl.debug_fn.glPixelStoreiFn != nullptr);
4037 g_driver_gl.debug_fn.glPixelStoreiFn(pname, param); 4249 g_driver_gl.debug_fn.glPixelStoreiFn(pname, param);
4038 } 4250 }
4039 4251
4040 static void GL_BINDING_CALL Debug_glPointParameteri(GLenum pname, GLint param) { 4252 static void GL_BINDING_CALL Debug_glPointParameteri(GLenum pname, GLint param) {
4041 GL_SERVICE_LOG("glPointParameteri" 4253 GL_SERVICE_LOG("glPointParameteri"
4042 << "(" << GLEnums::GetStringEnum(pname) << ", " << param 4254 << "(" << GLEnums::GetStringEnum(pname) << ", " << param
4043 << ")"); 4255 << ")");
4256 DCHECK(g_driver_gl.debug_fn.glPointParameteriFn != nullptr);
4044 g_driver_gl.debug_fn.glPointParameteriFn(pname, param); 4257 g_driver_gl.debug_fn.glPointParameteriFn(pname, param);
4045 } 4258 }
4046 4259
4047 static void GL_BINDING_CALL Debug_glPolygonOffset(GLfloat factor, 4260 static void GL_BINDING_CALL Debug_glPolygonOffset(GLfloat factor,
4048 GLfloat units) { 4261 GLfloat units) {
4049 GL_SERVICE_LOG("glPolygonOffset" 4262 GL_SERVICE_LOG("glPolygonOffset"
4050 << "(" << factor << ", " << units << ")"); 4263 << "(" << factor << ", " << units << ")");
4264 DCHECK(g_driver_gl.debug_fn.glPolygonOffsetFn != nullptr);
4051 g_driver_gl.debug_fn.glPolygonOffsetFn(factor, units); 4265 g_driver_gl.debug_fn.glPolygonOffsetFn(factor, units);
4052 } 4266 }
4053 4267
4054 static void GL_BINDING_CALL Debug_glPopGroupMarkerEXT(void) { 4268 static void GL_BINDING_CALL Debug_glPopGroupMarkerEXT(void) {
4055 GL_SERVICE_LOG("glPopGroupMarkerEXT" 4269 GL_SERVICE_LOG("glPopGroupMarkerEXT"
4056 << "(" 4270 << "("
4057 << ")"); 4271 << ")");
4272 DCHECK(g_driver_gl.debug_fn.glPopGroupMarkerEXTFn != nullptr);
4058 g_driver_gl.debug_fn.glPopGroupMarkerEXTFn(); 4273 g_driver_gl.debug_fn.glPopGroupMarkerEXTFn();
4059 } 4274 }
4060 4275
4061 static void GL_BINDING_CALL Debug_glProgramBinary(GLuint program, 4276 static void GL_BINDING_CALL Debug_glProgramBinary(GLuint program,
4062 GLenum binaryFormat, 4277 GLenum binaryFormat,
4063 const GLvoid* binary, 4278 const GLvoid* binary,
4064 GLsizei length) { 4279 GLsizei length) {
4065 GL_SERVICE_LOG("glProgramBinary" 4280 GL_SERVICE_LOG("glProgramBinary"
4066 << "(" << program << ", " 4281 << "(" << program << ", "
4067 << GLEnums::GetStringEnum(binaryFormat) << ", " 4282 << GLEnums::GetStringEnum(binaryFormat) << ", "
4068 << static_cast<const void*>(binary) << ", " << length << ")"); 4283 << static_cast<const void*>(binary) << ", " << length << ")");
4284 DCHECK(g_driver_gl.debug_fn.glProgramBinaryFn != nullptr);
4069 g_driver_gl.debug_fn.glProgramBinaryFn(program, binaryFormat, binary, length); 4285 g_driver_gl.debug_fn.glProgramBinaryFn(program, binaryFormat, binary, length);
4070 } 4286 }
4071 4287
4072 static void GL_BINDING_CALL Debug_glProgramParameteri(GLuint program, 4288 static void GL_BINDING_CALL Debug_glProgramParameteri(GLuint program,
4073 GLenum pname, 4289 GLenum pname,
4074 GLint value) { 4290 GLint value) {
4075 GL_SERVICE_LOG("glProgramParameteri" 4291 GL_SERVICE_LOG("glProgramParameteri"
4076 << "(" << program << ", " << GLEnums::GetStringEnum(pname) 4292 << "(" << program << ", " << GLEnums::GetStringEnum(pname)
4077 << ", " << value << ")"); 4293 << ", " << value << ")");
4294 DCHECK(g_driver_gl.debug_fn.glProgramParameteriFn != nullptr);
4078 g_driver_gl.debug_fn.glProgramParameteriFn(program, pname, value); 4295 g_driver_gl.debug_fn.glProgramParameteriFn(program, pname, value);
4079 } 4296 }
4080 4297
4081 static void GL_BINDING_CALL 4298 static void GL_BINDING_CALL
4082 Debug_glProgramPathFragmentInputGenNV(GLuint program, 4299 Debug_glProgramPathFragmentInputGenNV(GLuint program,
4083 GLint location, 4300 GLint location,
4084 GLenum genMode, 4301 GLenum genMode,
4085 GLint components, 4302 GLint components,
4086 const GLfloat* coeffs) { 4303 const GLfloat* coeffs) {
4087 GL_SERVICE_LOG("glProgramPathFragmentInputGenNV" 4304 GL_SERVICE_LOG("glProgramPathFragmentInputGenNV"
4088 << "(" << program << ", " << location << ", " 4305 << "(" << program << ", " << location << ", "
4089 << GLEnums::GetStringEnum(genMode) << ", " << components 4306 << GLEnums::GetStringEnum(genMode) << ", " << components
4090 << ", " << static_cast<const void*>(coeffs) << ")"); 4307 << ", " << static_cast<const void*>(coeffs) << ")");
4308 DCHECK(g_driver_gl.debug_fn.glProgramPathFragmentInputGenNVFn != nullptr);
4091 g_driver_gl.debug_fn.glProgramPathFragmentInputGenNVFn( 4309 g_driver_gl.debug_fn.glProgramPathFragmentInputGenNVFn(
4092 program, location, genMode, components, coeffs); 4310 program, location, genMode, components, coeffs);
4093 } 4311 }
4094 4312
4095 static void GL_BINDING_CALL Debug_glPushGroupMarkerEXT(GLsizei length, 4313 static void GL_BINDING_CALL Debug_glPushGroupMarkerEXT(GLsizei length,
4096 const char* marker) { 4314 const char* marker) {
4097 GL_SERVICE_LOG("glPushGroupMarkerEXT" 4315 GL_SERVICE_LOG("glPushGroupMarkerEXT"
4098 << "(" << length << ", " << marker << ")"); 4316 << "(" << length << ", " << marker << ")");
4317 DCHECK(g_driver_gl.debug_fn.glPushGroupMarkerEXTFn != nullptr);
4099 g_driver_gl.debug_fn.glPushGroupMarkerEXTFn(length, marker); 4318 g_driver_gl.debug_fn.glPushGroupMarkerEXTFn(length, marker);
4100 } 4319 }
4101 4320
4102 static void GL_BINDING_CALL Debug_glQueryCounter(GLuint id, GLenum target) { 4321 static void GL_BINDING_CALL Debug_glQueryCounter(GLuint id, GLenum target) {
4103 GL_SERVICE_LOG("glQueryCounter" 4322 GL_SERVICE_LOG("glQueryCounter"
4104 << "(" << id << ", " << GLEnums::GetStringEnum(target) << ")"); 4323 << "(" << id << ", " << GLEnums::GetStringEnum(target) << ")");
4324 DCHECK(g_driver_gl.debug_fn.glQueryCounterFn != nullptr);
4105 g_driver_gl.debug_fn.glQueryCounterFn(id, target); 4325 g_driver_gl.debug_fn.glQueryCounterFn(id, target);
4106 } 4326 }
4107 4327
4108 static void GL_BINDING_CALL Debug_glReadBuffer(GLenum src) { 4328 static void GL_BINDING_CALL Debug_glReadBuffer(GLenum src) {
4109 GL_SERVICE_LOG("glReadBuffer" 4329 GL_SERVICE_LOG("glReadBuffer"
4110 << "(" << GLEnums::GetStringEnum(src) << ")"); 4330 << "(" << GLEnums::GetStringEnum(src) << ")");
4331 DCHECK(g_driver_gl.debug_fn.glReadBufferFn != nullptr);
4111 g_driver_gl.debug_fn.glReadBufferFn(src); 4332 g_driver_gl.debug_fn.glReadBufferFn(src);
4112 } 4333 }
4113 4334
4114 static void GL_BINDING_CALL Debug_glReadPixels(GLint x, 4335 static void GL_BINDING_CALL Debug_glReadPixels(GLint x,
4115 GLint y, 4336 GLint y,
4116 GLsizei width, 4337 GLsizei width,
4117 GLsizei height, 4338 GLsizei height,
4118 GLenum format, 4339 GLenum format,
4119 GLenum type, 4340 GLenum type,
4120 void* pixels) { 4341 void* pixels) {
4121 GL_SERVICE_LOG("glReadPixels" 4342 GL_SERVICE_LOG("glReadPixels"
4122 << "(" << x << ", " << y << ", " << width << ", " << height 4343 << "(" << x << ", " << y << ", " << width << ", " << height
4123 << ", " << GLEnums::GetStringEnum(format) << ", " 4344 << ", " << GLEnums::GetStringEnum(format) << ", "
4124 << GLEnums::GetStringEnum(type) << ", " 4345 << GLEnums::GetStringEnum(type) << ", "
4125 << static_cast<const void*>(pixels) << ")"); 4346 << static_cast<const void*>(pixels) << ")");
4347 DCHECK(g_driver_gl.debug_fn.glReadPixelsFn != nullptr);
4126 g_driver_gl.debug_fn.glReadPixelsFn(x, y, width, height, format, type, 4348 g_driver_gl.debug_fn.glReadPixelsFn(x, y, width, height, format, type,
4127 pixels); 4349 pixels);
4128 } 4350 }
4129 4351
4130 static void GL_BINDING_CALL Debug_glReleaseShaderCompiler(void) { 4352 static void GL_BINDING_CALL Debug_glReleaseShaderCompiler(void) {
4131 GL_SERVICE_LOG("glReleaseShaderCompiler" 4353 GL_SERVICE_LOG("glReleaseShaderCompiler"
4132 << "(" 4354 << "("
4133 << ")"); 4355 << ")");
4356 DCHECK(g_driver_gl.debug_fn.glReleaseShaderCompilerFn != nullptr);
4134 g_driver_gl.debug_fn.glReleaseShaderCompilerFn(); 4357 g_driver_gl.debug_fn.glReleaseShaderCompilerFn();
4135 } 4358 }
4136 4359
4137 static void GL_BINDING_CALL 4360 static void GL_BINDING_CALL
4138 Debug_glRenderbufferStorageEXT(GLenum target, 4361 Debug_glRenderbufferStorageEXT(GLenum target,
4139 GLenum internalformat, 4362 GLenum internalformat,
4140 GLsizei width, 4363 GLsizei width,
4141 GLsizei height) { 4364 GLsizei height) {
4142 GL_SERVICE_LOG("glRenderbufferStorageEXT" 4365 GL_SERVICE_LOG("glRenderbufferStorageEXT"
4143 << "(" << GLEnums::GetStringEnum(target) << ", " 4366 << "(" << GLEnums::GetStringEnum(target) << ", "
4144 << GLEnums::GetStringEnum(internalformat) << ", " << width 4367 << GLEnums::GetStringEnum(internalformat) << ", " << width
4145 << ", " << height << ")"); 4368 << ", " << height << ")");
4369 DCHECK(g_driver_gl.debug_fn.glRenderbufferStorageEXTFn != nullptr);
4146 g_driver_gl.debug_fn.glRenderbufferStorageEXTFn(target, internalformat, width, 4370 g_driver_gl.debug_fn.glRenderbufferStorageEXTFn(target, internalformat, width,
4147 height); 4371 height);
4148 } 4372 }
4149 4373
4150 static void GL_BINDING_CALL 4374 static void GL_BINDING_CALL
4151 Debug_glRenderbufferStorageMultisample(GLenum target, 4375 Debug_glRenderbufferStorageMultisample(GLenum target,
4152 GLsizei samples, 4376 GLsizei samples,
4153 GLenum internalformat, 4377 GLenum internalformat,
4154 GLsizei width, 4378 GLsizei width,
4155 GLsizei height) { 4379 GLsizei height) {
4156 GL_SERVICE_LOG("glRenderbufferStorageMultisample" 4380 GL_SERVICE_LOG("glRenderbufferStorageMultisample"
4157 << "(" << GLEnums::GetStringEnum(target) << ", " << samples 4381 << "(" << GLEnums::GetStringEnum(target) << ", " << samples
4158 << ", " << GLEnums::GetStringEnum(internalformat) << ", " 4382 << ", " << GLEnums::GetStringEnum(internalformat) << ", "
4159 << width << ", " << height << ")"); 4383 << width << ", " << height << ")");
4384 DCHECK(g_driver_gl.debug_fn.glRenderbufferStorageMultisampleFn != nullptr);
4160 g_driver_gl.debug_fn.glRenderbufferStorageMultisampleFn( 4385 g_driver_gl.debug_fn.glRenderbufferStorageMultisampleFn(
4161 target, samples, internalformat, width, height); 4386 target, samples, internalformat, width, height);
4162 } 4387 }
4163 4388
4164 static void GL_BINDING_CALL 4389 static void GL_BINDING_CALL
4165 Debug_glRenderbufferStorageMultisampleANGLE(GLenum target, 4390 Debug_glRenderbufferStorageMultisampleANGLE(GLenum target,
4166 GLsizei samples, 4391 GLsizei samples,
4167 GLenum internalformat, 4392 GLenum internalformat,
4168 GLsizei width, 4393 GLsizei width,
4169 GLsizei height) { 4394 GLsizei height) {
4170 GL_SERVICE_LOG("glRenderbufferStorageMultisampleANGLE" 4395 GL_SERVICE_LOG("glRenderbufferStorageMultisampleANGLE"
4171 << "(" << GLEnums::GetStringEnum(target) << ", " << samples 4396 << "(" << GLEnums::GetStringEnum(target) << ", " << samples
4172 << ", " << GLEnums::GetStringEnum(internalformat) << ", " 4397 << ", " << GLEnums::GetStringEnum(internalformat) << ", "
4173 << width << ", " << height << ")"); 4398 << width << ", " << height << ")");
4399 DCHECK(g_driver_gl.debug_fn.glRenderbufferStorageMultisampleANGLEFn !=
4400 nullptr);
4174 g_driver_gl.debug_fn.glRenderbufferStorageMultisampleANGLEFn( 4401 g_driver_gl.debug_fn.glRenderbufferStorageMultisampleANGLEFn(
4175 target, samples, internalformat, width, height); 4402 target, samples, internalformat, width, height);
4176 } 4403 }
4177 4404
4178 static void GL_BINDING_CALL 4405 static void GL_BINDING_CALL
4179 Debug_glRenderbufferStorageMultisampleEXT(GLenum target, 4406 Debug_glRenderbufferStorageMultisampleEXT(GLenum target,
4180 GLsizei samples, 4407 GLsizei samples,
4181 GLenum internalformat, 4408 GLenum internalformat,
4182 GLsizei width, 4409 GLsizei width,
4183 GLsizei height) { 4410 GLsizei height) {
4184 GL_SERVICE_LOG("glRenderbufferStorageMultisampleEXT" 4411 GL_SERVICE_LOG("glRenderbufferStorageMultisampleEXT"
4185 << "(" << GLEnums::GetStringEnum(target) << ", " << samples 4412 << "(" << GLEnums::GetStringEnum(target) << ", " << samples
4186 << ", " << GLEnums::GetStringEnum(internalformat) << ", " 4413 << ", " << GLEnums::GetStringEnum(internalformat) << ", "
4187 << width << ", " << height << ")"); 4414 << width << ", " << height << ")");
4415 DCHECK(g_driver_gl.debug_fn.glRenderbufferStorageMultisampleEXTFn != nullptr);
4188 g_driver_gl.debug_fn.glRenderbufferStorageMultisampleEXTFn( 4416 g_driver_gl.debug_fn.glRenderbufferStorageMultisampleEXTFn(
4189 target, samples, internalformat, width, height); 4417 target, samples, internalformat, width, height);
4190 } 4418 }
4191 4419
4192 static void GL_BINDING_CALL 4420 static void GL_BINDING_CALL
4193 Debug_glRenderbufferStorageMultisampleIMG(GLenum target, 4421 Debug_glRenderbufferStorageMultisampleIMG(GLenum target,
4194 GLsizei samples, 4422 GLsizei samples,
4195 GLenum internalformat, 4423 GLenum internalformat,
4196 GLsizei width, 4424 GLsizei width,
4197 GLsizei height) { 4425 GLsizei height) {
4198 GL_SERVICE_LOG("glRenderbufferStorageMultisampleIMG" 4426 GL_SERVICE_LOG("glRenderbufferStorageMultisampleIMG"
4199 << "(" << GLEnums::GetStringEnum(target) << ", " << samples 4427 << "(" << GLEnums::GetStringEnum(target) << ", " << samples
4200 << ", " << GLEnums::GetStringEnum(internalformat) << ", " 4428 << ", " << GLEnums::GetStringEnum(internalformat) << ", "
4201 << width << ", " << height << ")"); 4429 << width << ", " << height << ")");
4430 DCHECK(g_driver_gl.debug_fn.glRenderbufferStorageMultisampleIMGFn != nullptr);
4202 g_driver_gl.debug_fn.glRenderbufferStorageMultisampleIMGFn( 4431 g_driver_gl.debug_fn.glRenderbufferStorageMultisampleIMGFn(
4203 target, samples, internalformat, width, height); 4432 target, samples, internalformat, width, height);
4204 } 4433 }
4205 4434
4206 static void GL_BINDING_CALL Debug_glResumeTransformFeedback(void) { 4435 static void GL_BINDING_CALL Debug_glResumeTransformFeedback(void) {
4207 GL_SERVICE_LOG("glResumeTransformFeedback" 4436 GL_SERVICE_LOG("glResumeTransformFeedback"
4208 << "(" 4437 << "("
4209 << ")"); 4438 << ")");
4439 DCHECK(g_driver_gl.debug_fn.glResumeTransformFeedbackFn != nullptr);
4210 g_driver_gl.debug_fn.glResumeTransformFeedbackFn(); 4440 g_driver_gl.debug_fn.glResumeTransformFeedbackFn();
4211 } 4441 }
4212 4442
4213 static void GL_BINDING_CALL Debug_glSampleCoverage(GLclampf value, 4443 static void GL_BINDING_CALL Debug_glSampleCoverage(GLclampf value,
4214 GLboolean invert) { 4444 GLboolean invert) {
4215 GL_SERVICE_LOG("glSampleCoverage" 4445 GL_SERVICE_LOG("glSampleCoverage"
4216 << "(" << value << ", " << GLEnums::GetStringBool(invert) 4446 << "(" << value << ", " << GLEnums::GetStringBool(invert)
4217 << ")"); 4447 << ")");
4448 DCHECK(g_driver_gl.debug_fn.glSampleCoverageFn != nullptr);
4218 g_driver_gl.debug_fn.glSampleCoverageFn(value, invert); 4449 g_driver_gl.debug_fn.glSampleCoverageFn(value, invert);
4219 } 4450 }
4220 4451
4221 static void GL_BINDING_CALL Debug_glSamplerParameterf(GLuint sampler, 4452 static void GL_BINDING_CALL Debug_glSamplerParameterf(GLuint sampler,
4222 GLenum pname, 4453 GLenum pname,
4223 GLfloat param) { 4454 GLfloat param) {
4224 GL_SERVICE_LOG("glSamplerParameterf" 4455 GL_SERVICE_LOG("glSamplerParameterf"
4225 << "(" << sampler << ", " << GLEnums::GetStringEnum(pname) 4456 << "(" << sampler << ", " << GLEnums::GetStringEnum(pname)
4226 << ", " << param << ")"); 4457 << ", " << param << ")");
4458 DCHECK(g_driver_gl.debug_fn.glSamplerParameterfFn != nullptr);
4227 g_driver_gl.debug_fn.glSamplerParameterfFn(sampler, pname, param); 4459 g_driver_gl.debug_fn.glSamplerParameterfFn(sampler, pname, param);
4228 } 4460 }
4229 4461
4230 static void GL_BINDING_CALL Debug_glSamplerParameterfv(GLuint sampler, 4462 static void GL_BINDING_CALL Debug_glSamplerParameterfv(GLuint sampler,
4231 GLenum pname, 4463 GLenum pname,
4232 const GLfloat* params) { 4464 const GLfloat* params) {
4233 GL_SERVICE_LOG("glSamplerParameterfv" 4465 GL_SERVICE_LOG("glSamplerParameterfv"
4234 << "(" << sampler << ", " << GLEnums::GetStringEnum(pname) 4466 << "(" << sampler << ", " << GLEnums::GetStringEnum(pname)
4235 << ", " << static_cast<const void*>(params) << ")"); 4467 << ", " << static_cast<const void*>(params) << ")");
4468 DCHECK(g_driver_gl.debug_fn.glSamplerParameterfvFn != nullptr);
4236 g_driver_gl.debug_fn.glSamplerParameterfvFn(sampler, pname, params); 4469 g_driver_gl.debug_fn.glSamplerParameterfvFn(sampler, pname, params);
4237 } 4470 }
4238 4471
4239 static void GL_BINDING_CALL Debug_glSamplerParameteri(GLuint sampler, 4472 static void GL_BINDING_CALL Debug_glSamplerParameteri(GLuint sampler,
4240 GLenum pname, 4473 GLenum pname,
4241 GLint param) { 4474 GLint param) {
4242 GL_SERVICE_LOG("glSamplerParameteri" 4475 GL_SERVICE_LOG("glSamplerParameteri"
4243 << "(" << sampler << ", " << GLEnums::GetStringEnum(pname) 4476 << "(" << sampler << ", " << GLEnums::GetStringEnum(pname)
4244 << ", " << param << ")"); 4477 << ", " << param << ")");
4478 DCHECK(g_driver_gl.debug_fn.glSamplerParameteriFn != nullptr);
4245 g_driver_gl.debug_fn.glSamplerParameteriFn(sampler, pname, param); 4479 g_driver_gl.debug_fn.glSamplerParameteriFn(sampler, pname, param);
4246 } 4480 }
4247 4481
4248 static void GL_BINDING_CALL Debug_glSamplerParameteriv(GLuint sampler, 4482 static void GL_BINDING_CALL Debug_glSamplerParameteriv(GLuint sampler,
4249 GLenum pname, 4483 GLenum pname,
4250 const GLint* params) { 4484 const GLint* params) {
4251 GL_SERVICE_LOG("glSamplerParameteriv" 4485 GL_SERVICE_LOG("glSamplerParameteriv"
4252 << "(" << sampler << ", " << GLEnums::GetStringEnum(pname) 4486 << "(" << sampler << ", " << GLEnums::GetStringEnum(pname)
4253 << ", " << static_cast<const void*>(params) << ")"); 4487 << ", " << static_cast<const void*>(params) << ")");
4488 DCHECK(g_driver_gl.debug_fn.glSamplerParameterivFn != nullptr);
4254 g_driver_gl.debug_fn.glSamplerParameterivFn(sampler, pname, params); 4489 g_driver_gl.debug_fn.glSamplerParameterivFn(sampler, pname, params);
4255 } 4490 }
4256 4491
4257 static void GL_BINDING_CALL Debug_glScissor(GLint x, 4492 static void GL_BINDING_CALL Debug_glScissor(GLint x,
4258 GLint y, 4493 GLint y,
4259 GLsizei width, 4494 GLsizei width,
4260 GLsizei height) { 4495 GLsizei height) {
4261 GL_SERVICE_LOG("glScissor" 4496 GL_SERVICE_LOG("glScissor"
4262 << "(" << x << ", " << y << ", " << width << ", " << height 4497 << "(" << x << ", " << y << ", " << width << ", " << height
4263 << ")"); 4498 << ")");
4499 DCHECK(g_driver_gl.debug_fn.glScissorFn != nullptr);
4264 g_driver_gl.debug_fn.glScissorFn(x, y, width, height); 4500 g_driver_gl.debug_fn.glScissorFn(x, y, width, height);
4265 } 4501 }
4266 4502
4267 static void GL_BINDING_CALL Debug_glSetFenceAPPLE(GLuint fence) { 4503 static void GL_BINDING_CALL Debug_glSetFenceAPPLE(GLuint fence) {
4268 GL_SERVICE_LOG("glSetFenceAPPLE" 4504 GL_SERVICE_LOG("glSetFenceAPPLE"
4269 << "(" << fence << ")"); 4505 << "(" << fence << ")");
4506 DCHECK(g_driver_gl.debug_fn.glSetFenceAPPLEFn != nullptr);
4270 g_driver_gl.debug_fn.glSetFenceAPPLEFn(fence); 4507 g_driver_gl.debug_fn.glSetFenceAPPLEFn(fence);
4271 } 4508 }
4272 4509
4273 static void GL_BINDING_CALL Debug_glSetFenceNV(GLuint fence, GLenum condition) { 4510 static void GL_BINDING_CALL Debug_glSetFenceNV(GLuint fence, GLenum condition) {
4274 GL_SERVICE_LOG("glSetFenceNV" 4511 GL_SERVICE_LOG("glSetFenceNV"
4275 << "(" << fence << ", " << GLEnums::GetStringEnum(condition) 4512 << "(" << fence << ", " << GLEnums::GetStringEnum(condition)
4276 << ")"); 4513 << ")");
4514 DCHECK(g_driver_gl.debug_fn.glSetFenceNVFn != nullptr);
4277 g_driver_gl.debug_fn.glSetFenceNVFn(fence, condition); 4515 g_driver_gl.debug_fn.glSetFenceNVFn(fence, condition);
4278 } 4516 }
4279 4517
4280 static void GL_BINDING_CALL Debug_glShaderBinary(GLsizei n, 4518 static void GL_BINDING_CALL Debug_glShaderBinary(GLsizei n,
4281 const GLuint* shaders, 4519 const GLuint* shaders,
4282 GLenum binaryformat, 4520 GLenum binaryformat,
4283 const void* binary, 4521 const void* binary,
4284 GLsizei length) { 4522 GLsizei length) {
4285 GL_SERVICE_LOG("glShaderBinary" 4523 GL_SERVICE_LOG("glShaderBinary"
4286 << "(" << n << ", " << static_cast<const void*>(shaders) 4524 << "(" << n << ", " << static_cast<const void*>(shaders)
4287 << ", " << GLEnums::GetStringEnum(binaryformat) << ", " 4525 << ", " << GLEnums::GetStringEnum(binaryformat) << ", "
4288 << static_cast<const void*>(binary) << ", " << length << ")"); 4526 << static_cast<const void*>(binary) << ", " << length << ")");
4527 DCHECK(g_driver_gl.debug_fn.glShaderBinaryFn != nullptr);
4289 g_driver_gl.debug_fn.glShaderBinaryFn(n, shaders, binaryformat, binary, 4528 g_driver_gl.debug_fn.glShaderBinaryFn(n, shaders, binaryformat, binary,
4290 length); 4529 length);
4291 } 4530 }
4292 4531
4293 static void GL_BINDING_CALL Debug_glShaderSource(GLuint shader, 4532 static void GL_BINDING_CALL Debug_glShaderSource(GLuint shader,
4294 GLsizei count, 4533 GLsizei count,
4295 const char* const* str, 4534 const char* const* str,
4296 const GLint* length) { 4535 const GLint* length) {
4297 GL_SERVICE_LOG("glShaderSource" 4536 GL_SERVICE_LOG("glShaderSource"
4298 << "(" << shader << ", " << count << ", " 4537 << "(" << shader << ", " << count << ", "
4299 << static_cast<const void*>(str) << ", " 4538 << static_cast<const void*>(str) << ", "
4300 << static_cast<const void*>(length) << ")"); 4539 << static_cast<const void*>(length) << ")");
4540 DCHECK(g_driver_gl.debug_fn.glShaderSourceFn != nullptr);
4301 g_driver_gl.debug_fn.glShaderSourceFn(shader, count, str, length); 4541 g_driver_gl.debug_fn.glShaderSourceFn(shader, count, str, length);
4302 4542
4303 GL_SERVICE_LOG_CODE_BLOCK({ 4543 GL_SERVICE_LOG_CODE_BLOCK({
4304 for (GLsizei ii = 0; ii < count; ++ii) { 4544 for (GLsizei ii = 0; ii < count; ++ii) {
4305 if (str[ii]) { 4545 if (str[ii]) {
4306 if (length && length[ii] >= 0) { 4546 if (length && length[ii] >= 0) {
4307 std::string source(str[ii], length[ii]); 4547 std::string source(str[ii], length[ii]);
4308 GL_SERVICE_LOG(" " << ii << ": ---\n" << source << "\n---"); 4548 GL_SERVICE_LOG(" " << ii << ": ---\n" << source << "\n---");
4309 } else { 4549 } else {
4310 GL_SERVICE_LOG(" " << ii << ": ---\n" << str[ii] << "\n---"); 4550 GL_SERVICE_LOG(" " << ii << ": ---\n" << str[ii] << "\n---");
(...skipping 14 matching lines...) Expand all
4325 GLuint mask, 4565 GLuint mask,
4326 GLenum transformType, 4566 GLenum transformType,
4327 const GLfloat* transformValues) { 4567 const GLfloat* transformValues) {
4328 GL_SERVICE_LOG("glStencilFillPathInstancedNV" 4568 GL_SERVICE_LOG("glStencilFillPathInstancedNV"
4329 << "(" << numPaths << ", " 4569 << "(" << numPaths << ", "
4330 << GLEnums::GetStringEnum(pathNameType) << ", " 4570 << GLEnums::GetStringEnum(pathNameType) << ", "
4331 << static_cast<const void*>(paths) << ", " << pathBase << ", " 4571 << static_cast<const void*>(paths) << ", " << pathBase << ", "
4332 << GLEnums::GetStringEnum(fillMode) << ", " << mask << ", " 4572 << GLEnums::GetStringEnum(fillMode) << ", " << mask << ", "
4333 << GLEnums::GetStringEnum(transformType) << ", " 4573 << GLEnums::GetStringEnum(transformType) << ", "
4334 << static_cast<const void*>(transformValues) << ")"); 4574 << static_cast<const void*>(transformValues) << ")");
4575 DCHECK(g_driver_gl.debug_fn.glStencilFillPathInstancedNVFn != nullptr);
4335 g_driver_gl.debug_fn.glStencilFillPathInstancedNVFn( 4576 g_driver_gl.debug_fn.glStencilFillPathInstancedNVFn(
4336 numPaths, pathNameType, paths, pathBase, fillMode, mask, transformType, 4577 numPaths, pathNameType, paths, pathBase, fillMode, mask, transformType,
4337 transformValues); 4578 transformValues);
4338 } 4579 }
4339 4580
4340 static void GL_BINDING_CALL Debug_glStencilFillPathNV(GLuint path, 4581 static void GL_BINDING_CALL Debug_glStencilFillPathNV(GLuint path,
4341 GLenum fillMode, 4582 GLenum fillMode,
4342 GLuint mask) { 4583 GLuint mask) {
4343 GL_SERVICE_LOG("glStencilFillPathNV" 4584 GL_SERVICE_LOG("glStencilFillPathNV"
4344 << "(" << path << ", " << GLEnums::GetStringEnum(fillMode) 4585 << "(" << path << ", " << GLEnums::GetStringEnum(fillMode)
4345 << ", " << mask << ")"); 4586 << ", " << mask << ")");
4587 DCHECK(g_driver_gl.debug_fn.glStencilFillPathNVFn != nullptr);
4346 g_driver_gl.debug_fn.glStencilFillPathNVFn(path, fillMode, mask); 4588 g_driver_gl.debug_fn.glStencilFillPathNVFn(path, fillMode, mask);
4347 } 4589 }
4348 4590
4349 static void GL_BINDING_CALL Debug_glStencilFunc(GLenum func, 4591 static void GL_BINDING_CALL Debug_glStencilFunc(GLenum func,
4350 GLint ref, 4592 GLint ref,
4351 GLuint mask) { 4593 GLuint mask) {
4352 GL_SERVICE_LOG("glStencilFunc" 4594 GL_SERVICE_LOG("glStencilFunc"
4353 << "(" << GLEnums::GetStringEnum(func) << ", " << ref << ", " 4595 << "(" << GLEnums::GetStringEnum(func) << ", " << ref << ", "
4354 << mask << ")"); 4596 << mask << ")");
4597 DCHECK(g_driver_gl.debug_fn.glStencilFuncFn != nullptr);
4355 g_driver_gl.debug_fn.glStencilFuncFn(func, ref, mask); 4598 g_driver_gl.debug_fn.glStencilFuncFn(func, ref, mask);
4356 } 4599 }
4357 4600
4358 static void GL_BINDING_CALL Debug_glStencilFuncSeparate(GLenum face, 4601 static void GL_BINDING_CALL Debug_glStencilFuncSeparate(GLenum face,
4359 GLenum func, 4602 GLenum func,
4360 GLint ref, 4603 GLint ref,
4361 GLuint mask) { 4604 GLuint mask) {
4362 GL_SERVICE_LOG("glStencilFuncSeparate" 4605 GL_SERVICE_LOG("glStencilFuncSeparate"
4363 << "(" << GLEnums::GetStringEnum(face) << ", " 4606 << "(" << GLEnums::GetStringEnum(face) << ", "
4364 << GLEnums::GetStringEnum(func) << ", " << ref << ", " << mask 4607 << GLEnums::GetStringEnum(func) << ", " << ref << ", " << mask
4365 << ")"); 4608 << ")");
4609 DCHECK(g_driver_gl.debug_fn.glStencilFuncSeparateFn != nullptr);
4366 g_driver_gl.debug_fn.glStencilFuncSeparateFn(face, func, ref, mask); 4610 g_driver_gl.debug_fn.glStencilFuncSeparateFn(face, func, ref, mask);
4367 } 4611 }
4368 4612
4369 static void GL_BINDING_CALL Debug_glStencilMask(GLuint mask) { 4613 static void GL_BINDING_CALL Debug_glStencilMask(GLuint mask) {
4370 GL_SERVICE_LOG("glStencilMask" 4614 GL_SERVICE_LOG("glStencilMask"
4371 << "(" << mask << ")"); 4615 << "(" << mask << ")");
4616 DCHECK(g_driver_gl.debug_fn.glStencilMaskFn != nullptr);
4372 g_driver_gl.debug_fn.glStencilMaskFn(mask); 4617 g_driver_gl.debug_fn.glStencilMaskFn(mask);
4373 } 4618 }
4374 4619
4375 static void GL_BINDING_CALL Debug_glStencilMaskSeparate(GLenum face, 4620 static void GL_BINDING_CALL Debug_glStencilMaskSeparate(GLenum face,
4376 GLuint mask) { 4621 GLuint mask) {
4377 GL_SERVICE_LOG("glStencilMaskSeparate" 4622 GL_SERVICE_LOG("glStencilMaskSeparate"
4378 << "(" << GLEnums::GetStringEnum(face) << ", " << mask << ")"); 4623 << "(" << GLEnums::GetStringEnum(face) << ", " << mask << ")");
4624 DCHECK(g_driver_gl.debug_fn.glStencilMaskSeparateFn != nullptr);
4379 g_driver_gl.debug_fn.glStencilMaskSeparateFn(face, mask); 4625 g_driver_gl.debug_fn.glStencilMaskSeparateFn(face, mask);
4380 } 4626 }
4381 4627
4382 static void GL_BINDING_CALL Debug_glStencilOp(GLenum fail, 4628 static void GL_BINDING_CALL Debug_glStencilOp(GLenum fail,
4383 GLenum zfail, 4629 GLenum zfail,
4384 GLenum zpass) { 4630 GLenum zpass) {
4385 GL_SERVICE_LOG("glStencilOp" 4631 GL_SERVICE_LOG("glStencilOp"
4386 << "(" << GLEnums::GetStringEnum(fail) << ", " 4632 << "(" << GLEnums::GetStringEnum(fail) << ", "
4387 << GLEnums::GetStringEnum(zfail) << ", " 4633 << GLEnums::GetStringEnum(zfail) << ", "
4388 << GLEnums::GetStringEnum(zpass) << ")"); 4634 << GLEnums::GetStringEnum(zpass) << ")");
4635 DCHECK(g_driver_gl.debug_fn.glStencilOpFn != nullptr);
4389 g_driver_gl.debug_fn.glStencilOpFn(fail, zfail, zpass); 4636 g_driver_gl.debug_fn.glStencilOpFn(fail, zfail, zpass);
4390 } 4637 }
4391 4638
4392 static void GL_BINDING_CALL Debug_glStencilOpSeparate(GLenum face, 4639 static void GL_BINDING_CALL Debug_glStencilOpSeparate(GLenum face,
4393 GLenum fail, 4640 GLenum fail,
4394 GLenum zfail, 4641 GLenum zfail,
4395 GLenum zpass) { 4642 GLenum zpass) {
4396 GL_SERVICE_LOG("glStencilOpSeparate" 4643 GL_SERVICE_LOG("glStencilOpSeparate"
4397 << "(" << GLEnums::GetStringEnum(face) << ", " 4644 << "(" << GLEnums::GetStringEnum(face) << ", "
4398 << GLEnums::GetStringEnum(fail) << ", " 4645 << GLEnums::GetStringEnum(fail) << ", "
4399 << GLEnums::GetStringEnum(zfail) << ", " 4646 << GLEnums::GetStringEnum(zfail) << ", "
4400 << GLEnums::GetStringEnum(zpass) << ")"); 4647 << GLEnums::GetStringEnum(zpass) << ")");
4648 DCHECK(g_driver_gl.debug_fn.glStencilOpSeparateFn != nullptr);
4401 g_driver_gl.debug_fn.glStencilOpSeparateFn(face, fail, zfail, zpass); 4649 g_driver_gl.debug_fn.glStencilOpSeparateFn(face, fail, zfail, zpass);
4402 } 4650 }
4403 4651
4404 static void GL_BINDING_CALL 4652 static void GL_BINDING_CALL
4405 Debug_glStencilStrokePathInstancedNV(GLsizei numPaths, 4653 Debug_glStencilStrokePathInstancedNV(GLsizei numPaths,
4406 GLenum pathNameType, 4654 GLenum pathNameType,
4407 const void* paths, 4655 const void* paths,
4408 GLuint pathBase, 4656 GLuint pathBase,
4409 GLint ref, 4657 GLint ref,
4410 GLuint mask, 4658 GLuint mask,
4411 GLenum transformType, 4659 GLenum transformType,
4412 const GLfloat* transformValues) { 4660 const GLfloat* transformValues) {
4413 GL_SERVICE_LOG( 4661 GL_SERVICE_LOG(
4414 "glStencilStrokePathInstancedNV" 4662 "glStencilStrokePathInstancedNV"
4415 << "(" << numPaths << ", " << GLEnums::GetStringEnum(pathNameType) << ", " 4663 << "(" << numPaths << ", " << GLEnums::GetStringEnum(pathNameType) << ", "
4416 << static_cast<const void*>(paths) << ", " << pathBase << ", " << ref 4664 << static_cast<const void*>(paths) << ", " << pathBase << ", " << ref
4417 << ", " << mask << ", " << GLEnums::GetStringEnum(transformType) << ", " 4665 << ", " << mask << ", " << GLEnums::GetStringEnum(transformType) << ", "
4418 << static_cast<const void*>(transformValues) << ")"); 4666 << static_cast<const void*>(transformValues) << ")");
4667 DCHECK(g_driver_gl.debug_fn.glStencilStrokePathInstancedNVFn != nullptr);
4419 g_driver_gl.debug_fn.glStencilStrokePathInstancedNVFn( 4668 g_driver_gl.debug_fn.glStencilStrokePathInstancedNVFn(
4420 numPaths, pathNameType, paths, pathBase, ref, mask, transformType, 4669 numPaths, pathNameType, paths, pathBase, ref, mask, transformType,
4421 transformValues); 4670 transformValues);
4422 } 4671 }
4423 4672
4424 static void GL_BINDING_CALL Debug_glStencilStrokePathNV(GLuint path, 4673 static void GL_BINDING_CALL Debug_glStencilStrokePathNV(GLuint path,
4425 GLint reference, 4674 GLint reference,
4426 GLuint mask) { 4675 GLuint mask) {
4427 GL_SERVICE_LOG("glStencilStrokePathNV" 4676 GL_SERVICE_LOG("glStencilStrokePathNV"
4428 << "(" << path << ", " << reference << ", " << mask << ")"); 4677 << "(" << path << ", " << reference << ", " << mask << ")");
4678 DCHECK(g_driver_gl.debug_fn.glStencilStrokePathNVFn != nullptr);
4429 g_driver_gl.debug_fn.glStencilStrokePathNVFn(path, reference, mask); 4679 g_driver_gl.debug_fn.glStencilStrokePathNVFn(path, reference, mask);
4430 } 4680 }
4431 4681
4432 static void GL_BINDING_CALL 4682 static void GL_BINDING_CALL
4433 Debug_glStencilThenCoverFillPathInstancedNV(GLsizei numPaths, 4683 Debug_glStencilThenCoverFillPathInstancedNV(GLsizei numPaths,
4434 GLenum pathNameType, 4684 GLenum pathNameType,
4435 const void* paths, 4685 const void* paths,
4436 GLuint pathBase, 4686 GLuint pathBase,
4437 GLenum fillMode, 4687 GLenum fillMode,
4438 GLuint mask, 4688 GLuint mask,
4439 GLenum coverMode, 4689 GLenum coverMode,
4440 GLenum transformType, 4690 GLenum transformType,
4441 const GLfloat* transformValues) { 4691 const GLfloat* transformValues) {
4442 GL_SERVICE_LOG("glStencilThenCoverFillPathInstancedNV" 4692 GL_SERVICE_LOG("glStencilThenCoverFillPathInstancedNV"
4443 << "(" << numPaths << ", " 4693 << "(" << numPaths << ", "
4444 << GLEnums::GetStringEnum(pathNameType) << ", " 4694 << GLEnums::GetStringEnum(pathNameType) << ", "
4445 << static_cast<const void*>(paths) << ", " << pathBase << ", " 4695 << static_cast<const void*>(paths) << ", " << pathBase << ", "
4446 << GLEnums::GetStringEnum(fillMode) << ", " << mask << ", " 4696 << GLEnums::GetStringEnum(fillMode) << ", " << mask << ", "
4447 << GLEnums::GetStringEnum(coverMode) << ", " 4697 << GLEnums::GetStringEnum(coverMode) << ", "
4448 << GLEnums::GetStringEnum(transformType) << ", " 4698 << GLEnums::GetStringEnum(transformType) << ", "
4449 << static_cast<const void*>(transformValues) << ")"); 4699 << static_cast<const void*>(transformValues) << ")");
4700 DCHECK(g_driver_gl.debug_fn.glStencilThenCoverFillPathInstancedNVFn !=
4701 nullptr);
4450 g_driver_gl.debug_fn.glStencilThenCoverFillPathInstancedNVFn( 4702 g_driver_gl.debug_fn.glStencilThenCoverFillPathInstancedNVFn(
4451 numPaths, pathNameType, paths, pathBase, fillMode, mask, coverMode, 4703 numPaths, pathNameType, paths, pathBase, fillMode, mask, coverMode,
4452 transformType, transformValues); 4704 transformType, transformValues);
4453 } 4705 }
4454 4706
4455 static void GL_BINDING_CALL 4707 static void GL_BINDING_CALL
4456 Debug_glStencilThenCoverFillPathNV(GLuint path, 4708 Debug_glStencilThenCoverFillPathNV(GLuint path,
4457 GLenum fillMode, 4709 GLenum fillMode,
4458 GLuint mask, 4710 GLuint mask,
4459 GLenum coverMode) { 4711 GLenum coverMode) {
4460 GL_SERVICE_LOG("glStencilThenCoverFillPathNV" 4712 GL_SERVICE_LOG("glStencilThenCoverFillPathNV"
4461 << "(" << path << ", " << GLEnums::GetStringEnum(fillMode) 4713 << "(" << path << ", " << GLEnums::GetStringEnum(fillMode)
4462 << ", " << mask << ", " << GLEnums::GetStringEnum(coverMode) 4714 << ", " << mask << ", " << GLEnums::GetStringEnum(coverMode)
4463 << ")"); 4715 << ")");
4716 DCHECK(g_driver_gl.debug_fn.glStencilThenCoverFillPathNVFn != nullptr);
4464 g_driver_gl.debug_fn.glStencilThenCoverFillPathNVFn(path, fillMode, mask, 4717 g_driver_gl.debug_fn.glStencilThenCoverFillPathNVFn(path, fillMode, mask,
4465 coverMode); 4718 coverMode);
4466 } 4719 }
4467 4720
4468 static void GL_BINDING_CALL 4721 static void GL_BINDING_CALL
4469 Debug_glStencilThenCoverStrokePathInstancedNV(GLsizei numPaths, 4722 Debug_glStencilThenCoverStrokePathInstancedNV(GLsizei numPaths,
4470 GLenum pathNameType, 4723 GLenum pathNameType,
4471 const void* paths, 4724 const void* paths,
4472 GLuint pathBase, 4725 GLuint pathBase,
4473 GLint ref, 4726 GLint ref,
4474 GLuint mask, 4727 GLuint mask,
4475 GLenum coverMode, 4728 GLenum coverMode,
4476 GLenum transformType, 4729 GLenum transformType,
4477 const GLfloat* transformValues) { 4730 const GLfloat* transformValues) {
4478 GL_SERVICE_LOG( 4731 GL_SERVICE_LOG(
4479 "glStencilThenCoverStrokePathInstancedNV" 4732 "glStencilThenCoverStrokePathInstancedNV"
4480 << "(" << numPaths << ", " << GLEnums::GetStringEnum(pathNameType) << ", " 4733 << "(" << numPaths << ", " << GLEnums::GetStringEnum(pathNameType) << ", "
4481 << static_cast<const void*>(paths) << ", " << pathBase << ", " << ref 4734 << static_cast<const void*>(paths) << ", " << pathBase << ", " << ref
4482 << ", " << mask << ", " << GLEnums::GetStringEnum(coverMode) << ", " 4735 << ", " << mask << ", " << GLEnums::GetStringEnum(coverMode) << ", "
4483 << GLEnums::GetStringEnum(transformType) << ", " 4736 << GLEnums::GetStringEnum(transformType) << ", "
4484 << static_cast<const void*>(transformValues) << ")"); 4737 << static_cast<const void*>(transformValues) << ")");
4738 DCHECK(g_driver_gl.debug_fn.glStencilThenCoverStrokePathInstancedNVFn !=
4739 nullptr);
4485 g_driver_gl.debug_fn.glStencilThenCoverStrokePathInstancedNVFn( 4740 g_driver_gl.debug_fn.glStencilThenCoverStrokePathInstancedNVFn(
4486 numPaths, pathNameType, paths, pathBase, ref, mask, coverMode, 4741 numPaths, pathNameType, paths, pathBase, ref, mask, coverMode,
4487 transformType, transformValues); 4742 transformType, transformValues);
4488 } 4743 }
4489 4744
4490 static void GL_BINDING_CALL 4745 static void GL_BINDING_CALL
4491 Debug_glStencilThenCoverStrokePathNV(GLuint path, 4746 Debug_glStencilThenCoverStrokePathNV(GLuint path,
4492 GLint reference, 4747 GLint reference,
4493 GLuint mask, 4748 GLuint mask,
4494 GLenum coverMode) { 4749 GLenum coverMode) {
4495 GL_SERVICE_LOG("glStencilThenCoverStrokePathNV" 4750 GL_SERVICE_LOG("glStencilThenCoverStrokePathNV"
4496 << "(" << path << ", " << reference << ", " << mask << ", " 4751 << "(" << path << ", " << reference << ", " << mask << ", "
4497 << GLEnums::GetStringEnum(coverMode) << ")"); 4752 << GLEnums::GetStringEnum(coverMode) << ")");
4753 DCHECK(g_driver_gl.debug_fn.glStencilThenCoverStrokePathNVFn != nullptr);
4498 g_driver_gl.debug_fn.glStencilThenCoverStrokePathNVFn(path, reference, mask, 4754 g_driver_gl.debug_fn.glStencilThenCoverStrokePathNVFn(path, reference, mask,
4499 coverMode); 4755 coverMode);
4500 } 4756 }
4501 4757
4502 static GLboolean GL_BINDING_CALL Debug_glTestFenceAPPLE(GLuint fence) { 4758 static GLboolean GL_BINDING_CALL Debug_glTestFenceAPPLE(GLuint fence) {
4503 GL_SERVICE_LOG("glTestFenceAPPLE" 4759 GL_SERVICE_LOG("glTestFenceAPPLE"
4504 << "(" << fence << ")"); 4760 << "(" << fence << ")");
4761 DCHECK(g_driver_gl.debug_fn.glTestFenceAPPLEFn != nullptr);
4505 GLboolean result = g_driver_gl.debug_fn.glTestFenceAPPLEFn(fence); 4762 GLboolean result = g_driver_gl.debug_fn.glTestFenceAPPLEFn(fence);
4506 GL_SERVICE_LOG("GL_RESULT: " << result); 4763 GL_SERVICE_LOG("GL_RESULT: " << result);
4507 return result; 4764 return result;
4508 } 4765 }
4509 4766
4510 static GLboolean GL_BINDING_CALL Debug_glTestFenceNV(GLuint fence) { 4767 static GLboolean GL_BINDING_CALL Debug_glTestFenceNV(GLuint fence) {
4511 GL_SERVICE_LOG("glTestFenceNV" 4768 GL_SERVICE_LOG("glTestFenceNV"
4512 << "(" << fence << ")"); 4769 << "(" << fence << ")");
4770 DCHECK(g_driver_gl.debug_fn.glTestFenceNVFn != nullptr);
4513 GLboolean result = g_driver_gl.debug_fn.glTestFenceNVFn(fence); 4771 GLboolean result = g_driver_gl.debug_fn.glTestFenceNVFn(fence);
4514 GL_SERVICE_LOG("GL_RESULT: " << result); 4772 GL_SERVICE_LOG("GL_RESULT: " << result);
4515 return result; 4773 return result;
4516 } 4774 }
4517 4775
4518 static void GL_BINDING_CALL Debug_glTexImage2D(GLenum target, 4776 static void GL_BINDING_CALL Debug_glTexImage2D(GLenum target,
4519 GLint level, 4777 GLint level,
4520 GLint internalformat, 4778 GLint internalformat,
4521 GLsizei width, 4779 GLsizei width,
4522 GLsizei height, 4780 GLsizei height,
4523 GLint border, 4781 GLint border,
4524 GLenum format, 4782 GLenum format,
4525 GLenum type, 4783 GLenum type,
4526 const void* pixels) { 4784 const void* pixels) {
4527 GL_SERVICE_LOG("glTexImage2D" 4785 GL_SERVICE_LOG("glTexImage2D"
4528 << "(" << GLEnums::GetStringEnum(target) << ", " << level 4786 << "(" << GLEnums::GetStringEnum(target) << ", " << level
4529 << ", " << internalformat << ", " << width << ", " << height 4787 << ", " << internalformat << ", " << width << ", " << height
4530 << ", " << border << ", " << GLEnums::GetStringEnum(format) 4788 << ", " << border << ", " << GLEnums::GetStringEnum(format)
4531 << ", " << GLEnums::GetStringEnum(type) << ", " 4789 << ", " << GLEnums::GetStringEnum(type) << ", "
4532 << static_cast<const void*>(pixels) << ")"); 4790 << static_cast<const void*>(pixels) << ")");
4791 DCHECK(g_driver_gl.debug_fn.glTexImage2DFn != nullptr);
4533 g_driver_gl.debug_fn.glTexImage2DFn(target, level, internalformat, width, 4792 g_driver_gl.debug_fn.glTexImage2DFn(target, level, internalformat, width,
4534 height, border, format, type, pixels); 4793 height, border, format, type, pixels);
4535 } 4794 }
4536 4795
4537 static void GL_BINDING_CALL Debug_glTexImage3D(GLenum target, 4796 static void GL_BINDING_CALL Debug_glTexImage3D(GLenum target,
4538 GLint level, 4797 GLint level,
4539 GLint internalformat, 4798 GLint internalformat,
4540 GLsizei width, 4799 GLsizei width,
4541 GLsizei height, 4800 GLsizei height,
4542 GLsizei depth, 4801 GLsizei depth,
4543 GLint border, 4802 GLint border,
4544 GLenum format, 4803 GLenum format,
4545 GLenum type, 4804 GLenum type,
4546 const void* pixels) { 4805 const void* pixels) {
4547 GL_SERVICE_LOG("glTexImage3D" 4806 GL_SERVICE_LOG("glTexImage3D"
4548 << "(" << GLEnums::GetStringEnum(target) << ", " << level 4807 << "(" << GLEnums::GetStringEnum(target) << ", " << level
4549 << ", " << internalformat << ", " << width << ", " << height 4808 << ", " << internalformat << ", " << width << ", " << height
4550 << ", " << depth << ", " << border << ", " 4809 << ", " << depth << ", " << border << ", "
4551 << GLEnums::GetStringEnum(format) << ", " 4810 << GLEnums::GetStringEnum(format) << ", "
4552 << GLEnums::GetStringEnum(type) << ", " 4811 << GLEnums::GetStringEnum(type) << ", "
4553 << static_cast<const void*>(pixels) << ")"); 4812 << static_cast<const void*>(pixels) << ")");
4813 DCHECK(g_driver_gl.debug_fn.glTexImage3DFn != nullptr);
4554 g_driver_gl.debug_fn.glTexImage3DFn(target, level, internalformat, width, 4814 g_driver_gl.debug_fn.glTexImage3DFn(target, level, internalformat, width,
4555 height, depth, border, format, type, 4815 height, depth, border, format, type,
4556 pixels); 4816 pixels);
4557 } 4817 }
4558 4818
4559 static void GL_BINDING_CALL Debug_glTexParameterf(GLenum target, 4819 static void GL_BINDING_CALL Debug_glTexParameterf(GLenum target,
4560 GLenum pname, 4820 GLenum pname,
4561 GLfloat param) { 4821 GLfloat param) {
4562 GL_SERVICE_LOG("glTexParameterf" 4822 GL_SERVICE_LOG("glTexParameterf"
4563 << "(" << GLEnums::GetStringEnum(target) << ", " 4823 << "(" << GLEnums::GetStringEnum(target) << ", "
4564 << GLEnums::GetStringEnum(pname) << ", " << param << ")"); 4824 << GLEnums::GetStringEnum(pname) << ", " << param << ")");
4825 DCHECK(g_driver_gl.debug_fn.glTexParameterfFn != nullptr);
4565 g_driver_gl.debug_fn.glTexParameterfFn(target, pname, param); 4826 g_driver_gl.debug_fn.glTexParameterfFn(target, pname, param);
4566 } 4827 }
4567 4828
4568 static void GL_BINDING_CALL Debug_glTexParameterfv(GLenum target, 4829 static void GL_BINDING_CALL Debug_glTexParameterfv(GLenum target,
4569 GLenum pname, 4830 GLenum pname,
4570 const GLfloat* params) { 4831 const GLfloat* params) {
4571 GL_SERVICE_LOG("glTexParameterfv" 4832 GL_SERVICE_LOG("glTexParameterfv"
4572 << "(" << GLEnums::GetStringEnum(target) << ", " 4833 << "(" << GLEnums::GetStringEnum(target) << ", "
4573 << GLEnums::GetStringEnum(pname) << ", " 4834 << GLEnums::GetStringEnum(pname) << ", "
4574 << static_cast<const void*>(params) << ")"); 4835 << static_cast<const void*>(params) << ")");
4836 DCHECK(g_driver_gl.debug_fn.glTexParameterfvFn != nullptr);
4575 g_driver_gl.debug_fn.glTexParameterfvFn(target, pname, params); 4837 g_driver_gl.debug_fn.glTexParameterfvFn(target, pname, params);
4576 } 4838 }
4577 4839
4578 static void GL_BINDING_CALL Debug_glTexParameteri(GLenum target, 4840 static void GL_BINDING_CALL Debug_glTexParameteri(GLenum target,
4579 GLenum pname, 4841 GLenum pname,
4580 GLint param) { 4842 GLint param) {
4581 GL_SERVICE_LOG("glTexParameteri" 4843 GL_SERVICE_LOG("glTexParameteri"
4582 << "(" << GLEnums::GetStringEnum(target) << ", " 4844 << "(" << GLEnums::GetStringEnum(target) << ", "
4583 << GLEnums::GetStringEnum(pname) << ", " << param << ")"); 4845 << GLEnums::GetStringEnum(pname) << ", " << param << ")");
4846 DCHECK(g_driver_gl.debug_fn.glTexParameteriFn != nullptr);
4584 g_driver_gl.debug_fn.glTexParameteriFn(target, pname, param); 4847 g_driver_gl.debug_fn.glTexParameteriFn(target, pname, param);
4585 } 4848 }
4586 4849
4587 static void GL_BINDING_CALL Debug_glTexParameteriv(GLenum target, 4850 static void GL_BINDING_CALL Debug_glTexParameteriv(GLenum target,
4588 GLenum pname, 4851 GLenum pname,
4589 const GLint* params) { 4852 const GLint* params) {
4590 GL_SERVICE_LOG("glTexParameteriv" 4853 GL_SERVICE_LOG("glTexParameteriv"
4591 << "(" << GLEnums::GetStringEnum(target) << ", " 4854 << "(" << GLEnums::GetStringEnum(target) << ", "
4592 << GLEnums::GetStringEnum(pname) << ", " 4855 << GLEnums::GetStringEnum(pname) << ", "
4593 << static_cast<const void*>(params) << ")"); 4856 << static_cast<const void*>(params) << ")");
4857 DCHECK(g_driver_gl.debug_fn.glTexParameterivFn != nullptr);
4594 g_driver_gl.debug_fn.glTexParameterivFn(target, pname, params); 4858 g_driver_gl.debug_fn.glTexParameterivFn(target, pname, params);
4595 } 4859 }
4596 4860
4597 static void GL_BINDING_CALL Debug_glTexStorage2DEXT(GLenum target, 4861 static void GL_BINDING_CALL Debug_glTexStorage2DEXT(GLenum target,
4598 GLsizei levels, 4862 GLsizei levels,
4599 GLenum internalformat, 4863 GLenum internalformat,
4600 GLsizei width, 4864 GLsizei width,
4601 GLsizei height) { 4865 GLsizei height) {
4602 GL_SERVICE_LOG("glTexStorage2DEXT" 4866 GL_SERVICE_LOG("glTexStorage2DEXT"
4603 << "(" << GLEnums::GetStringEnum(target) << ", " << levels 4867 << "(" << GLEnums::GetStringEnum(target) << ", " << levels
4604 << ", " << GLEnums::GetStringEnum(internalformat) << ", " 4868 << ", " << GLEnums::GetStringEnum(internalformat) << ", "
4605 << width << ", " << height << ")"); 4869 << width << ", " << height << ")");
4870 DCHECK(g_driver_gl.debug_fn.glTexStorage2DEXTFn != nullptr);
4606 g_driver_gl.debug_fn.glTexStorage2DEXTFn(target, levels, internalformat, 4871 g_driver_gl.debug_fn.glTexStorage2DEXTFn(target, levels, internalformat,
4607 width, height); 4872 width, height);
4608 } 4873 }
4609 4874
4610 static void GL_BINDING_CALL Debug_glTexStorage3D(GLenum target, 4875 static void GL_BINDING_CALL Debug_glTexStorage3D(GLenum target,
4611 GLsizei levels, 4876 GLsizei levels,
4612 GLenum internalformat, 4877 GLenum internalformat,
4613 GLsizei width, 4878 GLsizei width,
4614 GLsizei height, 4879 GLsizei height,
4615 GLsizei depth) { 4880 GLsizei depth) {
4616 GL_SERVICE_LOG("glTexStorage3D" 4881 GL_SERVICE_LOG("glTexStorage3D"
4617 << "(" << GLEnums::GetStringEnum(target) << ", " << levels 4882 << "(" << GLEnums::GetStringEnum(target) << ", " << levels
4618 << ", " << GLEnums::GetStringEnum(internalformat) << ", " 4883 << ", " << GLEnums::GetStringEnum(internalformat) << ", "
4619 << width << ", " << height << ", " << depth << ")"); 4884 << width << ", " << height << ", " << depth << ")");
4885 DCHECK(g_driver_gl.debug_fn.glTexStorage3DFn != nullptr);
4620 g_driver_gl.debug_fn.glTexStorage3DFn(target, levels, internalformat, width, 4886 g_driver_gl.debug_fn.glTexStorage3DFn(target, levels, internalformat, width,
4621 height, depth); 4887 height, depth);
4622 } 4888 }
4623 4889
4624 static void GL_BINDING_CALL Debug_glTexSubImage2D(GLenum target, 4890 static void GL_BINDING_CALL Debug_glTexSubImage2D(GLenum target,
4625 GLint level, 4891 GLint level,
4626 GLint xoffset, 4892 GLint xoffset,
4627 GLint yoffset, 4893 GLint yoffset,
4628 GLsizei width, 4894 GLsizei width,
4629 GLsizei height, 4895 GLsizei height,
4630 GLenum format, 4896 GLenum format,
4631 GLenum type, 4897 GLenum type,
4632 const void* pixels) { 4898 const void* pixels) {
4633 GL_SERVICE_LOG("glTexSubImage2D" 4899 GL_SERVICE_LOG("glTexSubImage2D"
4634 << "(" << GLEnums::GetStringEnum(target) << ", " << level 4900 << "(" << GLEnums::GetStringEnum(target) << ", " << level
4635 << ", " << xoffset << ", " << yoffset << ", " << width << ", " 4901 << ", " << xoffset << ", " << yoffset << ", " << width << ", "
4636 << height << ", " << GLEnums::GetStringEnum(format) << ", " 4902 << height << ", " << GLEnums::GetStringEnum(format) << ", "
4637 << GLEnums::GetStringEnum(type) << ", " 4903 << GLEnums::GetStringEnum(type) << ", "
4638 << static_cast<const void*>(pixels) << ")"); 4904 << static_cast<const void*>(pixels) << ")");
4905 DCHECK(g_driver_gl.debug_fn.glTexSubImage2DFn != nullptr);
4639 g_driver_gl.debug_fn.glTexSubImage2DFn(target, level, xoffset, yoffset, width, 4906 g_driver_gl.debug_fn.glTexSubImage2DFn(target, level, xoffset, yoffset, width,
4640 height, format, type, pixels); 4907 height, format, type, pixels);
4641 } 4908 }
4642 4909
4643 static void GL_BINDING_CALL Debug_glTexSubImage3D(GLenum target, 4910 static void GL_BINDING_CALL Debug_glTexSubImage3D(GLenum target,
4644 GLint level, 4911 GLint level,
4645 GLint xoffset, 4912 GLint xoffset,
4646 GLint yoffset, 4913 GLint yoffset,
4647 GLint zoffset, 4914 GLint zoffset,
4648 GLsizei width, 4915 GLsizei width,
4649 GLsizei height, 4916 GLsizei height,
4650 GLsizei depth, 4917 GLsizei depth,
4651 GLenum format, 4918 GLenum format,
4652 GLenum type, 4919 GLenum type,
4653 const void* pixels) { 4920 const void* pixels) {
4654 GL_SERVICE_LOG("glTexSubImage3D" 4921 GL_SERVICE_LOG("glTexSubImage3D"
4655 << "(" << GLEnums::GetStringEnum(target) << ", " << level 4922 << "(" << GLEnums::GetStringEnum(target) << ", " << level
4656 << ", " << xoffset << ", " << yoffset << ", " << zoffset 4923 << ", " << xoffset << ", " << yoffset << ", " << zoffset
4657 << ", " << width << ", " << height << ", " << depth << ", " 4924 << ", " << width << ", " << height << ", " << depth << ", "
4658 << GLEnums::GetStringEnum(format) << ", " 4925 << GLEnums::GetStringEnum(format) << ", "
4659 << GLEnums::GetStringEnum(type) << ", " 4926 << GLEnums::GetStringEnum(type) << ", "
4660 << static_cast<const void*>(pixels) << ")"); 4927 << static_cast<const void*>(pixels) << ")");
4928 DCHECK(g_driver_gl.debug_fn.glTexSubImage3DFn != nullptr);
4661 g_driver_gl.debug_fn.glTexSubImage3DFn(target, level, xoffset, yoffset, 4929 g_driver_gl.debug_fn.glTexSubImage3DFn(target, level, xoffset, yoffset,
4662 zoffset, width, height, depth, format, 4930 zoffset, width, height, depth, format,
4663 type, pixels); 4931 type, pixels);
4664 } 4932 }
4665 4933
4666 static void GL_BINDING_CALL 4934 static void GL_BINDING_CALL
4667 Debug_glTransformFeedbackVaryings(GLuint program, 4935 Debug_glTransformFeedbackVaryings(GLuint program,
4668 GLsizei count, 4936 GLsizei count,
4669 const char* const* varyings, 4937 const char* const* varyings,
4670 GLenum bufferMode) { 4938 GLenum bufferMode) {
4671 GL_SERVICE_LOG("glTransformFeedbackVaryings" 4939 GL_SERVICE_LOG("glTransformFeedbackVaryings"
4672 << "(" << program << ", " << count << ", " 4940 << "(" << program << ", " << count << ", "
4673 << static_cast<const void*>(varyings) << ", " 4941 << static_cast<const void*>(varyings) << ", "
4674 << GLEnums::GetStringEnum(bufferMode) << ")"); 4942 << GLEnums::GetStringEnum(bufferMode) << ")");
4943 DCHECK(g_driver_gl.debug_fn.glTransformFeedbackVaryingsFn != nullptr);
4675 g_driver_gl.debug_fn.glTransformFeedbackVaryingsFn(program, count, varyings, 4944 g_driver_gl.debug_fn.glTransformFeedbackVaryingsFn(program, count, varyings,
4676 bufferMode); 4945 bufferMode);
4677 } 4946 }
4678 4947
4679 static void GL_BINDING_CALL Debug_glUniform1f(GLint location, GLfloat x) { 4948 static void GL_BINDING_CALL Debug_glUniform1f(GLint location, GLfloat x) {
4680 GL_SERVICE_LOG("glUniform1f" 4949 GL_SERVICE_LOG("glUniform1f"
4681 << "(" << location << ", " << x << ")"); 4950 << "(" << location << ", " << x << ")");
4951 DCHECK(g_driver_gl.debug_fn.glUniform1fFn != nullptr);
4682 g_driver_gl.debug_fn.glUniform1fFn(location, x); 4952 g_driver_gl.debug_fn.glUniform1fFn(location, x);
4683 } 4953 }
4684 4954
4685 static void GL_BINDING_CALL Debug_glUniform1fv(GLint location, 4955 static void GL_BINDING_CALL Debug_glUniform1fv(GLint location,
4686 GLsizei count, 4956 GLsizei count,
4687 const GLfloat* v) { 4957 const GLfloat* v) {
4688 GL_SERVICE_LOG("glUniform1fv" 4958 GL_SERVICE_LOG("glUniform1fv"
4689 << "(" << location << ", " << count << ", " 4959 << "(" << location << ", " << count << ", "
4690 << static_cast<const void*>(v) << ")"); 4960 << static_cast<const void*>(v) << ")");
4961 DCHECK(g_driver_gl.debug_fn.glUniform1fvFn != nullptr);
4691 g_driver_gl.debug_fn.glUniform1fvFn(location, count, v); 4962 g_driver_gl.debug_fn.glUniform1fvFn(location, count, v);
4692 } 4963 }
4693 4964
4694 static void GL_BINDING_CALL Debug_glUniform1i(GLint location, GLint x) { 4965 static void GL_BINDING_CALL Debug_glUniform1i(GLint location, GLint x) {
4695 GL_SERVICE_LOG("glUniform1i" 4966 GL_SERVICE_LOG("glUniform1i"
4696 << "(" << location << ", " << x << ")"); 4967 << "(" << location << ", " << x << ")");
4968 DCHECK(g_driver_gl.debug_fn.glUniform1iFn != nullptr);
4697 g_driver_gl.debug_fn.glUniform1iFn(location, x); 4969 g_driver_gl.debug_fn.glUniform1iFn(location, x);
4698 } 4970 }
4699 4971
4700 static void GL_BINDING_CALL Debug_glUniform1iv(GLint location, 4972 static void GL_BINDING_CALL Debug_glUniform1iv(GLint location,
4701 GLsizei count, 4973 GLsizei count,
4702 const GLint* v) { 4974 const GLint* v) {
4703 GL_SERVICE_LOG("glUniform1iv" 4975 GL_SERVICE_LOG("glUniform1iv"
4704 << "(" << location << ", " << count << ", " 4976 << "(" << location << ", " << count << ", "
4705 << static_cast<const void*>(v) << ")"); 4977 << static_cast<const void*>(v) << ")");
4978 DCHECK(g_driver_gl.debug_fn.glUniform1ivFn != nullptr);
4706 g_driver_gl.debug_fn.glUniform1ivFn(location, count, v); 4979 g_driver_gl.debug_fn.glUniform1ivFn(location, count, v);
4707 } 4980 }
4708 4981
4709 static void GL_BINDING_CALL Debug_glUniform1ui(GLint location, GLuint v0) { 4982 static void GL_BINDING_CALL Debug_glUniform1ui(GLint location, GLuint v0) {
4710 GL_SERVICE_LOG("glUniform1ui" 4983 GL_SERVICE_LOG("glUniform1ui"
4711 << "(" << location << ", " << v0 << ")"); 4984 << "(" << location << ", " << v0 << ")");
4985 DCHECK(g_driver_gl.debug_fn.glUniform1uiFn != nullptr);
4712 g_driver_gl.debug_fn.glUniform1uiFn(location, v0); 4986 g_driver_gl.debug_fn.glUniform1uiFn(location, v0);
4713 } 4987 }
4714 4988
4715 static void GL_BINDING_CALL Debug_glUniform1uiv(GLint location, 4989 static void GL_BINDING_CALL Debug_glUniform1uiv(GLint location,
4716 GLsizei count, 4990 GLsizei count,
4717 const GLuint* v) { 4991 const GLuint* v) {
4718 GL_SERVICE_LOG("glUniform1uiv" 4992 GL_SERVICE_LOG("glUniform1uiv"
4719 << "(" << location << ", " << count << ", " 4993 << "(" << location << ", " << count << ", "
4720 << static_cast<const void*>(v) << ")"); 4994 << static_cast<const void*>(v) << ")");
4995 DCHECK(g_driver_gl.debug_fn.glUniform1uivFn != nullptr);
4721 g_driver_gl.debug_fn.glUniform1uivFn(location, count, v); 4996 g_driver_gl.debug_fn.glUniform1uivFn(location, count, v);
4722 } 4997 }
4723 4998
4724 static void GL_BINDING_CALL Debug_glUniform2f(GLint location, 4999 static void GL_BINDING_CALL Debug_glUniform2f(GLint location,
4725 GLfloat x, 5000 GLfloat x,
4726 GLfloat y) { 5001 GLfloat y) {
4727 GL_SERVICE_LOG("glUniform2f" 5002 GL_SERVICE_LOG("glUniform2f"
4728 << "(" << location << ", " << x << ", " << y << ")"); 5003 << "(" << location << ", " << x << ", " << y << ")");
5004 DCHECK(g_driver_gl.debug_fn.glUniform2fFn != nullptr);
4729 g_driver_gl.debug_fn.glUniform2fFn(location, x, y); 5005 g_driver_gl.debug_fn.glUniform2fFn(location, x, y);
4730 } 5006 }
4731 5007
4732 static void GL_BINDING_CALL Debug_glUniform2fv(GLint location, 5008 static void GL_BINDING_CALL Debug_glUniform2fv(GLint location,
4733 GLsizei count, 5009 GLsizei count,
4734 const GLfloat* v) { 5010 const GLfloat* v) {
4735 GL_SERVICE_LOG("glUniform2fv" 5011 GL_SERVICE_LOG("glUniform2fv"
4736 << "(" << location << ", " << count << ", " 5012 << "(" << location << ", " << count << ", "
4737 << static_cast<const void*>(v) << ")"); 5013 << static_cast<const void*>(v) << ")");
5014 DCHECK(g_driver_gl.debug_fn.glUniform2fvFn != nullptr);
4738 g_driver_gl.debug_fn.glUniform2fvFn(location, count, v); 5015 g_driver_gl.debug_fn.glUniform2fvFn(location, count, v);
4739 } 5016 }
4740 5017
4741 static void GL_BINDING_CALL Debug_glUniform2i(GLint location, 5018 static void GL_BINDING_CALL Debug_glUniform2i(GLint location,
4742 GLint x, 5019 GLint x,
4743 GLint y) { 5020 GLint y) {
4744 GL_SERVICE_LOG("glUniform2i" 5021 GL_SERVICE_LOG("glUniform2i"
4745 << "(" << location << ", " << x << ", " << y << ")"); 5022 << "(" << location << ", " << x << ", " << y << ")");
5023 DCHECK(g_driver_gl.debug_fn.glUniform2iFn != nullptr);
4746 g_driver_gl.debug_fn.glUniform2iFn(location, x, y); 5024 g_driver_gl.debug_fn.glUniform2iFn(location, x, y);
4747 } 5025 }
4748 5026
4749 static void GL_BINDING_CALL Debug_glUniform2iv(GLint location, 5027 static void GL_BINDING_CALL Debug_glUniform2iv(GLint location,
4750 GLsizei count, 5028 GLsizei count,
4751 const GLint* v) { 5029 const GLint* v) {
4752 GL_SERVICE_LOG("glUniform2iv" 5030 GL_SERVICE_LOG("glUniform2iv"
4753 << "(" << location << ", " << count << ", " 5031 << "(" << location << ", " << count << ", "
4754 << static_cast<const void*>(v) << ")"); 5032 << static_cast<const void*>(v) << ")");
5033 DCHECK(g_driver_gl.debug_fn.glUniform2ivFn != nullptr);
4755 g_driver_gl.debug_fn.glUniform2ivFn(location, count, v); 5034 g_driver_gl.debug_fn.glUniform2ivFn(location, count, v);
4756 } 5035 }
4757 5036
4758 static void GL_BINDING_CALL Debug_glUniform2ui(GLint location, 5037 static void GL_BINDING_CALL Debug_glUniform2ui(GLint location,
4759 GLuint v0, 5038 GLuint v0,
4760 GLuint v1) { 5039 GLuint v1) {
4761 GL_SERVICE_LOG("glUniform2ui" 5040 GL_SERVICE_LOG("glUniform2ui"
4762 << "(" << location << ", " << v0 << ", " << v1 << ")"); 5041 << "(" << location << ", " << v0 << ", " << v1 << ")");
5042 DCHECK(g_driver_gl.debug_fn.glUniform2uiFn != nullptr);
4763 g_driver_gl.debug_fn.glUniform2uiFn(location, v0, v1); 5043 g_driver_gl.debug_fn.glUniform2uiFn(location, v0, v1);
4764 } 5044 }
4765 5045
4766 static void GL_BINDING_CALL Debug_glUniform2uiv(GLint location, 5046 static void GL_BINDING_CALL Debug_glUniform2uiv(GLint location,
4767 GLsizei count, 5047 GLsizei count,
4768 const GLuint* v) { 5048 const GLuint* v) {
4769 GL_SERVICE_LOG("glUniform2uiv" 5049 GL_SERVICE_LOG("glUniform2uiv"
4770 << "(" << location << ", " << count << ", " 5050 << "(" << location << ", " << count << ", "
4771 << static_cast<const void*>(v) << ")"); 5051 << static_cast<const void*>(v) << ")");
5052 DCHECK(g_driver_gl.debug_fn.glUniform2uivFn != nullptr);
4772 g_driver_gl.debug_fn.glUniform2uivFn(location, count, v); 5053 g_driver_gl.debug_fn.glUniform2uivFn(location, count, v);
4773 } 5054 }
4774 5055
4775 static void GL_BINDING_CALL Debug_glUniform3f(GLint location, 5056 static void GL_BINDING_CALL Debug_glUniform3f(GLint location,
4776 GLfloat x, 5057 GLfloat x,
4777 GLfloat y, 5058 GLfloat y,
4778 GLfloat z) { 5059 GLfloat z) {
4779 GL_SERVICE_LOG("glUniform3f" 5060 GL_SERVICE_LOG("glUniform3f"
4780 << "(" << location << ", " << x << ", " << y << ", " << z 5061 << "(" << location << ", " << x << ", " << y << ", " << z
4781 << ")"); 5062 << ")");
5063 DCHECK(g_driver_gl.debug_fn.glUniform3fFn != nullptr);
4782 g_driver_gl.debug_fn.glUniform3fFn(location, x, y, z); 5064 g_driver_gl.debug_fn.glUniform3fFn(location, x, y, z);
4783 } 5065 }
4784 5066
4785 static void GL_BINDING_CALL Debug_glUniform3fv(GLint location, 5067 static void GL_BINDING_CALL Debug_glUniform3fv(GLint location,
4786 GLsizei count, 5068 GLsizei count,
4787 const GLfloat* v) { 5069 const GLfloat* v) {
4788 GL_SERVICE_LOG("glUniform3fv" 5070 GL_SERVICE_LOG("glUniform3fv"
4789 << "(" << location << ", " << count << ", " 5071 << "(" << location << ", " << count << ", "
4790 << static_cast<const void*>(v) << ")"); 5072 << static_cast<const void*>(v) << ")");
5073 DCHECK(g_driver_gl.debug_fn.glUniform3fvFn != nullptr);
4791 g_driver_gl.debug_fn.glUniform3fvFn(location, count, v); 5074 g_driver_gl.debug_fn.glUniform3fvFn(location, count, v);
4792 } 5075 }
4793 5076
4794 static void GL_BINDING_CALL Debug_glUniform3i(GLint location, 5077 static void GL_BINDING_CALL Debug_glUniform3i(GLint location,
4795 GLint x, 5078 GLint x,
4796 GLint y, 5079 GLint y,
4797 GLint z) { 5080 GLint z) {
4798 GL_SERVICE_LOG("glUniform3i" 5081 GL_SERVICE_LOG("glUniform3i"
4799 << "(" << location << ", " << x << ", " << y << ", " << z 5082 << "(" << location << ", " << x << ", " << y << ", " << z
4800 << ")"); 5083 << ")");
5084 DCHECK(g_driver_gl.debug_fn.glUniform3iFn != nullptr);
4801 g_driver_gl.debug_fn.glUniform3iFn(location, x, y, z); 5085 g_driver_gl.debug_fn.glUniform3iFn(location, x, y, z);
4802 } 5086 }
4803 5087
4804 static void GL_BINDING_CALL Debug_glUniform3iv(GLint location, 5088 static void GL_BINDING_CALL Debug_glUniform3iv(GLint location,
4805 GLsizei count, 5089 GLsizei count,
4806 const GLint* v) { 5090 const GLint* v) {
4807 GL_SERVICE_LOG("glUniform3iv" 5091 GL_SERVICE_LOG("glUniform3iv"
4808 << "(" << location << ", " << count << ", " 5092 << "(" << location << ", " << count << ", "
4809 << static_cast<const void*>(v) << ")"); 5093 << static_cast<const void*>(v) << ")");
5094 DCHECK(g_driver_gl.debug_fn.glUniform3ivFn != nullptr);
4810 g_driver_gl.debug_fn.glUniform3ivFn(location, count, v); 5095 g_driver_gl.debug_fn.glUniform3ivFn(location, count, v);
4811 } 5096 }
4812 5097
4813 static void GL_BINDING_CALL Debug_glUniform3ui(GLint location, 5098 static void GL_BINDING_CALL Debug_glUniform3ui(GLint location,
4814 GLuint v0, 5099 GLuint v0,
4815 GLuint v1, 5100 GLuint v1,
4816 GLuint v2) { 5101 GLuint v2) {
4817 GL_SERVICE_LOG("glUniform3ui" 5102 GL_SERVICE_LOG("glUniform3ui"
4818 << "(" << location << ", " << v0 << ", " << v1 << ", " << v2 5103 << "(" << location << ", " << v0 << ", " << v1 << ", " << v2
4819 << ")"); 5104 << ")");
5105 DCHECK(g_driver_gl.debug_fn.glUniform3uiFn != nullptr);
4820 g_driver_gl.debug_fn.glUniform3uiFn(location, v0, v1, v2); 5106 g_driver_gl.debug_fn.glUniform3uiFn(location, v0, v1, v2);
4821 } 5107 }
4822 5108
4823 static void GL_BINDING_CALL Debug_glUniform3uiv(GLint location, 5109 static void GL_BINDING_CALL Debug_glUniform3uiv(GLint location,
4824 GLsizei count, 5110 GLsizei count,
4825 const GLuint* v) { 5111 const GLuint* v) {
4826 GL_SERVICE_LOG("glUniform3uiv" 5112 GL_SERVICE_LOG("glUniform3uiv"
4827 << "(" << location << ", " << count << ", " 5113 << "(" << location << ", " << count << ", "
4828 << static_cast<const void*>(v) << ")"); 5114 << static_cast<const void*>(v) << ")");
5115 DCHECK(g_driver_gl.debug_fn.glUniform3uivFn != nullptr);
4829 g_driver_gl.debug_fn.glUniform3uivFn(location, count, v); 5116 g_driver_gl.debug_fn.glUniform3uivFn(location, count, v);
4830 } 5117 }
4831 5118
4832 static void GL_BINDING_CALL 5119 static void GL_BINDING_CALL
4833 Debug_glUniform4f(GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w) { 5120 Debug_glUniform4f(GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w) {
4834 GL_SERVICE_LOG("glUniform4f" 5121 GL_SERVICE_LOG("glUniform4f"
4835 << "(" << location << ", " << x << ", " << y << ", " << z 5122 << "(" << location << ", " << x << ", " << y << ", " << z
4836 << ", " << w << ")"); 5123 << ", " << w << ")");
5124 DCHECK(g_driver_gl.debug_fn.glUniform4fFn != nullptr);
4837 g_driver_gl.debug_fn.glUniform4fFn(location, x, y, z, w); 5125 g_driver_gl.debug_fn.glUniform4fFn(location, x, y, z, w);
4838 } 5126 }
4839 5127
4840 static void GL_BINDING_CALL Debug_glUniform4fv(GLint location, 5128 static void GL_BINDING_CALL Debug_glUniform4fv(GLint location,
4841 GLsizei count, 5129 GLsizei count,
4842 const GLfloat* v) { 5130 const GLfloat* v) {
4843 GL_SERVICE_LOG("glUniform4fv" 5131 GL_SERVICE_LOG("glUniform4fv"
4844 << "(" << location << ", " << count << ", " 5132 << "(" << location << ", " << count << ", "
4845 << static_cast<const void*>(v) << ")"); 5133 << static_cast<const void*>(v) << ")");
5134 DCHECK(g_driver_gl.debug_fn.glUniform4fvFn != nullptr);
4846 g_driver_gl.debug_fn.glUniform4fvFn(location, count, v); 5135 g_driver_gl.debug_fn.glUniform4fvFn(location, count, v);
4847 } 5136 }
4848 5137
4849 static void GL_BINDING_CALL 5138 static void GL_BINDING_CALL
4850 Debug_glUniform4i(GLint location, GLint x, GLint y, GLint z, GLint w) { 5139 Debug_glUniform4i(GLint location, GLint x, GLint y, GLint z, GLint w) {
4851 GL_SERVICE_LOG("glUniform4i" 5140 GL_SERVICE_LOG("glUniform4i"
4852 << "(" << location << ", " << x << ", " << y << ", " << z 5141 << "(" << location << ", " << x << ", " << y << ", " << z
4853 << ", " << w << ")"); 5142 << ", " << w << ")");
5143 DCHECK(g_driver_gl.debug_fn.glUniform4iFn != nullptr);
4854 g_driver_gl.debug_fn.glUniform4iFn(location, x, y, z, w); 5144 g_driver_gl.debug_fn.glUniform4iFn(location, x, y, z, w);
4855 } 5145 }
4856 5146
4857 static void GL_BINDING_CALL Debug_glUniform4iv(GLint location, 5147 static void GL_BINDING_CALL Debug_glUniform4iv(GLint location,
4858 GLsizei count, 5148 GLsizei count,
4859 const GLint* v) { 5149 const GLint* v) {
4860 GL_SERVICE_LOG("glUniform4iv" 5150 GL_SERVICE_LOG("glUniform4iv"
4861 << "(" << location << ", " << count << ", " 5151 << "(" << location << ", " << count << ", "
4862 << static_cast<const void*>(v) << ")"); 5152 << static_cast<const void*>(v) << ")");
5153 DCHECK(g_driver_gl.debug_fn.glUniform4ivFn != nullptr);
4863 g_driver_gl.debug_fn.glUniform4ivFn(location, count, v); 5154 g_driver_gl.debug_fn.glUniform4ivFn(location, count, v);
4864 } 5155 }
4865 5156
4866 static void GL_BINDING_CALL 5157 static void GL_BINDING_CALL
4867 Debug_glUniform4ui(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3) { 5158 Debug_glUniform4ui(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3) {
4868 GL_SERVICE_LOG("glUniform4ui" 5159 GL_SERVICE_LOG("glUniform4ui"
4869 << "(" << location << ", " << v0 << ", " << v1 << ", " << v2 5160 << "(" << location << ", " << v0 << ", " << v1 << ", " << v2
4870 << ", " << v3 << ")"); 5161 << ", " << v3 << ")");
5162 DCHECK(g_driver_gl.debug_fn.glUniform4uiFn != nullptr);
4871 g_driver_gl.debug_fn.glUniform4uiFn(location, v0, v1, v2, v3); 5163 g_driver_gl.debug_fn.glUniform4uiFn(location, v0, v1, v2, v3);
4872 } 5164 }
4873 5165
4874 static void GL_BINDING_CALL Debug_glUniform4uiv(GLint location, 5166 static void GL_BINDING_CALL Debug_glUniform4uiv(GLint location,
4875 GLsizei count, 5167 GLsizei count,
4876 const GLuint* v) { 5168 const GLuint* v) {
4877 GL_SERVICE_LOG("glUniform4uiv" 5169 GL_SERVICE_LOG("glUniform4uiv"
4878 << "(" << location << ", " << count << ", " 5170 << "(" << location << ", " << count << ", "
4879 << static_cast<const void*>(v) << ")"); 5171 << static_cast<const void*>(v) << ")");
5172 DCHECK(g_driver_gl.debug_fn.glUniform4uivFn != nullptr);
4880 g_driver_gl.debug_fn.glUniform4uivFn(location, count, v); 5173 g_driver_gl.debug_fn.glUniform4uivFn(location, count, v);
4881 } 5174 }
4882 5175
4883 static void GL_BINDING_CALL 5176 static void GL_BINDING_CALL
4884 Debug_glUniformBlockBinding(GLuint program, 5177 Debug_glUniformBlockBinding(GLuint program,
4885 GLuint uniformBlockIndex, 5178 GLuint uniformBlockIndex,
4886 GLuint uniformBlockBinding) { 5179 GLuint uniformBlockBinding) {
4887 GL_SERVICE_LOG("glUniformBlockBinding" 5180 GL_SERVICE_LOG("glUniformBlockBinding"
4888 << "(" << program << ", " << uniformBlockIndex << ", " 5181 << "(" << program << ", " << uniformBlockIndex << ", "
4889 << uniformBlockBinding << ")"); 5182 << uniformBlockBinding << ")");
5183 DCHECK(g_driver_gl.debug_fn.glUniformBlockBindingFn != nullptr);
4890 g_driver_gl.debug_fn.glUniformBlockBindingFn(program, uniformBlockIndex, 5184 g_driver_gl.debug_fn.glUniformBlockBindingFn(program, uniformBlockIndex,
4891 uniformBlockBinding); 5185 uniformBlockBinding);
4892 } 5186 }
4893 5187
4894 static void GL_BINDING_CALL Debug_glUniformMatrix2fv(GLint location, 5188 static void GL_BINDING_CALL Debug_glUniformMatrix2fv(GLint location,
4895 GLsizei count, 5189 GLsizei count,
4896 GLboolean transpose, 5190 GLboolean transpose,
4897 const GLfloat* value) { 5191 const GLfloat* value) {
4898 GL_SERVICE_LOG("glUniformMatrix2fv" 5192 GL_SERVICE_LOG("glUniformMatrix2fv"
4899 << "(" << location << ", " << count << ", " 5193 << "(" << location << ", " << count << ", "
4900 << GLEnums::GetStringBool(transpose) << ", " 5194 << GLEnums::GetStringBool(transpose) << ", "
4901 << static_cast<const void*>(value) << ")"); 5195 << static_cast<const void*>(value) << ")");
5196 DCHECK(g_driver_gl.debug_fn.glUniformMatrix2fvFn != nullptr);
4902 g_driver_gl.debug_fn.glUniformMatrix2fvFn(location, count, transpose, value); 5197 g_driver_gl.debug_fn.glUniformMatrix2fvFn(location, count, transpose, value);
4903 } 5198 }
4904 5199
4905 static void GL_BINDING_CALL Debug_glUniformMatrix2x3fv(GLint location, 5200 static void GL_BINDING_CALL Debug_glUniformMatrix2x3fv(GLint location,
4906 GLsizei count, 5201 GLsizei count,
4907 GLboolean transpose, 5202 GLboolean transpose,
4908 const GLfloat* value) { 5203 const GLfloat* value) {
4909 GL_SERVICE_LOG("glUniformMatrix2x3fv" 5204 GL_SERVICE_LOG("glUniformMatrix2x3fv"
4910 << "(" << location << ", " << count << ", " 5205 << "(" << location << ", " << count << ", "
4911 << GLEnums::GetStringBool(transpose) << ", " 5206 << GLEnums::GetStringBool(transpose) << ", "
4912 << static_cast<const void*>(value) << ")"); 5207 << static_cast<const void*>(value) << ")");
5208 DCHECK(g_driver_gl.debug_fn.glUniformMatrix2x3fvFn != nullptr);
4913 g_driver_gl.debug_fn.glUniformMatrix2x3fvFn(location, count, transpose, 5209 g_driver_gl.debug_fn.glUniformMatrix2x3fvFn(location, count, transpose,
4914 value); 5210 value);
4915 } 5211 }
4916 5212
4917 static void GL_BINDING_CALL Debug_glUniformMatrix2x4fv(GLint location, 5213 static void GL_BINDING_CALL Debug_glUniformMatrix2x4fv(GLint location,
4918 GLsizei count, 5214 GLsizei count,
4919 GLboolean transpose, 5215 GLboolean transpose,
4920 const GLfloat* value) { 5216 const GLfloat* value) {
4921 GL_SERVICE_LOG("glUniformMatrix2x4fv" 5217 GL_SERVICE_LOG("glUniformMatrix2x4fv"
4922 << "(" << location << ", " << count << ", " 5218 << "(" << location << ", " << count << ", "
4923 << GLEnums::GetStringBool(transpose) << ", " 5219 << GLEnums::GetStringBool(transpose) << ", "
4924 << static_cast<const void*>(value) << ")"); 5220 << static_cast<const void*>(value) << ")");
5221 DCHECK(g_driver_gl.debug_fn.glUniformMatrix2x4fvFn != nullptr);
4925 g_driver_gl.debug_fn.glUniformMatrix2x4fvFn(location, count, transpose, 5222 g_driver_gl.debug_fn.glUniformMatrix2x4fvFn(location, count, transpose,
4926 value); 5223 value);
4927 } 5224 }
4928 5225
4929 static void GL_BINDING_CALL Debug_glUniformMatrix3fv(GLint location, 5226 static void GL_BINDING_CALL Debug_glUniformMatrix3fv(GLint location,
4930 GLsizei count, 5227 GLsizei count,
4931 GLboolean transpose, 5228 GLboolean transpose,
4932 const GLfloat* value) { 5229 const GLfloat* value) {
4933 GL_SERVICE_LOG("glUniformMatrix3fv" 5230 GL_SERVICE_LOG("glUniformMatrix3fv"
4934 << "(" << location << ", " << count << ", " 5231 << "(" << location << ", " << count << ", "
4935 << GLEnums::GetStringBool(transpose) << ", " 5232 << GLEnums::GetStringBool(transpose) << ", "
4936 << static_cast<const void*>(value) << ")"); 5233 << static_cast<const void*>(value) << ")");
5234 DCHECK(g_driver_gl.debug_fn.glUniformMatrix3fvFn != nullptr);
4937 g_driver_gl.debug_fn.glUniformMatrix3fvFn(location, count, transpose, value); 5235 g_driver_gl.debug_fn.glUniformMatrix3fvFn(location, count, transpose, value);
4938 } 5236 }
4939 5237
4940 static void GL_BINDING_CALL Debug_glUniformMatrix3x2fv(GLint location, 5238 static void GL_BINDING_CALL Debug_glUniformMatrix3x2fv(GLint location,
4941 GLsizei count, 5239 GLsizei count,
4942 GLboolean transpose, 5240 GLboolean transpose,
4943 const GLfloat* value) { 5241 const GLfloat* value) {
4944 GL_SERVICE_LOG("glUniformMatrix3x2fv" 5242 GL_SERVICE_LOG("glUniformMatrix3x2fv"
4945 << "(" << location << ", " << count << ", " 5243 << "(" << location << ", " << count << ", "
4946 << GLEnums::GetStringBool(transpose) << ", " 5244 << GLEnums::GetStringBool(transpose) << ", "
4947 << static_cast<const void*>(value) << ")"); 5245 << static_cast<const void*>(value) << ")");
5246 DCHECK(g_driver_gl.debug_fn.glUniformMatrix3x2fvFn != nullptr);
4948 g_driver_gl.debug_fn.glUniformMatrix3x2fvFn(location, count, transpose, 5247 g_driver_gl.debug_fn.glUniformMatrix3x2fvFn(location, count, transpose,
4949 value); 5248 value);
4950 } 5249 }
4951 5250
4952 static void GL_BINDING_CALL Debug_glUniformMatrix3x4fv(GLint location, 5251 static void GL_BINDING_CALL Debug_glUniformMatrix3x4fv(GLint location,
4953 GLsizei count, 5252 GLsizei count,
4954 GLboolean transpose, 5253 GLboolean transpose,
4955 const GLfloat* value) { 5254 const GLfloat* value) {
4956 GL_SERVICE_LOG("glUniformMatrix3x4fv" 5255 GL_SERVICE_LOG("glUniformMatrix3x4fv"
4957 << "(" << location << ", " << count << ", " 5256 << "(" << location << ", " << count << ", "
4958 << GLEnums::GetStringBool(transpose) << ", " 5257 << GLEnums::GetStringBool(transpose) << ", "
4959 << static_cast<const void*>(value) << ")"); 5258 << static_cast<const void*>(value) << ")");
5259 DCHECK(g_driver_gl.debug_fn.glUniformMatrix3x4fvFn != nullptr);
4960 g_driver_gl.debug_fn.glUniformMatrix3x4fvFn(location, count, transpose, 5260 g_driver_gl.debug_fn.glUniformMatrix3x4fvFn(location, count, transpose,
4961 value); 5261 value);
4962 } 5262 }
4963 5263
4964 static void GL_BINDING_CALL Debug_glUniformMatrix4fv(GLint location, 5264 static void GL_BINDING_CALL Debug_glUniformMatrix4fv(GLint location,
4965 GLsizei count, 5265 GLsizei count,
4966 GLboolean transpose, 5266 GLboolean transpose,
4967 const GLfloat* value) { 5267 const GLfloat* value) {
4968 GL_SERVICE_LOG("glUniformMatrix4fv" 5268 GL_SERVICE_LOG("glUniformMatrix4fv"
4969 << "(" << location << ", " << count << ", " 5269 << "(" << location << ", " << count << ", "
4970 << GLEnums::GetStringBool(transpose) << ", " 5270 << GLEnums::GetStringBool(transpose) << ", "
4971 << static_cast<const void*>(value) << ")"); 5271 << static_cast<const void*>(value) << ")");
5272 DCHECK(g_driver_gl.debug_fn.glUniformMatrix4fvFn != nullptr);
4972 g_driver_gl.debug_fn.glUniformMatrix4fvFn(location, count, transpose, value); 5273 g_driver_gl.debug_fn.glUniformMatrix4fvFn(location, count, transpose, value);
4973 } 5274 }
4974 5275
4975 static void GL_BINDING_CALL Debug_glUniformMatrix4x2fv(GLint location, 5276 static void GL_BINDING_CALL Debug_glUniformMatrix4x2fv(GLint location,
4976 GLsizei count, 5277 GLsizei count,
4977 GLboolean transpose, 5278 GLboolean transpose,
4978 const GLfloat* value) { 5279 const GLfloat* value) {
4979 GL_SERVICE_LOG("glUniformMatrix4x2fv" 5280 GL_SERVICE_LOG("glUniformMatrix4x2fv"
4980 << "(" << location << ", " << count << ", " 5281 << "(" << location << ", " << count << ", "
4981 << GLEnums::GetStringBool(transpose) << ", " 5282 << GLEnums::GetStringBool(transpose) << ", "
4982 << static_cast<const void*>(value) << ")"); 5283 << static_cast<const void*>(value) << ")");
5284 DCHECK(g_driver_gl.debug_fn.glUniformMatrix4x2fvFn != nullptr);
4983 g_driver_gl.debug_fn.glUniformMatrix4x2fvFn(location, count, transpose, 5285 g_driver_gl.debug_fn.glUniformMatrix4x2fvFn(location, count, transpose,
4984 value); 5286 value);
4985 } 5287 }
4986 5288
4987 static void GL_BINDING_CALL Debug_glUniformMatrix4x3fv(GLint location, 5289 static void GL_BINDING_CALL Debug_glUniformMatrix4x3fv(GLint location,
4988 GLsizei count, 5290 GLsizei count,
4989 GLboolean transpose, 5291 GLboolean transpose,
4990 const GLfloat* value) { 5292 const GLfloat* value) {
4991 GL_SERVICE_LOG("glUniformMatrix4x3fv" 5293 GL_SERVICE_LOG("glUniformMatrix4x3fv"
4992 << "(" << location << ", " << count << ", " 5294 << "(" << location << ", " << count << ", "
4993 << GLEnums::GetStringBool(transpose) << ", " 5295 << GLEnums::GetStringBool(transpose) << ", "
4994 << static_cast<const void*>(value) << ")"); 5296 << static_cast<const void*>(value) << ")");
5297 DCHECK(g_driver_gl.debug_fn.glUniformMatrix4x3fvFn != nullptr);
4995 g_driver_gl.debug_fn.glUniformMatrix4x3fvFn(location, count, transpose, 5298 g_driver_gl.debug_fn.glUniformMatrix4x3fvFn(location, count, transpose,
4996 value); 5299 value);
4997 } 5300 }
4998 5301
4999 static GLboolean GL_BINDING_CALL Debug_glUnmapBuffer(GLenum target) { 5302 static GLboolean GL_BINDING_CALL Debug_glUnmapBuffer(GLenum target) {
5000 GL_SERVICE_LOG("glUnmapBuffer" 5303 GL_SERVICE_LOG("glUnmapBuffer"
5001 << "(" << GLEnums::GetStringEnum(target) << ")"); 5304 << "(" << GLEnums::GetStringEnum(target) << ")");
5305 DCHECK(g_driver_gl.debug_fn.glUnmapBufferFn != nullptr);
5002 GLboolean result = g_driver_gl.debug_fn.glUnmapBufferFn(target); 5306 GLboolean result = g_driver_gl.debug_fn.glUnmapBufferFn(target);
5003 GL_SERVICE_LOG("GL_RESULT: " << result); 5307 GL_SERVICE_LOG("GL_RESULT: " << result);
5004 return result; 5308 return result;
5005 } 5309 }
5006 5310
5007 static void GL_BINDING_CALL Debug_glUseProgram(GLuint program) { 5311 static void GL_BINDING_CALL Debug_glUseProgram(GLuint program) {
5008 GL_SERVICE_LOG("glUseProgram" 5312 GL_SERVICE_LOG("glUseProgram"
5009 << "(" << program << ")"); 5313 << "(" << program << ")");
5314 DCHECK(g_driver_gl.debug_fn.glUseProgramFn != nullptr);
5010 g_driver_gl.debug_fn.glUseProgramFn(program); 5315 g_driver_gl.debug_fn.glUseProgramFn(program);
5011 } 5316 }
5012 5317
5013 static void GL_BINDING_CALL Debug_glValidateProgram(GLuint program) { 5318 static void GL_BINDING_CALL Debug_glValidateProgram(GLuint program) {
5014 GL_SERVICE_LOG("glValidateProgram" 5319 GL_SERVICE_LOG("glValidateProgram"
5015 << "(" << program << ")"); 5320 << "(" << program << ")");
5321 DCHECK(g_driver_gl.debug_fn.glValidateProgramFn != nullptr);
5016 g_driver_gl.debug_fn.glValidateProgramFn(program); 5322 g_driver_gl.debug_fn.glValidateProgramFn(program);
5017 } 5323 }
5018 5324
5019 static void GL_BINDING_CALL Debug_glVertexAttrib1f(GLuint indx, GLfloat x) { 5325 static void GL_BINDING_CALL Debug_glVertexAttrib1f(GLuint indx, GLfloat x) {
5020 GL_SERVICE_LOG("glVertexAttrib1f" 5326 GL_SERVICE_LOG("glVertexAttrib1f"
5021 << "(" << indx << ", " << x << ")"); 5327 << "(" << indx << ", " << x << ")");
5328 DCHECK(g_driver_gl.debug_fn.glVertexAttrib1fFn != nullptr);
5022 g_driver_gl.debug_fn.glVertexAttrib1fFn(indx, x); 5329 g_driver_gl.debug_fn.glVertexAttrib1fFn(indx, x);
5023 } 5330 }
5024 5331
5025 static void GL_BINDING_CALL Debug_glVertexAttrib1fv(GLuint indx, 5332 static void GL_BINDING_CALL Debug_glVertexAttrib1fv(GLuint indx,
5026 const GLfloat* values) { 5333 const GLfloat* values) {
5027 GL_SERVICE_LOG("glVertexAttrib1fv" 5334 GL_SERVICE_LOG("glVertexAttrib1fv"
5028 << "(" << indx << ", " << static_cast<const void*>(values) 5335 << "(" << indx << ", " << static_cast<const void*>(values)
5029 << ")"); 5336 << ")");
5337 DCHECK(g_driver_gl.debug_fn.glVertexAttrib1fvFn != nullptr);
5030 g_driver_gl.debug_fn.glVertexAttrib1fvFn(indx, values); 5338 g_driver_gl.debug_fn.glVertexAttrib1fvFn(indx, values);
5031 } 5339 }
5032 5340
5033 static void GL_BINDING_CALL Debug_glVertexAttrib2f(GLuint indx, 5341 static void GL_BINDING_CALL Debug_glVertexAttrib2f(GLuint indx,
5034 GLfloat x, 5342 GLfloat x,
5035 GLfloat y) { 5343 GLfloat y) {
5036 GL_SERVICE_LOG("glVertexAttrib2f" 5344 GL_SERVICE_LOG("glVertexAttrib2f"
5037 << "(" << indx << ", " << x << ", " << y << ")"); 5345 << "(" << indx << ", " << x << ", " << y << ")");
5346 DCHECK(g_driver_gl.debug_fn.glVertexAttrib2fFn != nullptr);
5038 g_driver_gl.debug_fn.glVertexAttrib2fFn(indx, x, y); 5347 g_driver_gl.debug_fn.glVertexAttrib2fFn(indx, x, y);
5039 } 5348 }
5040 5349
5041 static void GL_BINDING_CALL Debug_glVertexAttrib2fv(GLuint indx, 5350 static void GL_BINDING_CALL Debug_glVertexAttrib2fv(GLuint indx,
5042 const GLfloat* values) { 5351 const GLfloat* values) {
5043 GL_SERVICE_LOG("glVertexAttrib2fv" 5352 GL_SERVICE_LOG("glVertexAttrib2fv"
5044 << "(" << indx << ", " << static_cast<const void*>(values) 5353 << "(" << indx << ", " << static_cast<const void*>(values)
5045 << ")"); 5354 << ")");
5355 DCHECK(g_driver_gl.debug_fn.glVertexAttrib2fvFn != nullptr);
5046 g_driver_gl.debug_fn.glVertexAttrib2fvFn(indx, values); 5356 g_driver_gl.debug_fn.glVertexAttrib2fvFn(indx, values);
5047 } 5357 }
5048 5358
5049 static void GL_BINDING_CALL Debug_glVertexAttrib3f(GLuint indx, 5359 static void GL_BINDING_CALL Debug_glVertexAttrib3f(GLuint indx,
5050 GLfloat x, 5360 GLfloat x,
5051 GLfloat y, 5361 GLfloat y,
5052 GLfloat z) { 5362 GLfloat z) {
5053 GL_SERVICE_LOG("glVertexAttrib3f" 5363 GL_SERVICE_LOG("glVertexAttrib3f"
5054 << "(" << indx << ", " << x << ", " << y << ", " << z << ")"); 5364 << "(" << indx << ", " << x << ", " << y << ", " << z << ")");
5365 DCHECK(g_driver_gl.debug_fn.glVertexAttrib3fFn != nullptr);
5055 g_driver_gl.debug_fn.glVertexAttrib3fFn(indx, x, y, z); 5366 g_driver_gl.debug_fn.glVertexAttrib3fFn(indx, x, y, z);
5056 } 5367 }
5057 5368
5058 static void GL_BINDING_CALL Debug_glVertexAttrib3fv(GLuint indx, 5369 static void GL_BINDING_CALL Debug_glVertexAttrib3fv(GLuint indx,
5059 const GLfloat* values) { 5370 const GLfloat* values) {
5060 GL_SERVICE_LOG("glVertexAttrib3fv" 5371 GL_SERVICE_LOG("glVertexAttrib3fv"
5061 << "(" << indx << ", " << static_cast<const void*>(values) 5372 << "(" << indx << ", " << static_cast<const void*>(values)
5062 << ")"); 5373 << ")");
5374 DCHECK(g_driver_gl.debug_fn.glVertexAttrib3fvFn != nullptr);
5063 g_driver_gl.debug_fn.glVertexAttrib3fvFn(indx, values); 5375 g_driver_gl.debug_fn.glVertexAttrib3fvFn(indx, values);
5064 } 5376 }
5065 5377
5066 static void GL_BINDING_CALL Debug_glVertexAttrib4f(GLuint indx, 5378 static void GL_BINDING_CALL Debug_glVertexAttrib4f(GLuint indx,
5067 GLfloat x, 5379 GLfloat x,
5068 GLfloat y, 5380 GLfloat y,
5069 GLfloat z, 5381 GLfloat z,
5070 GLfloat w) { 5382 GLfloat w) {
5071 GL_SERVICE_LOG("glVertexAttrib4f" 5383 GL_SERVICE_LOG("glVertexAttrib4f"
5072 << "(" << indx << ", " << x << ", " << y << ", " << z << ", " 5384 << "(" << indx << ", " << x << ", " << y << ", " << z << ", "
5073 << w << ")"); 5385 << w << ")");
5386 DCHECK(g_driver_gl.debug_fn.glVertexAttrib4fFn != nullptr);
5074 g_driver_gl.debug_fn.glVertexAttrib4fFn(indx, x, y, z, w); 5387 g_driver_gl.debug_fn.glVertexAttrib4fFn(indx, x, y, z, w);
5075 } 5388 }
5076 5389
5077 static void GL_BINDING_CALL Debug_glVertexAttrib4fv(GLuint indx, 5390 static void GL_BINDING_CALL Debug_glVertexAttrib4fv(GLuint indx,
5078 const GLfloat* values) { 5391 const GLfloat* values) {
5079 GL_SERVICE_LOG("glVertexAttrib4fv" 5392 GL_SERVICE_LOG("glVertexAttrib4fv"
5080 << "(" << indx << ", " << static_cast<const void*>(values) 5393 << "(" << indx << ", " << static_cast<const void*>(values)
5081 << ")"); 5394 << ")");
5395 DCHECK(g_driver_gl.debug_fn.glVertexAttrib4fvFn != nullptr);
5082 g_driver_gl.debug_fn.glVertexAttrib4fvFn(indx, values); 5396 g_driver_gl.debug_fn.glVertexAttrib4fvFn(indx, values);
5083 } 5397 }
5084 5398
5085 static void GL_BINDING_CALL Debug_glVertexAttribDivisorANGLE(GLuint index, 5399 static void GL_BINDING_CALL Debug_glVertexAttribDivisorANGLE(GLuint index,
5086 GLuint divisor) { 5400 GLuint divisor) {
5087 GL_SERVICE_LOG("glVertexAttribDivisorANGLE" 5401 GL_SERVICE_LOG("glVertexAttribDivisorANGLE"
5088 << "(" << index << ", " << divisor << ")"); 5402 << "(" << index << ", " << divisor << ")");
5403 DCHECK(g_driver_gl.debug_fn.glVertexAttribDivisorANGLEFn != nullptr);
5089 g_driver_gl.debug_fn.glVertexAttribDivisorANGLEFn(index, divisor); 5404 g_driver_gl.debug_fn.glVertexAttribDivisorANGLEFn(index, divisor);
5090 } 5405 }
5091 5406
5092 static void GL_BINDING_CALL 5407 static void GL_BINDING_CALL
5093 Debug_glVertexAttribI4i(GLuint indx, GLint x, GLint y, GLint z, GLint w) { 5408 Debug_glVertexAttribI4i(GLuint indx, GLint x, GLint y, GLint z, GLint w) {
5094 GL_SERVICE_LOG("glVertexAttribI4i" 5409 GL_SERVICE_LOG("glVertexAttribI4i"
5095 << "(" << indx << ", " << x << ", " << y << ", " << z << ", " 5410 << "(" << indx << ", " << x << ", " << y << ", " << z << ", "
5096 << w << ")"); 5411 << w << ")");
5412 DCHECK(g_driver_gl.debug_fn.glVertexAttribI4iFn != nullptr);
5097 g_driver_gl.debug_fn.glVertexAttribI4iFn(indx, x, y, z, w); 5413 g_driver_gl.debug_fn.glVertexAttribI4iFn(indx, x, y, z, w);
5098 } 5414 }
5099 5415
5100 static void GL_BINDING_CALL Debug_glVertexAttribI4iv(GLuint indx, 5416 static void GL_BINDING_CALL Debug_glVertexAttribI4iv(GLuint indx,
5101 const GLint* values) { 5417 const GLint* values) {
5102 GL_SERVICE_LOG("glVertexAttribI4iv" 5418 GL_SERVICE_LOG("glVertexAttribI4iv"
5103 << "(" << indx << ", " << static_cast<const void*>(values) 5419 << "(" << indx << ", " << static_cast<const void*>(values)
5104 << ")"); 5420 << ")");
5421 DCHECK(g_driver_gl.debug_fn.glVertexAttribI4ivFn != nullptr);
5105 g_driver_gl.debug_fn.glVertexAttribI4ivFn(indx, values); 5422 g_driver_gl.debug_fn.glVertexAttribI4ivFn(indx, values);
5106 } 5423 }
5107 5424
5108 static void GL_BINDING_CALL 5425 static void GL_BINDING_CALL
5109 Debug_glVertexAttribI4ui(GLuint indx, GLuint x, GLuint y, GLuint z, GLuint w) { 5426 Debug_glVertexAttribI4ui(GLuint indx, GLuint x, GLuint y, GLuint z, GLuint w) {
5110 GL_SERVICE_LOG("glVertexAttribI4ui" 5427 GL_SERVICE_LOG("glVertexAttribI4ui"
5111 << "(" << indx << ", " << x << ", " << y << ", " << z << ", " 5428 << "(" << indx << ", " << x << ", " << y << ", " << z << ", "
5112 << w << ")"); 5429 << w << ")");
5430 DCHECK(g_driver_gl.debug_fn.glVertexAttribI4uiFn != nullptr);
5113 g_driver_gl.debug_fn.glVertexAttribI4uiFn(indx, x, y, z, w); 5431 g_driver_gl.debug_fn.glVertexAttribI4uiFn(indx, x, y, z, w);
5114 } 5432 }
5115 5433
5116 static void GL_BINDING_CALL Debug_glVertexAttribI4uiv(GLuint indx, 5434 static void GL_BINDING_CALL Debug_glVertexAttribI4uiv(GLuint indx,
5117 const GLuint* values) { 5435 const GLuint* values) {
5118 GL_SERVICE_LOG("glVertexAttribI4uiv" 5436 GL_SERVICE_LOG("glVertexAttribI4uiv"
5119 << "(" << indx << ", " << static_cast<const void*>(values) 5437 << "(" << indx << ", " << static_cast<const void*>(values)
5120 << ")"); 5438 << ")");
5439 DCHECK(g_driver_gl.debug_fn.glVertexAttribI4uivFn != nullptr);
5121 g_driver_gl.debug_fn.glVertexAttribI4uivFn(indx, values); 5440 g_driver_gl.debug_fn.glVertexAttribI4uivFn(indx, values);
5122 } 5441 }
5123 5442
5124 static void GL_BINDING_CALL Debug_glVertexAttribIPointer(GLuint indx, 5443 static void GL_BINDING_CALL Debug_glVertexAttribIPointer(GLuint indx,
5125 GLint size, 5444 GLint size,
5126 GLenum type, 5445 GLenum type,
5127 GLsizei stride, 5446 GLsizei stride,
5128 const void* ptr) { 5447 const void* ptr) {
5129 GL_SERVICE_LOG("glVertexAttribIPointer" 5448 GL_SERVICE_LOG("glVertexAttribIPointer"
5130 << "(" << indx << ", " << size << ", " 5449 << "(" << indx << ", " << size << ", "
5131 << GLEnums::GetStringEnum(type) << ", " << stride << ", " 5450 << GLEnums::GetStringEnum(type) << ", " << stride << ", "
5132 << static_cast<const void*>(ptr) << ")"); 5451 << static_cast<const void*>(ptr) << ")");
5452 DCHECK(g_driver_gl.debug_fn.glVertexAttribIPointerFn != nullptr);
5133 g_driver_gl.debug_fn.glVertexAttribIPointerFn(indx, size, type, stride, ptr); 5453 g_driver_gl.debug_fn.glVertexAttribIPointerFn(indx, size, type, stride, ptr);
5134 } 5454 }
5135 5455
5136 static void GL_BINDING_CALL Debug_glVertexAttribPointer(GLuint indx, 5456 static void GL_BINDING_CALL Debug_glVertexAttribPointer(GLuint indx,
5137 GLint size, 5457 GLint size,
5138 GLenum type, 5458 GLenum type,
5139 GLboolean normalized, 5459 GLboolean normalized,
5140 GLsizei stride, 5460 GLsizei stride,
5141 const void* ptr) { 5461 const void* ptr) {
5142 GL_SERVICE_LOG("glVertexAttribPointer" 5462 GL_SERVICE_LOG("glVertexAttribPointer"
5143 << "(" << indx << ", " << size << ", " 5463 << "(" << indx << ", " << size << ", "
5144 << GLEnums::GetStringEnum(type) << ", " 5464 << GLEnums::GetStringEnum(type) << ", "
5145 << GLEnums::GetStringBool(normalized) << ", " << stride << ", " 5465 << GLEnums::GetStringBool(normalized) << ", " << stride << ", "
5146 << static_cast<const void*>(ptr) << ")"); 5466 << static_cast<const void*>(ptr) << ")");
5467 DCHECK(g_driver_gl.debug_fn.glVertexAttribPointerFn != nullptr);
5147 g_driver_gl.debug_fn.glVertexAttribPointerFn(indx, size, type, normalized, 5468 g_driver_gl.debug_fn.glVertexAttribPointerFn(indx, size, type, normalized,
5148 stride, ptr); 5469 stride, ptr);
5149 } 5470 }
5150 5471
5151 static void GL_BINDING_CALL Debug_glViewport(GLint x, 5472 static void GL_BINDING_CALL Debug_glViewport(GLint x,
5152 GLint y, 5473 GLint y,
5153 GLsizei width, 5474 GLsizei width,
5154 GLsizei height) { 5475 GLsizei height) {
5155 GL_SERVICE_LOG("glViewport" 5476 GL_SERVICE_LOG("glViewport"
5156 << "(" << x << ", " << y << ", " << width << ", " << height 5477 << "(" << x << ", " << y << ", " << width << ", " << height
5157 << ")"); 5478 << ")");
5479 DCHECK(g_driver_gl.debug_fn.glViewportFn != nullptr);
5158 g_driver_gl.debug_fn.glViewportFn(x, y, width, height); 5480 g_driver_gl.debug_fn.glViewportFn(x, y, width, height);
5159 } 5481 }
5160 5482
5161 static GLenum GL_BINDING_CALL Debug_glWaitSync(GLsync sync, 5483 static GLenum GL_BINDING_CALL Debug_glWaitSync(GLsync sync,
5162 GLbitfield flags, 5484 GLbitfield flags,
5163 GLuint64 timeout) { 5485 GLuint64 timeout) {
5164 GL_SERVICE_LOG("glWaitSync" 5486 GL_SERVICE_LOG("glWaitSync"
5165 << "(" << sync << ", " << flags << ", " << timeout << ")"); 5487 << "(" << sync << ", " << flags << ", " << timeout << ")");
5488 DCHECK(g_driver_gl.debug_fn.glWaitSyncFn != nullptr);
5166 GLenum result = g_driver_gl.debug_fn.glWaitSyncFn(sync, flags, timeout); 5489 GLenum result = g_driver_gl.debug_fn.glWaitSyncFn(sync, flags, timeout);
5167 GL_SERVICE_LOG("GL_RESULT: " << result); 5490 GL_SERVICE_LOG("GL_RESULT: " << result);
5168 return result; 5491 return result;
5169 } 5492 }
5170 } // extern "C" 5493 } // extern "C"
5171 5494
5172 void DriverGL::InitializeDebugBindings() { 5495 void DriverGL::InitializeDebugBindings() {
5173 if (!debug_fn.glActiveTextureFn) { 5496 if (!debug_fn.glActiveTextureFn) {
5174 debug_fn.glActiveTextureFn = fn.glActiveTextureFn; 5497 debug_fn.glActiveTextureFn = fn.glActiveTextureFn;
5175 fn.glActiveTextureFn = Debug_glActiveTexture; 5498 fn.glActiveTextureFn = Debug_glActiveTexture;
(...skipping 7961 matching lines...) Expand 10 before | Expand all | Expand 10 after
13137 13460
13138 GLenum NoContextGLApi::glWaitSyncFn(GLsync sync, 13461 GLenum NoContextGLApi::glWaitSyncFn(GLsync sync,
13139 GLbitfield flags, 13462 GLbitfield flags,
13140 GLuint64 timeout) { 13463 GLuint64 timeout) {
13141 NOTREACHED() << "Trying to call glWaitSync() without current GL context"; 13464 NOTREACHED() << "Trying to call glWaitSync() without current GL context";
13142 LOG(ERROR) << "Trying to call glWaitSync() without current GL context"; 13465 LOG(ERROR) << "Trying to call glWaitSync() without current GL context";
13143 return static_cast<GLenum>(0); 13466 return static_cast<GLenum>(0);
13144 } 13467 }
13145 13468
13146 } // namespace gfx 13469 } // namespace gfx
OLDNEW
« no previous file with comments | « ui/gl/gl_bindings_autogen_egl.cc ('k') | ui/gl/gl_bindings_autogen_glx.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698