[Bug 42940] WAtomic: White labels that show name of elements hidden by GL components

wine-bugs at winehq.org wine-bugs at winehq.org
Sat May 6 20:06:02 CDT 2017


https://bugs.winehq.org/show_bug.cgi?id=42940

Ken Thomases <ken at codeweavers.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ken at codeweavers.com

--- Comment #3 from Ken Thomases <ken at codeweavers.com> ---
OK.  I see what's happening here.

There are two kinds of windows, those which are drawn "normally" via GDI and
those which are drawn via OpenGL, D3D, or D2D.  (In Wine, D3D and D2D are built
on top of OpenGL.)

In general with the Mac driver, "behind" mode will be needed for correct
behavior whenever an app tries to display a normal window on top of an OpenGL
window.  Otherwise, Cocoa puts the OpenGL surface in front of all of the normal
windows and it obscures them.  With behind mode, the OpenGL surface is behind
the normal windows and the normal windows are made transparent in the places
where it needs to show through.  So, you get the proper appearance.

The issue here has to do with knowing whether transparent holes need to be made
in the normal windows.  The current Mac driver code creates the transparent
holes if any child window has an OpenGL context attached to it.  The problem is
that WAtomic attaches the context only temporarily to update the graphics but
then detaches it.  That leaves the Mac driver thinking there's no need to make
transparent holes.

I will have to change the Mac driver logic so it keeps track of whether a
window has _ever_ had an OpenGL context attached to it, not whether it
currently does.

-- 
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