我试图找出什么是最简单的方法来创build一个无窗口的OpenGL程序的离屏渲染。
目前我使用这个,到目前为止工作正常:(错误检查清除此处为清晰)
BOOL create_opengl_context(){ GLuint PixelFormat; static PIXELFORMATDESCRIPTOR pfd; hDC = GetDC(NULL); PixelFormat = ChoosePixelFormat(hDC, &pfd); SetPixelFormat(hDC, PixelFormat, &pfd); hRC = wglCreateContext(hDC); wglMakeCurrent(hDC, hRC); }
这是安全的使用? 什么是创build无窗口OpenGL程序的“标准”方式?
编辑:我使用FBO的离屏渲染。
纯粹无窗口的OpenGL的旧方法是使用PBuffer。 在Windows上,这需要使用常规窗口创建中间OpenGL上下文来获取所需的扩展函数指针。 在X11 / GLX上,它毫不费力地工作。
实现离屏渲染的现代方法是使用普通的OpenGL上下文和FBO作为渲染目标的常规隐藏窗口。
流血的边缘,但不是很好的支持方法(除了某些嵌入式设备)正在使用EGL绘制创建。