文档介绍:D3D中UI界面的制作
案例说明:本案例通过制作D3D中的UI界面,掌握如何在D3D中插入cegui图形界面库,并渲染出来。
首先,安装CEGui的SDK,安装完成后在项目设置中新增include和lib文件夹
设置完成后,修p("imagesets");
CEGUI::Font::setDefaultResourceGroup("fonts");
CEGUI::Scheme::setDefaultResourceGroup("schemes");
CEGUI::WidgetLookManager::setDefaultResourceGroup("looknfeels");
CEGUI::WindowManager::setDefaultResourceGroup("layouts");
//取得窗体管理器
CEGUI::WindowManager& winMgr = CEGUI::WindowManager::getSingleton();
//读取字体
CEGUI::SchemeManager::getSingleton().create("");
CEGUI::System::getSingleton().setDefaultMouseCursor("TaharezLook", "MouseArrow");
CEGUI::FontManager::getSingleton().create("DejaVuSans-");
//设置鼠标的图片
CEGUI::MouseCursor::getSingleton().setImage("TaharezLook", "MouseArrow");
//显示鼠标
CEGUI::MouseCursor::getSingleton().show( );
//创建一个根窗口,上面加载各种界面
CEGUI::Window* root = ("DefaultWindow","root_wnd");
root->setFont("DejaVuSans-10");
//设置为默认的界面install this as the root GUI sheet
CEGUI::System::getSingleton().setGUISheet(root);
returntrue;
}
继续实现Render函数
在D3DInit中创建CD3DInit的对象指针
Init函数中初始化对象指针
在D3D渲染开始之后先设置D3D渲染的状态
Render函数中最后实现Gui的渲染
将资源文件夹下的cegui文件夹复制到工程目录下,将dll文件夹中的文件全部复制到debug目录下,运行测试。
运行后发现有两个鼠标,但是位置不一致,需要修改D3DInit时的参数
,修改原来的InitD3D函数加入一个是否全屏的属性
D3D设备创建前的代码修改如下:
//--创建D3D对象
if(NULL == (m_pD3D = Direct3DCreate9(D3D