首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GLUT:在循环中渲染多个窗口

GLUT:在循环中渲染多个窗口
EN

Stack Overflow用户
提问于 2014-08-09 03:37:23
回答 1查看 47关注 0票数 0

我试图在我的main函数中循环渲染多个GLUT窗口。在进入循环之前,我使用以下代码来定义窗口属性。

代码语言:javascript
复制
glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
glutInitWindowPosition(100,100);
glutInitWindowSize(640,480);
int windows1 = glutCreateWindow("GlutWindow 1");
int windows2 = glutCreateWindow("GlutWindow 2");

但后来我在我的循环中发现,当我调用

代码语言:javascript
复制
glutDisplayFunc (display1);
glutReshapeFunc (reshape1);

glutDisplayFunc(display2);
glutReshapeFunc(reshape2);

它只会在windoew2函数上以display2格式呈现形状。

我还尝试通过将下面的所有代码放入循环中来呈现循环中的两个图像

代码语言:javascript
复制
int windows1 = glutCreateWindow("GlutWindow 1");
glutDisplayFunc (display1);
glutReshapeFunc (reshape1);

int windows2 = glutCreateWindow("GlutWindow 2");
glutDisplayFunc(display2);
glutReshapeFunc(reshape2);

它确实渲染了两个窗口的内容,但它会一次又一次地创建windows1和2。

那么在这种情况下,如何让GLUT同时渲染两个窗口呢?有没有什么函数可以让glutDisplayFunc (display1)“聪明地”知道它应该在windows1中呈现?

EN

回答 1

Stack Overflow用户

发布于 2014-08-09 04:02:39

glutDisplayFunc和朋友为当前窗口设置回调。您可以使用glutSetWindow()更改当前窗口

glutSetWindow设置当前窗口;glutGetWindow返回当前窗口的标识符。如果不存在任何窗口或先前的当前窗口已被销毁,则glutGetWindow返回零。通过使用glutUseLayer,glutSetWindow不会更改窗口所使用的图层。

所以:

代码语言:javascript
复制
glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
glutInitWindowPosition(100,100);
glutInitWindowSize(640,480);
int windows1 = glutCreateWindow("GlutWindow 1");
int windows2 = glutCreateWindow("GlutWindow 2");

...

glutSetWindow(windows1);
glutDisplayFunc (display1);
glutReshapeFunc (reshape1);

glutSetWindow(windows2);
glutDisplayFunc(display2);
glutReshapeFunc(reshape2);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25211044

复制
相关文章

相似问题

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