DirectX托管池

时间:2011-12-16 21:44:46

标签: c++ fonts directx directx-9

我正在为现有的C ++ DirectX9应用程序编写一个插件。一切正常,直到他们决定出于性能原因切换到IDirect3DDevice9Ex。

现在我明白了 使用“D3DXCreateFontA”呈现文本时,“D3DPOOL_MANAGED对IDirect3DDevice9Ex无效”错误。

问题:使用IDirect3DDevice9Ex时是否有一些解决方法来绘制文本,或者是一些允许我在不使用托管纹理的情况下绘制文本的好库?

2 个答案:

答案 0 :(得分:4)

由于我不知道一个好的答案,也许这是同一个问题,有更多更好的答案:

IDirect3DDevice9Ex and D3DPOOL_MANAGED?

祝你好运!

答案 1 :(得分:-1)

管理池会在系统内存中保留资源的副本。这允许进程将图形设备释放到其他程序,然后能够使用系统内存中的副本重新创建任何丢失的资产。

要解决此问题,请尝试使用集中式资源缓存,该资源缓存会将所有资源转储到丢失的设备上,然后在设备恢复时重新创建它们。