[Wine-d3d] [dx8]: warcraft 3

Raphaël Junqueira fenix at club-internet.fr
Wed Feb 5 02:02:57 CST 2003


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Le Mercredi 5 Février 2003 07:46, Christian Costa a écrit :
> Raphaël Junqueira wrote:
> >-----BEGIN PGP SIGNED MESSAGE-----
> >Hash: SHA1
> >
> >Le Samedi 25 Janvier 2003 15:07, Raphaël Junqueira a écrit :
> >>Hi,
> >>
> >> i'm trying to get warcraft3 displaying something and looking at log i
> >>didn't understand why i can see anything (all rendering traces are ok).
> >>But when i used:
> >>wine --debugmsg +d3d,+opengl,+x11drv
> >>/mnt/win_c2/Jeux/Warcraft3/War3Demo.exe 2> /usr/src/wine/logs/war3.log
> >>
> >>i have found X11DRV interesting traces:
> >><>
> >>trace:x11drv:X11DRV_CreateWindow win 0x10021 window 0,0,0,0 client
> >> 0,0,0,0 whole 0,0,0,0 X client 0,0,0,0 xwin 2600001/2600002
> >>trace:x11drv:X11DRV_ShowWindow hwnd=0x10021, cmd=1
> >>trace:x11drv:X11DRV_SetWindowPos hwnd 0x10021, swp (0,0)-(0,0) flags
> >>00000063 trace:x11drv:X11DRV_SetWindowPos 	current (0,0)-(0,0), style
> >>86080000 warn:x11drv:SWP_DoOwnedPopups (0x10021) hInsertAfter = (nil)
> >>trace:x11drv:SWP_DoNCCalcSize (0,0)-(0,0)
> >>trace:x11drv:X11DRV_sync_whole_window_position setting win 2600001 pos
> >>0,0,0x0 after 400c7db4 changes=40
> >>trace:x11drv:set_visible_style hwnd 0x10021 (2600001) set 1 visible 0
> >> empty 1 trace:x11drv:X11DRV_SetWindowPos hwnd 0x10021, swp (0,0)-(0,0)
> >> flags 00000013 trace:x11drv:X11DRV_SetWindowPos 	current (0,0)-(0,0),
> >> style 96080000 warn:x11drv:SWP_DoOwnedPopups (0x10021) hInsertAfter =
> >> (nil) trace:x11drv:X11DRV_sync_whole_window_position setting win 2600001
> >> pos 0,0,0x0 after 400c7db4 changes=40
> >>trace:x11drv:X11DRV_SetWindowPos 	status flags = 1803
> >>trace:x11drv:X11DRV_SetWindowPos 	status flags = 1863
> >><>
> >>
> >>it seems that the created window have a (0,0) size !!!!
> >
> >i'm alone here ?????
>
> Don't cry... You're not alone! ;-)
:)

> >i don't understand why this stupid game create an empty window
>
> Turning x11drv and win debug channels gives the following log.
>
> trace:win:WIN_CreateWindowEx "Warcraft III" "Warcraft III" ex=00040008
> style=86080000 -2147483648,-2147483648 -2147483648x-2147483648 parent=(nil)
> menu=(nil) inst=0x400000 params=0x44f500c0 trace:win:dump_window_styles
> style: WS_POPUP WS_CLIPSIBLINGS WS_CLIPCHILDREN WS_SYSMENU
> trace:win:dump_window_styles exstyle: WS_EX_TOPMOST WS_EX_APPWINDOW
> trace:win:WIN_CreateWindowEx winproc type is 2 (WIN_PROC_32A)
> trace:win:WIN_SetRectangles win 0x10021 window (0,0)-(0,0) client
> (0,0)-(0,0) trace:x11drv:X11DRV_CreateWindow hwnd 0x10021 cs 0,0 0x0
> trace:x11drv:X11DRV_SetWindowText text_cp = 0
> trace:win:WIN_SetRectangles win 0x10021 window (0,0)-(0,0) client
> (0,0)-(0,0) trace:x11drv:X11DRV_CreateWindow win 0x10021 window 0,0,0,0
> client 0,0,0,0 whole 0,0,0,0 X client 0,0,0,0 xwin 2c00001/2c00002
> trace:win:WIN_SetWindowLong 0x10021 -21 44f500c0 2
> trace:win:WIN_CreateWindowEx created window 0x10021
> trace:x11drv:X11DRV_ShowWindow hwnd=0x10021, cmd=1
> trace:win:SetWindowPos hwnd 0x10021, after (nil), 0,0 (0x0), flags 00000063
> trace:win:dump_winpos_flags flags: SWP_NOSIZE SWP_NOMOVE SWP_FRAMECHANGED
> SWP_SHOWWINDOW trace:x11drv:X11DRV_SetWindowPos hwnd 0x10021, swp
> (0,0)-(0,0) flags 00000063 trace:x11drv:X11DRV_SetWindowPos 	current
> (0,0)-(0,0), style 86080000 warn:x11drv:SWP_DoOwnedPopups (0x10021)
> hInsertAfter = (nil)
>
>
> The log shows that the game does not create a windows with a (0,0) but a
> pop-up where xpos = ypos = width = height = CW_USEDEFAULT (0x8000000 or
> in decimal -2147483648).
> For pop-up and childs windows if witdh = CW_USEDEFAULT, width and height
> are set to 0.

yakk ;(

> For overlapped windows, the width and height are set to make the
> lower-right corner of the windows corresponds to the lower_right corner
> of the screen.
>
> So the question is why does the game create a pop-up instead of a
> standard windows.

this game have a very special dx8 init, i really don't understand how they 
have done their code :(

> That would be cool if we can solve this issue. Forcing the screen size
> make the game demo displays something like menus and so on.
> It's encouraging. :-)

you are right, maybe forcing window size when war3 calls 
IDirect3DDevice8::SetViewport ...

> >helppppppppp
> >
> >>see attached log
> >>
> >>Raphael
>
> Christian

thx
Raphael
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)

iD8DBQE+QMUxp7NA3AmQTU4RArE2AJ90aH+4gSdYISB6yr2JZ2b652NfmwCglTDE
9FMH0s35kdS8KZIdao/27k4=
=CFSW
-----END PGP SIGNATURE-----




More information about the wine-devel mailing list