每日一练(六)多窗口显示
2014-01-19 22:54
337 查看
1. 创建两个视图
bool WindowImpl::Init(){m_offx = 40;m_offy = 40;// window one{osg::ref_ptr<osg::GraphicsContext::Traits> traits = new osg::GraphicsContext::Traits();traits->x = m_offx + 0;traits->y = m_offy + 0;traits->width = 680;traits->height = 400;traits->doubleBuffer = true;traits->sharedContext = 0;traits->windowDecoration = true;osg::ref_ptr<osg::GraphicsContext> gc = osg::GraphicsContext::createGraphicsContext(traits.get());osg::ref_ptr<osg::Camera> camera = new osg::Camera();camera->setGraphicsContext(gc.get());camera->setViewport(new osg::Viewport(0,0,traits->width,traits->height));GLenum dBuffer = traits->doubleBuffer? GL_BACK:GL_FRONT;camera->setDrawBuffer(dBuffer);camera->setReadBuffer(dBuffer);// add this slave camera to the viewer, with a shift left of the projection matrixm_Viewer.addSlave(camera.get(),osg::Matrixd::translate(1.0,0.0,0.0),osg::Matrixd());}// window two{osg::ref_ptr<osg::GraphicsContext::Traits> trait = new osg::GraphicsContext::Traits();trait->x = m_offx + 600;trait->y = m_offy + 0;trait->width = 600;trait->height = 480;trait->doubleBuffer = true;trait->sharedContext = 0;trait->windowDecoration = true;osg::ref_ptr<osg::GraphicsContext> gc = osg::GraphicsContext::createGraphicsContext(trait.get());osg::ref_ptr<osg::Camera> camera = new osg::Camera();camera->setGraphicsContext(gc.get());camera->setViewport(0,0,trait->width,trait->height);GLenum dBuffer = trait->doubleBuffer? GL_BACK: GL_FRONT;camera->setReadBuffer(dBuffer);camera->setDrawBuffer(dBuffer);m_Viewer.addSlave(camera.get(),osg::Matrixd::translate(-1,0.0,0.0),osg::Matrixd());}return true;}2. showWindow
bool WindowImpl::ShowWindow(osg::Node* node){m_optimizer.optimize(node);m_Viewer.setSceneData(node);m_Viewer.realize();return m_Viewer.run();}3.结果图:
相关文章推荐
- navigationItem的返回item的title不生效的解决
- ACM POJ 1204 (Word Puzzles)
- sgu 111 Very simple problem 高精开平方
- android 转屏时的数据保存方法
- UIButton---iOS
- UIButton---iOS
- 网站优化策略
- 广州传智播客PHP培训基础就业班都学习哪些课程
- 多DataTable合并为一个DataTable
- Android的Message机制
- linux下程序运行时间的获取方法
- 内容页响应母版页控件的事件(内容页共享母版页的某个控件事件)(用户控件增加一个委托)
- 树莓派-上手体验
- ASI
- Web网站数据”实时”更新设计
- ASI
- 主引导扇区(Master Boot Record:MBR)
- 编写一个程序,它读取一个文件以判断其中的字节数,然后使用0覆盖所有的字节
- 对想进入Unity开发新人的一些建议
- java.io.EOFException