CEGUI(Crazy Eddie’s GUI)是一个自由免费的GUI库,基于LGPL协议,使用C++实现,完全面向对象设计。CEGUI开发者的目的是希望能够让游戏开发人员从繁琐的GUI实现细节中抽身出来,以便有更多的开发时间可以放在游戏性上。
CEGUI的渲染需要3D图形API的支持,如OpenGL或Direct3D。另外,使用更高级的图形库也是可以的,像是OGRE、Irrlicht和RenderWare,关键需求可以简化为二点:
1. 纹理(Texture)的支持 2. 直接写屏(RHW的顶点格式、正交投影、或者使用shader实现)
实例代码
// Start the scene myD3DDevice->BeginScene(); // clear display myD3DDevice->Clear(0, 0, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0, 0, 0), 1.0f, 0); // user function to draw 3D scene draw3DScene(); // draw GUI **CEGUI::System::getSingleton().renderGUI();** // end the scene myD3DDevice->EndScene(); // finally present the frame. myD3DDevice->Present(0, 0, 0, 0);