平台:
windows 7 /64bit /VS2005
CEGUI下载
地址: http://www.cegui.org.uk/wiki/index.php/CEGUI_Downloads_0.7.9
源码选择:
CEGUI 0.7.9 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.9.zip
依赖包选择:
CEGUI 0.7.9 Binary Dependency Downloads for MSVC++
MSVC++ 2005 (SP1 + ATL fix) precompiled dependency libraries used by CEGUI supplied as a compressed zip archive. This dependencies package is needed to build CEGUI 0.7.9 from source. Download Now!
得到 CEGUI-DEPS-0.7.x-r2-vc8.zip
编译
参照: http://www.cegui.org.uk/wiki/index.php/Build_from_source_for_Win32
分别解压 CEGUI-0.7.9.ZIP / CEGUI-DEPS-0.7.X-r2-vc8.zip
依赖包解压后放入CEGUI目录中
最后目录结构如:
E:\cegui\CEGUI-0.7.9 \bin //初始空.生产的Sample执行文件将放到这里 \cegui //cegui源码 \datafiles \dependencies //dependencies是拷贝过来的依赖包 \bin \include \lib ……各种License \doc \lib //初始空.CEGUI生成的LIB \project \Xcode \premake config.lua //双击下面bat前配置下 build_samples_vs2005.bat //双击生产CEGUISamples.sln build_vs2005.bat //双击生产CEGUI.sln \Samples //sample源码 acinclude.m4 aclocal.m4 bootstrap config.guess config.sub ……其他文件
我的电脑默认找不到DX9相关文件
修改E:\cegui\CEGUI-0.7.9\projects\premake\config.lua
将DIRECT3D9_RENDERER = true 修改为false,如下
------------- -- Renderers -- this controls which renderer modules are built OPENGL_RENDERER = true DIRECT3D9_RENDERER = false DIRECT3D10_RENDERER = false DIRECT3D11_RENDERER = false IRRLICHT_RENDERER = false OGRE_RENDERER = false NULL_RENDERER = false
重新点击bat生成VS工程文件。
编译CEGUI.sln
编译CEGUISamples.sln
编译CEGUISamples.sln的时候,所有的sample项目会报连接错误,找不到 "freeglut_static.lib"这个文件。
但是项目的配置中设置的是 freeglut_d.lib,依赖包中也只有freeglut_d.lib。
直接在依赖包中 E:\cegui\CEGUI-0.7.9\dependencies\lib\static 创建freeglut_d.lib的备份,重命名为 freeglut_static.lib。重新编译CEGUISamples.sln即成功。
以上编译都是默认方案 : Debug / static
E:\cegui\CEGUI-0.7.9\bin 目录下有生产的Samples执行文件
Demo7的半透明和窗口移动效果不错 。
如果用代码跑sample的花,会找不到资源
代码在 e:\cegui\CEGUI-0.7.9\Samples\common\src\CEGuiBaseApplication.cpp
const char* CEGuiBaseApplication::getDataPathPrefix() const { static char dataPathPrefix[PATH_MAX]; char* envDataPath = 0; envDataPath = getenv(DATAPATH_VAR_NAME); if (envDataPath != 0) strcpy(dataPathPrefix, envDataPath); else strcpy(dataPathPrefix, CEGUI_SAMPLE_DATAPATH); return dataPathPrefix; }
#ifndef CEGUI_SAMPLE_DATAPATH #define CEGUI_SAMPLE_DATAPATH "../datafiles" #endif /*********************************************************************** Static / Const data *************************************************************************/ const char CEGuiBaseApplication::DATAPATH_VAR_NAME[] = "CEGUI_SAMPLE_DATAPATH";
两种方法:
1.修改 CEGUI_SAMPLE_DATAPATH 的值到具体路径
2.设置名称为 CEGUI_SAMPLE_DATAPATH 的系统环境变量,变量值是资源路径,比如这里的
E:\cegui\CEGUI-0.7.9\datafiles