Changeset 2790
- Timestamp:
- Mar 16, 2009, 11:47:06 AM (16 years ago)
- Location:
- code/trunk/src
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
code/trunk/src/ogreceguirenderer/OgreCEGUIRenderer.cpp
r2757 r2790 3 3 created: 11/5/2004 4 4 author: Paul D Turner 5 5 6 6 purpose: Implementation of Renderer class for Ogre engine 7 7 *************************************************************************/ … … 54 54 Utility function to create a render operation and vertex buffer to render quads 55 55 *************************************************************************/ 56 static void createQuadRenderOp(Ogre::RenderOperation &d_render_op, 56 static void createQuadRenderOp(Ogre::RenderOperation &d_render_op, 57 57 Ogre::HardwareVertexBufferSharedPtr &d_buffer, size_t nquads) 58 58 { … … 72 72 73 73 // create hardware vertex buffer 74 d_buffer = HardwareBufferManager::getSingleton().createVertexBuffer(vd->getVertexSize(0), nquads, 74 d_buffer = HardwareBufferManager::getSingleton().createVertexBuffer(vd->getVertexSize(0), nquads, 75 75 HardwareBuffer::HBU_DYNAMIC_WRITE_ONLY_DISCARDABLE, false); 76 76 … … 83 83 } 84 84 85 static void destroyQuadRenderOp(Ogre::RenderOperation &d_render_op, 85 static void destroyQuadRenderOp(Ogre::RenderOperation &d_render_op, 86 86 Ogre::HardwareVertexBufferSharedPtr &d_buffer) 87 87 { … … 146 146 d_sorted = false; 147 147 QuadInfo quad; 148 148 149 149 // set quad position, flipping y co-ordinates, and applying appropriate texel origin offset 150 150 quad.position.d_left = dest_rect.d_left; … … 170 170 quad.bottomLeftCol = colourToOgre(colours.d_top_left); 171 171 quad.bottomRightCol = colourToOgre(colours.d_top_right); 172 172 173 173 // set quad split mode 174 174 quad.splitMode = quad_split_mode; … … 229 229 buffmem->tv1 = quad.texPosition.d_bottom; 230 230 ++buffmem; 231 231 232 232 // setup Vertex 2... 233 233 234 234 // top-left to bottom-right diagonal 235 235 if (quad.splitMode == TopLeftToBottomRight) … … 253 253 } 254 254 ++buffmem; 255 255 256 256 // setup Vertex 3... 257 257 buffmem->x = quad.position.d_left; … … 262 262 buffmem->tv1 = quad.texPosition.d_top; 263 263 ++buffmem; 264 264 265 265 // setup Vertex 4... 266 266 buffmem->x = quad.position.d_right; … … 271 271 buffmem->tv1 = quad.texPosition.d_bottom; 272 272 ++buffmem; 273 273 274 274 // setup Vertex 5... 275 275 buffmem->x = quad.position.d_right; … … 280 280 buffmem->tv1 = quad.texPosition.d_top; 281 281 ++buffmem; 282 282 283 283 // setup Vertex 6... 284 284 285 285 // top-left to bottom-right diagonal 286 286 if (quad.splitMode == TopLeftToBottomRight) … … 305 305 ++buffmem; 306 306 } 307 307 308 308 // ensure we leave the buffer in the unlocked state 309 309 d_buffer->unlock(); 310 310 } 311 311 312 312 /// Render the buffer 313 313 d_bufferPos = 0; … … 318 318 while(i != d_quadlist.end()) 319 319 { 320 320 321 321 d_currTexture = i->texture; 322 322 d_render_op.vertexData->vertexStart = d_bufferPos; … … 426 426 427 427 /************************************************************************* 428 setup states etc 428 setup states etc 429 429 *************************************************************************/ 430 430 void OgreCEGUIRenderer::initRenderStates(void) … … 469 469 470 470 471 472 /************************************************************************* 473 sort quads list according to texture 471 472 /************************************************************************* 473 sort quads list according to texture 474 474 *************************************************************************/ 475 475 void OgreCEGUIRenderer::sortQuads(void) … … 525 525 526 526 // setup Vertex 2... 527 527 528 528 // top-left to bottom-right diagonal 529 529 if (quad_split_mode == TopLeftToBottomRight) … … 577 577 578 578 // setup Vertex 6... 579 579 580 580 // top-left to bottom-right diagonal 581 581 if (quad_split_mode == TopLeftToBottomRight) … … 614 614 /************************************************************************* 615 615 convert ARGB colour value to whatever the Ogre render system is 616 expecting. 616 expecting. 617 617 *************************************************************************/ 618 618 uint32 OgreCEGUIRenderer::colourToOgre(const colour& col) const … … 628 628 629 629 /************************************************************************* 630 Set the scene manager to be used for rendering the GUI. 630 Set the scene manager to be used for rendering the GUI. 631 631 *************************************************************************/ 632 632 void OgreCEGUIRenderer::setTargetSceneManager(Ogre::SceneManager* scene_manager) … … 650 650 651 651 /************************************************************************* 652 Set the target render queue for GUI rendering. 652 Set the target render queue for GUI rendering. 653 653 *************************************************************************/ 654 654 void OgreCEGUIRenderer::setTargetRenderQueue(Ogre::uint8 queue_id, bool post_queue) … … 724 724 725 725 /************************************************************************* 726 Create a texture from an existing Ogre::TexturePtr object 726 Create a texture from an existing Ogre::TexturePtr object 727 727 *************************************************************************/ 728 728 Texture* OgreCEGUIRenderer::createTexture(Ogre::TexturePtr& texture) … … 749 749 750 750 /************************************************************************* 751 Set the size of the display in pixels. 751 Set the size of the display in pixels. 752 752 *************************************************************************/ 753 753 void OgreCEGUIRenderer::setDisplaySize(const Size& sz) … … 767 767 is rendered 768 768 *************************************************************************/ 769 void CEGUIRQListener::renderQueueStarted(Ogre::uint8 id, const Ogre::String& invocation, 769 void CEGUIRQListener::renderQueueStarted(Ogre::uint8 id, const Ogre::String& invocation, 770 770 bool& skipThisQueue) 771 771 { -
code/trunk/src/orxonox/gamestates/GSGUI.cc
r2087 r2790 51 51 52 52 // show main menu 53 guiManager_->loadScene("MainMenu"); 53 54 guiManager_->showGUI("MainMenu", 0); 54 55 getParent()->getViewport()->setCamera(guiManager_->getCamera()); -
code/trunk/src/orxonox/gamestates/GSLevel.h
r2710 r2790 43 43 ~GSLevel(); 44 44 45 // was private before (is public now because of console command in GSStandalone) 46 void setConfigValues(); 47 45 48 protected: 46 49 void enter(Ogre::Viewport* viewport); … … 71 74 ConsoleCommand* ccTkeybind_; 72 75 73 private:74 void setConfigValues();75 76 76 }; 77 77 } -
code/trunk/src/orxonox/gamestates/GSStandalone.cc
r2087 r2790 30 30 #include "GSStandalone.h" 31 31 32 #include <OgreViewport.h> 33 #include <OgreCamera.h> 32 34 #include "core/Core.h" 35 #include "core/ConsoleCommand.h" 36 #include "gui/GUIManager.h" 33 37 34 38 namespace orxonox 35 39 { 40 SetConsoleCommand(GSStandalone, showGUI, true).setAsInputCommand(); 41 42 bool GSStandalone::guiShowing_s = false; 43 36 44 GSStandalone::GSStandalone() 37 45 : GameState<GSGraphics>("standalone") … … 43 51 } 44 52 53 void GSStandalone::showGUI() 54 { 55 GSStandalone::guiShowing_s = true; 56 } 57 45 58 void GSStandalone::enter() 46 59 { … … 48 61 49 62 GSLevel::enter(this->getParent()->getViewport()); 63 64 guiManager_ = getParent()->getGUIManager(); 65 // not sure if necessary 66 // guiManager_->loadScene("IngameMenu"); 50 67 } 51 68 … … 59 76 void GSStandalone::ticked(const Clock& time) 60 77 { 78 if (guiShowing_s) 79 { 80 guiManager_->showGUI("IngameMenu", this->getParent()->getViewport()->getCamera()->getSceneManager()); 81 } 82 else 83 { 84 if (guiManager_) 85 guiManager_->hideGUI(); 86 } 87 // tick CEGUI 88 guiManager_->tick(time.getDeltaTime()); 89 61 90 GSLevel::ticked(time); 62 91 this->tickChild(time); -
code/trunk/src/orxonox/gamestates/GSStandalone.h
r2087 r2790 41 41 GSStandalone(); 42 42 ~GSStandalone(); 43 static void showGUI(); 43 44 44 45 private: … … 46 47 void leave(); 47 48 void ticked(const Clock& time); 49 50 GUIManager* guiManager_; 51 static bool guiShowing_s; 48 52 }; 49 53 } -
code/trunk/src/orxonox/gui/GUIManager.cc
r2759 r2790 172 172 173 173 // load the background scene 174 loadScenes();174 //loadScenes(); 175 175 //CEGUI::KeyEventArgs e; 176 176 //e.codepoint … … 190 190 191 191 return true; 192 } 193 194 void GUIManager::loadScene(const std::string& name) 195 { 196 if (name.compare("IngameMenu") == 0) 197 { 198 try 199 { 200 /*this->scriptModule_ = new LuaScriptModule(); 201 this->luaState_ = this->scriptModule_->getLuaState(); 202 this->guiSystem_ = new System(this->guiRenderer_, this->resourceProvider_, 0, this->scriptModule_); 203 tolua_Core_open(this->scriptModule_->getLuaState()); 204 tolua_Orxonox_open(this->scriptModule_->getLuaState()); 205 */ 206 this->scriptModule_->executeScriptFile("ingameGUI.lua", "GUI"); 207 } 208 catch (CEGUI::Exception& ex) 209 { 210 #if CEGUI_VERSION_MINOR < 6 211 throw GeneralException(ex.getMessage().c_str()); 212 #else 213 throw GeneralException(ex.getMessage().c_str(), ex.getLine(), 214 ex.getFileName().c_str(), ex.getName().c_str()); 215 #endif 216 } 217 } 218 else 219 { 220 loadScenes(); 221 } 192 222 } 193 223 … … 241 271 try 242 272 { 273 COUT (0) << "************* sceneManager: " << sceneManager << std::endl; 243 274 if (!sceneManager) 244 275 { … … 287 318 return; 288 319 //this->viewport_->setCamera(0); 289 this->guiRenderer_->setTargetSceneManager(0); 320 // has no effect since you cannot assign 0 as SceneManager 321 //this->guiRenderer_->setTargetSceneManager(0); 290 322 this->state_ = Ready; 291 323 InputManager::getInstance().requestLeaveState("gui"); -
code/trunk/src/orxonox/gui/GUIManager.h
r2710 r2790 70 70 71 71 bool initialise(Ogre::RenderWindow* renderWindow); 72 void loadScene(const std::string& name); 72 73 void tick(float dt) 73 74 {
Note: See TracChangeset
for help on using the changeset viewer.