DirectX有一个有趣的行为,它在Windows实现(DirectX 11)和Linux下的Wine实现之间有所不同。
为了确定它是否是Wine实现或程序中的错误,我想知道记录的行为究竟在哪里,因为我找不到任何其他内容“它适用于Windows”。
以下是描述:使用DirectX在窗口上绘图时,似乎此窗口的任何可见子窗口都没有被绘制。例如,以下是DirectX SDK样本中的MeshViewer:
http://imageshack.us/photo/my-images/264/unbenannt2nf3.jpg/
(主窗口的句柄在hDeviceWindow
中的当前参数中作为CreateDevice
传递。)工具栏和状态栏在Windows中可见,但在Wine下,它们被DirectX表面遮挡:
我还在另一个带有工具栏的应用程序中观察到了这种行为,该工具栏创建了一个与窗口客户区大小相同的DirectX表面,并依赖于DirectX来确定要绘制的区域。有趣的是,每个框架上的工具栏似乎不在DirectX表面上绘制(我在工具栏的Paint处理程序中设置了一个断点),所以我的猜测是DirectX以某种方式计算出位置儿童窗户,并不首先在它们上面涂漆。
这是否正确?如果是,那么它在哪里记录?