http://bugs.winehq.org/show_bug.cgi?id=2082
Stefan Dösinger stefan@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |stefan@codeweavers.com
--- Comment #127 from Stefan Dösinger stefan@codeweavers.com --- d3d8/9 drawing to the desktop window is not valid, unless D3DDEVTYPE_NULLREF is used. Which is what some applications do, and we don't implement NULLREF and just treat it as HAL.
I believe we have tests that demonstrate that opengl rendering on the desktop window is not valid on Windows. I might be mistaken though, I haven't checked the code.
I'm not entirely sure about the ddraw behavior. This needs some additional tests for clippers. Specifically we'll have to check what clippers do in fullscreen mode, and if clippers affect primary surface locks (and not just blits). The current behavior is to render to the clipper window if a clipper is assigned to the primary, and it has a clip window and not a clip list.
What may be the correct behavior: *) Always render to the device window, which is NULL by default unless the application explicitly sets it with SetCoopLevel(DDSCL_SETDEVICEWINDOW) or asks ddraw to create one with SetCoopLevel(DDSCL_CREATEDEVICEWINDOW). I think SetCoopLevel(window, FULLSCREEN | EXCLUSIVE) just sets the focus window, not the device window. *) Never render to the clipper window. *) Use the clipper window only in surface::blt to limit the written area.