根据此处注册的(khronos site):
如果< hglrc>的OpenGL上下文版本是3.0或以上,如果 要么< hdc> wglMakeCurrent的参数是NULL,或两者都是 < hDrawDC>和< hReadDC> wglMakeContextCurrentARB的参数是 NULL,然后将上下文设为当前,但没有默认值 帧缓冲定义。没有默认帧缓冲的效果 GL在OpenGL 3.0规范的第4章中定义。
相信这些信息,我创建了一个设备上下文" off screen"用:
HDC m_hDC = CreateCompatibleDC(NULL);
我配置了像素并使用SetPixelFormat
功能添加到DC:
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