• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
LinuxHunter
原创+技巧=无坚不摧
博客园    首页    新随笔    联系   管理    订阅  订阅
Direct3D9应用CEGUI
如何在DirectX下使用CEGUI
       #define SetWindowRect( window, x, y, width, height ) \
       {	\
	        window->setPosition( \
	        CEGUI::UVector2( CEGUI::UDim(0.0f, x),	\
	        CEGUI::UDim(0.0f, y) )	\
	        );	\
	        window->setSize(	\
	        CEGUI::UVector2( CEGUI::UDim(0.0f, width),	\
	        CEGUI::UDim(0.0f, height) )	\
	        );	\
        }

        CEGUI::Direct3D9Renderer* g_pRender = NULL;
        //初始化
        g_pRender = &CEGUI::Direct3D9Renderer::create( lpDevice );
	
	CEGUI::System& mGUISystem = CEGUI::System::create(*g_pRender);

	CEGUI::DefaultResourceProvider* rp = static_cast<CEGUI::DefaultResourceProvider*>
		(CEGUI::System::getSingleton().getResourceProvider());

	rp->setResourceGroupDirectory("schemes", "../Media/gui/");
	rp->setResourceGroupDirectory("imagesets", "../Media/gui/");
	rp->setResourceGroupDirectory("fonts", "../Media/fonts/");
	rp->setResourceGroupDirectory("layouts", "../Media/gui/");
	rp->setResourceGroupDirectory("looknfeels", "../Media/gui/");

	CEGUI::Imageset::setDefaultResourceGroup("imagesets");
	CEGUI::Font::setDefaultResourceGroup("fonts");
	CEGUI::Scheme::setDefaultResourceGroup("schemes");
	CEGUI::WidgetLookManager::setDefaultResourceGroup("looknfeels");
	CEGUI::WindowManager::setDefaultResourceGroup("layouts");

	CEGUI::SchemeManager::getSingleton().create(
		(CEGUI::utf8*)"TaharezLookSkin.scheme");
	mGUISystem.setDefaultMouseCursor(
		(CEGUI::utf8*)"TaharezLook", (CEGUI::utf8*)"MouseArrow");
	mGUISystem.setDefaultFont((CEGUI::utf8*)"simkai");
	CEGUI::WindowManager& wmgr = CEGUI::WindowManager::getSingleton();

	CEGUI::Window* sheet = wmgr.createWindow(
		"DefaultGUISheet", "Root" ); 
	mGUISystem.setGUISheet(sheet);

	/// 创建主窗口
	CEGUI::FrameWindow* frame = 
		(CEGUI::FrameWindow*)wmgr.createWindow(
		"TaharezLook/FrameWindow", "Root/Frame");
	SetWindowRect( frame, 0, 26, 200, 400 );
	frame->setProperty( "Alpha", "0.0" );
	frame->setProperty( "SizingEnabled", "False" );
	frame->setProperty( "TitlebarEnabled", "False" );
	sheet->addChildWindow( frame );

	/// 创建按钮
	CEGUI::PushButton* mQuitButton = (CEGUI::PushButton*)wmgr.createWindow(
		"TaharezLook/Button", "Root/Frame/QuitButton" );
	SetWindowRect( mQuitButton, 80, 50, 100, 26 );
	mQuitButton->setText( "ChangeModel" );
	mQuitButton->setProperty( "InheritsAlpha", "False" );
	frame->addChildWindow( mQuitButton );

	/// 创建编辑框
	CEGUI::MultiLineEditbox* mEditBox = (CEGUI::MultiLineEditbox*)wmgr.createWindow(
		"TaharezLook/MultiLineEditbox", "Root/Frame/MultiEditbox" );
	SetWindowRect( mEditBox, 5, 150, 155, 80 );
	mEditBox->setProperty( "InheritsAlpha", "False" );
	mEditBox->setProperty( "Alpha", "0.5" );
	frame->addChildWindow( mEditBox );

	CEGUI::ImagesetManager::getSingleton().createFromImageFile("MyImage", "72.png");
	CEGUI::Window* mImage = wmgr.createWindow( 
		"TaharezLook/StaticImage", "Root/Frame/StaticImage");
	SetWindowRect( mImage, 0, 30, 50, 50 );
	mImage->setProperty( "Image", "set:MyImage image:full_image");
	mImage->setProperty( "InheritsAlpha", "False" );
	frame->addChildWindow( mImage );

        //渲染GUI
        CEGUI::System::getSingleton().renderGUI();

        //销毁
        CEGUI::System::getSingleton().destroy();
	CEGUI::Direct3D9Renderer::destroy(*g_pRender);
posted on 2010-11-23 19:24  LinuxHunter  阅读(863)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3