Ignore:
Timestamp:
09/28/06 19:26:26 (18 years ago)
Author:
gumbau
Message:

Demos upgraded to the new programming interface

File:
1 edited

Legend:

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

    r1321 r1529  
    4343 
    4444 
    45 void DumpDataToOgreBuffers(Ogre::Mesh *original_mesh, Geometry::LodTreeLibrary *lodTreesLib) 
     45/*void DumpDataToOgreBuffers(Ogre::Mesh *original_mesh, Geometry::LodTreeLibrary *lodTreesLib) 
    4646{ 
    4747        // Copy to Ogre buffers including the degenerated triangles 
     
    8181                ibuf->unlock(); 
    8282        } 
    83 } 
     83}*/ 
    8484 
    8585class FresnelFrameListener : public ExampleFrameListener 
     
    149149                { 
    150150                        myTrees->GoToLod(lodfactor); 
    151                         DumpDataToOgreBuffers(ogreMesh,myTrees); 
     151//                      DumpDataToOgreBuffers(ogreMesh,myTrees); 
    152152                        lodfactorBefore=lodfactor; 
    153153                } 
     
    207207}; 
    208208 
     209class CustomIndexData : public Geometry::IndexData 
     210{ 
     211private: 
     212        Ogre::Mesh *targetMesh; 
     213        Ogre::HardwareIndexBufferSharedPtr ibuf; 
     214        Ogre::RenderOperation mRenderOp; 
     215        unsigned long* pIdx; 
     216public: 
     217        CustomIndexData(Ogre::Mesh *ogremesh):Geometry::IndexData(){ 
     218                targetMesh=ogremesh; 
     219                pIdx=NULL; 
     220        } 
     221        virtual ~CustomIndexData(void){} 
     222 
     223        virtual void Begin(unsigned int submeshid, unsigned int indexcount){ 
     224                targetMesh->getSubMesh(submeshid)->_getRenderOperation(mRenderOp,0); 
     225                ibuf = mRenderOp.indexData->indexBuffer; 
     226                mRenderOp.indexData->indexCount = indexcount; 
     227                pIdx = static_cast<unsigned long*>(ibuf->lock(Ogre::HardwareBuffer::HBL_NORMAL)); 
     228        } 
     229        virtual void SetIndex(unsigned int i, unsigned int index){ 
     230                pIdx[i] = index; //lodStripsLib->dataRetrievalInterface->GetIndex(k+offset); 
     231        } 
     232        virtual void End(){ 
     233                ibuf->unlock(); 
     234        } 
     235 
     236        virtual void BorrowIndexData(const Geometry::IndexData *){} 
     237}; 
     238 
     239 
    209240class FresnelApplication : public ExampleApplication 
    210241{ 
     
    274305            OGRE_EXCEPT(1, "The loaded mesh does not contain LOD info for the foliage","LOD Demo"); 
    275306 
    276                 myTrees = new Geometry::LodTreeLibrary(meshloader->GetLodStripsData(),meshloader->GetTreeSimpSeq(),themesh); 
     307                myTrees = new Geometry::LodTreeLibrary( meshloader->GetLodStripsData(), 
     308                                                                                                meshloader->GetTreeSimpSeq(), 
     309                                                                                                themesh, 
     310                                                                                                new CustomIndexData(ogreMesh)); 
    277311 
    278312                entity->setNormaliseNormals(true); 
Note: See TracChangeset for help on using the changeset viewer.