[Bug 36227] Salammbo: invisible mouse pointer in the menus

wine-bugs at winehq.org wine-bugs at winehq.org
Tue May 6 16:17:58 CDT 2014


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

--- Comment #2 from Stefan Dösinger <stefan at codeweavers.com> ---
I tested the demo and could reproduce the bug. The problem is that the game
modifies the backbuffer contents without mapping it. Before doing that it uses
surface_getdc to draw some text. After the silent modification it flips the
surface.

The getdc write stays in WINED3D_LOCATION_DIB after the releasedc call. When
Flip is called, wined3d copies the DIB data to the screen because it happens to
be the most up to date copy. Thus it ignores the drawing operation that the
game did without properly warning us.

The best (but still terrible) solution is to copy the DIB back to sysmem if
SFLAG_PIN_MEMORY is set and invalidate the dib copy in releasedc for such
surfaces. This more or less restores the behavior before adf0ab2a.

Alternatively we can tell users to use the gdi renderer for broken applications
like this or create a DIB section for all SFLAG_PIN_MEMORY surfaces even if
we're using GL. This has its own set of problems though.

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.


More information about the wine-bugs mailing list