查看: 11306|回复: 9

osgEdit总算编译完成

[复制链接]

该用户从未签到

发表于 2008-5-15 17:36:39 | 显示全部楼层 |阅读模式
认识osgEdit还是在两年前的事情了,而且也加入了osgEdit的 Email列表,不过后来有段时间,其作者没有对他进行维护和升级,造成与Osg的发展断开,而且当时其作者只是为了学习设计模式和osg而开发的OsgEdit,因此内部很多模块的设计都有待商榷,当时对应的osg版本我记得是0.9,而且还提供了VS2003的工程文件。
后来osgEdit的作者有时间重新设计了它,不过它不再提供VS2003的工程文件,而是改用了Scons来编译工程,新版本的osgEdit对与想学习osg的新手的主要困难我认为主要以下两点:
1 osgEdit新版本使用大量的c++反射机制,造成本来对osg不太熟悉的新手看不懂原代码
2 osgEdit使用scons编译,而本身熟悉scons的人就很少,另外也不会如何安装scons和使用它
3 我认为这一点是最致命的,osgEdit网站的确提供了工程以及一些依赖库的下载连接: http://osgedit.sourceforge.net/download.html
  不过真正下载的时候会发现不少库的下载链接已经不存在了,因为osgEdit的GUI是使用的GTK,而GTK以及相关的依赖库又有很多比如GTKMM GTKGLEXT之类,而对于这些库不熟悉的人又不知道如何去做,更郁闷的是 这些开源的库往往更新又很快,而osgEdit只是针对某些本版的库来完成的,所以可能在编译的时候往往需要对一些库的include 进行修改
   
   现在的osgEdit版本支持osg2.2.0 目前叫rc1,不过下一版rc2马上就要出来 ,而且支持更高的osg版本,所以我建议大家如果感兴趣可以先现在当前版本,不需要编译通过,看看源代码就可以,里面一些工具类都写好了,另外它对与osg里面的几乎所有的从Reference类继承的类进行了封装,而且还有自己的一套场景图数据结构,是个很好地学习osg的教程。
   osgEdit要编译 需要下载osgEdit GTK+合集(包括atk-1.0 cairo freetype2 glib-2.0 gtk-2.0 libart-2.0 libglade-2.0 libpng13 libxml2 pango-1.0 gtkglext-1.0(gtkglext-win32-1.2.0.exe)) GTKMM(gtkmm-win32-devel-2.10.5-1.exe) 还有 osg2.2.0,另外要编译osgEdit,需要下载scons (scons依赖python所以都要下载,我下载的是 scons-0.97.win32.exe 和 python-2.5.1.msi 我试过了版本搭配很重要,否则 就无法编译成功)
下载完这些binary 安装之后,需要设置环境变量,下面是我设置的例子,这里需要说明的一点,因为我现在用的是osg2.4版本,所以我在include和lib用的还是 osg2.4 只不过 dll是下载的osg2.2.0的dll(OSG2.2.0_vc80.exe) ,结果测试发现 没有影响osgEdit的生成:
   GTK_BASEPATH  D:\GTK
   GTKGLEXT_BASEPATH D:\GtkGLExt\1.0
   GTKMM_BASEPATH D:\Program Files\gtkmm
   INCLUDE D:\GTK\INCLUDE;D:\GTK\INCLUDE\GTK-2.0;D:\GTK\INCLUDE\GLIB-2.0;D:\GTK\INCLUDE\PANGO-1.0;D:\GTK\INCLUDE\CAIRO;D:\GTK\INCLUDE\ATK-1.0;D:\GTK\INCLUDE\GTKGLEXT-1.0;D:\GTK\LIB\GTK-2.0\INCLUDE;D:\GTK\LIB\GLIB-2.0\INCLUDE;D:\GTK\LIB\GTKGLEXT-1.0\INCLUDE;D:\GTK\INCLUDE\LIBGLADE-2.0;D:\GTK\INCLUDE\LIBXML2;
   LIB  D:\GTK\LIB;
   OSG_FILE_PATH  D:\Program Files\OsgChina\OpenSceneGraph\data
   OSG_ROOT       D:\Program Files\OsgChina\OpenSceneGraph
   Path           D:\Program Files\OsgChina\OpenSceneGraph\bin;D:\GTK\bin;D:\Python25;D:\Program Files\gtkmm\bin;
   
   这些都整完 ,就从命令行到osgEdit的目录下,输入scons命令,然后回车等着编译就行,一开始会有错误,是因为有些类型没有定义,我进行了如下的修改:
   1 修改GTKMM安装目录下面的 D:\Program Files\gtkmm\include\cairomm-1.0\cairomm\enums.h 文件,在里面 最上头 加上
   #include <cairo-deprecated.h>
   #include <cairo_new.h>
   2 在 D:\GTK\include\cairo 添加 cairo-deprecated.h 头文件,该头文件可以从其他高版本的GTK包里找到
    3 在 D:\GTK\include\cairo 新加一个cairo_new.h文件,里面定义如下:
