1
简短的问题,是否有可能在我的窗口最小化时加载DirectX9?DirectX9 C++ - 加载纹理,同时窗口最小化
当我尝试这样做时,我的D3DXCreateTextureFromFile总是返回D3DERR_NOTAVAILABLE。否则,一切都很好。
简短的问题,是否有可能在我的窗口最小化时加载DirectX9?DirectX9 C++ - 加载纹理,同时窗口最小化
当我尝试这样做时,我的D3DXCreateTextureFromFile总是返回D3DERR_NOTAVAILABLE。否则,一切都很好。
在DirectX 9规则下,这是不可能的。当设备失去焦点时,一切都是陈旧的。当你重新获得焦点时,你必须摧毁一切,然后才能重置它,然后再重新创建一切。让应用程序创建新的资源在使用之前必须销毁将毫无意义。
有趣的是,我为我的线条,精灵和字体调用LostDevice和ResetDevice,但不是纹理。设备重置后,它们工作得很好。 – user3213103
如果你看这里https://msdn.microsoft.com/en-us/library/windows/desktop/bb174714(v=vs.85).aspx它是白色的状态黑色,在默认池中创建的所有内容都必须在重置之前被销毁。是否有可能使用DX9Ex设备,而不是靠近DX11来丢失焦点。 DX9是相当古老的,并且它们可能在最近的操作系统中具有较低的限制,因为即使对于DX9,司机也很简单。 – galop1n