我需要确保我的机器在尝试打开它之前可以创建一个D3D窗口。我怎么能这样做?
答案 0 :(得分:2)
您可能想看看DeviceCaps。它应该能够告诉您设备的功能,这样您就不会尝试创建它不支持的窗口。
答案 1 :(得分:2)
实际上 glxinfo 确实创建了一个OpenGL窗口并创建了一个OpenGL上下文,但从未将它映射到屏幕上。必须创建一个OpenGL上下文来获取所有信息,比如 glxinfo 。
答案 2 :(得分:2)
我发现directX的等效值为glxinfo
- 它名为dxdiag,由Microsoft提供。这允许您输出一个带有D3dStatus
字段的xml文件(在我的例子中说“不可用”)。
答案 3 :(得分:0)
如果您使用Direct3D11,则可以使用此代码
// Determines feature level without creating a device.
D3D_FEATURE_LEVEL determineHighestSupportedFeatureLevel()
{
HRESULT hr = E_FAIL;
D3D_FEATURE_LEVEL FeatureLevel;
hr = D3D11CreateDevice(
nullptr,
D3D_DRIVER_TYPE_HARDWARE,
nullptr,
0,
nullptr,
0,
D3D11_SDK_VERSION,
nullptr,
&FeatureLevel,
nullptr );
if(FAILED(hr))
{
throw std::runtime_exception("Determine the highest supported Direct3D11 feature level failed.");
}
return FeatureLevel;
}