Как мога да получа възможностите за мултисемплиране на графична карта със SlimDX в C#?

Искам да дам на потребителя избор за MSAA опции в игра. Искам да мога да проверя кои опции за мултисемплиране може да предостави тяхната машина и да показва само тези. Приложението, в което работя, е изградено в WinForms; това всъщност не е самата игра, а стартер за тази игра.

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


person TheDanman    schedule 30.03.2015    source източник


Отговори (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
     }
}
person mrvux    schedule 09.04.2015