Ignore:
Timestamp:
05/06/06 18:47:53 (19 years ago)
Author:
mattausch
Message:

added updates for visibility

Location:
OGRE/trunk/ogre_changes/Ogre1.2/OgreMain/src
Files:
4 added
1 edited

Legend:

Unmodified
Added
Removed
  • OGRE/trunk/ogre_changes/Ogre1.2/OgreMain/src/OgreSceneManager.cpp

    r768 r921  
    10461046 
    10471047        // Prepare render queue for receiving new objects 
    1048 #ifdef GAMETOOLS_ILLUMINATION_MODULE  
    1049         if (mFindVisibleObjects) 
    1050                 prepareRenderQueue(); 
    1051 #else 
    1052                 prepareRenderQueue(); 
    1053 #endif 
    1054  
     1048        prepareRenderQueue(); 
    10551049 
    10561050    if (mFindVisibleObjects) 
     
    13041298            } 
    13051299            // Set active frame 
    1306             boxMat->getBestTechnique()->getPass(0)->getTextureUnitState(0) 
    1307                 ->setCurrentFrame(i); 
     1300                        Material::TechniqueIterator ti = boxMat->getSupportedTechniqueIterator(); 
     1301                        while (ti.hasMoreElements()) 
     1302                        { 
     1303                                Technique* tech = ti.getNext(); 
     1304                                tech->getPass(0)->getTextureUnitState(0)->setCurrentFrame(i); 
     1305                        } 
    13081306 
    13091307            mSkyBoxEntity[i]->setMaterialName(boxMat->getName()); 
     
    22072205        return false; 
    22082206    } 
    2209  
    2210 #ifdef GAMETOOLS_ILLUMINATION_MODULE 
    2211         if(!pass->isActive()) 
    2212                 return false; 
    2213 #endif 
    22142207 
    22152208    return true; 
     
    41664159        mShadowIndexBuffer = HardwareBufferManager::getSingleton(). 
    41674160            createIndexBuffer(HardwareIndexBuffer::IT_16BIT,  
    4168             mShadowIndexBufferSize,  
     4161            size,  
    41694162            HardwareBuffer::HBU_DYNAMIC_WRITE_ONLY_DISCARDABLE,  
    41704163            false); 
     
    48594852} 
    48604853 
    4861 } 
     4854#ifdef GTP_VISIBILITY_MODIFIED_OGRE 
     4855//----------------------------------------------------------------------- 
     4856const Pass* SceneManager::setPassWrapper(Pass* pass) 
     4857{ 
     4858        return _setPass(pass); 
     4859} 
     4860//----------------------------------------------------------------------- 
     4861void SceneManager::_renderSceneNode(Camera *cam, SceneNode *node, const int leavePassesInQueue) 
     4862{ 
     4863        // delete previously rendered objects from renderqueue 
     4864        _deleteRenderedQueueGroups(leavePassesInQueue); 
     4865 
     4866        node->_findVisibleObjects(cam, getRenderQueue(), false, mDisplayNodes, false); 
     4867        SceneManager::_renderVisibleObjects(); 
     4868} 
     4869//----------------------------------------------------------------------- 
     4870void SceneManager::_deleteRenderedQueueGroups(const int leavePassesInQueue) 
     4871{        
     4872        RenderQueue::QueueGroupIterator queueIt =  
     4873                getRenderQueue()->_getQueueGroupIterator(); 
     4874 
     4875        //-- find currently processed queue groups and delelete them from render queue 
     4876        while (queueIt.hasMoreElements()) 
     4877        { 
     4878                RenderQueueGroupID qId = static_cast<RenderQueueGroupID>(queueIt.peekNextKey()); 
     4879                RenderQueueGroup* pGroup = queueIt.getNext(); 
     4880 
     4881                if (isRenderQueueToBeProcessed(qId)) 
     4882                { 
     4883                        pGroup->clear(leavePassesInQueue); 
     4884                } 
     4885        }        
     4886 
     4887        // Now trigger the pending pass updates 
     4888        // Pass::processPendingPassUpdates(); 
     4889} 
     4890 
     4891//----------------------------------------------------------------------- 
     4892/*void SceneManager::renderEntity(Entity *ent) 
     4893{ 
     4894        int n = (int)ent->getNumSubEntities(); 
     4895 
     4896        for (int i = 0; i < n; ++i) 
     4897        { 
     4898                Pass *pass = setPass(ent->getSubEntity(i)->getTechnique()->getPass(0)); 
     4899 
     4900                _renderSingleObject(ent->getSubEntity(i), pass, false); 
     4901        } 
     4902}*/ 
     4903//----------------------------------------------------------------------- 
     4904void SceneManager::_renderMovableObject(MovableObject *mov, const int leavePassesInQueue) 
     4905{ 
     4906        // delete previously rendered objects from renderqueue 
     4907        _deleteRenderedQueueGroups(leavePassesInQueue); 
     4908 
     4909        mov->_updateRenderQueue(getRenderQueue()); 
     4910        SceneManager::_renderVisibleObjects(); 
     4911} 
     4912//----------------------------------------------------------------------- 
     4913void SceneManager::_renderSingleRenderable(Renderable *rend) 
     4914{ 
     4915        Pass *pass = rend->getTechnique()->getPass(0); 
     4916        _setPass(pass); 
     4917        renderSingleObject(rend, pass, false); 
     4918} 
     4919//----------------------------------------------------------------------- 
     4920void SceneManager::useRenderableViewProjModeWrapper(Renderable* pRend) 
     4921{ 
     4922        useRenderableViewProjMode(pRend); 
     4923} 
     4924#endif //GTP_VISIBILITY_MODIFIED_OGRE 
     4925 
     4926} 
Note: See TracChangeset for help on using the changeset viewer.