00001 /* 00002 * gfxThread.cpp 00003 * 00004 * Created on: Dec 20, 2011 00005 * Author: sushil 00006 */ 00007 00008 #include <boost/thread.hpp> 00009 #include "DEBUG.h" 00010 #include <engine.h> 00011 #include <gfxThread.h> 00012 00013 void FastEcslent::GfxThread::init() { 00014 DEBUG(std::cout << "Initialized Gfx before starting thread. Engine instance Id: " << engine->instanceId << std::endl;) 00015 } 00016 00017 void FastEcslent::GfxThread::run() { 00018 00019 gfx = boost::thread(&FastEcslent::GfxThread::runThread, this); 00020 DEBUG(std::cout << "Started Gfx thread's runThread method" << gfx.get_id() << std::endl;) 00021 00022 } 00023 00024 void FastEcslent::GfxThread::runThread(){ 00025 00026 gimPtr = new OgreGFX::GraphicsInteractionManager(engine); //&gim; 00027 DEBUG(std::cout << "Ogre: created TA, getting ready to run:" << gfx.get_id() << std::endl;) 00028 00029 gimPtr->go(); 00030 DEBUG(std::cout << "Ogre finishing: shutting down" << gfx.get_id() << std::endl;) 00031 } 00032 00033 void FastEcslent::GfxThread::stop(){ 00034 00035 } 00036 00037 void FastEcslent::GfxThread::join(){ 00038 DEBUG(std::cout << "Ogre: Joining getting ready to stop:" << gfx.get_id() << std::endl;) 00039 gfx.join(); 00040 } 00041 00042 00043 void FastEcslent::GfxThread::kill(){ 00044 gfx.interrupt(); 00045 }