[Bug 7270] EnigmaSimulator.exe: black client area

Wine Bugs wine-bugs at winehq.org
Thu Feb 8 14:43:59 CST 2007


http://bugs.winehq.org/show_bug.cgi?id=7270





------- Additional Comments From madewokherd at gmail.com  2007-08-02 14:43 -------
I've downloaded/run the program. I'll offer my guess at what the problem is.

fixme:ddraw:IDirectDrawImpl_SetCooperativeLevel (0x128bbd0)->(0x1002e,00000008)

The program uses SetCooperativeLevel with an hwnd of 1002e.

trace:ddraw:DirectDrawCreateClipper (00000000,0x788718,(nil))
---
trace:ddraw:IDirectDrawClipperImpl_SetHwnd (0x1eee20)->(0x00000000,0x000101ec)

Then it creates a clipper, sets it to use a different hwnd from the one it
bassed to SetCooperativeLevel. If it uses SetClipper to attach that clipper to
the primary surface (which I assume it does, but I haven't checked), ddraw
should now draw to the hwnd that's set on the clipper. However, wine continues
drawing to the window it was given in SetCooperativeLevel (which was never
correct to begin with--it should've been drawing to the screen), which is the
wrong one.

That patch won't solve this problem. If anything it'll make things worse by
making ddraw draw to the whole screen instead of the application's client area.

The only way to properly fix this is to implement clippers, but a horribly
broken hack that sets ddraw_window any time you call SetHWND on a clipper may be
enough to get this one app working.

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.



More information about the wine-bugs mailing list