Fix up IDirect3DSurface8_LockRect and IDirect3DTexture8_LockRect calls for situations where Flags set to NULL. Resolves issued with Halo1 and Turok.

This commit is contained in:
Echelon9 2012-11-27 22:37:27 +11:00
parent 1d8b6efee4
commit edee70ddd0
1 changed files with 8 additions and 5 deletions

View File

@ -5696,9 +5696,6 @@ HRESULT WINAPI XTL::EmuIDirect3DSurface8_LockRect
} }
else else
{ {
if(Flags & 0x40)
EmuWarning("D3DLOCK_TILED ignored!");
IDirect3DSurface8 *pSurface8 = pThis->EmuSurface8; IDirect3DSurface8 *pSurface8 = pThis->EmuSurface8;
DWORD NewFlags = 0; DWORD NewFlags = 0;
@ -5706,7 +5703,10 @@ HRESULT WINAPI XTL::EmuIDirect3DSurface8_LockRect
if(Flags & 0x80) if(Flags & 0x80)
NewFlags |= D3DLOCK_READONLY; NewFlags |= D3DLOCK_READONLY;
if(!(Flags & 0x80) && !(Flags & 0x40)) if(Flags & 0x40)
EmuWarning("D3DLOCK_TILED ignored!");
if(!(Flags & 0x80) && !(Flags & 0x40) && Flags != 0)
CxbxKrnlCleanup("EmuIDirect3DSurface8_LockRect: Unknown Flags! (0x%.08X)", Flags); CxbxKrnlCleanup("EmuIDirect3DSurface8_LockRect: Unknown Flags! (0x%.08X)", Flags);
try try
@ -5833,7 +5833,10 @@ HRESULT WINAPI XTL::EmuIDirect3DTexture8_LockRect
if(Flags & 0x80) if(Flags & 0x80)
NewFlags |= D3DLOCK_READONLY; NewFlags |= D3DLOCK_READONLY;
if(!(Flags & 0x80) && !(Flags & 0x40)) if(Flags & 0x40)
EmuWarning("D3DLOCK_TILED ignored!");
if(!(Flags & 0x80) && !(Flags & 0x40) && Flags != 0)
CxbxKrnlCleanup("EmuIDirect3DTexture8_LockRect: Unknown Flags! (0x%.08X)", Flags); CxbxKrnlCleanup("EmuIDirect3DTexture8_LockRect: Unknown Flags! (0x%.08X)", Flags);
// Remove old lock(s) // Remove old lock(s)