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 <free4mach...@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. > > > > > > > >