void App::InitScene( int width, int height ) { Renderer* renderer = dynamic_cast<Renderer*>(m_Worker.get()); BOOST_ASSERT(renderer); renderer->Init(); std::vector< BrushPtr > brushes; brushes.push_back( LoadBrush<BmpBrush>("FireBase.bmp") ); brushes.push_back( LoadBrush<TgaBrush>("lightmap.tga") ); brushes.push_back( LoadBrush<TgaBrush>("FieldstoneNoisy.tga") ); brushes.push_back( LoadBrush<DdsBrush>("MetalDecoB.dds") ); //////////////////////////////////////////////////////////////////////////// // Compose our scene // Add a viewport EntityPtr viewport(new Viewport(width, height)); // this entity renders renderer->AddEntity(viewport); // listen to resize events m_EntityEventHandlerList.push_back( viewport ); // Add the camera EntityPtr camera(new Camera(m_Joystick)); // this entity handles events m_EntityEventHandlerList.push_back( camera ); // this entity renders viewport->AddEntity(camera, 0); EntityPtr flag( new Surface( brushes ) ); flag->GetRenderState()->Translate( Vector(0.0, 0, 0), Vector(1.0f, 1.0f, 1.0f) ); flag->GetRenderState()->Rotate( Vector(-90.0f, 0.0f, 0.0f ) ); // this entity renders camera->AddEntity(flag, 20 ); // some custom event handler m_EventHandlerList.push_back( boost::bind( &OnHandleEvent, _1, flag ) ); }