[PATCH] ddraw: Set table fog state instead of vertex fog in d3d_device3_SetLightState().
_FOGVERTEXMODE is a d3d7+ state. Signed-off-by: Paul Gofman <gofmanp(a)gmail.com> --- dlls/ddraw/device.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dlls/ddraw/device.c b/dlls/ddraw/device.c index ade56bbc9e..94a2d4ea78 100644 --- a/dlls/ddraw/device.c +++ b/dlls/ddraw/device.c @@ -2982,7 +2982,7 @@ static HRESULT WINAPI d3d_device3_SetLightState(IDirect3DDevice3 *iface, rs = D3DRENDERSTATE_AMBIENT; break; case D3DLIGHTSTATE_FOGMODE: /* 4 */ - rs = D3DRENDERSTATE_FOGVERTEXMODE; + rs = D3DRENDERSTATE_FOGTABLEMODE; break; case D3DLIGHTSTATE_FOGSTART: /* 5 */ rs = D3DRENDERSTATE_FOGSTART; -- 2.21.0
Hi, While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check? Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=52573 Your paranoid android. === debian9 (32 bit report) === ddraw: ddraw7.c:2596: Test failed: Expected message 0x46, but didn't receive it. ddraw7.c:2598: Test failed: Expected screen size 1920x1200, got 0x0. ddraw7.c:2603: Test failed: Expected (0,0)-(1920,1200), got (0,0)-(1920,1080).
I am sorry, I am likely wrong about this one. Please disregard this patch, I will do some more testing. On Tue, 21 May 2019 at 02:57, Paul Gofman <gofmanp(a)gmail.com> wrote:
_FOGVERTEXMODE is a d3d7+ state.
Signed-off-by: Paul Gofman <gofmanp(a)gmail.com> --- dlls/ddraw/device.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/ddraw/device.c b/dlls/ddraw/device.c index ade56bbc9e..94a2d4ea78 100644 --- a/dlls/ddraw/device.c +++ b/dlls/ddraw/device.c @@ -2982,7 +2982,7 @@ static HRESULT WINAPI d3d_device3_SetLightState(IDirect3DDevice3 *iface, rs = D3DRENDERSTATE_AMBIENT; break; case D3DLIGHTSTATE_FOGMODE: /* 4 */ - rs = D3DRENDERSTATE_FOGVERTEXMODE; + rs = D3DRENDERSTATE_FOGTABLEMODE; break; case D3DLIGHTSTATE_FOGSTART: /* 5 */ rs = D3DRENDERSTATE_FOGSTART; -- 2.21.0
Hi, While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check? Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=52574 Your paranoid android. === debian9 (build log) === error: corrupt patch at line 44 Task: Patch failed to apply === debian9 (build log) === error: corrupt patch at line 44 Task: Patch failed to apply
On Tue, 21 May 2019 at 05:52, Paul Gofman <gofmanp(a)gmail.com> wrote:
I am sorry, I am likely wrong about this one. Please disregard this patch, I will do some more testing.
For what it's worth:
On Tue, 21 May 2019 at 02:57, Paul Gofman <gofmanp(a)gmail.com> wrote:
_FOGVERTEXMODE is a d3d7+ state.
That's not in itself an issue though, we implement older ddraw functionality on top of newer ddraw all the time. The practical difference between the two is mostly GL_FOG_HINT for fixed-function OpenGL, and very little with the GLSL backend. Perhaps more importantly, if you change d3d_device3_SetLightState() you should also change d3d_device3_GetLightState().
Actually I think I was most likely plainly wrong trying to change that, I misinterpreted some draft test results. Actually vertex fog is what should only be supported before d3d7 through the light state, table fog is a newer feature. I guess what I have to do to get all the pieces together is to actually compute fog coordinate in process_vertices() according to the state setup, then I need to test more but this state setting is likely correct as is. On 5/21/19 12:55, Henri Verbeet wrote:
On Tue, 21 May 2019 at 05:52, Paul Gofman <gofmanp(a)gmail.com> wrote:
I am sorry, I am likely wrong about this one. Please disregard this patch, I will do some more testing.
For what it's worth:
On Tue, 21 May 2019 at 02:57, Paul Gofman <gofmanp(a)gmail.com> wrote:
_FOGVERTEXMODE is a d3d7+ state.
That's not in itself an issue though, we implement older ddraw functionality on top of newer ddraw all the time. The practical difference between the two is mostly GL_FOG_HINT for fixed-function OpenGL, and very little with the GLSL backend. Perhaps more importantly, if you change d3d_device3_SetLightState() you should also change d3d_device3_GetLightState().
participants (3)
-
Henri Verbeet -
Marvin -
Paul Gofman