是否有直接3D等效的glxinfo?

时间:2011-11-03 16:16:51

标签: direct3d

我需要确保我的机器在尝试打开它之前可以创建一个D3D窗口。我怎么能这样做?

4 个答案:

答案 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;
}