Stefan Dösinger : wined3d: Fix the drawStridedSlow callback function calling convention.

Alexandre Julliard julliard at winehq.org
Mon Aug 25 06:21:32 CDT 2008


Module: wine
Branch: master
Commit: 61a900fdfc4ce34484b946e09d6c3539ec56327f
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=61a900fdfc4ce34484b946e09d6c3539ec56327f

Author: Stefan Dösinger <stefan at codeweavers.com>
Date:   Fri Aug 15 18:04:20 2008 +0200

wined3d: Fix the drawStridedSlow callback function calling convention.

Since some of those function pointers are direct GL functions the function
prototype needs the WINE_GLAPI calling convention. This makes prevents
drawStridedSlow from crashing with USE_WIN32_OPENGL.

---

 dlls/wined3d/directx.c         |   12 ++++++------
 dlls/wined3d/wined3d_private.h |    4 ++--
 2 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index 5120c5e..2cf89e7 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -3893,7 +3893,7 @@ static void fixup_extensions(WineD3D_GL_Info *gl_info) {
     }
 }
 
-void invalid_func(void *data) {
+static void WINE_GLAPI invalid_func(void *data) {
     ERR("Invalid vertex attribute function called\n");
     DebugBreak();
 }
@@ -3903,7 +3903,7 @@ void invalid_func(void *data) {
 /* Helper functions for providing vertex data to opengl. The arrays are initialized based on
  * the extension detection and are used in drawStridedSlow
  */
-static void position_d3dcolor(void *data) {
+static void WINE_GLAPI position_d3dcolor(void *data) {
     DWORD pos = *((DWORD *) data);
 
     FIXME("Add a test for fixed function position from d3dcolor type\n");
@@ -3912,7 +3912,7 @@ static void position_d3dcolor(void *data) {
                D3DCOLOR_B_B(pos),
                D3DCOLOR_B_A(pos));
 }
-static void position_float4(void *data) {
+static void WINE_GLAPI position_float4(void *data) {
     GLfloat *pos = (float *) data;
 
     if (pos[3] < eps && pos[3] > -eps)
@@ -3924,7 +3924,7 @@ static void position_float4(void *data) {
     }
 }
 
-static void diffuse_d3dcolor(void *data) {
+static void WINE_GLAPI diffuse_d3dcolor(void *data) {
     DWORD diffuseColor = *((DWORD *) data);
 
     glColor4ub(D3DCOLOR_B_R(diffuseColor),
@@ -3933,14 +3933,14 @@ static void diffuse_d3dcolor(void *data) {
                D3DCOLOR_B_A(diffuseColor));
 }
 
-static void specular_d3dcolor(void *data) {
+static void WINE_GLAPI specular_d3dcolor(void *data) {
     DWORD specularColor = *((DWORD *) data);
 
     GL_EXTCALL(glSecondaryColor3ubEXT)(D3DCOLOR_B_R(specularColor),
                                        D3DCOLOR_B_G(specularColor),
                                        D3DCOLOR_B_B(specularColor));
 }
-static void warn_no_specular_func(void *data) {
+static void WINE_GLAPI warn_no_specular_func(void *data) {
     WARN("GL_EXT_secondary_color not supported\n");
 }
 
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index c72afe6..c00300d 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -463,8 +463,8 @@ void primitiveDeclarationConvertToStridedData(
 
 DWORD get_flexible_vertex_size(DWORD d3dvtVertexType);
 
-typedef void (*glAttribFunc)(void *data);
-typedef void (*glTexAttribFunc)(GLuint unit, void *data);
+typedef void (WINE_GLAPI *glAttribFunc)(void *data);
+typedef void (WINE_GLAPI *glTexAttribFunc)(GLuint unit, void *data);
 extern glAttribFunc position_funcs[WINED3DDECLTYPE_UNUSED];
 extern glAttribFunc diffuse_funcs[WINED3DDECLTYPE_UNUSED];
 extern glAttribFunc specular_funcs[WINED3DDECLTYPE_UNUSED];




More information about the wine-cvs mailing list