月下的博客

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  34 Posts :: 0 Stories :: 59 Comments :: 0 Trackbacks

常用链接

留言簿(5)

我参与的团队

搜索

  •  

最新评论

阅读排行榜

评论排行榜

  终于把咱的编辑器写到一个段落了。撤销还原照着ogitor写好了,不过依然有些部分不完善:我们的GUI库为了方便就直接选了MFC而非Qt。(还有一个原因是不想全部拿ogitor的)用过Qt的也知道,OOP的GUI编写是相当方便的,可是MFC就不同了,MFC的基于事件响应在当今显得太老旧了(我这么以为额),而且c++没有语言级别上的委托,没有qt那种信号机制,所以咱得自己实现。
  今天早上查实现策略的时候找到一个sinbad(Ogre的创始者)写的GUI框架,我看了一眼就觉得比ogitor写的更通用。里面的singal,Funciton都用的是boost库,该用sharedPtr的地方都用了,注释齐全,自觉得这就是GUI结构的极限了~~~p话不多说,我就把这个小项目的特性翻译下吧:
原文地址:http://www.ogre3d.org/forums/viewtopic.php?f=11&t=41153
(代码需要从SVN下载)这个框架目前实现的
1.嵌入了Ogre渲染的多窗口系统
2. 一个典型的3维建模风格的十字分割的四个面板,且能任意最大化其中的一个。
3.摄像机具有FPS模式和轨道(orbit)观察模式。
4.松耦合的事件系统将传递model部分(MVC的Model)的变化给别的子系统。我爱这块
5.单击点选和框选系统。
6.泛型属性系统。我爱它。。。太帅了。。
7.简单的Model实现。

引用sinbad最后的话:nevertheless there's quite a few weeks of effort in this so it's a pretty solid base
  想写编辑器但没有经验的直接拿这个吧,写的太棒了~~注意:sinbad用的GUI库是Wxwidget,自己需要变变的。

  这段时间写编辑器,有种特别强烈的感觉:我觉得基于GUI的程序是有尽头的,GUI程序写到MVC完全了,就基本完美了,而这些思想其实都是前人做好的车轮,你是自己钻研也好,看高人源码也好,最终的终点都在这。(当然我承认自己钻研的确收获更多,毕竟这是思考的优势)我们无法写的再好了。它不像写引擎,写图形,技术日新月异。GUI只需要灵活,松耦合,泛型,这就是它的全部。这里也体会到c++的另一个好处,啥都没有,啥都得自己来,它不会给你c#那样的语言级委托,但它给你了零件,(STL,Boost)你只要看着制造说明书(高人源码)自己试着组装一次即可。
 


posted on 2010-05-16 09:18 月下圆舞曲 阅读(3056) 评论(4)  编辑 收藏 引用

Feedback

# re: 关于GUI,我们为何要重复造轮子?? 2010-05-17 15:34 梦在天涯
可以来点实现的介绍!  回复  更多评论
  

# re: 关于GUI,我们为何要重复造轮子?? 2010-05-17 16:39 月下圆舞曲
@梦在天涯
wxOgreMVC可以直接从OgreAddons repository上下来,所以就没讲具体实现~~不过以后会多写点实现的~  回复  更多评论
  

# re: 关于GUI,我们为何要重复造轮子?? 2010-05-18 12:14 qiaojie
井底之蛙。用C++写GUI就是一杯具,效率非常低下。
可以去看看WPF或者Silverlight,领略一下什么叫现代GUI框架。  回复  更多评论
  

# re: 关于GUI,我们为何要重复造轮子?? 2010-05-18 16:24 月下圆舞曲
@qiaojie
额,被喷了。。。我没有歧视做GUI的意义,只是说个相对的问题而已。
呵呵,我也大概接触过WPF和sliverLight,他们设计的确很棒,不过换句话你用了WPF和sliverlight不就是用别人的轮子了么?而且我这里的意思只限于游戏做场景编辑器所用的简单GUI而已。不过你说的也对,我的确对GUI比较生,有空会去看看的~  回复  更多评论
  


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理