Am Dienstag 22 Juni 2010 23:37:20 schrieb Iain Arnell:
--- a/dlls/wined3d/surface_base.c +++ b/dlls/wined3d/surface_base.c @@ -1657,6 +1657,11 @@ HRESULT WINAPI IWineD3DBaseSurfaceImpl_BltFast(IWineD3DSurface *iface, DWORD dst lock_dst.right = dstx + w; lock_dst.bottom = dsty + h;
- if ( lock_dst.left < 0 || lock_dst.top < 0 ) {
WARN("Application gave us bad desitination offset for
BltFast.\n"); + return WINEDDERR_INVALIDRECT;
- }
You're catching only the GDI surface case here since opengl surfaces don't use IWineD3DBaseSurfaceImpl_BltFast. I recommend to put this check into ddraw, like in your previous attempts(but keep checking for < 0, don't do any bit testing magic like in your old patches)