Roo*_*kie 16 c++ windows opengl off-screen
我想弄清楚为屏幕外渲染创建无窗口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);
}
Run Code Online (Sandbox Code Playgroud)
这样安全吗?创建无窗口OpenGL程序的"标准"方法是什么?
编辑:我正在使用FBO进行屏幕外渲染.
dat*_*olf 10
纯粹无窗口OpenGL的旧方法是使用PBuffer.在Windows上,这需要使用常规窗口创建中间OpenGL上下文以获取所需的扩展函数指针.在X11/GLX上它没有进一步的工作.
实现离屏渲染的现代方法是使用常规但隐藏的窗口,其中包含通常的OpenGL上下文和FBO作为渲染目标.
最前沿,但尚未得到很好支持的方法(某些嵌入式设备除外)正在使用EGL进行可绘制创建.