首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >隐藏GLUT窗口

隐藏GLUT窗口
EN

Stack Overflow用户
提问于 2013-05-07 01:19:28
回答 2查看 3.5K关注 0票数 2

是否可以隐藏OpenGL窗口,并且渲染仍在运行?我用的是glutHideWindow,它永远不会触发显示功能。

如果这是不可能的,是否可以在程序中改变当前窗口的焦点?我想运行opengl程序,但我不需要那个窗口。实际上,我想使用opengl在另一个程序中的每一帧更新的帧缓冲区。但是在两个程序之间切换总是很烦人的。(它们都有窗口)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-07 01:50:58

是否可以隐藏OpenGL窗口并且渲染仍在运行?

对问题的两个部分都是或不是。

如果隐藏窗口,则渲染时窗口视口的所有像素都将无法通过像素所有权测试。因此,您不能将隐藏窗口用作OpenGL操作的可绘制窗口。

你需要的是一个屏幕外的绘图工具。

最新的变体是Framebuffer对象(FBO),它可以在常规的OpenGL上下文中创建,甚至可以在隐藏窗口上工作。FBO接受一些可绘制的附件(渲染缓冲区、纹理),并允许OpenGL绘制到这些附件,而不是绘制到窗口。

一种较旧的方法是PBuffers,也得到广泛支持,但不像FBO那样易于使用。

请注意,如果要在Linux/X11上执行屏幕外渲染,则X服务器必须处于活动状态,即拥有VT,以便GPU实际处理命令。因此,您不能“在后台”启动一台X服务器,而是让另一台X服务器使用显示设备。

票数 5
EN

Stack Overflow用户

发布于 2017-08-18 09:35:07

创建窗口后,您可以使用glutHideWindow()将其移出屏幕。然后,您仍然呈现为nomal,并使用glReadPixels读回并获取buffer以便稍后使用它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16403815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档