Resend: [dx52] fix AddDirtyRect
Raphaël Junqueira
fenix at club-internet.fr
Mon Jun 16 13:00:24 CDT 2003
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hi,
just a resubmit of an "uncommited" patch
Changelog:
- fix AddDirtyRect uncorrect behavior (crash in some cases) seen with Mafia.
Based on a patch from Roderick Colenbrander <thunderbird2k at gmx.net>
Regards,
Raphael
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (GNU/Linux)
iD8DBQE+7gW7p7NA3AmQTU4RApNTAJ9hvbOzXsa67Ke/sDeikxGch9akyQCfQeqi
/NxZrP2Wx3KyMb/Rapr9bFg=
=5orq
-----END PGP SIGNATURE-----
-------------- next part --------------
Index: surface.c
===================================================================
RCS file: /home/wine/wine/dlls/d3d8/surface.c,v
retrieving revision 1.15
diff -u -r1.15 surface.c
--- surface.c 4 Jun 2003 23:05:46 -0000 1.15
+++ surface.c 6 Jun 2003 17:29:05 -0000
@@ -604,9 +604,16 @@
extern HRESULT WINAPI IDirect3DSurface8Impl_AddDirtyRect(LPDIRECT3DSURFACE8 iface, CONST RECT* pDirtyRect) {
ICOM_THIS(IDirect3DSurface8Impl,iface);
This->Dirty = TRUE;
- This->dirtyRect.left = min(This->dirtyRect.left, pDirtyRect->left);
- This->dirtyRect.top = min(This->dirtyRect.top, pDirtyRect->top);
- This->dirtyRect.right = max(This->dirtyRect.right, pDirtyRect->right);
- This->dirtyRect.bottom = max(This->dirtyRect.bottom, pDirtyRect->bottom);
+ if (NULL != pDirtyRect) {
+ This->dirtyRect.left = min(This->dirtyRect.left, pDirtyRect->left);
+ This->dirtyRect.top = min(This->dirtyRect.top, pDirtyRect->top);
+ This->dirtyRect.right = max(This->dirtyRect.right, pDirtyRect->right);
+ This->dirtyRect.bottom = max(This->dirtyRect.bottom, pDirtyRect->bottom);
+ } else {
+ This->dirtyRect.left = 0;
+ This->dirtyRect.top = 0;
+ This->dirtyRect.right = This->myDesc.Width;
+ This->dirtyRect.bottom = This->myDesc.Height;
+ }
return D3D_OK;
}
More information about the wine-patches
mailing list