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