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 //#include <uiMgr.h> 00014 #include <GraphicsInteractionManager.h> 00015 //#include <uiMgr.h> 00016 //#include <ThreadTester.h> 00017 00018 00019 void FastEcslent::GfxThread::init() { 00020 DEBUG(std::cout << "Initialized Gfx before starting thread. Engine instance Id: " << engine->instanceId << std::endl;) 00021 } 00022 00023 void FastEcslent::GfxThread::run() { 00024 00025 gfx = boost::thread(&FastEcslent::GfxThread::runThread, this); 00026 DEBUG(std::cout << "Started Gfx thread's runThread method" << gfx.get_id() << std::endl;) 00027 00028 } 00029 00030 void FastEcslent::GfxThread::runThread(){ 00031 00032 OgreGFX::GraphicsInteractionManager *gimPtr; 00033 //ThreadTester gim(engine); 00034 00035 gimPtr = new OgreGFX::GraphicsInteractionManager(engine); //&gim; 00036 DEBUG(std::cout << "Ogre: created TA, getting ready to run:" << gfx.get_id() << std::endl;) 00037 //engine->entityMgr->ents[0]->print(); 00038 00039 gimPtr->go(); 00040 DEBUG(std::cout << "Ogre finishing: shutting down" << gfx.get_id() << std::endl;) 00041 //engine->entityMgr->ents[1]->print(); 00042 00043 } 00044 00045 void FastEcslent::GfxThread::stop(){ 00046 00047 } 00048 00049 void FastEcslent::GfxThread::join(){ 00050 DEBUG(std::cout << "Ogre: Joining getting ready to stop:" << gfx.get_id() << std::endl;) 00051 gfx.join(); 00052 } 00053 00054 00055 void FastEcslent::GfxThread::kill(){ 00056 gfx.interrupt(); 00057 }