https://bugs.winehq.org/show_bug.cgi?id=42940
Bug ID: 42940 Summary: WAtomic: White labels that show name of elements hidden by GL components Product: Wine Version: 2.7 Hardware: x86-64 URL: http://watomic.sourceforge.net OS: Mac OS X Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: tobbi.bugs@googlemail.com
Now that bug 39314 is fixed with recent wine, I can start and run the game perfectly on OS X.
However, the labels that show the name of the element are shown behind the actual OpenGL components. When you resize the window, you can see them briefly. However as long as you stop resizing you can see the GL components being redrawn and the text disappear.
$ openssl sha1 WAtomic_1_2_3_257.msi SHA1(WAtomic_1_2_3_257.msi)= 62e531f3bbfed7a9893ef49c20ff1826dffee09f
I am not sure whether this is only occurs on OSX or other systems as well.
https://bugs.winehq.org/show_bug.cgi?id=42940
--- Comment #1 from Ken Thomases ken@codeweavers.com --- OK, so this time, does setting the following make any difference?
[HKEY_CURRENT_USER\Software\Wine\Mac Driver] "OpenGLSurfaceMode"="behind"
https://bugs.winehq.org/show_bug.cgi?id=42940
--- Comment #2 from Tobias (:Tobbi) Markus tobbi.bugs@googlemail.com --- (In reply to Ken Thomases from comment #1)
OK, so this time, does setting the following make any difference?
[HKEY_CURRENT_USER\Software\Wine\Mac Driver] "OpenGLSurfaceMode"="behind"
With that set, I see the labels but now the GL components are grey. I can only see the contents briefly when I force a redraw by changing the slider value.
This is how it looks like: https://screencast.com/t/AKbsqtE8
https://bugs.winehq.org/show_bug.cgi?id=42940
Ken Thomases ken@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |ken@codeweavers.com
--- Comment #3 from Ken Thomases ken@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.
https://bugs.winehq.org/show_bug.cgi?id=42940
Ken Thomases ken@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |patch Ever confirmed|0 |1 Status|UNCONFIRMED |NEW
--- Comment #4 from Ken Thomases ken@codeweavers.com --- I have submitted a patch that should fix this. You'll still need to use OpenGLSurfaceMode=behind. https://source.winehq.org/patches/data/133655
https://bugs.winehq.org/show_bug.cgi?id=42940
Tobias (:Tobbi) Markus tobbi.bugs@googlemail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Status|NEW |RESOLVED
--- Comment #5 from Tobias (:Tobbi) Markus tobbi.bugs@googlemail.com --- (In reply to Ken Thomases from comment #4)
I have submitted a patch that should fix this. You'll still need to use OpenGLSurfaceMode=behind. https://source.winehq.org/patches/data/133655
The patch is working fine in wine 2.8.
One more question: Would it be possible to automatically set the OpenGLSurface mode setting on an application-level depending on whether UI components need to draw in front of the GL surface?
https://bugs.winehq.org/show_bug.cgi?id=42940
Gijs Vermeulen acescopezz@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |acescopezz@gmail.com
--- Comment #6 from Gijs Vermeulen acescopezz@gmail.com --- (In reply to Tobias (:Tobbi) Markus from comment #5)
-snip-
Could you add b6a4b2f593503a105dde01e7bd11ffdde243117a to the "Fixed by" field?
https://bugs.winehq.org/show_bug.cgi?id=42940
Tobias (:Tobbi) Markus tobbi.bugs@googlemail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |b6a4b2f593503a105dde01e7bd1 | |1ffdde243117a
--- Comment #7 from Tobias (:Tobbi) Markus tobbi.bugs@googlemail.com --- (In reply to Gijs Vermeulen from comment #6)
(In reply to Tobias (:Tobbi) Markus from comment #5)
-snip-
Could you add b6a4b2f593503a105dde01e7bd11ffdde243117a to the "Fixed by" field?
Done.
https://bugs.winehq.org/show_bug.cgi?id=42940
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #8 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 2.9.
https://bugs.winehq.org/show_bug.cgi?id=42940
Michael Stefaniuc mstefani@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |2.0.x
https://bugs.winehq.org/show_bug.cgi?id=42940
Michael Stefaniuc mstefani@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|2.0.x |---
--- Comment #9 from Michael Stefaniuc mstefani@winehq.org --- Removing the 2.0.x milestone from bugs included in 2.0.3.