Здравствуйте, adontz, Вы писали:

A>Вообще я так и не понял как определить есть ли аппаратное ускорение на OpenGL программно. С DX гораздо проще в этом смысле.


int pixelformat;
PIXELFORMATDESCRIPTOR pfd;
bool bHardwareAccelerated;

// здесь записываем в pfd те параметры, которые должен иметь нужный нам pixelformat
// ......

// далее подбирается нужный формат или наиболее похожий
if ((pixelformat = ChoosePixelFormat (hDC, &pfd)) == 0)
{
    // не смогли подобрать формат, выходим
    return false;
}

// устанавливаем выбранный формат
if (SetPixelFormat (hDC, pixelformat, &pfd) == FALSE )
{
    // не смогли установить, выходим
    return false;
}

// получаем описание установленного формата
DescribePixelFormat (hDC, pixelformat, sizeof (pfd), &pfd );

// проверяем состояние флага PFD_GENERIC_ACCELERATED
if (!(pfd.dwFlags & PFD_GENERIC_ACCELERATED))
{
    // аппаратное ускорение используется
    bHardwareAccelerated = true;
}
else
{
    // аппаратное ускорение неиспользуется
    bHardwareAccelerated = false;
}


В общем-то ничего хитрого. Согласен, что в DX немного проще, но я не люблю DX, потому что еще пока не особо дружу с COM
<<RSDN@Home 1.1.2 beta 1 Localization Test>>
Автор: HeaveN    Оценить