http://bugs.winehq.org/show_bug.cgi?id=3568
Summary: Direct3D not working in child windows Product: Wine Version: CVS Platform: PC URL: http://dev.icarusindie.com:2004/index.php?sortby=title&d ir=files%2Fsdks%2Fdirectx+9+summer+update%2FSamples%2FC% 2B%2B%2FDirect3D%2FBin%2F OS/Version: All Status: UNCONFIRMED Severity: major Priority: P2 Component: wine-directx-d3d AssignedTo: wine-bugs@winehq.org ReportedBy: mark.hatsell@btinternet.com
When trying to create a 3D device using CreateDevice, it fails with the following output from Wine debugging. This only occurs if the hDeviceWindow passed in the present parameters is a child window (has WS_CHILDWINDOW set). It occurs for both MDI and non-MDI child windows. The mfctex.exe sample (see link) in the DirectX 9 SDK demonstrates this problem.
fixme:d3d:IWineD3DImpl_GetDeviceCaps Caps support for directx9 is nonexistent at the moment! fixme:d3d:IWineD3DImpl_CheckDeviceMultiSampleType Quality levels unsupported at present trace:d3d:IWineD3DImpl_CreateDevice Created WineD3DDevice object @ 0x79b7ec78 trace:d3d:IWineD3DImpl_AddRef (0x7bcb1890) : AddRef increasing from 1 trace:d3d:IWineD3DImpl_CreateDevice (0x7bcb1890)->(Adptr:0, DevType: 1, FocusHwnd: 0x50060, BehFlags: 42, PresParms: 0x7baeb0ec, RetDevInt: 0x78d56ea8) trace:d3d:IWineD3DImpl_CreateDevice (0x7bcb1890)->(DepthStencil:(80,WINED3DFMT_D16), BackBufferFormat:(23,WINED3DFMT_R5G6B5)) trace:d3d:IWineD3DImpl_CreateDevice (0x7bcb1890) : Creating stateblock trace:d3d:IWineD3DImpl_CreateDevice (0x7bcb1890) : Created stateblock (0x79bbf6a0) trace:d3d:IWineD3DStateBlockImpl_AddRef (0x79bbf6a0) : AddRef increasing from 1 trace:d3d:IWineD3DImpl_CreateDevice Creating implicit swapchain trace:d3d:IWineD3DDeviceImpl_CreateAdditionalSwapChain (0x79b7ec78) : Created Aditional Swap Chain trace:d3d:IWineD3DDeviceImpl_CreateAdditionalSwapChain Using a display of 0x7c017628 0x4284 warn:d3d:IWineD3DDeviceImpl_CreateAdditionalSwapChain Failed to get a valid XVisuial ID for the window 0x50060
The error occurs in device.c and seems to be something to do with it not obtaining a valid X11 window. I believe that this may be caused due to changes in the management of non top-level windows.