Direct3D9应用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);

你可能感兴趣的:(GUI)