我正在包装 IDirect3D8 类(基本上是重新实现它)并且我使用 DXGI 来枚举适配器模式。问题来了。
D3DDISPLAYMODE 的 Format 成员要求它是 D3DFORMAT 枚举类型的成员,尽管 IDXGIOutput::GetDisplayModeList 显然返回 DXGI_FORMAT 枚举类型的成员,这与 D3DFORMAT 完全不同。我需要将 DXGI_FORMAT 成员链接到 D3DFORMAT 成员。
我的第一个想法是编写一个函数来检查类型并相应地将其重定向到正确的 D3DFORMAT 成员,但这不是一个很好的主意(它们是 D3DFORMAT 中的 67 个成员)。然后我想出了一个想法,我可以有一个数组,其索引将是 DXGI_FORMAT 成员的值,它们的值将是相应的 D3DFORMAT 成员,但我不确定 - 可能有更好的方法,我会浪费时间。有没有更好或更简单的方法来做到这一点?