Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 9854 in orxonox.OLD for branches/new_class_id/src/lib/util/loading


Ignore:
Timestamp:
Sep 28, 2006, 10:17:56 AM (18 years ago)
Author:
bensch
Message:

more nice comments, and also updated the KeepLevel loading (if you want to load a Resource to a KeepLevel just append it at loadtime:
eg.:
Texture tex = ResourceTexture(orxonox.png, GL_TEXTURE_2D, GameEnd);
where GameEnd is the KeepLevel as defined in orxonox.cc→initResources()

Location:
branches/new_class_id/src/lib/util/loading
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/new_class_id/src/lib/util/loading/resource.cc

    r9851 r9854  
    134134  //// KEEPLEVEL ////
    135135  ///////////////////
     136
     137  //! Constructs a default KeepLevel as Set in the ResourceManager via setDefaultKeepLevel.
     138  KeepLevel::KeepLevel()
     139  {
     140    this->_keepLevel = ResourceManager::getInstance()->defaultKeepLevel().keepLevel();
     141  }
     142  /**
     143   * @param keepLevel the level to set.
     144   */
     145  KeepLevel::KeepLevel(unsigned int keepLevel)
     146  {
     147    _keepLevel = keepLevel;
     148  }
     149
    136150  /**
    137151   * @brief constructor of a KeepLevel.
  • branches/new_class_id/src/lib/util/loading/resource.h

    r9852 r9854  
    2626  {
    2727  public:
    28     /** @param keepLevel the level to set. */
    29     inline KeepLevel(unsigned int keepLevel) { _keepLevel = keepLevel; };
     28    KeepLevel();
     29    KeepLevel(unsigned int keepLevel);
    3030    KeepLevel(const std::string& keepLevelName);
    3131
     
    9393    bool operator==(const std::string& typeName) const { return this->_typeName == typeName; };
    9494
     95    ////////////////////
     96    //// EXTENSIONS ////
    9597    void addExtension(const std::string& extension);
    9698
     99    ///////////////
     100    //// PATHS ////
    97101    bool addResourcePath(const std::string& path);
    98102    bool addResourceSubPath(const std::string& subPath);
     
    109113    const std::vector<Resources::StorePointer*>& storedResources() const { return _storedResources; };
    110114
    111     virtual void createFromString(const std::string& loadString) = 0;
    112 
     115    ///////////////////////////////
     116    //// LOADING AND UNLOADING ////
     117    virtual void createFromString(const std::string& loadString, const KeepLevel& keepLevel = KeepLevel()) = 0;
    113118    void unloadAllBelowKeepLevel(const Resources::KeepLevel& keepLevel);
    114119
     120    ///////////////////
     121    //// INTERNALS ////
    115122    void addResource(Resources::StorePointer* resource);
    116123
     124    ///////////////
     125    //// DEBUG ////
    117126    void debug() const;
    118127
     
    144153    tType(const std::string& typeName) : Type(typeName) {};
    145154    /** @param loadString the String to load a Resource with @brief tries to create a Resource of Type T with a loadString */
    146     virtual void createFromString(const std::string& loadString) { T::createFromString(loadString); }
     155    virtual void createFromString(const std::string& loadString, const KeepLevel& keepLevel = KeepLevel()) { T::createFromString(loadString, keepLevel); }
    147156  };
    148157
  • branches/new_class_id/src/lib/util/loading/resource_manager.cc

    r9853 r9854  
    3535  */
    3636  ResourceManager::ResourceManager ()
     37  : _defaultKeepLevel(0)
    3738  {
    3839    this->registerObject(this, ResourceManager::_objectList);
     
    4748  ResourceManager::~ResourceManager ()
    4849  {
    49     // deleting the Resources-List
    50     //this->unloadAllByPriority(RP_GAME);
    51 
    52     //   if (!this->resourceList.empty())
    53     //     PRINTF(1)("Not removed all Resources, since there are still %d resources registered\n", this->resourceList.size());
    54 
    5550    ResourceManager::_singletonRef = NULL;
    5651  }
     
    195190   * @param loadString the loadString to load in the Type.
    196191   */
    197   void ResourceManager::loadFromLoadString(const std::string& resourceTypeName, const std::string& loadString)
     192  void ResourceManager::loadFromLoadString(const std::string& resourceTypeName, const std::string& loadString, const KeepLevel& keepLevel)
    198193  {
    199194    std::vector<Resources::Type*>::const_iterator it;
     
    202197      if (*(*it) == resourceTypeName)
    203198      {
    204         (*it)->createFromString(loadString);
     199        (*it)->createFromString(loadString, keepLevel);
    205200        /// TODO check if the resource was allocated!!
    206201        return ;
  • branches/new_class_id/src/lib/util/loading/resource_manager.h

    r9851 r9854  
    1717    ObjectListDeclaration(ResourceManager);
    1818  public:
     19    ///////////////////////
     20    //// INSTANZIATION ////
    1921    /** @returns a Pointer to the only object of this Class */
    2022    inline static ResourceManager* getInstance() { if (!_singletonRef) _singletonRef = new ResourceManager();  return _singletonRef; };
     
    2224    inline static void deleteInstance() { if (_singletonRef) delete _singletonRef; };
    2325
    24 
     26    ////////////////////////
     27    //// RESOURCE PATHS ////
    2528    void setMainGlobalPath(const Directory& directory);
    2629    void addGlobalPath(const Directory& directory);
     
    3134    void unregisterType(Resources::Type* type);
    3235
    33     unsigned int addKeepLevelName(const std::string& keepLevelName);
    34     unsigned int getKeepLevelID(const std::string& keepLevelName) const;
    35     const std::string& getKeepLevelName(unsigned int keepLevelID) const;
    36 
    37     /** @returns the Types of Resources */
    38     const std::vector<Resources::Type*> resourceTypes() const { return _resourceTypes; };
    3936    /** @returns the main global search Path */
    4037    const Directory& mainGlobalPath() const { return _mainGlobalPath; };
     
    4239    const std::vector<Directory>& globalPaths() const { return _globalPaths; };
    4340
     41    ////////////////////
     42    //// KEEPLEVELS ////
     43    unsigned int addKeepLevelName(const std::string& keepLevelName);
     44    unsigned int getKeepLevelID(const std::string& keepLevelName) const;
     45    const std::string& getKeepLevelName(unsigned int keepLevelID) const;
     46    void setDefaultKeepLevel(const KeepLevel& keepLevel) { this->_defaultKeepLevel = keepLevel; };
     47    const KeepLevel& defaultKeepLevel() const { return this->_defaultKeepLevel; };
     48
     49    //////////////////////////
     50    //// GENERAL QUERIES ////
     51    /** @returns the Types of Resources */
     52    const std::vector<Resources::Type*> resourceTypes() const { return _resourceTypes; };
    4453
    4554    bool checkFileInMainPath(const File& fileInside);
    4655    std::string prependAbsoluteMainPath(const std::string& fileName);
    4756
     57    ////////////////////////////////////////
     58    //// RESOURCE LOADING AND UNLOADING ////
     59    void loadFromLoadString(const std::string& resourceTypeName, const std::string& loadString, const KeepLevel& keepLevel = KeepLevel());
     60    void loadFromLoadStringHACK(const std::string& resourceTypeName, const std::string& loadString) { this->loadFromLoadString(resourceTypeName, loadString); };
     61
    4862    void unloadAllBelowKeepLevel(const Resources::KeepLevel& keepLevel);
    4963    void unloadAllBelowKeepLevelINT(unsigned int level) { unloadAllBelowKeepLevel(level); };
    50     void loadFromLoadString(const std::string& resourceTypeName, const std::string& loadString);
    5164
     65    ///////////////
     66    //// DEBUG ////
    5267    void debug() const;
    5368
    54     // utility functions for handling files in and around the data-directory
    55     static std::string getFullName(const std::string& fileName);
    56     static bool isInDataDir(const std::string& fileName);
    5769  private:
    5870    ResourceManager();
     
    6678
    6779    std::vector<Resources::Type*>      _resourceTypes;      //!< A Vector of all the stored ResourceTypes @see Resources::Type
     80
    6881    std::vector<std::string>           _keepLevelNames;     //!< Names of KeepLevels @see Resources::KeepLevel
     82    KeepLevel                          _defaultKeepLevel;   //!< The default KeepLevel.
    6983  };
    7084
Note: See TracChangeset for help on using the changeset viewer.