Changeset 31


Ignore:
Timestamp:
04/10/07 16:54:42 (12 years ago)
Author:
art
Message:

dynamicResourceManagment Plugin added.

TODO: change file association list of resources. This is required
by the drm plugin to be able to reload the resource as soon as one of
the associated file changes.

Files:
8 added
6 edited

Legend:

Unmodified
Added
Removed
  • Plugins/Makefile

    r12 r31  
    33include $(TOPDIR)/Make/Makedefs 
    44 
    5 SUBDIRS = luaScripting 
     5SUBDIRS = luaScripting dynamicResources 
    66         
    77include $(TOPDIR)/Make/Makedirrules 
  • nrEngine/include/Prerequisities.h

    r18 r31  
    3636        #define NR_VERSION_MAJOR 0 
    3737        #define NR_VERSION_MINOR 0 
    38         #define NR_VERSION_PATCH 7 
    39         #define NR_VERSION_NAME "Azuro" 
     38        #define NR_VERSION_PATCH 8 
     39        #define NR_VERSION_NAME "Alores" 
    4040        #define NR_DEFAULT_EVENT_CHANNEL "nrEngine_default_channel" 
    4141         
  • nrEngine/include/Resource.h

    r25 r31  
    167167                NR_FORCEINLINE void markResLoaded() { mResIsLoaded = true; } 
    168168                 
     169                /** 
     170                 * Set resource file name  
     171                 * @param filename Filename for the file associated with the resource  
     172                 **/ 
     173                 void setResourceFilename(const std::string& filename) { mResFileName = filename; } 
     174                  
    169175        private: 
    170176                 
  • nrEngine/include/ResourceManager.h

    r30 r31  
    410410                        const std::list<ResourceHandle>& getGroupHandles(const std::string& name); 
    411411                         
     412                         
    412413                        /** 
    413414                        * Release all resources. This will unload and then remove all  
     
    421422                        void removeAllLoaders(); 
    422423         
    423          
     424                        //! Typedef for the resource map returned by the getResourceMap() method  
     425                        typedef std::map< std::string, std::list<ResourceHandle> > ResourceGroupMap; 
     426                         
     427                        /** 
     428                         * Return the map containing group names and according resource list. 
     429                         **/ 
     430                        const ResourceGroupMap& getResourceMap() { return mResourceGroup; } 
     431                         
    424432                protected: 
    425433         
     
    443451         
    444452                        typedef std::map< std::string, ResourceLoader> loader_map; 
    445          
    446                         loader_map      mLoader; 
    447          
    448          
    449453                        typedef std::map<ResourceHandle, SharedPtr<ResourceHolder> >   res_hdl_map; 
    450454                        typedef std::map< std::string, ResourceHandle>               res_str_map; 
    451                         typedef std::map< std::string, std::list<ResourceHandle> > res_grp_map; 
    452455                        typedef std::map< std::string, SharedPtr<IResource> >        res_empty_map; 
    453456         
    454                         res_hdl_map     mResource; 
    455                         res_str_map mResourceName; 
    456                         res_grp_map mResourceGroup; 
    457                         res_empty_map mEmptyResource; 
     457                        loader_map      mLoader; 
     458         
     459                 
     460                        res_hdl_map        mResource; 
     461                        res_str_map        mResourceName; 
     462                        ResourceGroupMap   mResourceGroup; 
     463                        res_empty_map      mEmptyResource; 
    458464         
    459465                        // this list shouldn't be filled. it will be returned if no group were found in getGroupHandles() method  
  • nrEngine/src/Engine.cpp

    r18 r31  
    289289        { 
    290290                // check if the engine is initialized 
    291                 if (_resmgr == NULL){ 
     291                if (_resmgr == NULL) 
     292                { 
    292293                        NR_Log(Log::LOG_ENGINE, Log::LL_ERROR, "Engine was not initialized properly"); 
    293294                        return false; 
     
    295296 
    296297                // try to load the resource and check for the error code 
    297                 IResourcePtr plg = _resmgr->loadResource(name, "Plugins", path + file); 
    298  
    299                 if (plg == NULL) 
    300                         return false; 
     298                IResourcePtr plg = _resmgr->loadResource(name, "Plugins", path + file, "Plugin"); 
    301299 
    302300                return true; 
  • nrEngine/src/ResourceManager.cpp

    r30 r31  
    561561                // find through the handle 
    562562                res_hdl_map::iterator it = mResource.find(handle); 
    563                 if (it == mResource.end()){ 
     563                if (it == mResource.end()) 
     564                { 
    564565                        return NULL; 
    565566                } 
     
    722723 
    723724                // check whenever such a group exists 
    724                 res_grp_map::const_iterator it = mResourceGroup.find(group); 
     725                ResourceGroupMap::const_iterator it = mResourceGroup.find(group); 
    725726                if (it == mResourceGroup.end()){ 
    726727                        NR_Log(Log::LOG_ENGINE, "ResourceManager: Can not unload group \"%s\" because not found in database", group.c_str()); 
     
    745746 
    746747                // check whenever such a group exists 
    747                 res_grp_map::const_iterator it = mResourceGroup.find(group); 
     748                ResourceGroupMap::const_iterator it = mResourceGroup.find(group); 
    748749                if (it == mResourceGroup.end()){ 
    749750                        NR_Log(Log::LOG_ENGINE, "ResourceManager: Can not reload group \"%s\" because not found in database", group.c_str()); 
     
    769770 
    770771                // check whenever such a group exists 
    771                 res_grp_map::const_iterator it = mResourceGroup.find(group); 
     772                ResourceGroupMap::const_iterator it = mResourceGroup.find(group); 
    772773                if (it == mResourceGroup.end()){ 
    773774                        NR_Log(Log::LOG_ENGINE, "ResourceManager: Can not remove group \"%s\" because not found in database", group.c_str()); 
     
    796797        { 
    797798                // check if such a group exists 
    798                 res_grp_map::const_iterator it = mResourceGroup.find(name); 
     799                ResourceGroupMap::const_iterator it = mResourceGroup.find(name); 
    799800 
    800801                // return the empty list 
     
    903904                // remove the handle from the group list 
    904905                if (group.length() > 0){ 
    905                         res_grp_map::iterator jt = mResourceGroup.find(group); 
     906                        ResourceGroupMap::iterator jt = mResourceGroup.find(group); 
    906907                        if (jt != mResourceGroup.end()){ 
    907908                                jt->second.remove(handle); 
Note: See TracChangeset for help on using the changeset viewer.