Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Jun 8, 2008, 5:55:05 PM (16 years ago)
Author:
rgrieder
Message:
  • changed a default value concerning the derived mouse input (maybe change that in orxonox.ini too
  • added initialise()/destroy() to HUD in order to avoid a segfault
File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/trunk/src/orxonox/hud/HUD.cc

    r1564 r1567  
    4646#include "RadarOverlayElement.h"
    4747#include "Navigation.h"
    48 #include "OverlayElementFactories.h"
    4948
    5049namespace orxonox
     
    5958    HUD::HUD()
    6059    {
     60        orxonoxHUD_ = 0;
     61        container_ = 0;
     62        fpsText_ = 0;
     63        rTRText_ = 0;
     64        energyBar_ = 0;
     65        speedoBar_ = 0;
     66        radar_ = 0;
     67        nav_ = 0;
     68        bool showFPS_ = true;
     69        bool showRenderTime_ = true;
     70    }
     71
     72    HUD::~HUD()
     73    {
     74        this->destroy();
     75    }
     76
     77    void HUD::initialise()
     78    {
    6179        showFPS_ = true;
    6280        showRenderTime_ = true;
    6381
    6482        // create Factories
    65         barOverlayElementFactory_ = new BarOverlayElementFactory();
    66         Ogre::OverlayManager::getSingleton().addOverlayElementFactory(barOverlayElementFactory_);
    67         radarOverlayElementFactory_ = new RadarOverlayElementFactory();
    68         Ogre::OverlayManager::getSingleton().addOverlayElementFactory(radarOverlayElementFactory_);
     83        Ogre::OverlayManager::getSingleton().addOverlayElementFactory(&barOverlayElementFactory_);
     84        Ogre::OverlayManager::getSingleton().addOverlayElementFactory(&radarOverlayElementFactory_);
    6985
    7086        orxonoxHUD_ = Ogre::OverlayManager::getSingleton().create("Orxonox/HUD");
     
    139155    }
    140156
    141     HUD::~HUD()
    142     {
    143         Ogre::OverlayManager::getSingleton().destroyOverlayElement(this->container_);
    144         Ogre::OverlayManager::getSingleton().destroyOverlayElement(this->fpsText_);
    145         Ogre::OverlayManager::getSingleton().destroyOverlayElement(this->rTRText_);
    146         Ogre::OverlayManager::getSingleton().destroyOverlayElement(this->energyBar_);
    147         Ogre::OverlayManager::getSingleton().destroyOverlayElement(this->speedoBar_);
    148         Ogre::OverlayManager::getSingleton().destroyOverlayElement(this->radar_);
    149 
    150         delete this->nav_;
    151         delete this->barOverlayElementFactory_;
    152         delete this->radarOverlayElementFactory_;
     157    void HUD::destroy()
     158    {
     159        if (this->container_)
     160          Ogre::OverlayManager::getSingleton().destroyOverlayElement(this->container_);
     161        this->container_ = 0;
     162        if (this->fpsText_)
     163            Ogre::OverlayManager::getSingleton().destroyOverlayElement(this->fpsText_);
     164        this->fpsText_ = 0;
     165        if (this->rTRText_)
     166            Ogre::OverlayManager::getSingleton().destroyOverlayElement(this->rTRText_);
     167        this->rTRText_ = 0;
     168        if (this->energyBar_)
     169            Ogre::OverlayManager::getSingleton().destroyOverlayElement(this->energyBar_);
     170        this->energyBar_ = 0;
     171        if (this->speedoBar_)
     172            Ogre::OverlayManager::getSingleton().destroyOverlayElement(this->speedoBar_);
     173        this->speedoBar_ = 0;
     174        if (this->radar_)
     175            Ogre::OverlayManager::getSingleton().destroyOverlayElement(this->radar_);
     176        this->radar_ = 0;
     177        if (this->orxonoxHUD_)
     178            Ogre::OverlayManager::getSingleton().destroy(this->orxonoxHUD_);
     179        this->orxonoxHUD_ = 0;
     180
     181        if (this->nav_)
     182            delete this->nav_;
     183        this->nav_ = 0;
    153184    }
    154185
Note: See TracChangeset for help on using the changeset viewer.