OpenPolygon  1.0.0
OpenPolygon is a Rendering Engine
OpenPolygon Documentation

Example

Here's a short example application.

main.cpp

1 #include "openpolygon.h"
2 
9 int main(int argc , char* argv[] )
10 {
11  OpenPolygon engine;
12  DisplayConfig config("./config.conf");
13  GLFWDisplay * display = engine.initialize( &config );
14 
15  FrameListener * scene = new Scene();
16  RenderManager * manager = RenderManager::getSingletonPtr();
17  manager->addFrameListener( scene );
18 
19  engine.RenderLoop( display );
20  engine.finish();
21 
22  return 0;
23  }

create a new Scene

scene.hpp

1 using namespace Engine;
2 
6 class Scene : public Engine::FrameListener , public Engine::InputListener
7 {
8 
9  public:
10  Scene();
11  ~Scene(){}
12 
18  void initialize( OpenPolygonDisplay * display );
19 
25  void RenderLogic( float time );
26 
32  void onKeyEvent(const KeyEvent &event);
33 
39  void onMouseEvent(const MouseEvent &event);
40 
41  private:
42 
43 };
The Scene class.
Definition: scene.h:6

scene.cpp

1 #include "scene.h"
2 
3 Scene::Scene()
4 {
5  InputManager::getSingletonPtr()->addInputListener( this );
6 }
7 
8 //inheritance from FrameListener
9 void Scene::initialize( OpenPolygonDisplay * display )
10 {
11  /* create a overlay - here */
12  OverlayManager * manager = OverlayManager::getSingletonPtr();
13  Overlay * overlay_hud = manager->createOverlay("HUD");
14 
15 
16  /* create a rendersystem - here */
17 
18  MultiRendering * system = new MultiRendering("RenderSystem");
19  RenderEntityManager * entity_manager = new RenderEntityManager();
20  RenderProcessManager * process_manager = new RenderProcessManager( entity_manager );
21 
22  system->setRenderProcessManager( process_manager );
23 
24  /* register a new rendersystem - assign with currently Display */
25  RenderManager::getSingletonPtr()->getSystemManager()->initRenderSystem( system , display );
26  RenderManager::getSingletonPtr()->getSystemManager()->addRenderSystem ( system );
27 
28  /* add Objective - 3D Entitys */
29  entity_manager->addEntity( new Cube() );
30 
31  /* add Objective - 2D Entity (Element) */
32  overlay_hud->addElement( new TextElement() );
33 }
34 
35 //inheritance from FrameListener
36 void Scene::RenderLogic( float time )
37 {
38  /* write here the scene logic */
39 }
40 
41 
42 //inheritance from InputListener
43 void Scene::onKeyEvent( const KeyEvent & event)
44 {
45  /* keyboard events */
46 }
47 
48 //inheritance from InputListener
49 void Scene::onMouseEvent( const MouseEvent & event )
50 {
51  /* mouse events */
52 }
53