wglMakeCurrent с параметром hdc NULL
Согласно зарегистрированным здесь ( сайт хронос):
Если версия контекста OpenGL
равна 3.0 или выше, и если либо параметр wglMakeCurrent равен NULL, либо оба параметра и wglMakeContextCurrentARB имеют значение NULL, то контекст становится текущим, но без определения кадрового буфера по умолчанию. Влияние отсутствия кадрового буфера по умолчанию на GL определено в Главе 4 Спецификации OpenGL 3.0.
Доверяя этой информации, я создал контекст устройства "вне экрана" с помощью:
HDC m_hDC = CreateCompatibleDC(NULL);
Я настроил пиксели и добавил к DC с SetPixelFormat
функция:
SetPixelFormat(m_hDC, iPixelFormat, &chosenPFD);
Затем я создал контекст рендеринга:
m_hGLRC = ::wglCreateContextAttribsARB(m_hDC, NULL, &(iAttributes[0]));
Пока все хорошо, это работает. Теперь пришло время сделать контекст актуальным.
Сначала я удаляю DC (он мне больше не нужен) и вызываю wglMakeCurrent
с NULL
dc
параметр:
DeleteDC(m_hDC);
bool ret = wglMakeCurrent(NULL, m_hGLRC);
Это не сработало. ret
является false
и я получаю эту ошибку:
Ошибка Win32 # (6): ERROR_INVALID_HANDLE