http://bugs.winehq.org/show_bug.cgi?id=7451
Summary: Unreal Editor bitblt fails and crashes Product: Wine Version: 0.9.30. Platform: PC OS/Version: Linux Status: UNCONFIRMED Severity: major Priority: P2 Component: wine-gdi-(printing) AssignedTo: wine-bugs@winehq.org ReportedBy: renekok@gmail.com
The Unreal Editor (for Unreal Tournament) fails when you start it up. This is the message from the editor:
Critical: appError called:
Critical: BitBlt failed: Success
Critical: Windows GetLastError: Success (0)
Being a hackish type of person I go into /dlls/bitblt.c and change the bitblt function like this: return ret;
to:
if (ret == 0) ret = 1; return ret;
and now it bleeding works. Of course that's a hack, not a real fix.
Ret = 0 seems to happen in this case when the first if-case ret is being set by: ret = dcDst->funcs->pBitBlt( dcDst->physDev, xDst, yDst, width, height, dcSrc ? dcSrc->physDev : NULL, xSrc, ySrc, rop ); that's line 72/73.
For some weird reason dcDst->funcs->pBitBlt( dcDst->physDev, xDst, yDst, width, height, dcSrc ? dcSrc->physDev : NULL, xSrc, ySrc, rop ); returns zero, where it probably should return 1. In fact most cases it does return 1, just in some occasions it doesn't. I did some simple debugging for that.
I don't have the skills to find out anything else, it's all hocus pocus from here on in. Let me know if I can help.