Ignore:
Timestamp:
08/31/06 17:11:13 (18 years ago)
Author:
gumbau
Message:

Demo efficiency improved (indexbuffers)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • GTP/trunk/App/Demos/Geom/Demo_LodTrees/main.cpp

    r1124 r1306  
    6767                } 
    6868 
    69                 ibuf = Ogre::HardwareBufferManager::getSingleton().createIndexBuffer(  
    70                         Ogre::HardwareIndexBuffer::IT_32BIT, // type of index  
    71                         indices_to_render, // number of indexes  
    72                         Ogre::HardwareBuffer::HBU_DISCARDABLE , // usage 
    73                         false); // no shadow buffer  
    74                                          
    75                 mRenderOp.indexData->indexBuffer = ibuf; 
     69                ibuf = mRenderOp.indexData->indexBuffer; 
    7670                mRenderOp.indexData->indexStart = 0; 
    7771                mRenderOp.indexData->indexCount = indices_to_render;             
     
    276270                Geometry::Mesh *themesh = meshloader->load("../../../OgreStuff/media/GT/ML12m.mesh"); 
    277271 
     272                if (!meshloader->GetLodStripsData()) 
     273            OGRE_EXCEPT(1, "The loaded mesh does not contain LOD info for the trunk","LOD Demo"); 
     274                if (!meshloader->GetTreeSimpSeq()) 
     275            OGRE_EXCEPT(1, "The loaded mesh does not contain LOD info for the foliage","LOD Demo"); 
     276 
    278277                myTrees = new Geometry::LodTreeLibrary(meshloader->GetLodStripsData(),meshloader->GetTreeSimpSeq(),themesh); 
    279278 
     
    283282                { 
    284283                        bool istrunk = myTrees->GetLeavesSubMesh()!=submesh; 
     284                        int indices_to_render = 0; 
    285285                        if (istrunk) 
     286                        { 
    286287                                entity->getSubEntity(submesh)->setMaterialName("Examples/Populifolia/trunk"); 
     288                                indices_to_render = myTrees->GetValidTrunkIndexCount(submesh); 
     289                        } 
    287290                        else 
     291                        { 
    288292                                entity->getSubEntity(submesh)->setMaterialName("Examples/Populifolia/leaf"); 
     293                                indices_to_render = myTrees->CurrentLOD_Foliage_IndexCount(); 
     294                        } 
     295 
     296                        Ogre::RenderOperation mRenderOp; 
     297                        ogreMesh->getSubMesh(submesh)->_getRenderOperation(mRenderOp,0); 
     298 
     299                        mRenderOp.indexData->indexBuffer = Ogre::HardwareBufferManager::getSingleton().createIndexBuffer(  
     300                                Ogre::HardwareIndexBuffer::IT_32BIT, // type of index  
     301                                indices_to_render, // number of indexes  
     302                                Ogre::HardwareBuffer::HBU_DISCARDABLE , // usage 
     303                                false); // no shadow buffer  
    289304                } 
    290305 
Note: See TracChangeset for help on using the changeset viewer.