Есть ли прямой трехмерный эквивалент glxinfo? - PullRequest
1 голос
/ 03 ноября 2011

Мне нужно убедиться, что мой компьютер может создать окно D3D, прежде чем даже пытаться его открыть.Как я могу это сделать?

Ответы [ 4 ]

2 голосов
/ 03 ноября 2011

На самом деле glxinfo создает окно OpenGL и создает контекст OpenGL, но никогда не отображает его на экране. Нужно создать контекст OpenGL, чтобы получить всю информацию, как glxinfo .

2 голосов
/ 07 ноября 2011

Я нашел эквивалент glxinfo для DirectX - он называется dxdiag и предоставляется Microsoft. Это позволяет вам выводить xml-файл с полем D3dStatus (в моем случае «недоступно»).

2 голосов
/ 03 ноября 2011

Возможно, вы захотите взглянуть на DeviceCaps .Оно должно быть в состоянии рассказать вам о возможностях устройства, чтобы вы не пытались создать окно, которое оно не поддерживает.

0 голосов
/ 26 февраля 2013

Если вы используете 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;
}
...