- better support for extensions functions that do not have the same
name in windows and in Unix.
- support the NV_vertex_array_range extension.
diff --git a/dlls/opengl32/make_opengl b/dlls/opengl32/make_opengl
index e848611..97a6f47 100755
--- a/dlls/opengl32/make_opengl
+++ b/dlls/opengl32/make_opengl
@@ -265,101 +265,107 @@
#
%norm_functions = ();
%ext_functions =
- ( "MultiTexCoord1dSGIS" => [ "glMultiTexCoord1dSGIS", "void", [ [ "GLenum", "target" ],
- [ "GLdouble", "s" ] ] ],
- "MultiTexCoord1dvSGIS" => [ "glMultiTexCoord1dvSGIS", "void", [ [ "GLenum", "target" ],
- [ "GLdouble *", "v" ] ] ],
- "MultiTexCoord1fSGIS" => [ "glMultiTexCoord1fSGIS", "void", [ [ "GLenum", "target" ],
- [ "GLfloat", "s" ] ] ],
- "MultiTexCoord1fvSGIS" => [ "glMultiTexCoord1fvSGIS", "void", [ [ "GLenum", "target" ],
- [ "const GLfloat *", "v" ] ] ],
- "MultiTexCoord1iSGIS" => [ "glMultiTexCoord1iSGIS", "void", [ [ "GLenum", "target" ],
- [ "GLint", "s" ] ] ],
- "MultiTexCoord1ivSGIS" => [ "glMultiTexCoord1ivSGIS", "void", [ [ "GLenum", "target" ],
- [ "GLint *", "v" ] ] ],
- "MultiTexCoord1sSGIS" => [ "glMultiTexCoord1sSGIS", "void", [ [ "GLenum", "target" ],
- [ "GLshort", "s" ] ] ],
- "MultiTexCoord1svSGIS" => [ "glMultiTexCoord1svSGIS", "void", [ [ "GLenum", "target" ],
- [ "GLshort *", "v" ] ] ],
- "MultiTexCoord2dSGIS" => [ "glMultiTexCoord2dSGIS", "void", [ [ "GLenum", "target" ],
- [ "GLdouble", "s"],
- [ "GLdouble", "t" ] ] ],
- "MultiTexCoord2dvSGIS" => [ "glMultiTexCoord2dvSGIS", "void", [ [ "GLenum", "target" ],
- [ "GLdouble *", "v" ] ] ],
- "MultiTexCoord2fSGIS" => [ "glMultiTexCoord2fSGIS", "void", [ [ "GLenum", "target" ],
- [ "GLfloat", "s" ],
- [ "GLfloat", "t" ] ] ],
- "MultiTexCoord2fvSGIS" => [ "glMultiTexCoord2fvSGIS", "void", [ [ "GLenum", "target" ],
- [ "GLfloat *", "v" ] ] ],
- "MultiTexCoord2iSGIS" => [ "glMultiTexCoord2iSGIS", "void", [ [ "GLenum", "target" ],
- [ "GLint", "s" ],
- [ "GLint", "t" ] ] ],
- "MultiTexCoord2ivSGIS" => [ "glMultiTexCoord2ivSGIS", "void", [ [ "GLenum", "target" ],
- [ "GLint *", "v" ] ] ],
- "MultiTexCoord2sSGIS" => [ "glMultiTexCoord2sSGIS", "void", [ [ "GLenum", "target" ],
- [ "GLshort", "s" ],
- [ "GLshort", "t" ] ] ],
- "MultiTexCoord2svSGIS" => [ "glMultiTexCoord2svSGIS", "void", [ [ "GLenum", "target" ],
- [ "GLshort *", "v" ] ] ],
- "MultiTexCoord3dSGIS" => [ "glMultiTexCoord3dSGIS", "void", [ [ "GLenum", "target" ],
- [ "GLdouble", "s" ],
- [ "GLdouble", "t" ],
- [ "GLdouble", "r" ] ] ],
- "MultiTexCoord3dvSGIS" => [ "glMultiTexCoord3dvSGIS", "void", [ [ "GLenum", "target" ],
- [ "GLdouble *", "v" ] ] ],
- "MultiTexCoord3fSGIS" => [ "glMultiTexCoord3fSGIS", "void", [ [ "GLenum", "target" ],
- [ "GLfloat", "s" ],
- [ "GLfloat", "t" ],
- [ "GLfloat", "r" ] ] ],
- "MultiTexCoord3fvSGIS" => [ "glMultiTexCoord3fvSGIS", "void", [ [ "GLenum", "target" ],
- [ "GLfloat *", "v" ] ] ],
- "MultiTexCoord3iSGIS" => [ "glMultiTexCoord3iSGIS", "void", [ [ "GLenum", "target" ],
- [ "GLint", "s" ],
- [ "GLint", "t" ],
- [ "GLint", "r" ] ] ],
- "MultiTexCoord3ivSGIS" => [ "glMultiTexCoord3ivSGIS", "void", [ [ "GLenum", "target" ],
- [ "GLint *", "v" ] ] ],
- "MultiTexCoord3sSGIS" => [ "glMultiTexCoord3sSGIS", "void", [ [ "GLenum", "target" ],
- [ "GLshort", "s" ],
- [ "GLshort", "t" ],
- [ "GLshort", "r" ] ] ],
- "MultiTexCoord3svSGIS" => [ "glMultiTexCoord3svSGIS", "void", [ [ "GLenum", "target" ],
- [ "GLshort *", "v" ] ] ],
- "MultiTexCoord4dSGIS" => [ "glMultiTexCoord4dSGIS", "void", [ [ "GLenum", "target" ],
- [ "GLdouble", "s" ],
- [ "GLdouble", "t" ],
- [ "GLdouble", "r" ],
- [ "GLdouble", "q" ] ] ],
- "MultiTexCoord4dvSGIS" => [ "glMultiTexCoord4dvSGIS", "void", [ [ "GLenum", "target" ],
- [ "GLdouble *", "v" ] ] ],
- "MultiTexCoord4fSGIS" => [ "glMultiTexCoord4fSGIS", "void", [ [ "GLenum", "target" ],
- [ "GLfloat", "s" ],
- [ "GLfloat", "t" ],
- [ "GLfloat", "r" ],
- [ "GLfloat", "q" ] ] ],
- "MultiTexCoord4fvSGIS" => [ "glMultiTexCoord4fvSGIS", "void", [ [ "GLenum", "target" ],
- [ "GLfloat *", "v" ] ] ],
- "MultiTexCoord4iSGIS" => [ "glMultiTexCoord4iSGIS", "void", [ [ "GLenum", "target" ],
- [ "GLint", "s" ],
- [ "GLint", "t" ],
- [ "GLint", "r" ],
- [ "GLint", "q" ] ] ],
- "MultiTexCoord4ivSGIS" => [ "glMultiTexCoord4ivSGIS", "void", [ [ "GLenum", "target" ],
- [ "GLint *", "v" ] ] ],
- "MultiTexCoord4sSGIS" => [ "glMultiTexCoord4sSGIS", "void", [ [ "GLenum", "target" ],
- [ "GLshort", "s" ],
- [ "GLshort", "t" ],
- [ "GLshort", "r" ],
- [ "GLshort", "q" ] ] ],
- "MultiTexCoord4svSGIS" => [ "glMultiTexCoord4svSGIS", "void", [ [ "GLenum", "target" ],
- [ "GLshort *", "v" ] ] ],
- "MultiTexCoordPointerSGIS" => [ "glMultiTexCoordPointerSGIS", "void", [ [ "GLenum", "target" ],
- [ "GLint", "size" ],
- [ "GLenum", "type" ],
- [ "GLsizei", "stride" ],
- [ "GLvoid *", "pointer" ] ] ],
- "SelectTextureSGIS" => [ "glSelectTextureSGIS", "void", [ [ "GLenum", "target" ] ] ],
- "SelectTextureCoordSetSGIS" => [ "glSelectTextureCoordSetSGIS", "void", [ [ "GLenum", "target" ] ] ] );
+ ( "glMultiTexCoord1dSGIS" => [ "glMultiTexCoord1dSGIS", "void", [ [ "GLenum", "target" ],
+ [ "GLdouble", "s" ] ], "glMultiTexCoord1dSGIS" ],
+ "glMultiTexCoord1dvSGIS" => [ "glMultiTexCoord1dvSGIS", "void", [ [ "GLenum", "target" ],
+ [ "GLdouble *", "v" ] ], "glMultiTexCoord1dvSGIS" ],
+ "glMultiTexCoord1fSGIS" => [ "glMultiTexCoord1fSGIS", "void", [ [ "GLenum", "target" ],
+ [ "GLfloat", "s" ] ], "glMultiTexCoord1fSGIS" ],
+ "glMultiTexCoord1fvSGIS" => [ "glMultiTexCoord1fvSGIS", "void", [ [ "GLenum", "target" ],
+ [ "const GLfloat *", "v" ] ], "glMultiTexCoord1fvSGIS" ],
+ "glMultiTexCoord1iSGIS" => [ "glMultiTexCoord1iSGIS", "void", [ [ "GLenum", "target" ],
+ [ "GLint", "s" ] ], "glMultiTexCoord1iSGIS" ],
+ "glMultiTexCoord1ivSGIS" => [ "glMultiTexCoord1ivSGIS", "void", [ [ "GLenum", "target" ],
+ [ "GLint *", "v" ] ], "glMultiTexCoord1ivSGIS" ],
+ "glMultiTexCoord1sSGIS" => [ "glMultiTexCoord1sSGIS", "void", [ [ "GLenum", "target" ],
+ [ "GLshort", "s" ] ], "glMultiTexCoord1sSGIS" ],
+ "glMultiTexCoord1svSGIS" => [ "glMultiTexCoord1svSGIS", "void", [ [ "GLenum", "target" ],
+ [ "GLshort *", "v" ] ], "glMultiTexCoord1svSGIS" ],
+ "glMultiTexCoord2dSGIS" => [ "glMultiTexCoord2dSGIS", "void", [ [ "GLenum", "target" ],
+ [ "GLdouble", "s"],
+ [ "GLdouble", "t" ] ], "glMultiTexCoord2dSGIS" ],
+ "glMultiTexCoord2dvSGIS" => [ "glMultiTexCoord2dvSGIS", "void", [ [ "GLenum", "target" ],
+ [ "GLdouble *", "v" ] ], "glMultiTexCoord2dvSGIS" ],
+ "glMultiTexCoord2fSGIS" => [ "glMultiTexCoord2fSGIS", "void", [ [ "GLenum", "target" ],
+ [ "GLfloat", "s" ],
+ [ "GLfloat", "t" ] ], "glMultiTexCoord2fSGIS" ],
+ "glMultiTexCoord2fvSGIS" => [ "glMultiTexCoord2fvSGIS", "void", [ [ "GLenum", "target" ],
+ [ "GLfloat *", "v" ] ], "glMultiTexCoord2fvSGIS" ],
+ "glMultiTexCoord2iSGIS" => [ "glMultiTexCoord2iSGIS", "void", [ [ "GLenum", "target" ],
+ [ "GLint", "s" ],
+ [ "GLint", "t" ] ], "glMultiTexCoord2iSGIS" ],
+ "glMultiTexCoord2ivSGIS" => [ "glMultiTexCoord2ivSGIS", "void", [ [ "GLenum", "target" ],
+ [ "GLint *", "v" ] ], "glMultiTexCoord2ivSGIS" ],
+ "glMultiTexCoord2sSGIS" => [ "glMultiTexCoord2sSGIS", "void", [ [ "GLenum", "target" ],
+ [ "GLshort", "s" ],
+ [ "GLshort", "t" ] ], "glMultiTexCoord2sSGIS" ],
+ "glMultiTexCoord2svSGIS" => [ "glMultiTexCoord2svSGIS", "void", [ [ "GLenum", "target" ],
+ [ "GLshort *", "v" ] ], "glMultiTexCoord2svSGIS" ],
+ "glMultiTexCoord3dSGIS" => [ "glMultiTexCoord3dSGIS", "void", [ [ "GLenum", "target" ],
+ [ "GLdouble", "s" ],
+ [ "GLdouble", "t" ],
+ [ "GLdouble", "r" ] ], "glMultiTexCoord3dSGIS" ],
+ "glMultiTexCoord3dvSGIS" => [ "glMultiTexCoord3dvSGIS", "void", [ [ "GLenum", "target" ],
+ [ "GLdouble *", "v" ] ], "glMultiTexCoord3dvSGIS" ],
+ "glMultiTexCoord3fSGIS" => [ "glMultiTexCoord3fSGIS", "void", [ [ "GLenum", "target" ],
+ [ "GLfloat", "s" ],
+ [ "GLfloat", "t" ],
+ [ "GLfloat", "r" ] ], "glMultiTexCoord3fSGIS" ],
+ "glMultiTexCoord3fvSGIS" => [ "glMultiTexCoord3fvSGIS", "void", [ [ "GLenum", "target" ],
+ [ "GLfloat *", "v" ] ], "glMultiTexCoord3fvSGIS" ],
+ "glMultiTexCoord3iSGIS" => [ "glMultiTexCoord3iSGIS", "void", [ [ "GLenum", "target" ],
+ [ "GLint", "s" ],
+ [ "GLint", "t" ],
+ [ "GLint", "r" ] ], "glMultiTexCoord3iSGIS" ],
+ "glMultiTexCoord3ivSGIS" => [ "glMultiTexCoord3ivSGIS", "void", [ [ "GLenum", "target" ],
+ [ "GLint *", "v" ] ], "glMultiTexCoord3ivSGIS" ],
+ "glMultiTexCoord3sSGIS" => [ "glMultiTexCoord3sSGIS", "void", [ [ "GLenum", "target" ],
+ [ "GLshort", "s" ],
+ [ "GLshort", "t" ],
+ [ "GLshort", "r" ] ], "glMultiTexCoord3sSGIS" ],
+ "glMultiTexCoord3svSGIS" => [ "glMultiTexCoord3svSGIS", "void", [ [ "GLenum", "target" ],
+ [ "GLshort *", "v" ] ], "glMultiTexCoord3svSGIS" ],
+ "glMultiTexCoord4dSGIS" => [ "glMultiTexCoord4dSGIS", "void", [ [ "GLenum", "target" ],
+ [ "GLdouble", "s" ],
+ [ "GLdouble", "t" ],
+ [ "GLdouble", "r" ],
+ [ "GLdouble", "q" ] ], "glMultiTexCoord4dSGIS" ],
+ "glMultiTexCoord4dvSGIS" => [ "glMultiTexCoord4dvSGIS", "void", [ [ "GLenum", "target" ],
+ [ "GLdouble *", "v" ] ], "glMultiTexCoord4dvSGIS" ],
+ "glMultiTexCoord4fSGIS" => [ "glMultiTexCoord4fSGIS", "void", [ [ "GLenum", "target" ],
+ [ "GLfloat", "s" ],
+ [ "GLfloat", "t" ],
+ [ "GLfloat", "r" ],
+ [ "GLfloat", "q" ] ], "glMultiTexCoord4fSGIS" ],
+ "glMultiTexCoord4fvSGIS" => [ "glMultiTexCoord4fvSGIS", "void", [ [ "GLenum", "target" ],
+ [ "GLfloat *", "v" ] ], "glMultiTexCoord4fvSGIS" ],
+ "glMultiTexCoord4iSGIS" => [ "glMultiTexCoord4iSGIS", "void", [ [ "GLenum", "target" ],
+ [ "GLint", "s" ],
+ [ "GLint", "t" ],
+ [ "GLint", "r" ],
+ [ "GLint", "q" ] ], "glMultiTexCoord4iSGIS" ],
+ "glMultiTexCoord4ivSGIS" => [ "glMultiTexCoord4ivSGIS", "void", [ [ "GLenum", "target" ],
+ [ "GLint *", "v" ] ], "glMultiTexCoord4ivSGIS" ],
+ "glMultiTexCoord4sSGIS" => [ "glMultiTexCoord4sSGIS", "void", [ [ "GLenum", "target" ],
+ [ "GLshort", "s" ],
+ [ "GLshort", "t" ],
+ [ "GLshort", "r" ],
+ [ "GLshort", "q" ] ], "glMultiTexCoord4sSGIS" ],
+ "glMultiTexCoord4svSGIS" => [ "glMultiTexCoord4svSGIS", "void", [ [ "GLenum", "target" ],
+ [ "GLshort *", "v" ] ], "glMultiTexCoord4svSGIS" ],
+ "glMultiTexCoordPointerSGIS" => [ "glMultiTexCoordPointerSGIS", "void", [ [ "GLenum", "target" ],
+ [ "GLint", "size" ],
+ [ "GLenum", "type" ],
+ [ "GLsizei", "stride" ],
+ [ "GLvoid *", "pointer" ] ], "glMultiTexCoordPointerSGIS" ],
+ "glSelectTextureSGIS" => [ "glSelectTextureSGIS", "void", [ [ "GLenum", "target" ] ], "glSelectTextureSGIS" ],
+ "glSelectTextureCoordSetSGIS" => [ "glSelectTextureCoordSetSGIS", "void", [ [ "GLenum", "target" ] ], "glSelectTextureCoordSetSGIS" ],
+ "wglAllocateMemoryNV" => [ "wglAllocateMemoryNV", "void *", [ [ "GLsizei", "size" ],
+ [ "GLfloat", "readfreq" ],
+ [ "GLfloat", "writefreq"],
+ [ "GLfloat", "priority" ] ], "glXAllocateMemoryNV" ],
+ "wglFreeMemoryNV" => [ "wglFreeMemoryNV", "void", [ [ "GLvoid *", "pointer" ] ], "glXFreeMemoryNV" ]
+ );
while ($line = <REGISTRY>) {
@@ -440,13 +446,14 @@
}
$func_ref = [ "gl" . $funcname,
$ret_type,
- $arg_ref ];
+ $arg_ref,
+ "gl" . $funcname ];
# Now, put in one or the other hash table
if ($norm_categories{$category}) {
- $norm_functions{$funcname} = $func_ref;
+ $norm_functions{"gl" . $funcname} = $func_ref;
} else {
- $ext_functions{$funcname} = $func_ref;
+ $ext_functions{"gl" . $funcname} = $func_ref;
}
}
}
@@ -600,7 +607,7 @@
$i = 0;
foreach (sort keys %ext_functions) {
$func_ref = $ext_functions{$_};
- print EXT " { \"" . $func_ref->[0] . "\", (void *) wine_" . $func_ref->[0] . ", (void **) (&" . $ext_prefix . $func_ref->[0] . ") }";
+ print EXT " { \"" . $func_ref->[0] . "\", \"" . $func_ref->[3] . "\", (void *) wine_" . $func_ref->[0] . ", (void **) (&" . $ext_prefix . $func_ref->[0] . ") }";
if ($i != $#tmp) {
print EXT ",";
}