Index: ui/gl/generate_bindings.py |
diff --git a/ui/gl/generate_bindings.py b/ui/gl/generate_bindings.py |
index 2667b24eee070e9d50b08125657257d5b2df1b44..a3c4824a68df7853afda9ac0002fe2febf6bbcdc 100755 |
--- a/ui/gl/generate_bindings.py |
+++ b/ui/gl/generate_bindings.py |
@@ -36,9 +36,13 @@ array instead of the names array. Each version has the following keys: |
extensions: Extra Extensions for which the function is bound. Only needed |
in some cases where the extension cannot be parsed from the |
headers. |
- |
+ is_optional: True if the GetProcAddress can return NULL for the |
+ function. This may happen for example when functions |
+ are added to a new version of an extension, but the |
+ extension string is not modified. |
By default, the function gets its name from the first name in its names or |
versions array. This can be overridden by supplying a 'known_as' key. |
+ |
""" |
GL_FUNCTIONS = [ |
{ 'return_type': 'void', |
@@ -235,6 +239,12 @@ GL_FUNCTIONS = [ |
'arguments': |
'GLenum target, GLint level, GLint xoffset, GLint yoffset, ' |
'GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height', }, |
+{ 'return_type': 'void', |
+ 'names': ['glCoverFillPathNV'], |
+ 'arguments': 'GLuint path, GLenum coverMode' }, |
+{ 'return_type': 'void', |
+ 'names': ['glCoverStrokePathNV'], |
+ 'arguments': 'GLuint name, GLenum coverMode' }, |
{ 'return_type': 'GLuint', |
'names': ['glCreateProgram'], |
'arguments': 'void', }, |
@@ -260,6 +270,9 @@ GL_FUNCTIONS = [ |
'names': ['glDeleteFramebuffersEXT', 'glDeleteFramebuffers'], |
'arguments': 'GLsizei n, const GLuint* framebuffers', }, |
{ 'return_type': 'void', |
+ 'names': ['glDeletePathsNV'], |
+ 'arguments': 'GLuint path, GLsizei range' }, |
+{ 'return_type': 'void', |
'names': ['glDeleteProgram'], |
'arguments': 'GLuint program', }, |
{ 'return_type': 'void', |
@@ -438,6 +451,9 @@ GL_FUNCTIONS = [ |
{ 'return_type': 'void', |
'names': ['glGenFramebuffersEXT', 'glGenFramebuffers'], |
'arguments': 'GLsizei n, GLuint* framebuffers', }, |
+{ 'return_type': 'GLuint', |
+ 'names': ['glGenPathsNV'], |
+ 'arguments': 'GLsizei range' }, |
{ 'return_type': 'void', |
'versions': [{ 'name': 'glGenQueries' }, |
{ 'name': 'glGenQueriesARB', }, |
@@ -705,6 +721,9 @@ GL_FUNCTIONS = [ |
'names': ['glIsFramebufferEXT', 'glIsFramebuffer'], |
'arguments': 'GLuint framebuffer', }, |
{ 'return_type': 'GLboolean', |
+ 'names': ['glIsPathNV'], |
+ 'arguments': 'GLuint path' }, |
+{ 'return_type': 'GLboolean', |
'names': ['glIsProgram'], |
'arguments': 'GLuint program', }, |
{ 'return_type': 'GLboolean', |
@@ -771,6 +790,19 @@ GL_FUNCTIONS = [ |
'GL_NV_path_rendering'] },], |
'arguments': 'GLenum matrixMode' }, |
{ 'return_type': 'void', |
+ 'names': ['glPathCommandsNV'], |
+ 'arguments': 'GLuint path, GLsizei numCommands, const GLubyte* commands, ' |
+ 'GLsizei numCoords, GLenum coordType, const GLvoid* coords' }, |
+{ 'return_type': 'void', |
+ 'names': ['glPathParameterfNV'], |
+ 'arguments': 'GLuint path, GLenum pname, GLfloat value' }, |
+{ 'return_type': 'void', |
+ 'names': ['glPathParameteriNV'], |
+ 'arguments': 'GLuint path, GLenum pname, GLint value' }, |
+{ 'return_type': 'void', |
+ 'names': ['glPathStencilFuncNV'], |
+ 'arguments': 'GLenum func, GLint ref, GLuint mask' }, |
+{ 'return_type': 'void', |
'versions': [{ 'name': 'glPauseTransformFeedback' }], |
'arguments': 'void', }, |
{ 'return_type': 'void', |
@@ -889,6 +921,9 @@ GL_FUNCTIONS = [ |
}); |
""", }, |
{ 'return_type': 'void', |
+ 'names': ['glStencilFillPathNV'], |
+ 'arguments': 'GLuint path, GLenum fillMode, GLuint mask' }, |
+{ 'return_type': 'void', |
'names': ['glStencilFunc'], |
'arguments': 'GLenum func, GLint ref, GLuint mask', }, |
{ 'return_type': 'void', |
@@ -906,6 +941,17 @@ GL_FUNCTIONS = [ |
{ 'return_type': 'void', |
'names': ['glStencilOpSeparate'], |
'arguments': 'GLenum face, GLenum fail, GLenum zfail, GLenum zpass', }, |
+{ 'return_type': 'void', |
+ 'names': ['glStencilStrokePathNV'], |
+ 'arguments': 'GLuint path, GLint reference, GLuint mask' }, |
+{ 'return_type': 'void', |
+ 'names': ['glStencilThenCoverFillPathNV'], |
+ 'arguments': 'GLuint path, GLenum fillMode, GLuint mask, GLenum coverMode', |
+ 'is_optional': True, }, |
+{ 'return_type': 'void', |
+ 'names': ['glStencilThenCoverStrokePathNV'], |
+ 'arguments': 'GLuint path, GLint reference, GLuint mask, GLenum coverMode', |
+ 'is_optional': True, }, |
{ 'return_type': 'GLboolean', |
'known_as': 'glTestFenceAPPLE', |
'versions': [{ 'name': 'glTestFenceAPPLE', |
@@ -1905,7 +1951,8 @@ namespace gfx { |
file.write(' else if (%s) {\n ' % (cond)) |
WriteFuncBinding(file, known_as, version['name']) |
- file.write('DCHECK(fn.%sFn);\n' % known_as) |
+ if not 'is_optional' in func or not func['is_optional']: |
+ file.write('DCHECK(fn.%sFn);\n' % known_as) |
file.write('}\n') |
i += 1 |
first_version = False |