[PATCH] WineD3D: Fix the drawStridedSlow callback function =

unknown (none) stefan at .
Fri Aug 15 18:04:20 CDT 2008


calling convention=0A=
=0A=
Since some of those function pointers are direct GL functions the =
function=0A=
prototype needs the WINE_GLAPI calling convention. This makes prevents=0A=
drawStridedSlow from crashing with USE_WIN32_OPENGL.=0A=
=0A=
(I wonder why the compiler didn't complain about that)=0A=
---=0A=
 dlls/wined3d/directx.c         |   12 ++++++------=0A=
 dlls/wined3d/wined3d_private.h |    4 ++--=0A=
 2 files changed, 8 insertions(+), 8 deletions(-)=0A=
=0A=
diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c=0A=
index cd3d634..9741a7c 100644=0A=
--- a/dlls/wined3d/directx.c=0A=
+++ b/dlls/wined3d/directx.c=0A=
@@ -3892,7 +3892,7 @@ static void fixup_extensions(WineD3D_GL_Info =
*gl_info) {=0A=
     }=0A=
 }=0A=
 =0A=
-void invalid_func(void *data) {=0A=
+static void WINE_GLAPI invalid_func(void *data) {=0A=
     ERR("Invalid vertex attribute function called\n");=0A=
     DebugBreak();=0A=
 }=0A=
@@ -3902,7 +3902,7 @@ void invalid_func(void *data) {=0A=
 /* Helper functions for providing vertex data to opengl. The arrays are =
initialized based on=0A=
  * the extension detection and are used in drawStridedSlow=0A=
  */=0A=
-static void position_d3dcolor(void *data) {=0A=
+static void WINE_GLAPI position_d3dcolor(void *data) {=0A=
     DWORD pos =3D *((DWORD *) data);=0A=
 =0A=
     FIXME("Add a test for fixed function position from d3dcolor =
type\n");=0A=
@@ -3911,7 +3911,7 @@ static void position_d3dcolor(void *data) {=0A=
                D3DCOLOR_B_B(pos),=0A=
                D3DCOLOR_B_A(pos));=0A=
 }=0A=
-static void position_float4(void *data) {=0A=
+static void WINE_GLAPI position_float4(void *data) {=0A=
     GLfloat *pos =3D (float *) data;=0A=
 =0A=
     if (pos[3] < eps && pos[3] > -eps)=0A=
@@ -3923,7 +3923,7 @@ static void position_float4(void *data) {=0A=
     }=0A=
 }=0A=
 =0A=
-static void diffuse_d3dcolor(void *data) {=0A=
+static void WINE_GLAPI diffuse_d3dcolor(void *data) {=0A=
     DWORD diffuseColor =3D *((DWORD *) data);=0A=
 =0A=
     glColor4ub(D3DCOLOR_B_R(diffuseColor),=0A=
@@ -3932,14 +3932,14 @@ static void diffuse_d3dcolor(void *data) {=0A=
                D3DCOLOR_B_A(diffuseColor));=0A=
 }=0A=
 =0A=
-static void specular_d3dcolor(void *data) {=0A=
+static void WINE_GLAPI specular_d3dcolor(void *data) {=0A=
     DWORD specularColor =3D *((DWORD *) data);=0A=
 =0A=
     GL_EXTCALL(glSecondaryColor3ubEXT)(D3DCOLOR_B_R(specularColor),=0A=
                                        D3DCOLOR_B_G(specularColor),=0A=
                                        D3DCOLOR_B_B(specularColor));=0A=
 }=0A=
-static void warn_no_specular_func(void *data) {=0A=
+static void WINE_GLAPI warn_no_specular_func(void *data) {=0A=
     WARN("GL_EXT_secondary_color not supported\n");=0A=
 }=0A=
 =0A=
diff --git a/dlls/wined3d/wined3d_private.h =
b/dlls/wined3d/wined3d_private.h=0A=
index c72afe6..13ca27d 100644=0A=
--- a/dlls/wined3d/wined3d_private.h=0A=
+++ b/dlls/wined3d/wined3d_private.h=0A=
@@ -463,8 +463,8 @@ void primitiveDeclarationConvertToStridedData(=0A=
 =0A=
 DWORD get_flexible_vertex_size(DWORD d3dvtVertexType);=0A=
 =0A=
-typedef void (*glAttribFunc)(void *data);=0A=
-typedef void (*glTexAttribFunc)(GLuint unit, void *data);=0A=
+typedef void WINE_GLAPI (*glAttribFunc)(void *data);=0A=
+typedef void WINE_GLAPI (*glTexAttribFunc)(GLuint unit, void *data);=0A=
 extern glAttribFunc position_funcs[WINED3DDECLTYPE_UNUSED];=0A=
 extern glAttribFunc diffuse_funcs[WINED3DDECLTYPE_UNUSED];=0A=
 extern glAttribFunc specular_funcs[WINED3DDECLTYPE_UNUSED];=0A=
-- =0A=
1.5.6.4=0A=
=0A=

------=_NextPart_000_000C_01C9046F.7D2138E0--




More information about the wine-patches mailing list