我正在构建一个程序,该程序使用Direct3D
对象using Direct3D = Microsoft.DirectX.Direct3D
渲染实时流。我在Windows 7
机器上进行了测试,问题是CPU不支持Hardware Acceleration
。为了运行程序,我在创建Direct3D
对象时将标志更改为Direct3D.CreateFlags.SoftwareVertexProcessing
,这很好。我想知道是否有任何方法可以检查CPU是否支持Hardware Acceleration
。如果是这样,请使用Direct3D.CreateFlags.HardwareVertexProcessing
,否则请使用software
。我的程序将运行在不同的计算机上,因此,与构建两个程序相比,这种方法会更好。该程序是用C#
编写的,但是如果您知道如何用其他语言编写,我将不胜感激,并且我将尝试用C#
进行翻译。
答案 0 :(得分:2)
我不知道C#中是否有更直接的路线,但是在[C ++] [1]中,您可以使用以下方法进行检查:
HRESULT GetDeviceCaps(
UINT Adapter,
D3DDEVTYPE DeviceType,
D3DCAPS9 *pCaps
);
[1] https://docs.microsoft.com/en-us/windows/win32/direct3d9/selecting-a-device