The Programming world of Alex

Ogre多窗口显示在MFC下实现

项目中需要小地图效果自然想到了Ogre教程中的画中画显示,但是小地图把主窗口遮盖的比较严重。索性就再开个窗口单独作为小地图的显示吧
主要的思路就是在高度200处架设一个位置不变的Camera,用这个Camera显示出的效果作为小地图的输出
有图有真相,看图再继续


在说明实现方法之前,需要理清楚Ogre中的一些关系:Root,RenderWindow,SceneManager,Camera,ViewPort
第一,Root在程序中是唯一的,是万物之源
第二,RenderWindow和Root是一对多的关系,而RenderWindow和MFC中的View(或者是Win32中的窗口)是一对一的关系,这也是Ogre能多窗口显示的基础
第三,SceneManager和Root是一对多关系,但本例中关系不大,我只用了一个SM
第四,RenderWindow和ViewPort是一对多关系,但一个RenderWindow必须有一个主ViewPort。
第五,Viewport和Camera是一对一关系,
第六,SceneManager和Camera是一对多关系,但通常一个程序中只显示一个Camera的内容,除非你在一个RenderWindow中设置了多个ViewPort,每个ViewPort对应不同的Camera(教程中的画中画就是这么来的)
画个图把关系理清楚些吧
 
这个例子中我的设计思路是这样的:
创建两个RenderWindow,分别对应主窗口和小地图窗口,他们对应不同的ViewPort,而不同的ViewPort对应不同的Camera(主窗口就是原来的Camera,小地图窗口用的是新创建高度200的Camera)。
步骤大致如下:
1。用之前生成Curve窗口一样的方法创建一个可用的View类窗口
2。用与生成主窗口相同的方法来显示Ogre中的内容(SetupOgre。。。若干等等)
关键的是产生RenderWindow(用MinimapView窗口的句柄),SM采用getSceneManager获得主窗口的SM,再对Camera,ViewPort一一设置就行,总之就是对MFCView类照葫芦画瓢。

大功告成!

最后温习下Invalidate的知识:
Invalidate(TRUE);//擦除背景
Invalidate(FALSE);//不擦除背景
程序View类里的OnEraseBkgnd直接返回TRUE,并且定时器中用Invalidate(TRUE);就能避免窗口闪烁啦

posted on 2009-03-02 18:19 Alex@VCC 阅读(5793) 评论(8)  编辑 收藏 引用 所属分类: Ogre

评论

# re: Ogre多窗口显示在MFC下实现 2009-03-02 19:57 LOGOS

做得不错
最后给的经验也很好
  回复  更多评论   

# re: Ogre多窗口显示在MFC下实现 2009-03-03 11:53 Chuck

Nice Work  回复  更多评论   

# re: Ogre多窗口显示在MFC下实现 2009-03-03 19:58 Alex@VCC

@Chuck

Thanks ^-^  回复  更多评论   

# re: Ogre多窗口显示在MFC下实现 2010-01-23 19:38

大哥,您把代码贴下行不。谢谢啦,
老做不出来。呵呵  回复  更多评论   

# re: Ogre多窗口显示在MFC下实现 2010-03-02 01:54 hxl35

博主,您这个工程源码能发我一份我么?谢谢您了。
hxl35@qq.com  回复  更多评论   

# re: Ogre多窗口显示在MFC下实现 2011-03-07 10:16 大鹏

不错,能分享一下吗?cpz2004@sina.com  回复  更多评论   

# re: Ogre多窗口显示在MFC下实现 2012-04-05 22:01 wangyuli213

代码能不能发给我一份 谢谢 急用
wylxl1988213@126.com  回复  更多评论   

# re: Ogre多窗口显示在MFC下实现 2014-07-07 11:02 udoge

大哥,您能把源代码给我发一份作参考吗?老是做不出来,眼看汇报时间就快到了。谢谢!381367383@qq.com  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理


<2010年6月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

导航

统计

常用链接

留言簿(5)

随笔分类

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