wined3d compile failure

H. Verbeet hverbeet at gmail.com
Thu Jun 15 17:06:04 CDT 2006


On 15/06/06, James Hawkins <truiken at gmail.com> wrote:
> device.c: In function `IWineD3DDeviceImpl_SetRenderState':
> device.c:3833: `GL_FOG_COORD_SRC' undeclared (first use in this function)
> device.c:3833: (Each undeclared identifier is reported only once
> device.c:3833: for each function it appears in.)
> device.c:3873: `GL_FOG_COORD' undeclared (first use in this function)
Could you try the attached patch? It adds and uses the defines as
defined in the extension
(http://oss.sgi.com/projects/ogl-sample/registry/EXT/fog_coord.txt),
rather than the ones from OpenGL 1.5. If it works I'll submit it to
wine-patches.
-------------- next part --------------
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index e635352..1feb072 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -3830,8 +3830,8 @@ static HRESULT WINAPI IWineD3DDeviceImpl
                           glFogi(GL_FOG_MODE, GL_EXP);
                           checkGLcall("glFogi(GL_FOG_MODE, GL_EXP");
                           if(GL_SUPPORT(EXT_FOG_COORD)) {
-                              glFogi(GL_FOG_COORD_SRC, GL_FRAGMENT_DEPTH);
-                              checkGLcall("glFogi(GL_FOG_COORD_SRC, GL_FRAGMENT_DEPTH");
+                              glFogi(GL_FOG_COORDINATE_SOURCE_EXT, GL_FRAGMENT_DEPTH_EXT);
+                              checkGLcall("glFogi(GL_FOG_COORDINATE_SOURCE_EXT, GL_FRAGMENT_DEPTH_EXT");
                               IWineD3DDevice_SetRenderState(iface, WINED3DRS_FOGSTART, This->stateBlock->renderState[WINED3DRS_FOGSTART]);
                               IWineD3DDevice_SetRenderState(iface, WINED3DRS_FOGEND, This->stateBlock->renderState[WINED3DRS_FOGEND]);
                           }
@@ -3843,8 +3843,8 @@ static HRESULT WINAPI IWineD3DDeviceImpl
                           glFogi(GL_FOG_MODE, GL_EXP2);
                           checkGLcall("glFogi(GL_FOG_MODE, GL_EXP2");
                           if(GL_SUPPORT(EXT_FOG_COORD)) {
-                              glFogi(GL_FOG_COORD_SRC, GL_FRAGMENT_DEPTH);
-                              checkGLcall("glFogi(GL_FOG_COORD_SRC, GL_FRAGMENT_DEPTH");
+                              glFogi(GL_FOG_COORDINATE_SOURCE_EXT, GL_FRAGMENT_DEPTH_EXT);
+                              checkGLcall("glFogi(GL_FOG_COORDINATE_SOURCE_EXT, GL_FRAGMENT_DEPTH_EXT");
                               IWineD3DDevice_SetRenderState(iface, WINED3DRS_FOGSTART, This->stateBlock->renderState[WINED3DRS_FOGSTART]);
                               IWineD3DDevice_SetRenderState(iface, WINED3DRS_FOGEND, This->stateBlock->renderState[WINED3DRS_FOGEND]);
                           }
@@ -3856,8 +3856,8 @@ static HRESULT WINAPI IWineD3DDeviceImpl
                           glFogi(GL_FOG_MODE, GL_LINEAR);
                           checkGLcall("glFogi(GL_FOG_MODE, GL_LINEAR");
                           if(GL_SUPPORT(EXT_FOG_COORD)) {
-                              glFogi(GL_FOG_COORD_SRC, GL_FRAGMENT_DEPTH);
-                              checkGLcall("glFogi(GL_FOG_COORD_SRC, GL_FRAGMENT_DEPTH");
+                              glFogi(GL_FOG_COORDINATE_SOURCE_EXT, GL_FRAGMENT_DEPTH_EXT);
+                              checkGLcall("glFogi(GL_FOG_COORDINATE_SOURCE_EXT, GL_FRAGMENT_DEPTH_EXT");
                               IWineD3DDevice_SetRenderState(iface, WINED3DRS_FOGSTART, This->stateBlock->renderState[WINED3DRS_FOGSTART]);
                               IWineD3DDevice_SetRenderState(iface, WINED3DRS_FOGEND, This->stateBlock->renderState[WINED3DRS_FOGEND]);
                           }
@@ -3870,8 +3870,8 @@ static HRESULT WINAPI IWineD3DDeviceImpl
                        * Same happens with Vertexfog on transformed vertices
                        */
                       if(GL_SUPPORT(EXT_FOG_COORD)) {
-                          glFogi(GL_FOG_COORD_SRC, GL_FOG_COORD);
-                          checkGLcall("glFogi(GL_FOG_COORD_SRC, GL_FOG_COORD)\n");
+                          glFogi(GL_FOG_COORDINATE_SOURCE_EXT, GL_FOG_COORDINATE_EXT);
+                          checkGLcall("glFogi(GL_FOG_COORDINATE_SOURCE_EXT, GL_FOG_COORDINATE_EXT)\n");
                           glFogi(GL_FOG_MODE, GL_LINEAR);
                           checkGLcall("glFogi(GL_FOG_MODE, GL_LINEAR)");
                           glFogf(GL_FOG_START, (float) 0xff);
@@ -3894,8 +3894,8 @@ static HRESULT WINAPI IWineD3DDeviceImpl
                   case D3DFOG_EXP:    glFogi(GL_FOG_MODE, GL_EXP);
                                       checkGLcall("glFogi(GL_FOG_MODE, GL_EXP");
                                       if(GL_SUPPORT(EXT_FOG_COORD)) {
-                                          glFogi(GL_FOG_COORD_SRC, GL_FRAGMENT_DEPTH);
-                                          checkGLcall("glFogi(GL_FOG_COORD_SRC, GL_FRAGMENT_DEPTH");
+                                          glFogi(GL_FOG_COORDINATE_SOURCE_EXT, GL_FRAGMENT_DEPTH_EXT);
+                                          checkGLcall("glFogi(GL_FOG_COORDINATE_SOURCE_EXT, GL_FRAGMENT_DEPTH_EXT");
                                           IWineD3DDevice_SetRenderState(iface, WINED3DRS_FOGSTART, This->stateBlock->renderState[WINED3DRS_FOGSTART]);
                                           IWineD3DDevice_SetRenderState(iface, WINED3DRS_FOGEND, This->stateBlock->renderState[WINED3DRS_FOGEND]);
                                       }
@@ -3903,8 +3903,8 @@ static HRESULT WINAPI IWineD3DDeviceImpl
                   case D3DFOG_EXP2:   glFogi(GL_FOG_MODE, GL_EXP2);
                                       checkGLcall("glFogi(GL_FOG_MODE, GL_EXP2");
                                       if(GL_SUPPORT(EXT_FOG_COORD)) {
-                                          glFogi(GL_FOG_COORD_SRC, GL_FRAGMENT_DEPTH);
-                                          checkGLcall("glFogi(GL_FOG_COORD_SRC, GL_FRAGMENT_DEPTH");
+                                          glFogi(GL_FOG_COORDINATE_SOURCE_EXT, GL_FRAGMENT_DEPTH_EXT);
+                                          checkGLcall("glFogi(GL_FOG_COORDINATE_SOURCE_EXT, GL_FRAGMENT_DEPTH_EXT");
                                           IWineD3DDevice_SetRenderState(iface, WINED3DRS_FOGSTART, This->stateBlock->renderState[WINED3DRS_FOGSTART]);
                                           IWineD3DDevice_SetRenderState(iface, WINED3DRS_FOGEND, This->stateBlock->renderState[WINED3DRS_FOGEND]);
                                       }
@@ -3912,8 +3912,8 @@ static HRESULT WINAPI IWineD3DDeviceImpl
                   case D3DFOG_LINEAR: glFogi(GL_FOG_MODE, GL_LINEAR);
                                       checkGLcall("glFogi(GL_FOG_MODE, GL_LINEAR");
                                       if(GL_SUPPORT(EXT_FOG_COORD)) {
-                                          glFogi(GL_FOG_COORD_SRC, GL_FRAGMENT_DEPTH);
-                                          checkGLcall("glFogi(GL_FOG_COORD_SRC, GL_FRAGMENT_DEPTH");
+                                          glFogi(GL_FOG_COORDINATE_SOURCE_EXT, GL_FRAGMENT_DEPTH_EXT);
+                                          checkGLcall("glFogi(GL_FOG_COORDINATE_SOURCE_EXT, GL_FRAGMENT_DEPTH_EXT");
                                           IWineD3DDevice_SetRenderState(iface, WINED3DRS_FOGSTART, This->stateBlock->renderState[WINED3DRS_FOGSTART]);
                                           IWineD3DDevice_SetRenderState(iface, WINED3DRS_FOGEND, This->stateBlock->renderState[WINED3DRS_FOGEND]);
                                       }
diff --git a/dlls/wined3d/drawprim.c b/dlls/wined3d/drawprim.c
index 00bdcd2..a042199 100644
--- a/dlls/wined3d/drawprim.c
+++ b/dlls/wined3d/drawprim.c
@@ -222,8 +222,8 @@ void d3ddevice_set_ortho(IWineD3DDeviceI
         /* Vertex fog on transformed vertices? Use the calculated fog factor stored in the specular color */
         if(This->stateBlock->renderState[WINED3DRS_FOGENABLE] && This->stateBlock->renderState[WINED3DRS_FOGVERTEXMODE] != D3DFOG_NONE) {
             if(GL_SUPPORT(EXT_FOG_COORD)) {
-                glFogi(GL_FOG_COORD_SRC, GL_FOG_COORD);
-                checkGLcall("glFogi(GL_FOG_COORD_SRC, GL_FOG_COORD)");
+                glFogi(GL_FOG_COORDINATE_SOURCE_EXT, GL_FOG_COORDINATE_EXT);
+                checkGLcall("glFogi(GL_FOG_COORDINATE_SOURCE_EXT, GL_FOG_COORDINATE_EXT)");
                 glFogi(GL_FOG_MODE, GL_LINEAR);
                 checkGLcall("glFogi(GL_FOG_MODE, GL_LINEAR)");
                 /* The dx fog range in this case is fixed to 0 - 255,
@@ -338,8 +338,8 @@ static BOOL primitiveInitState(IWineD3DD
         /* Restore fogging */
         if(This->stateBlock->renderState[WINED3DRS_FOGENABLE] && This->stateBlock->renderState[WINED3DRS_FOGVERTEXMODE] != D3DFOG_NONE) {
             if(GL_SUPPORT(EXT_FOG_COORD)) {
-                glFogi(GL_FOG_COORD_SRC, GL_FRAGMENT_DEPTH);
-                checkGLcall("glFogi(GL_FOG_COORD_SRC, GL_FRAGMENT_DEPTH)\n");
+                glFogi(GL_FOG_COORDINATE_SOURCE_EXT, GL_FRAGMENT_DEPTH_EXT);
+                checkGLcall("glFogi(GL_FOG_COORDINATE_SOURCE_EXT, GL_FRAGMENT_DEPTH_EXT)\n");
                 /* Reapply the fog range */
                 IWineD3DDevice_SetRenderState(iface, WINED3DRS_FOGSTART, This->stateBlock->renderState[WINED3DRS_FOGSTART]);
                 IWineD3DDevice_SetRenderState(iface, WINED3DRS_FOGEND, This->stateBlock->renderState[WINED3DRS_FOGEND]);
@@ -1046,7 +1046,7 @@ #if 0 /* FOG  --------------------------
     if (sd->u.s.fog.lpData != NULL) {
         /* TODO: fog*/
     if (GL_SUPPORT(EXT_FOG_COORD) {
-             glEnableClientState(GL_FOG_COORD_EXT);
+             glEnableClientState(GL_FOG_COORDINATE_EXT);
             (GL_EXTCALL)(FogCoordPointerEXT)(WINED3D_ATR_GLTYPE(fog),
                         sd->u.s.fog.dwStride,
                         sd->u.s.fog.lpData);
@@ -1058,7 +1058,7 @@ #if 0 /* FOG  --------------------------
     } else {
         if (GL_SUPPRT(EXT_FOR_COORD) {
              /* make sure fog is disabled */
-             glDisableClientState(GL_FOG_COORD_EXT);
+             glDisableClientState(GL_FOG_COORDINATE_EXT);
         }
     }
 #endif
diff --git a/include/wine/wined3d_gl.h b/include/wine/wined3d_gl.h
index a865760..a960f6f 100644
--- a/include/wine/wined3d_gl.h
+++ b/include/wine/wined3d_gl.h
@@ -647,6 +647,17 @@ typedef GLboolean (APIENTRY * PGLFNUNMAP
 typedef void (APIENTRY * PGLFNGETBUFFERPARAMETERIVARBPROC) (GLenum target, GLenum pname, GLint *params);
 typedef void (APIENTRY * PGLFNGETBUFFERPOINTERVARBPROC) (GLenum target, GLenum pname, GLvoid* *params);
 /* GL_EXT_fog_coord */
+#ifndef GL_EXT_fog_coord
+#define GL_EXT_fog_coord 1
+#define GL_FOG_COORDINATE_SOURCE_EXT            0x8450
+#define GL_FOG_COORDINATE_EXT                   0x8451
+#define GL_FRAGMENT_DEPTH_EXT                   0x8452
+#define GL_CURRENT_FOG_COORDINATE_EXT           0x8453
+#define GL_FOG_COORDINATE_ARRAY_TYPE_EXT        0x8454
+#define GL_FOG_COORDINATE_ARRAY_STRIDE_EXT      0x8455
+#define GL_FOG_COORDINATE_ARRAY_POINTER_EXT     0x8456
+#define GL_FOG_COORDINATE_ARRAY_EXT             0x8457
+#endif /* GL_EXT_fog_coord */
 typedef void (APIENTRY * PGLFNGLFOGCOORDFEXTPROC) (GLfloat intesity);
 typedef void (APIENTRY * PGLFNGLFOGCOORDFVEXTPROC) (GLfloat intesity);
 typedef void (APIENTRY * PGLFNGLFOGCOORDDEXTPROC) (GLfloat intesity);


More information about the wine-devel mailing list