Changeset 2320


Ignore:
Timestamp:
04/05/07 15:38:06 (17 years ago)
Author:
szirmay
Message:
 
Location:
GTP/trunk/Lib/Illum/IllumModule
Files:
67 edited

Legend:

Unmodified
Added
Removed
  • GTP/trunk/Lib/Illum/IllumModule/IllumModule/include/RenderTechniques/CausticCasterRenderTechnique.h

    r2285 r2320  
    3232                                                        TechniqueGroup* parentTechniqueGroup 
    3333                                                        ); 
    34         ~CausticCasterRenderTechnique(); 
     34        virtual ~CausticCasterRenderTechnique(); 
    3535         
    3636        //inherited 
  • GTP/trunk/Lib/Illum/IllumModule/IllumModule/include/RenderTechniques/CausticReceiverRenderTechnique.h

    r2285 r2320  
    1818                                                        TechniqueGroup* parentTechniqueGroup 
    1919                                                        ); 
    20         ~CausticReceiverRenderTechnique();       
     20        virtual ~CausticReceiverRenderTechnique();       
    2121         
    2222protected:               
  • GTP/trunk/Lib/Illum/IllumModule/IllumModule/include/RenderTechniques/ColorCubeMapRenderTechnique.h

    r2240 r2320  
    4141                                                                TechniqueGroup* parentTechniqueGroup 
    4242                                                                ); 
    43         ~ColorCubeMapRenderTechnique(); 
     43        virtual ~ColorCubeMapRenderTechnique(); 
    4444         
    4545        /** 
  • GTP/trunk/Lib/Illum/IllumModule/IllumModule/include/RenderTechniques/ConvolvedCubeMapRenderTechnique.h

    r2240 r2320  
    4343                                                        TechniqueGroup* parentTechniqueGroup 
    4444                                                        ); 
    45         ~ConvolvedCubeMapRenderTechnique(); 
     45        virtual ~ConvolvedCubeMapRenderTechnique(); 
    4646         
    4747        /** 
  • GTP/trunk/Lib/Illum/IllumModule/IllumModule/include/RenderTechniques/CubeMapRenderTechnique.h

    r2240 r2320  
    4141                                                        TechniqueGroup* parentTechniqueGroup 
    4242                                                        ); 
    43         ~CubeMapRenderTechnique(); 
     43        virtual ~CubeMapRenderTechnique(); 
    4444         
    4545        //inherited 
  • GTP/trunk/Lib/Illum/IllumModule/IllumModule/include/RenderTechniques/DepthShadowReceiverRenderTechnique.h

    r2285 r2320  
    1818                                                        TechniqueGroup* parentTechniqueGroup 
    1919                                                        ); 
    20         ~DepthShadowReceiverRenderTechnique();   
     20        virtual ~DepthShadowReceiverRenderTechnique();   
    2121         
    2222protected:               
  • GTP/trunk/Lib/Illum/IllumModule/IllumModule/include/RenderTechniques/DistanceCubeMapRenderTechnique.h

    r2285 r2320  
    4141                                                        TechniqueGroup* parentTechniqueGroup 
    4242                                                        ); 
    43         ~DistanceCubeMapRenderTechnique(); 
     43        virtual ~DistanceCubeMapRenderTechnique(); 
    4444         
    4545        /** 
  • GTP/trunk/Lib/Illum/IllumModule/IllumModule/include/RenderTechniques/HierarchicalParticleSystemTechnique.h

    r2240 r2320  
    3232                                                        TechniqueGroup* parentTechniqueGroup 
    3333                                                        ); 
    34         ~HierarchicalParticleSystemTechnique(); 
     34        virtual ~HierarchicalParticleSystemTechnique(); 
    3535 
    3636        //inherited 
  • GTP/trunk/Lib/Illum/IllumModule/IllumModule/include/RenderTechniques/IllumVolumeRenderTechnique.h

    r2240 r2320  
    3434                                                        TechniqueGroup* parentTechniqueGroup 
    3535                                                        ); 
    36         ~IllumVolumeRenderTechnique(); 
     36        virtual ~IllumVolumeRenderTechnique(); 
    3737 
    3838        //inherited 
  • GTP/trunk/Lib/Illum/IllumModule/IllumModule/include/RenderTechniques/SBBRenderTechnique.h

    r2240 r2320  
    2020                                                        TechniqueGroup* parentTechniqueGroup 
    2121                                                        ); 
    22         ~SBBRenderTechnique();   
     22        virtual ~SBBRenderTechnique();   
    2323}; 
  • GTP/trunk/Lib/Illum/IllumModule/IllumModule/include/RenderingRun.h

    r2240 r2320  
    5454        virtual bool canJoin(RenderingRun* run){return true;} 
    5555 
     56        virtual void freeAllResources()=0; 
     57 
    5658protected: 
    5759 
  • GTP/trunk/Lib/Illum/IllumModule/IllumModule/include/RenderingRuns/CausticCubeMapRenderingRun.h

    r780 r2320  
    2222                                                                unsigned int resolution, 
    2323                                                                bool updateAllFace); 
     24 
     25        virtual ~CausticCubeMapRenderingRun(){} 
    2426 
    2527        /** 
  • GTP/trunk/Lib/Illum/IllumModule/IllumModule/include/RenderingRuns/ChildPSystemRenderingRun.h

    r2240 r2320  
    2929        } 
    3030 
     31        virtual ~ChildPsystemRenderingRun(){} 
     32 
    3133protected: 
    3234        /** 
  • GTP/trunk/Lib/Illum/IllumModule/IllumModule/include/RenderingRuns/CubeMapRenderingRun.h

    r2240 r2320  
    3333                                                                bool renderEnvironment); 
    3434 
     35        virtual ~CubeMapRenderingRun(){} 
    3536         
    3637protected: 
  • GTP/trunk/Lib/Illum/IllumModule/IllumModule/include/RenderingRuns/DepthShadowMapRenderingRun.h

    r874 r2320  
    2323                this->resolutionY = resolutionY; 
    2424        } 
     25 
     26        virtual ~DepthShadowMapRenderingRun(){} 
    2527 
    2628protected: 
  • GTP/trunk/Lib/Illum/IllumModule/IllumModule/include/RenderingRuns/LightVolumeRenderingRun.h

    r2240 r2320  
    3030        } 
    3131 
     32        virtual ~LightVolumeRenderingRun(){} 
     33 
    3234protected: 
    3335    //inherited 
  • GTP/trunk/Lib/Illum/IllumModule/IllumModule/include/RenderingRuns/PhaseTextureRenderingRun.h

    r2240 r2320  
    2828        } 
    2929 
     30        virtual ~PhaseTextureRenderingRun(){} 
     31 
    3032protected: 
    3133        /** 
  • GTP/trunk/Lib/Illum/IllumModule/IllumModule/include/RenderingRuns/PhotonMapRenderingRun.h

    r780 r2320  
    2424        } 
    2525 
     26        virtual ~PhotonMapRenderingRun(){} 
     27 
    2628protected: 
    2729    //inherited 
  • GTP/trunk/Lib/Illum/IllumModule/IllumModule/include/RenderingRuns/ReducedCubeMapRenderingRun.h

    r2240 r2320  
    3333 
    3434         
     35        virtual ~ReducedCubeMapRenderingRun(){} 
     36 
    3537protected: 
    3638        /** 
  • GTP/trunk/Lib/Illum/IllumModule/IllumModule/include/RenderingRuns/SceneCameraDepthRenderingRun.h

    r2240 r2320  
    1818        } 
    1919 
     20        virtual ~SceneCameraDepthRenderingRun(){} 
     21 
    2022protected: 
    2123     
  • GTP/trunk/Lib/Illum/IllumModule/IllumModule/include/SharedRuns.h

    r2240 r2320  
    175175        */ 
    176176        virtual void unbindAndKillParent(){delete parent; parent = 0;} 
     177 
     178        virtual void freeAllResources()=0; 
    177179         
    178180protected: 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/include/OgreIlluminationManager.h

    r2298 r2320  
    549549        */ 
    550550        void setFireRenderTargetSize(int size){FireRenderTarget::targetsize = size;} 
     551 
     552        void freeAllResources(); 
    551553}; 
    552554 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/include/OgreRenderTechnique.h

    r2240 r2320  
    4242                                                OgreRenderable* parentRenderable, 
    4343                                                OgreTechniqueGroup* parentTechniqueGroup); 
    44                 ~OgreRenderTechnique( ); 
     44                virtual ~OgreRenderTechnique( ); 
    4545 
    4646                //inherited 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/include/OgreRenderingRun.h

    r2240 r2320  
    2525                fullscreenGrid = 0; 
    2626        } 
     27         
     28        virtual ~OgreRenderingRun(){} 
    2729        /** 
    2830                @brief Conversion to OgreRenderRun. 
     
    3234        OgreRenderingRun* asOgreRenderingRun(){return this;} 
    3335 
    34          
    3536protected: 
    3637 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/include/OgreSharedRuns.h

    r2240 r2320  
    189189        void runChanged(RenderingRunType runType, RenderingRun* run); 
    190190        //inherited 
    191         virtual void addTechniqueGroup(TechniqueGroup* group){childTechniqueGroups.push_back(group);} 
     191        void addTechniqueGroup(TechniqueGroup* group){childTechniqueGroups.push_back(group);} 
     192        void removeTechniqueGroups() 
     193        { 
     194                std::vector<TechniqueGroup*>::iterator it = childTechniqueGroups.begin(); 
     195                std::vector<TechniqueGroup*>::iterator itend = childTechniqueGroups.end(); 
     196                while(it != itend) 
     197                { 
     198                        TechniqueGroup* tg = (*it); 
     199                        childTechniqueGroups.erase(it); 
     200                        delete tg; 
     201                        it++; 
     202                } 
     203                childTechniqueGroups.clear(); 
     204        } 
    192205        /** 
    193206         @brief Sets the given material for all connected renderables. 
     
    202215        */ 
    203216        void restoreMaterial(); 
     217 
     218        void freeAllResources(); 
    204219 
    205220protected: 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/include/OgreTechniqueGroup.h

    r790 r2320  
    1414{ 
    1515public: 
     16        ~OgreTechniqueGroup(); 
    1617        //inherited 
    1718        void addRenderTechnique(RenderTechnique* technique); 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/include/RenderTechniques/OgreCausticCasterRenderTechnique.h

    r2299 r2320  
    5656                @brief Destructor. 
    5757        */ 
    58         ~OgreCausticCasterRenderTechnique();     
     58        virtual ~OgreCausticCasterRenderTechnique();     
    5959        /** 
    6060                @brief Returns the name of the created caustic cubemap. 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/include/RenderTechniques/OgreCausticReceiverRenderTechnique.h

    r2299 r2320  
    5757                @brief Destructor. 
    5858        */ 
    59         ~OgreCausticReceiverRenderTechnique(); 
     59        virtual ~OgreCausticReceiverRenderTechnique(); 
    6060         
    6161        //inherited 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/include/RenderTechniques/OgreColorCubeMapRenderTechnique.h

    r2240 r2320  
    7272                @brief Destructor. 
    7373        */ 
    74         ~OgreColorCubeMapRenderTechnique(); 
     74        virtual ~OgreColorCubeMapRenderTechnique(); 
    7575         
    7676        //inherited 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/include/RenderTechniques/OgreConvolvedCubeMapRenderTechnique.h

    r2240 r2320  
    7272                @brief Destructor. 
    7373        */ 
    74         ~OgreConvolvedCubeMapRenderTechnique(); 
     74        virtual ~OgreConvolvedCubeMapRenderTechnique(); 
    7575         
    7676        //inherited 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/include/RenderTechniques/OgreCubeMapRenderTechnique.h

    r2240 r2320  
    7373                @brief Destructor. 
    7474        */ 
    75         ~OgreCubeMapRenderTechnique(); 
     75        virtual ~OgreCubeMapRenderTechnique(); 
    7676         
    7777                 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/include/RenderTechniques/OgreDepthShadowReceiverRenderTechnique.h

    r2299 r2320  
    7474                @brief Destructor. 
    7575        */ 
    76         ~OgreDepthShadowReceiverRenderTechnique(); 
     76        virtual ~OgreDepthShadowReceiverRenderTechnique(); 
    7777         
    7878        //inherited 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/include/RenderTechniques/OgreDistanceCubeMapRenderTechnique.h

    r2240 r2320  
    7272                @brief Destructor. 
    7373        */ 
    74         ~OgreDistanceCubeMapRenderTechnique(); 
     74        virtual ~OgreDistanceCubeMapRenderTechnique(); 
    7575         
    7676        //inherited 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/include/RenderTechniques/OgreFireRenderTechnique.h

    r2240 r2320  
    2121 
    2222        FireRenderTarget();      
     23        ~FireRenderTarget();     
    2324}; 
    2425 
     
    5455                                                        OgreTechniqueGroup* parentTechniqueGroup 
    5556                                                        ); 
    56         ~OgreFireRenderTechnique(); 
     57        virtual ~OgreFireRenderTechnique(); 
    5758         
    5859        //inherited 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/include/RenderTechniques/OgreHierarchicalParticleSystemTechnique.h

    r2240 r2320  
    5858                @brief Destructor. 
    5959        */ 
    60         ~OgreHierarchicalParticleSystemTechnique(); 
     60        virtual ~OgreHierarchicalParticleSystemTechnique(); 
    6161 
    6262                 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/include/RenderTechniques/OgreIllumVolumeRenderTechnique.h

    r2302 r2320  
    5252                @brief Destructor. 
    5353        */ 
    54         ~OgreIllumVolumeRenderTechnique(); 
     54        virtual ~OgreIllumVolumeRenderTechnique(); 
    5555         
    5656protected: 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/include/RenderTechniques/OgrePathMapRenderTechnique.h

    r2299 r2320  
    4141                @brief Destructor. 
    4242        */ 
    43         ~OgrePathMapRenderTechnique(); 
     43        virtual ~OgrePathMapRenderTechnique(); 
    4444         
    4545        //inherited 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/include/RenderTechniques/OgreSBBRenderTechnique.h

    r2240 r2320  
    3838                                                        OgreTechniqueGroup* parentTechniqueGroup 
    3939                                                        ); 
    40         ~OgreSBBRenderTechnique(); 
     40        virtual ~OgreSBBRenderTechnique(); 
    4141         
    4242        //inherited 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/include/RenderingRuns/OgreCausticCubeMapRenderingRun.h

    r2240 r2320  
    4848                                                                 bool blurMap 
    4949                                                                 ); 
     50 
     51        virtual ~OgreCausticCubeMapRenderingRun(){} 
    5052        /** 
    5153                @brief returns the name of the resulting caustic cubemap texture 
     
    7779        */ 
    7880        void setBlurMap(bool blur){blurMap = blur;} 
     81 
     82        void freeAllResources(); 
    7983 
    8084protected: 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/include/RenderingRuns/OgreChildPSystemRenderingRun.h

    r2251 r2320  
    4646                                                                String materialName 
    4747                                                                ); 
     48 
     49        virtual ~OgreChildPSystemRenderingRun(){} 
     50 
    4851        /** 
    4952                @brief returns the name of the resulting photon hit map 
     
    6164        */ 
    6265        Real getSmallSysRadius(){return sysRad;} 
     66 
     67        void freeAllResources(); 
    6368 
    6469protected:       
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/include/RenderingRuns/OgreCubeMapRenderingRun.h

    r2251 r2320  
    5656                                                                 bool getMinMax, 
    5757                                                                 RenderingRunType cubemapRunType); 
     58 
     59        virtual ~OgreCubeMapRenderingRun(){} 
     60 
    5861        /** 
    5962                @brief returns the name of the resulting color cubemap texture 
     
    6366        Vector4 getMax(){return max;} 
    6467        Vector4 getMin(){return min;} 
     68 
     69        void freeAllResources(); 
    6570         
    6671protected: 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/include/RenderingRuns/OgreDepthShadowMapRenderingRun.h

    r2264 r2320  
    3939                                                                                String materialName); 
    4040 
     41        virtual ~OgreDepthShadowMapRenderingRun(){} 
     42 
     43 
    4144        /** 
    4245                @brief returns the depth shadow map texture created by this run 
     
    6063        */ 
    6164        Real getLightFarPlane(){return lightFarPlane;} 
     65 
     66        void freeAllResources(); 
    6267 
    6368protected:       
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/include/RenderingRuns/OgreFocusingMapRenderingRun.h

    r2264 r2320  
    3030                                                                Matrix4 lightMatrix, 
    3131                                                                unsigned int focusingMapSize); 
     32 
     33        virtual ~OgreFocusingMapRenderingRun(){} 
    3234        /** 
    3335                @brief returns the name of the focusing texture 
     
    4850        */ 
    4951        void setCameraMatrices(const Matrix4 &view, const Matrix4 &projection); 
     52 
     53        void freeAllResources(); 
    5054         
    5155protected: 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/include/RenderingRuns/OgreLightVolumeRenderingRun.h

    r2264 r2320  
    3838                                                                unsigned int textureDepth, 
    3939                                                                String materialName); 
     40 
     41        virtual ~OgreLightVolumeRenderingRun(){} 
     42 
    4043        /** 
    4144                @brief returns the name of the resulting light volume texture 
     
    6871        } 
    6972         
     73        void freeAllResources(); 
     74 
    7075protected:       
    7176        /** 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/include/RenderingRuns/OgrePMEntryPointMapRenderingRun.h

    r2264 r2320  
    2828        */       
    2929        OgrePMEntryPointMapRenderingRun(String name); 
     30 
     31        virtual ~OgrePMEntryPointMapRenderingRun(){} 
     32 
    3033        /** 
    3134                @brief returns the name of the entry point texture 
     
    3841        */ 
    3942        String getClusterLengthTextureName(){return clusterLengthTexture->getName();} 
     43 
     44        void freeAllResources(); 
    4045         
    4146protected: 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/include/RenderingRuns/OgrePMWeightComputeRenderingRun.h

    r2264 r2320  
    2929        */       
    3030        OgrePMWeightComputeRenderingRun(String name, String LightName); 
     31 
     32        virtual ~OgrePMWeightComputeRenderingRun(){} 
     33 
    3134        /** 
    3235                @brief returns the name of the weight texture 
     
    3538        //not used 
    3639        float* getWeights(){return weights;} 
     40 
     41        void freeAllResources(); 
    3742         
    3843protected: 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/include/RenderingRuns/OgrePhaseTextureRenderingRun.h

    r2264 r2320  
    3434                                                                                String materialName); 
    3535 
     36        virtual ~OgrePhaseTextureRenderingRun(){} 
     37 
    3638        /** 
    3739                @brief returns the name of thew phase texture created by this run 
    3840        */ 
    3941        String getPhaseTextureName(){return name;} 
     42 
     43        void freeAllResources(); 
    4044         
    4145protected:       
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/include/RenderingRuns/OgrePhotonMapRenderingRun.h

    r2264 r2320  
    3939                                                                String materialName, 
    4040                                                                bool useDistance); 
     41 
     42        virtual ~OgrePhotonMapRenderingRun(){} 
     43 
    4144        /** 
    4245                @brief returns the name of the resulting photon hit map texture 
     
    5962        //inherited      
    6063        void distanceCubeMapUpdated(RenderingRun* run); 
     64 
     65        void freeAllResources(); 
    6166         
    6267protected:       
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/include/RenderingRuns/OgreReducedCubeMapRenderingRun.h

    r2264 r2320  
    4646                                                                 bool updateAllFace = false); 
    4747 
     48        virtual ~OgreReducedCubeMapRenderingRun(){} 
     49 
    4850        /** 
    4951                @brief returns the name of the resulting downsampled color cubemap texture 
     
    5355        //inherited 
    5456        void colorCubeMapChanged(String& newMapName); 
     57 
     58        void freeAllResources(); 
    5559 
    5660protected:       
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/include/RenderingRuns/OgreSceneCameraDepthRenderingRun.h

    r2264 r2320  
    3131                                                                String name, 
    3232                                                                Viewport* playerView); 
     33 
     34        virtual ~OgreSceneCameraDepthRenderingRun(){} 
     35 
    3336        /** 
    3437                @brief returns the name of the camera depth texture 
     
    3639        String getDepthTextureName(){return name;} 
    3740 
     41        void freeAllResources(); 
    3842         
    3943protected: 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/src/OgreIlluminationManager.cpp

    r2285 r2320  
    181181} 
    182182 
     183void OgreIlluminationManager::freeAllResources() 
     184{ 
     185        std::list<SharedRuns*>::iterator srit = this->sharedRunRoots.begin(); 
     186        std::list<SharedRuns*>::iterator sritend = this->sharedRunRoots.end(); 
     187        while(srit != sritend) 
     188        { 
     189                (*srit)->freeAllResources(); 
     190                srit++; 
     191        } 
     192        sharedRunRoots.clear(); 
     193 
     194        this->sharedRunRoots.clear(); 
     195 
     196        this->globalSharedRuns.freeAllResources(); 
     197                 
     198        std::map<String, OgreSharedRuns*>::iterator lrit = this->perLightRuns.begin(); 
     199        std::map<String, OgreSharedRuns*>::iterator lritend = this->perLightRuns.end(); 
     200 
     201        while(lrit != lritend) 
     202        { 
     203                OgreSharedRuns* lightRuns = ((*lrit).second); 
     204                perLightRuns.erase(lrit); 
     205                lightRuns->freeAllResources(); 
     206                delete lightRuns; 
     207                lrit++; 
     208        } 
     209        perLightRuns.clear(); 
     210 
     211        std::map<enum GlobalTargetType, GlobalUseRenderTarget*>::iterator grtit = this->globalTargets.begin(); 
     212        std::map<enum GlobalTargetType, GlobalUseRenderTarget*>::iterator grtitend = this->globalTargets.end(); 
     213        while(grtit != grtitend) 
     214        { 
     215                GlobalUseRenderTarget* rt = (*grtit).second; 
     216                globalTargets.erase(grtit); 
     217                delete rt; 
     218                grtit++; 
     219        } 
     220 
     221        this->pathMapClusters.clear(); 
     222        this->pathMapEntryPoints.clear(); 
     223 
     224        //delete rendertechniquegroups and cloned materials 
     225        SceneManager::MovableObjectIterator it = Root::getSingleton()._getCurrentSceneManager() 
     226                                                                                                        ->getMovableObjectIterator("Entity"); 
     227        while(it.hasMoreElements()) 
     228        { 
     229                MovableObject* o = it.getNext(); 
     230                Entity* e = (Entity*) o; 
     231                 
     232                if( e->getParentSceneNode() == 0 )//Entity not attached 
     233                break; 
     234 
     235                for(unsigned int s = 0; s < e->getNumSubEntities(); s++) 
     236                { 
     237                        SubEntity* sube = e->getSubEntity(s); 
     238 
     239                        Material* mat = sube->getMaterial().getPointer(); 
     240 
     241                        for(unsigned int t = 0 ; t < mat->getNumTechniques() ; t++) 
     242                        { 
     243                                Technique* tech = mat->getTechnique(t); 
     244 
     245                                for(unsigned int p = 0; p< tech->getNumPasses(); p++) 
     246                                { 
     247                                        Pass* pass = tech->getPass(p); 
     248 
     249                                        std::vector<IllumTechniqueParams*>& techniques = pass->getIllumTechniques(); 
     250                                        if( techniques.size() > 0) 
     251                                        { 
     252                                                OgreTechniqueGroup* tg =  (OgreTechniqueGroup*) sube->getRenderTechniqueGroup(); 
     253                                                delete tg; 
     254                                                sube->setRenderTechniqueGroup(0); 
     255                                        } 
     256                                } 
     257                        } 
     258 
     259                        MaterialManager::getSingleton().remove(mat->getName()); 
     260                } 
     261        } 
     262 
     263         
     264 
     265         
     266} 
     267 
    183268void OgreIlluminationManager::initTechniques(Entity* e) 
    184269{ 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/src/OgreSharedRuns.cpp

    r2265 r2320  
    11#include "..\include\OgreSharedRuns.h" 
    22#include "OgreIlluminationManager.h" 
     3 
     4void OgreSharedRuns::freeAllResources() 
     5{ 
     6        if(child1 != 0)//node 
     7        { 
     8                child1->freeAllResources(); 
     9                child2->freeAllResources(); 
     10        }        
     11        else //leaf 
     12        { 
     13                std::map<RenderingRunType, RenderingRun*>::iterator it = sharedRuns.begin(); 
     14                std::map<RenderingRunType, RenderingRun*>::iterator itend = sharedRuns.end(); 
     15                while(it != itend) 
     16                { 
     17                        RenderingRun* rr = (*it).second; 
     18                        rr->freeAllResources(); 
     19        //              sharedRuns.erase(it); 
     20                        delete rr->asOgreRenderingRun(); 
     21                        ++it; 
     22                } 
     23                sharedRuns.clear(); 
     24        } 
     25} 
    326 
    427void OgreSharedRuns::runChanged(RenderingRunType runType, RenderingRun* run) 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/src/OgreTechniqueGroup.cpp

    r790 r2320  
    11#include "OgreTechniqueGroup.h" 
    22 
     3 
     4OgreTechniqueGroup::~OgreTechniqueGroup() 
     5{ 
     6        std::vector<OgreRenderTechnique*>::iterator it = renderTechniques.begin(); 
     7        std::vector<OgreRenderTechnique*>::iterator itend = renderTechniques.end(); 
     8        while(it != itend) 
     9        { 
     10                OgreRenderTechnique* rt = *it; 
     11                delete rt; 
     12                it++; 
     13        }        
     14        renderTechniques.clear();        
     15} 
    316 
    417void OgreTechniqueGroup::addRenderTechnique(RenderTechnique* technique) 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/src/RenderTechniques/OgreCausticCasterRenderTechnique.cpp

    r2265 r2320  
    5656OgreCausticCasterRenderTechnique::~OgreCausticCasterRenderTechnique() 
    5757{ 
    58  
     58        MaterialManager::getSingleton().remove(causticMapMaterialName); 
    5959} 
    6060 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/src/RenderTechniques/OgreFireRenderTechnique.cpp

    r1055 r2320  
    6868        mrt->update(); 
    6969        sm->setFindVisibleObjects(true); 
     70} 
     71 
     72FireRenderTarget::~FireRenderTarget() 
     73{ 
     74        TextureManager::getSingleton().remove("ILLUM_FIRE_COLOR_TEXTURE"); 
     75        TextureManager::getSingleton().remove("ILLUM_FIRE_HEAT_TEXTURE"); 
    7076} 
    7177 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/src/RenderingRuns/OgreCausticCubeMapRenderingRun.cpp

    r1688 r2320  
    9797        return true; 
    9898} 
     99 
     100void OgreCausticCubeMapRenderingRun::freeAllResources() 
     101{ 
     102        TextureManager::getSingleton().remove(name); 
     103        TextureManager::getSingleton().remove(name + "_BLURED"); 
     104        Root::getSingleton()._getCurrentSceneManager()->destroyCamera(name + "_CAMERA");         
     105        Root::getSingleton()._getCurrentSceneManager()->destroyCamera(name + "_BLURED" + "_CAMERA");     
     106} 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/src/RenderingRuns/OgreChildParticlesystemRenderingRun.cpp

    r2192 r2320  
    132132} 
    133133 
     134void OgreChildPSystemRenderingRun::freeAllResources() 
     135{ 
     136        TextureManager::getSingleton().remove(name); 
     137        Root::getSingleton()._getCurrentSceneManager()->destroyCamera(name + "_CAMERA");         
     138} 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/src/RenderingRuns/OgreCubeMapRenderingRun.cpp

    r2265 r2320  
    243243        return true; 
    244244} 
     245 
     246void OgreCubeMapRenderingRun::freeAllResources() 
     247{ 
     248        TextureManager::getSingleton().remove(name); 
     249        Root::getSingleton()._getCurrentSceneManager()->destroyCamera(name + "_CAMERA");         
     250} 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/src/RenderingRuns/OgreDepthShadowMapRenderingRun.cpp

    r2297 r2320  
    391391} 
    392392 
     393void OgreDepthShadowMapRenderingRun::freeAllResources() 
     394{ 
     395        TextureManager::getSingleton().remove(name); 
     396        TextureManager::getSingleton().remove(blurredname); 
     397        Root::getSingleton()._getCurrentSceneManager()->destroyCamera(name + "_CAMERA");         
     398} 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/src/RenderingRuns/OgreFocusingMapRenderingRun.cpp

    r2265 r2320  
    124124} 
    125125 
     126void OgreFocusingMapRenderingRun::freeAllResources() 
     127{ 
     128        TextureManager::getSingleton().remove(name); 
     129        Root::getSingleton()._getCurrentSceneManager()->destroyCamera(name + "_CAMERA");         
     130} 
    126131 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/src/RenderingRuns/OgreLightVolumeRenderingRun.cpp

    r1987 r2320  
    255255} 
    256256 
     257void OgreLightVolumeRenderingRun::freeAllResources() 
     258{ 
     259        TextureManager::getSingleton().remove(name); 
     260        TextureManager::getSingleton().remove(name + "NoBlur"); 
     261        Root::getSingleton()._getCurrentSceneManager()->destroyCamera(name + "_CAMERA");         
     262} 
     263 
    257264 
    258265  
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/src/RenderingRuns/OgrePMEntryPointMapRenderingRun.cpp

    r2200 r2320  
    8686} 
    8787 
     88void OgrePMEntryPointMapRenderingRun::freeAllResources() 
     89{ 
     90        TextureManager::getSingleton().remove(name); 
     91        TextureManager::getSingleton().remove(name + "_CL");     
     92} 
    8893 
     94 
     95 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/src/RenderingRuns/OgrePMWeightComputeRenderingRun.cpp

    r2249 r2320  
    170170} 
    171171 
     172void OgrePMWeightComputeRenderingRun::freeAllResources() 
     173{ 
     174        TextureManager::getSingleton().remove(name); 
     175        Root::getSingleton()._getCurrentSceneManager()->destroyCamera(name + "_CAMERA");         
    172176 
     177        TextureManager::getSingleton().remove(name + "_ALL"); 
     178        Root::getSingleton()._getCurrentSceneManager()->destroyCamera(name + "_ALL" + "_CAMERA"); 
     179} 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/src/RenderingRuns/OgrePhaseTextureRenderingRun.cpp

    r1425 r2320  
    4646        renderFullscreenQuad(materialName, rt);  
    4747} 
     48 
     49void OgrePhaseTextureRenderingRun::freeAllResources() 
     50{ 
     51        TextureManager::getSingleton().remove(name); 
     52        Root::getSingleton()._getCurrentSceneManager()->destroyCamera(name + "_CAMERA");         
     53} 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/src/RenderingRuns/OgrePhotonMapRenderingRun.cpp

    r1722 r2320  
    152152        fpParams->setNamedConstant("lastCenter",center); 
    153153} 
    154   
     154 
     155void OgrePhotonMapRenderingRun::freeAllResources() 
     156{ 
     157        TextureManager::getSingleton().remove(name); 
     158        Root::getSingleton()._getCurrentSceneManager()->destroyCamera(name + "_CAMERA");         
     159} 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/src/RenderingRuns/OgreReducedCubeMapRenderingRun.cpp

    r2055 r2320  
    105105 
    106106} 
     107 
     108void OgreReducedCubeMapRenderingRun::freeAllResources() 
     109{ 
     110        TextureManager::getSingleton().remove(name); 
     111        Root::getSingleton()._getCurrentSceneManager()->destroyCamera(name + "_CAMERA");         
     112} 
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/src/RenderingRuns/OgreSceneCameraDepthRenderingRun.cpp

    r2302 r2320  
    6565} 
    6666 
     67void OgreSceneCameraDepthRenderingRun::freeAllResources() 
     68{ 
     69        TextureManager::getSingleton().remove(name);     
     70} 
Note: See TracChangeset for help on using the changeset viewer.