2015-03-30 9 views
0

Я хочу дать пользователю выбор для вариантов MSAA в игре. Я хочу иметь возможность проверить, какие параметры мультисэмплирования могут быть предоставлены их машиной и отображать только те из них. Приложение, в котором я работаю, встроено в WinForms; это не сама игра, а пусковая установка для этой игры.Как получить возможность мультисэмплирования видеокарты с SlimDX в C#?

Я нашел SlimDX.Direct3D11.Device.CheckMultisampleQualityLevels(), но я не уверен, как получить ссылку на устройство Direct3D11 в WinForms. https://msdn.microsoft.com/en-us/library/windows/desktop/ff476499%28v=vs.85%29.aspx

ответ

1

Вам нужно перебирать все возможные корыта отсчетов выборки, и убедитесь, что по крайней мере один уровень качества поддерживается (вы должны сделать это за формат):

SlimDX.Direct3D11.Device device; //your created device 
SlimDX.DXGI.Format format = SlimDX.DXGI.Format.R8G8B8A8_Unorm; //Replace by the format you want to test, this one is very common still 
for (int samplecount = 1; samplecount < SlimDX.Device.MultisampleCountMaximum ; samplecount *= 2) 
{ 
    int levels = device.CheckMultisampleQualityLevels(format, samplecount); 
    if (levels > 0) 
    { 
     //you can use a sampledescription of 
     new SampleDescription(samplecount, /* value between 0 and levels -1 */ 
    } 
    else 
    { 
     // samplecount is not supported for this format 
    } 
}