#pragma once
typedef enum _cairo_surface_type {
    CAIRO_SURFACE_TYPE_IMAGE,
    CAIRO_SURFACE_TYPE_PDF,
    CAIRO_SURFACE_TYPE_PS,
    CAIRO_SURFACE_TYPE_XLIB,
    CAIRO_SURFACE_TYPE_XCB,
    CAIRO_SURFACE_TYPE_GLITZ,
    CAIRO_SURFACE_TYPE_QUARTZ,
    CAIRO_SURFACE_TYPE_WIN32,
    CAIRO_SURFACE_TYPE_BEOS,
    CAIRO_SURFACE_TYPE_DIRECTFB,
    CAIRO_SURFACE_TYPE_SVG,
    CAIRO_SURFACE_TYPE_OS2,
    CAIRO_SURFACE_TYPE_WIN32_PRINTING,
    CAIRO_SURFACE_TYPE_QUARTZ_IMAGE
} cairo_surface_type_t;
typedef enum _cairo_pattern_type {
    CAIRO_PATTERN_TYPE_SOLID,
    CAIRO_PATTERN_TYPE_SURFACE,
    CAIRO_PATTERN_TYPE_LINEAR,
    CAIRO_PATTERN_TYPE_RADIAL
} cairo_pattern_type_t;
typedef enum _cairo_font_type {
    CAIRO_FONT_TYPE_TOY,
    CAIRO_FONT_TYPE_FT,
    CAIRO_FONT_TYPE_WIN32,
    CAIRO_FONT_TYPE_QUARTZ
} cairo_font_type_t;
   
  做完上面3步 基本上就没有编译错误了,生成的 exe在 release包里,不过 这时候直接运行会出错,原因 是 dll和 资源没有配好,dll好弄,可以直接吧需要的dll都考过来,不过资源比较麻烦,需要在release 下面新建一个data文件夹 ,然后 讲工程中的osgEdit.ui 考进去,另外把icon文件夹考进去, 最后还要 在release文件夹下新建一个 extensions文件夹 里面分别放 3个子文件夹资源,具体的资源可以下载一个osgEdit安装版,然后把资源拷过来
   象上面说的,我打算在新版本rc2出来后,再发布具体的编译过程,这里仅仅简单介绍一下,另外发上osgEdit的截图。

osgEdit截图

osgEdit截图

评分

1

查看全部评分

该用户从未签到

发表于 2008-5-23 11:51:04 | 显示全部楼层
不知道好不好用啊!

该用户从未签到

发表于 2008-5-24 14:58:44 | 显示全部楼层
楼主能否给个详细一点的安装过程 特别是需要从哪里下载那个软件包等信息啊
或者直接把你的编译好的OSGEdit发布到论坛的QQ邮箱?
http://bbs.osgchina.org/viewthread.php?tid=299&extra=page%3D1
谢谢

该用户从未签到

发表于 2008-12-17 19:56:43 | 显示全部楼层

好东西!

这个工具不错,类似Vega的Lynx编辑器,很有用,能省不少事

该用户从未签到

发表于 2009-3-23 17:11:20 | 显示全部楼层
等有时间了学习一下! 挺好的东西!!!

该用户从未签到

发表于 2009-9-2 11:57:36 | 显示全部楼层
编译麻烦呀,哈哈,

该用户从未签到

发表于 2010-3-21 12:46:50 | 显示全部楼层
学习了

该用户从未签到

发表于 2012-12-3 14:54:39 | 显示全部楼层
mark

该用户从未签到

发表于 2013-5-15 21:20:49 | 显示全部楼层
顶起

该用户从未签到

发表于 2013-12-23 00:03:59 | 显示全部楼层
谢谢楼主分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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