Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Nov 21, 2008, 12:36:23 AM (16 years ago)
Author:
rgrieder
Message:

Applied long created patch that removes plugins.cfg and puts the content into orxonox.ini
This also allows to specify the media path for each 'distribution' individually because orxonox.ini has been added to the default files.

Location:
code/branches/buildsystem/src/orxonox/gamestates
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • code/branches/buildsystem/src/orxonox/gamestates/GSGraphics.cc

    r1828 r2244  
    4343#include "util/Debug.h"
    4444#include "util/Exception.h"
     45#include "util/String.h"
     46#include "util/SubString.h"
    4547#include "core/ConsoleCommand.h"
    4648#include "core/ConfigValueIncludes.h"
     
    8284    {
    8385        SetConfigValue(resourceFile_, "resources.cfg").description("Location of the resources file in the data path.");
     86        SetConfigValue(ogrePluginsFolder_, ".").description("Folder where the Ogre plugins are located.");
     87        SetConfigValue(ogrePlugins_, "RenderSystem_GL, Plugin_ParticleFX").description("Comma separated list of all plugins to load.");
    8488        SetConfigValue(statisticsRefreshCycle_, 200000).description("Sets the time in microseconds interval at which average fps, etc. get updated.");
    8589    }
     
    9397        this->ogreRoot_ = getParent()->getOgreRoot();
    9498
     99        // load all the required plugins for Ogre
     100        loadOgrePlugins();
     101        // read resource declaration file
    95102        this->declareResources();
    96         this->loadRenderer();    // creates the render window
     103        // Reads ogre config and creates the render window
     104        this->loadRenderer();
     105
    97106        // TODO: Spread this so that this call only initialises things needed for the Console and GUI
    98107        this->initialiseResources();
     
    232241
    233242        ++frameCount_;
     243    }
     244
     245    void GSGraphics::loadOgrePlugins()
     246    {
     247        // just to make sure the next statement doesn't segfault
     248        if (ogrePluginsFolder_ == "")
     249            ogrePluginsFolder_ = ".";
     250
     251#if ORXONOX_PLATFORM == ORXONOX_PLATFORM_WIN32
     252        convertToWindowsPath(&ogrePluginsFolder_);
     253#else
     254        convertToUnixPath(&ogrePluginsFolder_);
     255#endif
     256
     257        // Do some SubString magic to get the comma separated list of plugins
     258        SubString plugins(ogrePlugins_, ",", " ", false, 92, false, 34, false, 40, 41, false, '\0');
     259        for (unsigned int i = 0; i < plugins.size(); ++i)
     260            ogreRoot_->loadPlugin(ogrePluginsFolder_ + plugins[i]);
    234261    }
    235262
  • code/branches/buildsystem/src/orxonox/gamestates/GSGraphics.h

    r1788 r2244  
    5656        void setConfigValues();
    5757
     58        void loadOgrePlugins();
    5859        void declareResources();
    5960        void loadRenderer();
     
    8889        // config values
    8990        std::string           resourceFile_;          //!< resources file name
     91        std::string           ogrePluginsFolder_;     //!< Folder where the Ogre plugins are located
     92        std::string           ogrePlugins_;           //!< Comma separated list of all plugins to load
    9093        unsigned int          detailLevelParticle_;   //!< Detail level of particle effects (0: off, 1: low, 2: normal, 3: high)
    9194    };
  • code/branches/buildsystem/src/orxonox/gamestates/GSRoot.cc

    r1826 r2244  
    286286            probe.close();
    287287
    288         ogreRoot_ = new Ogre::Root(ogrePluginsFile_, ogreConfigFile_, ogreLogFile_);
     288        // Leave plugins file empty. We're going to do that part manually later
     289        ogreRoot_ = new Ogre::Root("", ogreConfigFile_, ogreLogFile_);
    289290
    290291#if 0 // Ogre 1.4.3 doesn't yet support setDebugOutputEnabled(.)
Note: See TracChangeset for help on using the changeset viewer.