Здравствуйте, 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>> |