查看: 1774|回复: 2

关于多视图

[复制链接]

该用户从未签到

发表于 2009-9-2 21:48:01 | 显示全部楼层 |阅读模式
本帖最后由 acmiyou 于 2009-9-2 21:50 编辑

有没有人用OSG 在MFC里头实现 类似附件的多视图的显示.

为什么 我使用CompositeViewer::addView却没法显示 而且会闪烁..
  1. void CompositeOSG::addView(HWND hwnd)
  2. {
  3.         osgViewer::View* view = new osgViewer::View;
  4.         viewer->addView(view);

  5.         view->setSceneData(rootNode.get());

  6.     // Add a Stats Handler to the viewer
  7.     view->addEventHandler(new osgViewer::StatsHandler);
  8.    
  9.         RECT rect;
  10.     // Get the current window size
  11.     ::GetWindowRect(hwnd, &rect);

  12.     // Init the GraphicsContext Traits
  13.     osg::ref_ptr<osg::GraphicsContext::Traits> traits = new osg::GraphicsContext::Traits;

  14.     // Init the Windata Variable that holds the handle for the Window to display OSG in.
  15.     osg::ref_ptr<osg::Referenced> windata = new osgViewer::GraphicsWindowWin32::WindowData(hwnd);

  16.     // Setup the traits parameters
  17.     traits->x = 0;
  18.     traits->y = 0;
  19.     traits->width = rect.right - rect.left;
  20.     traits->height = rect.bottom - rect.top;
  21.     traits->windowDecoration = false;
  22.     traits->doubleBuffer = true;
  23.     traits->sharedContext = 0;
  24.     traits->setInheritedWindowPixelFormat = true;
  25.     traits->inheritedWindowData = windata;

  26.         osg::GraphicsContext* gc = osg::GraphicsContext::createGraphicsContext(traits.get());

  27.         view->getCamera()->setGraphicsContext(gc);
  28.         view->getCamera()->setViewport(new osg::Viewport(traits->x, traits->y, traits->width, traits->height));

  29.         view->getCamera()->setDrawBuffer(GL_BACK);
  30.         view->getCamera()->setReadBuffer(GL_BACK);
  31.         view->setCameraManipulator(new osgGA::TrackballManipulator);

  32. }
复制代码
我用MFC 分割了两个子视图..结果只会显示背景.没能显示模型.其中的rootNode 初始化为cow.osg..
并且显示的窗口会闪烁..


附加的图是我用OpenGL 画的..>_<
Multi.jpg

该用户从未签到

发表于 2009-9-2 22:24:57 | 显示全部楼层
试一试addSlave(),MFC窗口似乎在重绘上存在一些问题

该用户从未签到

发表于 2009-9-2 23:48:04 | 显示全部楼层
参考osgcompositeviewer~~~~~~~~~~~~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表