Example
Here's a short example application.
main.cpp
1 #include "openpolygon.h"
9 int main(
int argc ,
char* argv[] )
12 DisplayConfig config(
"./config.conf");
13 GLFWDisplay * display = engine.initialize( &config );
15 FrameListener * scene =
new Scene();
16 RenderManager * manager = RenderManager::getSingletonPtr();
17 manager->addFrameListener( scene );
19 engine.RenderLoop( display );
create a new Scene
scene.hpp
6 class Scene :
public Engine::FrameListener ,
public Engine::InputListener
18 void initialize( OpenPolygonDisplay * display );
25 void RenderLogic(
float time );
32 void onKeyEvent(
const KeyEvent &event);
39 void onMouseEvent(
const MouseEvent &event);
The Scene class.
Definition: scene.h:6
scene.cpp
5 InputManager::getSingletonPtr()->addInputListener(
this );
9 void Scene::initialize( OpenPolygonDisplay * display )
12 OverlayManager * manager = OverlayManager::getSingletonPtr();
13 Overlay * overlay_hud = manager->createOverlay(
"HUD");
18 MultiRendering * system =
new MultiRendering(
"RenderSystem");
19 RenderEntityManager * entity_manager =
new RenderEntityManager();
20 RenderProcessManager * process_manager =
new RenderProcessManager( entity_manager );
22 system->setRenderProcessManager( process_manager );
25 RenderManager::getSingletonPtr()->getSystemManager()->initRenderSystem( system , display );
26 RenderManager::getSingletonPtr()->getSystemManager()->addRenderSystem ( system );
29 entity_manager->addEntity(
new Cube() );
32 overlay_hud->addElement(
new TextElement() );
36 void Scene::RenderLogic(
float time )
43 void Scene::onKeyEvent(
const KeyEvent & event)
49 void Scene::onMouseEvent(
const MouseEvent & event )