构建Ogre1.6 + CEGUI0.7.1 + CELayoutEditor0.7.1

需要下载的东西,我一般都是下载的源代码,编译器是vs2008(sp1),系统是xp(sp3)。
1、编译ogre
ogre:http://www.ogre3d.org/download/source
在这里面找到源代码 OGRE 1.6.5 Source For Windows 依赖包:Visual C++.Net 2008 (9.0) Precompiled Dependencies
可能要用到DX的sdk,我不知道,反正我是安装了的。
解压ogre源代码,解压依赖包,要把依赖包解压到ogre源代码里(Dependencies文件夹)
编译,生成需要的lib,dll。
2、编译CEGUI
CEGUI:http://www.cegui.org.uk/wiki/index.php/CEGUI_Downloads_0.7.1
在这里面找到源代码
CEGUI 0.7.1 Library Source Downloads
This package contains the source code supplied as a compressed zip archive. It is intended for Microsoft Windows users. Download Now!
依赖包:
CEGUI 0.7.1 Binary Downloads for Microsoft Visual C++ 2008
This package contains a set of precompiled external libraries used by CEGUI supplied as a compressed zip archive. This dependencies package is needed to build CEGUI 0.7.1 from source. Download Now!
解压CEGUI源代码和依赖包
2.1 在CEGUI-0.7.1/projects/premake里面点“build_vs2008.bat”,然后就会生成一个“CEGUI.sln”
然后打开编译,生成需要的lib,dll。

现在ogre和cegui已经差不多搞好了,不过中间差个连接的东西。ogre里面叫“OgreGUIRenderer”,cegui里面叫
“CEGUIOgreRenderer”。我们现在不用ogre里的“OgreGUIRenderer”,这个太老了。用“CEGUIOgreRenderer”。
这时我发现“CEGUI.sln”没有这个项目,这要在“CEGUI-0.7.1/projects/premake/config.lua”设置
找到:按下面修改(路径改成ogre源代码文件夹的路径)
OGRE_PATHS = { "D:/OgreME/ogre", "OgreMain/include", "lib" }               --修改
OIS_PATHS = { "D:/OgreME/ogre/Dependencies", "include/OIS", "lib" }        --修改
CEGUI_OLD_OIS_API = false                    --修改
OGRE_RENDERER = true            --修改
然后在点build_vs2008.bat,打开“CEGUI.sln”,看下有没有“CEGUIOgreRenderer”项目。
如果有就好了,修改下项目属性的include和lib路径(好像是自动生成的吧,我忘了)
先编译也可以如果通过就别修改路径了,没通过就改下。如果你安装过ogreSDK,一定要看下include和lib的路径,别指向sdk里面了,要指向刚刚下的ogre源代码和CEGUI的源代码。

3、测试ogre+cegui

3.1 在ogre里找一个cegui的例子,然后修改项目属性的include和lib路径(指向刚刚下的ogre源代码和CEGUI的源代码

3.2 改头文件,把那个
#include <OgreCEGUIRenderer.h>
改成
#include <CEGUIOgreRenderer.h>


mGUIRenderer = new CEGUI::OgreCEGUIRenderer(mWindow,Ogre::RENDER_QUEUE_OVERLAY,false,3000,mSceneMgr);
mGUISystem = new CEGUI::System(mGUIRenderer);
改成
CEGUI::OgreRenderer::bootstrapSystem();


CEGUI::SchemeManager::getSingleton().loadScheme((CEGUI::utf8*)"TaharezLookSkin.scheme");
mGUISystem->setDefaultMouseCursor((CEGUI::utf8*)"TaharezLook",(CEGUI::utf8*)"MouseArrow");
mGUISystem->setDefaultFont((CEGUI::utf8*)"simhei");
改成
CEGUI::SchemeManager::getSingleton().create((CEGUI::utf8*)"TaharezLookSkin.scheme");
CEGUI::System::getSingleton().setDefaultMouseCursor("TaharezLook", "MouseArrow");
CEGUI::System::getSingleton().setDefaultFont("simhei");

还有别的地方可能要改,我就试了这几处,对了,还要在最后释放
CEGUI::OgreRenderer::destroySystem();

反正就是照葫芦画瓢。

4、编译CELayoutEditor-0.7.1

CELayoutEditor:http://www.cegui.org.uk/wiki/index.php/CELayoutEditor_Downloads_0.7.1
方法和cegui一样,页面也差不多

4.1 这个要依赖wxWidgets
wxWidgets-2.8.10:http://www.wxwidgets.org/downloads/
找到:wxMSW - installer for Windows, with manual (other formats: zip)
下载安装配置
在路径 D:/wxWidgets-2.8.10/build/msw 下修改 config.vc

修改为:

UNICODE = 1
USE_OPENGL = 1

在路径 D:/wxWidgets-2.8.10/include/wx/msw 下 修改setup.h

修改为:

#define wxUSE_UNICODE 1

#define wxUSE_GLCANVAS       1

wxWidgets-2.8.10里面有很多setup.h,我修改的是wxWidgets-2.8.10/lib/vc_lib/mswud/wx里面的setup.h,这样看你的CELayoutEditor引用的是那里的头文件)
打开vs2008的命令行,可在菜单vs2008目录vs tools下找到:Visual Studio 2008 命令提示

点击弹出:


进入目录 cd D:/wxWidgets-2.8.10/build/msw
nmake -f makefile.vc

编译一堆,等待。。。

在 D:/wxWidgets-2.8.10/lib/vc_lib 下生成需要的lib文件

(如果想重新编译,就删除“wxWidgets-2.8.10/build/msw/vc_mswud”里的文件,因为我不会用nmake命令)
(默认是debug模式,要改为release需要找到config.vc文件,设置 “BUILD = release”,然后再编译就可以了)

4.2 修改CELayoutEditor项目里的include和lib,方法和先前一样。里面有个$(WXWIDGETS_7)环境变量
在“我的电脑” “属性” 里面增加一条“WXWIDGETS_7             D:/wxWidgets-2.8.10”,在CELayoutEditor项目里改是一样的。

4.3 编译CELayoutEditor项目,如果报错说,有个什么类没定义,

error C2504: 'wxGLCanvas' : base class undefined

就要修改setup.h文件(有很多,自己试下)修改为:

#define wxUSE_UNICODE          1

#define wxUSE_GLCANVAS       1


4.4 运行CELayoutEditor_d.exe,打开datafiles文件夹,这个要打开cegui里面的datafiles文件夹

截个图,这个版本对中文支持还蛮好,自己照着写个font文件放在datafiles/fonts


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值