需要下載的東西,我一般都是下載的原始碼,編譯器是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