http://bugs.winehq.org/show_bug.cgi?id=2467
--- Comment #153 from Joel Pichette pichette.joel@gmail.com 2013-10-13 20:08:18 CDT --- (In reply to comment #152)
Sorry I don't know wine's API, but could somebody explain why doesn't wine draw everything on a surface (acting as a virtual screen) and then there would be no problems with X?
The cause of this bug is:
Starcraft uses the Direct-Draw api of Direct-X 3. It allows the painting of a bitmap directly on the active screen. Then the program paints buttons on the transparent surface0 which under the old windows xp/2000/nt4/ME/98/95 was the active surface.
Wine doesn't handle the painting of bitmaps on the active screen without a surface... it creates surface0 on which it paints the bitmaps... then hides them as soon as the buttons surface is created, edited, updated or refreshed... Wine doesn't handle the transparency of surface1 and paints it black.
DISCUSSION / BRAINSTORMING : Maybe a fix would be to handle the direct-draw active screen as a surface instead of a screen... A Question... Surface1 would be Surface0 under windows?
You see the bitmap then you paint the buttons on a transparent surface. Wine doesn't have a surface behind the surface0 on which the buttons and battle.net frame are so it creates one, but doesn't know how to handle it when starcraft tells wine to handle frames and buttons on surface0/1...