Ignore:
Timestamp:
05/11/06 10:19:54 (18 years ago)
Author:
szirmay
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • GTP/trunk/Lib/Illum/IllumModule/OgreIllumModule/src/OgreIlluminationManager.cpp

    r874 r949  
    158158} 
    159159 
     160void OgreIlluminationManager::initTechniques(Entity* e) 
     161{ 
     162        OgreSharedRuns* sharedruns = 0; 
     163         
     164        for(unsigned int s = 0; s < e->getNumSubEntities(); s++) 
     165        { 
     166                SubEntity* sube = e->getSubEntity(s); 
     167 
     168                Material* mat = sube->getMaterial().getPointer(); 
     169                 
     170                OgreRenderable* rend = 0;        
     171                OgreTechniqueGroup* group = 0; 
     172         
     173                for(unsigned int t = 0 ; t < mat->getNumTechniques() ; t++) 
     174                { 
     175                        Technique* tech = mat->getTechnique(t); 
     176 
     177                        for(unsigned int p = 0; p< tech->getNumPasses(); p++) 
     178                        { 
     179                                Pass* pass = tech->getPass(p); 
     180 
     181                                std::vector<IllumTechniqueParams*>& techniques = pass->getIllumTechniques(); 
     182                                std::vector<IllumTechniqueParams*>::iterator i = techniques.begin();  
     183                                std::vector<IllumTechniqueParams*>::iterator iend = techniques.end(); 
     184                                 
     185                                while( i != iend) 
     186                                { 
     187                                        IllumTechniqueParams* params = *i; 
     188                                         
     189                                        if(rend == 0) 
     190                                        { 
     191                                                rend = new OgreRenderable(e, s); 
     192                                                group = new OgreTechniqueGroup(); 
     193                                                sube->setRenderTechniqueGroup(group);                                                    
     194                                                 
     195                                                if( sharedruns == 0) 
     196                                                {                                                                        
     197                                                        sharedruns  = new OgreSharedRuns(); 
     198                                                        addSharedRuns(sharedruns); 
     199                                                } 
     200 
     201                                                group->addSharedRun(sharedruns); 
     202                                                sharedruns->addRenderable(rend); 
     203                                                sharedruns->updateBounds(); 
     204                                        } 
     205                                         
     206                                        createTechnique(params, pass, rend, sharedruns);  
     207 
     208                                        i++; 
     209                                } 
     210                        } 
     211                } 
     212        } 
     213 
     214                 
     215} 
    160216 
    161217void OgreIlluminationManager::initTechniques() 
     
    170226                        Entity* e = (Entity*) o; 
    171227 
    172                         OgreSharedRuns* sharedruns = 0; 
     228                /*      OgreSharedRuns* sharedruns = 0; 
    173229                         
    174230                        for(unsigned int s = 0; s < e->getNumSubEntities(); s++) 
     
    222278                        } 
    223279 
     280                */ 
     281                        initTechniques(e); 
    224282                } 
    225283        } 
Note: See TracChangeset for help on using the changeset viewer.