Skip to content

Commit

Permalink
Use shadow surface for Render Target
Browse files Browse the repository at this point in the history
  • Loading branch information
elishacloud committed Sep 9, 2024
1 parent ef1b023 commit 9d05bc9
Show file tree
Hide file tree
Showing 4 changed files with 176 additions and 36 deletions.
18 changes: 9 additions & 9 deletions ddraw/IDirect3DDeviceX.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1924,6 +1924,11 @@ HRESULT m_IDirect3DDeviceX::Clear(DWORD dwCount, LPD3DRECT lpRects, DWORD dwFlag
return DDERR_INVALIDOBJECT;
}

if ((dwFlags & D3DCLEAR_TARGET) && lpCurrentRenderTargetX)
{
lpCurrentRenderTargetX->PrepareRenderTarget();
}

// Clear primary surface
/*if (!Config.DdrawEnableRenderTarget && lpCurrentRenderTargetX && (dwFlags & D3DCLEAR_TARGET))
{
Expand All @@ -1943,11 +1948,6 @@ HRESULT m_IDirect3DDeviceX::Clear(DWORD dwCount, LPD3DRECT lpRects, DWORD dwFlag
lpCurrentRenderTargetX->ClearDirtyFlags();
}*/

if ((dwFlags & D3DCLEAR_TARGET) && lpCurrentRenderTargetX)
{
lpCurrentRenderTargetX->SetRenderTargetDirty();
}

return (*d3d9Device)->Clear(dwCount, lpRects, dwFlags, dwColor, dvZ, dwStencil);
}

Expand Down Expand Up @@ -4311,6 +4311,10 @@ inline void m_IDirect3DDeviceX::SetDrawStates(DWORD dwVertexTypeDesc, DWORD& dwF
}
if (Config.Dd7to9)
{
if (lpCurrentRenderTargetX)
{
lpCurrentRenderTargetX->PrepareRenderTarget();
}
if (Config.DdrawFixByteAlignment > 1)
{
for (UINT x = 0; x < MaxTextureStages; x++)
Expand Down Expand Up @@ -4392,10 +4396,6 @@ inline void m_IDirect3DDeviceX::RestoreDrawStates(DWORD dwVertexTypeDesc, DWORD
}
if (Config.Dd7to9)
{
if (lpCurrentRenderTargetX)
{
lpCurrentRenderTargetX->SetRenderTargetDirty();
}
if (Config.DdrawFixByteAlignment > 1)
{
for (UINT x = 0; x < MaxTextureStages; x++)
Expand Down
Loading

0 comments on commit 9d05bc9

Please sign in to comment.