【发布时间】:2019-10-03 15:35:26
【问题描述】:
我正在构建一个程序,它使用Direct3D 对象using Direct3D = Microsoft.DirectX.Direct3D 来呈现实时流。我在Windows 7 机器上对其进行了测试,问题是CPU 不支持Hardware Acceleration。为了运行程序,我将创建Direct3D 对象时的标志更改为Direct3D.CreateFlags.SoftwareVertexProcessing,这很好。我想知道是否有任何方法可以检查 CPU 是否支持Hardware Acceleration。如果是,请使用Direct3D.CreateFlags.HardwareVertexProcessing,如果不是,请使用software。我的程序将运行不同的机器,所以这种方式比构建两个程序要好。该程序是用C# 编写的,但如果您知道如何用其他语言编写,我将不胜感激,我会尝试翻译成C#。
【问题讨论】:
-
请注意,
Microsoft.DirectX.Direct3D是 Managed DirectX 1.1 程序集的一部分。它已弃用,仅在生命周期结束时安装 legacy DirectX SDK 和/或 deprecated DXSETUP。相反,您应该考虑使用SlimDX 或SharpDX 托管程序集。见this blog post。 -
CPU 从不支持硬件加速。支持它的是 GPU。
-
@ChuckWalbourn 这就是我感到困惑的原因。我读过
GetDeviceCaps但Microsoft.DirectX.Direct3D没有它作为属性。我已经将SharpDX安装为NuGet包并且工作正常。谢谢!
标签: c# directx direct3d hardware-acceleration