OpenGl: оптимизация
От: HeaveN Россия  
Дата: 06.12.03 00:29
Оценка: 42 (2)
#Имя: FAQ.mmedia.opengl.optimization
Здравствуйте, 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>>
Нет такого закона, что человеку летать нельзя...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.