opengl32: Avoid generating a wrapper for internal functions when we can call the internal one directly.
diff --git a/dlls/opengl32/make_opengl b/dlls/opengl32/make_opengl
index 1f4de68..a0a92cf 100755
--- a/dlls/opengl32/make_opengl
+++ b/dlls/opengl32/make_opengl
@@ -208,7 +208,14 @@
my $ret = "";
my $call_arg = "";
my $trace_arg = "";
- my $wine_func_ref_name = "";
+
+ return "" if $func_ref->[0] eq "glGetString";
+ return "" if $func_ref->[0] eq "glGetIntegerv";
+ return "" if $func_ref->[0] eq "glEnable";
+ return "" if $func_ref->[0] eq "glIsEnabled";
+ return "" if $func_ref->[0] eq "glDisable";
+ return "" if $func_ref->[0] eq "glScissor";
+ return "" if $func_ref->[0] eq "glViewport";
# If for opengl_norm.c, generate a nice heading otherwise Patrik won't be happy :-)
# Patrik says: Well I would be even happier if a (OPENGL32.@) was added as well. Done. :-)
@@ -259,29 +266,7 @@
if ($func_ref->[1] ne "void") {
$ret = $ret . "ret_value = ";
}
- $wine_func_ref_name = $func_ref->[0];
- if ( $func_ref->[0] eq "glGetString" ) {
- $wine_func_ref_name = "internal_glGetString";
- }
- if ( $func_ref->[0] eq "glGetIntegerv" ) {
- $wine_func_ref_name = "internal_glGetIntegerv";
- }
- if ( $func_ref->[0] eq "glEnable" ) {
- $wine_func_ref_name = "internal_glEnable";
- }
- if ( $func_ref->[0] eq "glIsEnabled" ) {
- $wine_func_ref_name = "internal_glIsEnabled";
- }
- if ( $func_ref->[0] eq "glDisable" ) {
- $wine_func_ref_name = "internal_glDisable";
- }
- if ( $func_ref->[0] eq "glScissor" ) {
- $wine_func_ref_name = "internal_glScissor";
- }
- if ( $func_ref->[0] eq "glViewport" ) {
- $wine_func_ref_name = "internal_glViewport";
- }
- $ret = "$ret$prefix$wine_func_ref_name( $call_arg);\n";
+ $ret = "$ret$prefix$func_ref->[0]( $call_arg);\n";
if ($thread_safe) {
$ret = "$ret LEAVE_GL();\n";
}
@@ -614,34 +599,6 @@
#
open(SPEC, ">$spec_file");
-print SPEC "@ stdcall wglCreateContext(long)
-@ stdcall wglCreateLayerContext(long long)
-@ stdcall wglCopyContext(long long long)
-@ stdcall wglDeleteContext(long)
-@ stdcall wglDescribeLayerPlane(long long long long ptr)
-@ stdcall wglGetCurrentContext()
-@ stdcall wglGetCurrentDC()
-@ stdcall wglGetLayerPaletteEntries(long long long long ptr)
-@ stdcall wglGetProcAddress(str)
-@ stdcall wglMakeCurrent(long long)
-@ stdcall wglRealizeLayerPalette(long long long)
-@ stdcall wglSetLayerPaletteEntries(long long long long ptr)
-@ stdcall wglShareLists(long long)
-@ stdcall wglSwapLayerBuffers(long long)
-@ stdcall wglUseFontBitmapsA(long long long long)
-@ stdcall wglUseFontOutlinesA(long long long long long long long ptr)
-@ stub glGetLevelParameterfv
-@ stub glGetLevelParameteriv
-@ stdcall wglUseFontBitmapsW(long long long long)
-@ stub wglUseFontOutlinesW
-@ stub wglGetDefaultProcAddress
-@ stdcall wglChoosePixelFormat(long ptr) gdi32.ChoosePixelFormat
-@ stdcall wglDescribePixelFormat(long long long ptr) gdi32.DescribePixelFormat
-@ stdcall wglGetPixelFormat(long) gdi32.GetPixelFormat
-@ stdcall wglSetPixelFormat(long long ptr) gdi32.SetPixelFormat
-@ stdcall wglSwapBuffers(long) gdi32.SwapBuffers
-";
-
foreach (sort keys %norm_functions) {
my $func_name = $norm_functions{$_}->[0];
print SPEC "@ stdcall $func_name( ";
@@ -657,6 +614,35 @@
}
print SPEC ") wine_$func_name\n";
}
+
+print SPEC "@ stub glGetLevelParameterfv
+@ stub glGetLevelParameteriv
+@ stdcall wglChoosePixelFormat(long ptr) gdi32.ChoosePixelFormat
+@ stdcall wglCopyContext(long long long)
+@ stdcall wglCreateContext(long) gdi32.wglCreateContext
+@ stdcall wglCreateLayerContext(long long)
+@ stdcall wglDeleteContext(long) gdi32.wglDeleteContext
+@ stdcall wglDescribeLayerPlane(long long long long ptr)
+@ stdcall wglDescribePixelFormat(long long long ptr) gdi32.DescribePixelFormat
+@ stdcall wglGetCurrentContext() gdi32.wglGetCurrentContext
+@ stdcall wglGetCurrentDC() gdi32.wglGetCurrentDC
+@ stub wglGetDefaultProcAddress
+@ stdcall wglGetLayerPaletteEntries(long long long long ptr)
+@ stdcall wglGetPixelFormat(long) gdi32.GetPixelFormat
+@ stdcall wglGetProcAddress(str)
+@ stdcall wglMakeCurrent(long long) gdi32.wglMakeCurrent
+@ stdcall wglRealizeLayerPalette(long long long)
+@ stdcall wglSetLayerPaletteEntries(long long long long ptr)
+@ stdcall wglSetPixelFormat(long long ptr) gdi32.SetPixelFormat
+@ stdcall wglShareLists(long long) gdi32.wglShareLists
+@ stdcall wglSwapBuffers(long) gdi32.SwapBuffers
+@ stdcall wglSwapLayerBuffers(long long)
+@ stdcall wglUseFontBitmapsA(long long long long) gdi32.wglUseFontBitmapsA
+@ stdcall wglUseFontBitmapsW(long long long long) gdi32.wglUseFontBitmapsW
+@ stdcall wglUseFontOutlinesA(long long long long long long long ptr)
+@ stdcall wglUseFontOutlinesW(long long long long long long long ptr)
+";
+
close(SPEC);
#
@@ -675,7 +661,7 @@
foreach (sort keys %norm_functions) {
my $string = GenerateThunk($norm_functions{$_}, 1, "", $gen_thread_safe, "");
- print NORM "\n$string";
+ print NORM "\n$string" if $string;
}
close(NORM);
diff --git a/dlls/opengl32/opengl_ext.h b/dlls/opengl32/opengl_ext.h
index d700187..93afd05 100644
--- a/dlls/opengl32/opengl_ext.h
+++ b/dlls/opengl32/opengl_ext.h
@@ -62,12 +62,4 @@
extern const OpenGL_extension extension_registry[];
extern const int extension_registry_size;
-const GLubyte* internal_glGetString(GLenum name);
-void internal_glGetIntegerv(GLenum pname, GLint* params);
-void internal_glDisable(GLenum cap);
-void internal_glEnable(GLenum cap);
-GLboolean internal_glIsEnabled(GLenum cap);
-void internal_glScissor(GLint x, GLint y, GLsizei width, GLsizei height);
-void internal_glViewport(GLint x, GLint y, GLsizei width, GLsizei height);
-
#endif /* __DLLS_OPENGL32_OPENGL_EXT_H */
diff --git a/dlls/opengl32/opengl_norm.c b/dlls/opengl32/opengl_norm.c
index 047770f..6534301 100644
--- a/dlls/opengl32/opengl_norm.c
+++ b/dlls/opengl32/opengl_norm.c
@@ -810,16 +810,6 @@
}
/***********************************************************************
- * glDisable (OPENGL32.@)
- */
-void WINAPI wine_glDisable( GLenum cap ) {
- TRACE("(%d)\n", cap );
- ENTER_GL();
- internal_glDisable( cap );
- LEAVE_GL();
-}
-
-/***********************************************************************
* glDisableClientState (OPENGL32.@)
*/
void WINAPI wine_glDisableClientState( GLenum array ) {
@@ -910,16 +900,6 @@
}
/***********************************************************************
- * glEnable (OPENGL32.@)
- */
-void WINAPI wine_glEnable( GLenum cap ) {
- TRACE("(%d)\n", cap );
- ENTER_GL();
- internal_glEnable( cap );
- LEAVE_GL();
-}
-
-/***********************************************************************
* glEnableClientState (OPENGL32.@)
*/
void WINAPI wine_glEnableClientState( GLenum array ) {
@@ -1324,16 +1304,6 @@
}
/***********************************************************************
- * glGetIntegerv (OPENGL32.@)
- */
-void WINAPI wine_glGetIntegerv( GLenum pname, GLint* params ) {
- TRACE("(%d, %p)\n", pname, params );
- ENTER_GL();
- internal_glGetIntegerv( pname, params );
- LEAVE_GL();
-}
-
-/***********************************************************************
* glGetLightfv (OPENGL32.@)
*/
void WINAPI wine_glGetLightfv( GLenum light, GLenum pname, GLfloat* params ) {
@@ -1494,18 +1464,6 @@
}
/***********************************************************************
- * glGetString (OPENGL32.@)
- */
-const GLubyte * WINAPI wine_glGetString( GLenum name ) {
- const GLubyte * ret_value;
- TRACE("(%d)\n", name );
- ENTER_GL();
- ret_value = internal_glGetString( name );
- LEAVE_GL();
- return ret_value;
-}
-
-/***********************************************************************
* glGetTexEnvfv (OPENGL32.@)
*/
void WINAPI wine_glGetTexEnvfv( GLenum target, GLenum pname, GLfloat* params ) {
@@ -1766,18 +1724,6 @@
}
/***********************************************************************
- * glIsEnabled (OPENGL32.@)
- */
-GLboolean WINAPI wine_glIsEnabled( GLenum cap ) {
- GLboolean ret_value;
- TRACE("(%d)\n", cap );
- ENTER_GL();
- ret_value = internal_glIsEnabled( cap );
- LEAVE_GL();
- return ret_value;
-}
-
-/***********************************************************************
* glIsList (OPENGL32.@)
*/
GLboolean WINAPI wine_glIsList( GLuint list ) {
@@ -2884,16 +2830,6 @@
}
/***********************************************************************
- * glScissor (OPENGL32.@)
- */
-void WINAPI wine_glScissor( GLint x, GLint y, GLsizei width, GLsizei height ) {
- TRACE("(%d, %d, %d, %d)\n", x, y, width, height );
- ENTER_GL();
- internal_glScissor( x, y, width, height );
- LEAVE_GL();
-}
-
-/***********************************************************************
* glSelectBuffer (OPENGL32.@)
*/
void WINAPI wine_glSelectBuffer( GLsizei size, GLuint* buffer ) {
@@ -3752,13 +3688,3 @@
glVertexPointer( size, type, stride, pointer );
LEAVE_GL();
}
-
-/***********************************************************************
- * glViewport (OPENGL32.@)
- */
-void WINAPI wine_glViewport( GLint x, GLint y, GLsizei width, GLsizei height ) {
- TRACE("(%d, %d, %d, %d)\n", x, y, width, height );
- ENTER_GL();
- internal_glViewport( x, y, width, height );
- LEAVE_GL();
-}
diff --git a/dlls/opengl32/wgl.c b/dlls/opengl32/wgl.c
index 51cc71c..792707e 100644
--- a/dlls/opengl32/wgl.c
+++ b/dlls/opengl32/wgl.c
@@ -108,6 +108,8 @@
return;
}
+const GLubyte * WINAPI wine_glGetString( GLenum name );
+
/***********************************************************************
* wglCreateLayerContext (OPENGL32.@)
*/
@@ -168,7 +170,7 @@
/* Check if a GL extension is supported */
static BOOL is_extension_supported(const char* extension)
{
- const char *gl_ext_string = (const char*)internal_glGetString(GL_EXTENSIONS);
+ const char *gl_ext_string = (const char*)wine_glGetString(GL_EXTENSIONS);
TRACE("Checking for extension '%s'\n", extension);
@@ -561,58 +563,97 @@
return wglUseFontOutlines_common(hdc, first, count, listBase, deviation, extrusion, format, lpgmf, TRUE);
}
-void internal_glEnable(GLenum cap)
+/***********************************************************************
+ * glEnable (OPENGL32.@)
+ */
+void WINAPI wine_glEnable( GLenum cap )
{
- wine_wgl.p_wglEnable(cap);
+ TRACE("(%d)\n", cap );
+ ENTER_GL();
+ wine_wgl.p_wglEnable(cap);
+ LEAVE_GL();
}
-GLboolean internal_glIsEnabled(GLenum cap)
+/***********************************************************************
+ * glIsEnabled (OPENGL32.@)
+ */
+GLboolean WINAPI wine_glIsEnabled( GLenum cap )
{
- return wine_wgl.p_wglIsEnabled(cap);
+ GLboolean ret_value;
+ TRACE("(%d)\n", cap );
+ ENTER_GL();
+ ret_value = wine_wgl.p_wglIsEnabled(cap);
+ LEAVE_GL();
+ return ret_value;
}
-void internal_glDisable(GLenum cap)
+/***********************************************************************
+ * glDisable (OPENGL32.@)
+ */
+void WINAPI wine_glDisable( GLenum cap )
{
+ TRACE("(%d)\n", cap );
+ ENTER_GL();
wine_wgl.p_wglDisable(cap);
+ LEAVE_GL();
}
-void internal_glScissor( GLint x, GLint y, GLsizei width, GLsizei height )
+/***********************************************************************
+ * glScissor (OPENGL32.@)
+ */
+void WINAPI wine_glScissor( GLint x, GLint y, GLsizei width, GLsizei height )
{
+ TRACE("(%d, %d, %d, %d)\n", x, y, width, height );
+ ENTER_GL();
wine_wgl.p_wglScissor(x, y, width, height);
+ LEAVE_GL();
}
-void internal_glViewport( GLint x, GLint y, GLsizei width, GLsizei height )
+/***********************************************************************
+ * glViewport (OPENGL32.@)
+ */
+void WINAPI wine_glViewport( GLint x, GLint y, GLsizei width, GLsizei height )
{
+ TRACE("(%d, %d, %d, %d)\n", x, y, width, height );
+ ENTER_GL();
wine_wgl.p_wglViewport(x, y, width, height);
+ LEAVE_GL();
}
-const GLubyte * internal_glGetString(GLenum name) {
+/***********************************************************************
+ * glGetString (OPENGL32.@)
+ */
+const GLubyte * WINAPI wine_glGetString( GLenum name )
+{
+ const GLubyte *ret;
const char* GL_Extensions = NULL;
if (GL_EXTENSIONS != name) {
- return glGetString(name);
+ ENTER_GL();
+ ret = glGetString(name);
+ LEAVE_GL();
+ return ret;
}
if (NULL == internal_gl_extensions) {
+ ENTER_GL();
GL_Extensions = (const char *) glGetString(GL_EXTENSIONS);
- TRACE("GL_EXTENSIONS reported:\n");
- if (NULL == GL_Extensions) {
- ERR("GL_EXTENSIONS returns NULL\n");
- return NULL;
- } else {
+ if (GL_Extensions)
+ {
size_t len = strlen(GL_Extensions);
internal_gl_extensions = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, len + 2);
+ TRACE("GL_EXTENSIONS reported:\n");
while (*GL_Extensions != 0x00) {
const char* Start = GL_Extensions;
char ThisExtn[256];
-
- memset(ThisExtn, 0x00, sizeof(ThisExtn));
+
while (*GL_Extensions != ' ' && *GL_Extensions != 0x00) {
GL_Extensions++;
}
memcpy(ThisExtn, Start, (GL_Extensions - Start));
+ ThisExtn[GL_Extensions - Start] = 0;
TRACE("- %s:", ThisExtn);
/* test if supported API is disabled by config */
@@ -627,15 +668,21 @@
if (*GL_Extensions == ' ') GL_Extensions++;
}
}
+ LEAVE_GL();
}
return (const GLubyte *) internal_gl_extensions;
}
-void internal_glGetIntegerv(GLenum pname, GLint* params) {
- TRACE("pname: 0x%x, params %p\n", pname, params);
- glGetIntegerv(pname, params);
- /* A few parameters like GL_DEPTH_BITS differ between WGL and GLX, the wglGetIntegerv helper function handles those */
- wine_wgl.p_wglGetIntegerv(pname, params);
+/***********************************************************************
+ * glGetIntegerv (OPENGL32.@)
+ */
+void WINAPI wine_glGetIntegerv( GLenum pname, GLint* params )
+{
+ ENTER_GL();
+ glGetIntegerv(pname, params);
+ /* A few parameters like GL_DEPTH_BITS differ between WGL and GLX, the wglGetIntegerv helper function handles those */
+ wine_wgl.p_wglGetIntegerv(pname, params);
+ LEAVE_GL();
}