| Index: ui/gl/generate_bindings.py
|
| diff --git a/ui/gl/generate_bindings.py b/ui/gl/generate_bindings.py
|
| index 98c75028bb515f4da108c0d18b603c0e7d85dfcc..f054baa08cc79d87d6bf41f57164c8d0b09e6665 100755
|
| --- a/ui/gl/generate_bindings.py
|
| +++ b/ui/gl/generate_bindings.py
|
| @@ -761,6 +761,19 @@ GL_FUNCTIONS = [
|
| 'const GLenum* attachments' },
|
| ]
|
|
|
| +GL_NULLDRAW_FUNCTIONS = [
|
| +{ 'return_type': 'void',
|
| + 'names': ['glClear'],
|
| + 'arguments': 'GLbitfield mask', },
|
| +{ 'return_type': 'void',
|
| + 'names': ['glDrawArrays'],
|
| + 'arguments': 'GLenum mode, GLint first, GLsizei count', },
|
| +{ 'return_type': 'void',
|
| + 'names': ['glDrawElements'],
|
| + 'arguments':
|
| + 'GLenum mode, GLsizei count, GLenum type, const void* indices', },
|
| +]
|
| +
|
| OSMESA_FUNCTIONS = [
|
| { 'return_type': 'OSMesaContext',
|
| 'names': ['OSMesaCreateContext'],
|
| @@ -1191,7 +1204,7 @@ GLX_FUNCTIONS = [
|
| ]
|
|
|
| FUNCTION_SETS = [
|
| - [GL_FUNCTIONS, 'gl', [
|
| + [GL_FUNCTIONS, GL_NULLDRAW_FUNCTIONS, 'gl', [
|
| 'GL/glext.h',
|
| 'GLES2/gl2ext.h',
|
| # Files below are Chromium-specific and shipped with Chromium sources.
|
| @@ -1199,8 +1212,8 @@ FUNCTION_SETS = [
|
| 'GLES2/gl2chromium.h',
|
| 'GLES2/gl2extchromium.h'
|
| ], []],
|
| - [OSMESA_FUNCTIONS, 'osmesa', [], []],
|
| - [EGL_FUNCTIONS, 'egl', [
|
| + [OSMESA_FUNCTIONS, [], 'osmesa', [], []],
|
| + [EGL_FUNCTIONS, [], 'egl', [
|
| 'EGL/eglext.h',
|
| # Files below are Chromium-specific and shipped with Chromium sources.
|
| 'EGL/eglextchromium.h',
|
| @@ -1210,8 +1223,8 @@ FUNCTION_SETS = [
|
| 'EGL_ANGLE_surface_d3d_texture_2d_share_handle',
|
| ],
|
| ],
|
| - [WGL_FUNCTIONS, 'wgl', ['GL/wglext.h'], []],
|
| - [GLX_FUNCTIONS, 'glx', ['GL/glx.h', 'GL/glxext.h'], []],
|
| + [WGL_FUNCTIONS, [], 'wgl', ['GL/wglext.h'], []],
|
| + [GLX_FUNCTIONS, [], 'glx', ['GL/glx.h', 'GL/glxext.h'], []],
|
| ]
|
|
|
| def GenerateHeader(file, functions, set_name, used_extension_functions):
|
| @@ -1357,7 +1370,8 @@ def GenerateInterfaceHeader(
|
| file.write('\n')
|
|
|
|
|
| -def GenerateSource(file, functions, set_name, used_extension_functions):
|
| +def GenerateSource(
|
| + file, functions, nulldraw_functions, set_name, used_extension_functions):
|
| """Generates gl_bindings_autogen_x.cc"""
|
|
|
| # Write file header.
|
| @@ -1433,6 +1447,17 @@ namespace gfx {
|
| file.write('}\n')
|
| file.write('\n')
|
|
|
| + # Write empty stubs for functions that want one.
|
| + file.write('extern "C" {\n')
|
| + for func in nulldraw_functions:
|
| + names = func['names']
|
| + return_type = func['return_type']
|
| + arguments = func['arguments']
|
| + file.write('\n')
|
| + file.write('static %s GL_BINDING_CALL Stub_%s(%s) {}\n' %
|
| + (return_type, names[0], arguments))
|
| + file.write('} // extern "C"\n')
|
| +
|
| # Write logging wrappers for each function.
|
| file.write('extern "C" {\n')
|
| for func in functions:
|
| @@ -1512,6 +1537,17 @@ namespace gfx {
|
| file.write(' g_debugBindingsInitialized = true;\n')
|
| file.write('}\n')
|
|
|
| + # Write function to initialize the nulldraw function pointers.
|
| + if nulldraw_functions:
|
| + file.write('\n')
|
| + file.write('void Driver%s::InitializeNullDrawBindings() {\n' %
|
| + set_name.upper())
|
| +
|
| + for func in nulldraw_functions:
|
| + first_name = func['names'][0]
|
| + file.write(' fn.%sFn = Stub_%s;\n' % (first_name, first_name))
|
| + file.write('}\n')
|
| +
|
| # Write function to update the debug function pointers to extension functions
|
| # after the extensions have been initialized.
|
| file.write('\n')
|
| @@ -1796,7 +1832,7 @@ def main(argv):
|
| options, args = parser.parse_args(argv)
|
|
|
| if options.inputs:
|
| - for [_, _, headers, _] in FUNCTION_SETS:
|
| + for [_, _, _, headers, _] in FUNCTION_SETS:
|
| for header in headers:
|
| print ResolveHeader(header, options.header_paths)
|
| return 0
|
| @@ -1806,7 +1842,11 @@ def main(argv):
|
| else:
|
| dir = '.'
|
|
|
| - for [functions, set_name, extension_headers, extensions] in FUNCTION_SETS:
|
| + for [functions,
|
| + nulldraw_functions,
|
| + set_name,
|
| + extension_headers,
|
| + extensions] in FUNCTION_SETS:
|
| extension_headers = [ResolveHeader(h, options.header_paths)
|
| for h in extension_headers]
|
| used_extension_functions = GetUsedExtensionFunctions(
|
| @@ -1825,7 +1865,11 @@ def main(argv):
|
|
|
| source_file = open(
|
| os.path.join(dir, 'gl_bindings_autogen_%s.cc' % set_name), 'wb')
|
| - GenerateSource(source_file, functions, set_name, used_extension_functions)
|
| + GenerateSource(source_file,
|
| + functions,
|
| + nulldraw_functions,
|
| + set_name,
|
| + used_extension_functions)
|
| source_file.close()
|
|
|
| header_file = open(
|
|
|