Не совсем так. В opengl32.dll, который поставляется с Visual C++ включены только функции версии 1.2. Все остальные функции можно например получить через glee или glew. В самой системе windows есть два типа драйверов ogl: MCD - Mini Client Driver (урезанная версия аппаратной поддержки OpenGL - аппаратно поддерживает только некоторые функции OpenGL, остальное поддерживается программной реализацией; ICD - Installable Client Driver - полная поддержка OpenGL API реализации версии... которая зависит от производителя.
Код:
DescribePixelFormat(hDC_ogl_win, pixelFormat,sizeof pfd_ptr, &pfd_ptr);
#ifdef YES_DEBUG
{
int pal, mcd, acc, icd, opengl, window, bitmap, dbuff;
pal = (pfd_ptr.iPixelType == PFD_TYPE_COLORINDEX);
// MCD - Mini Client Driver (урезанная версия аппаратной поддержки OpenGL - аппаратно поддерживает
// только некоторые функции OpenGL, остальное поддерживается программной реализацией.
// ICD - Installable Client Driver - полная поддержка OpenGL API реализации 1.2
// PFD_GENERIC_ACCELERATED PFD_GENERIC_FORMAT Смысл
// 0 0 полноценный ICD-драйвер с функциями ускорения
// 0 1 <недопустимая комбинация>
// 1 0 режим программной эмуляции; всю работу выполняет центральный процессор
// 1 1 MCD-драйвер; аппаратно реализуется только часть функций ускорения
mcd = ((pfd_ptr.dwFlags & PFD_GENERIC_FORMAT) && (pfd_ptr.dwFlags & PFD_GENERIC_ACCELERATED));
acc = !(((pfd_ptr.dwFlags & PFD_GENERIC_FORMAT) &&!(pfd_ptr.dwFlags & PFD_GENERIC_ACCELERATED)));
icd = (!(pfd_ptr.dwFlags & PFD_GENERIC_FORMAT) &&!(pfd_ptr.dwFlags & PFD_GENERIC_ACCELERATED));
opengl = (pfd_ptr.dwFlags & PFD_SUPPORT_OPENGL) ? true :false;
window = (pfd_ptr.dwFlags & PFD_DRAW_TO_WINDOW) ? true :false;
bitmap = (pfd_ptr.dwFlags & PFD_DRAW_TO_BITMAP) ? true :false;
dbuff =!!(pfd_ptr.dwFlags & PFD_DOUBLEBUFFER);
log_debug(
"/OGL_WIN3D/PixelFormat: pixelFormat=%d, bpp=%d, depth=%d, stencil=%d, alpha=%d, accum=%d, pal=%d, mcd=%d, acc=%d, icd=%d, opengl=%d, window=%d, bitmap=%d dbuff=%d PFD_GENERIC_FORMAT=%d PFD_GENERIC_ACCELERATED=%d",
pixelFormat, pfd_ptr.cColorBits, pfd_ptr.cDepthBits, pfd_ptr.cStencilBits, pfd_ptr.cAlphaBits, pfd_ptr.cAccumBits, pal, mcd, acc, icd, opengl, window, bitmap, dbuff,
pfd_ptr.dwFlags & PFD_GENERIC_FORMAT, pfd_ptr.dwFlags & PFD_GENERIC_ACCELERATED);
}
#endif
if ( GLeeInit()==GL_FALSE ) {
log_message("%s: %s","GLeeInit Error","");
return return_error(IS_ERROR,"%s",(char*)GLeeGetErrorString());
}
GLeeFunc();