Try to find out why "Unity3d (3D application)" doesn't work with Wine.

Roderick Colenbrander thunderbird2k at gmail.com
Tue Oct 6 11:10:07 CDT 2009


Esstentially what happens is that using the SendMessage in
internal_SetPixelFormat we call 'set_win_format' in window.c. I can't
say why it fails perhaps no parent window is up yet..

Roderick


On Tue, Oct 6, 2009 at 6:02 PM, a qi <free4machine at gmail.com> wrote:
>
> Hi,All
>
> I try to run  a 3D application named  "Unity 3d"  with Wine, but failed.
>
> And there is already  a bug report about that:
>
> Bug 18061 -  Unity Indie Trial Editor window contents not drawn
> http://bugs.winehq.org/show_bug.cgi?id=18061
>
>
> Now I try to find out  the reason.
>
> So, I follow the error messages:
>
> ...
> err:wgl:internal_SetPixelFormat Couldn't set format of the window, returning
> failure
> err:d3d:CreateContext SetPixelFormat failed on HDC=0x1534 for iPixelFormat=3
> err:d3d:IWineD3DDeviceImpl_CreateSwapChain Failed to create a new context
> ...
>
>
> do
>
> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> vim dlls/winex11.drv/opengl.c
>
>
> /* This function is the core of X11DRV_SetPixelFormat and
> X11DRV_SetPixelFormatWINE.
>  * Both functions are the same except that X11DRV_SetPixelFormatWINE allows
> you to
>  * set the pixel format multiple times. */
> static BOOL internal_SetPixelFormat(X11DRV_PDEVICE *physDev,
>                            int iPixelFormat,
>                            const PIXELFORMATDESCRIPTOR *ppfd) {
>     WineGLPixelFormat *fmt;
>     int value;
>     HWND hwnd;
>
> ....
>
>         if(!SendMessageW(hwnd, WM_X11DRV_SET_WIN_FORMAT,
> (WPARAM)fmt->fmt_id, 0)) {
>             ERR("Couldn't set format of the window, returning failure\n");
>             return FALSE;
>         }
>     }
> .......
>
> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> But i can not find the definition of function "SendMessageW",
>
>
> in   wine-1.1.30/dlls ,  i run   "    grep -ir --color  SendMessageW  .
> |grep  spec      ",   just found something like this:
>
> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
> ./user32/user32.spec:@ stdcall SendMessageW(long long long long)
> ./unicows/unicows.spec:@ stdcall SendMessageW(long long long long)
> ./wtsapi32/wtsapi32.spec:@ stub WTSSendMessageW
> ./shlwapi/shlwapi.spec:136 stdcall -noname SendMessageWrapW(long long long
> long) user32.SendMessageW
>
> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> And I am not familiar with C  programming.
>
> Any ideas?  Thanks.
>
>
>
>
>
>
>
>



More information about the wine-devel mailing list