From d5834a5e3dec504b8514c450e39014b1730a8a95 Mon Sep 17 00:00:00 2001 From: Echelon9 Date: Mon, 22 Jul 2013 13:32:07 +1000 Subject: [PATCH] Support additional D3DLOCK_NOOVERWRITE flag in D3DTexture::LockRect() --- src/CxbxKrnl/EmuD3D8.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/CxbxKrnl/EmuD3D8.cpp b/src/CxbxKrnl/EmuD3D8.cpp index b550301b3..4b718e0aa 100644 --- a/src/CxbxKrnl/EmuD3D8.cpp +++ b/src/CxbxKrnl/EmuD3D8.cpp @@ -5838,9 +5838,15 @@ HRESULT WINAPI XTL::EmuIDirect3DTexture8_LockRect NewFlags |= D3DLOCK_READONLY; if(Flags & 0x40) - EmuWarning("D3DLOCK_TILED ignored!"); + EmuWarning("D3DLOCK_TILED ignored!"); - if(!(Flags & 0x80) && !(Flags & 0x40) && Flags != 0) + if(Flags & 0x20) + NewFlags |= D3DLOCK_NOOVERWRITE; + + if(Flags & 0x10) + EmuWarning("D3DLOCK_NOFLUSH ignored!"); + + if(!(Flags & 0x80) && !(Flags & 0x40) && !(Flags & 0x20) && !(Flags & 0x10) && Flags != 0) CxbxKrnlCleanup("EmuIDirect3DTexture8_LockRect: Unknown Flags! (0x%.08X)", Flags); // Remove old lock(s)