Ignore:
Timestamp:
07/11/05 03:25:50 (19 years ago)
Author:
mattausch
Message:

bug fix (deleting while animation)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/VUT/Ogre/src/OgreItemBufferQueryManager.cpp

    r159 r164  
    66 
    77namespace Ogre { 
     8 
    89//-----------------------------------------------------------------------  
    9 ItemBufferQueryManager::ItemBufferQueryManager(PlatformHierarchyInterface *hierarchyInterface, Viewport *vp, 
     10ItemBufferQueryManager::ItemBufferQueryManager(PlatformHierarchyInterface *hierarchyInterface,  
     11                                                                                           Viewport *vp, 
    1012                                                                                           const bool renderPatches): 
    1113PlatformQueryManager(hierarchyInterface, vp), mRenderPatchesForItemBuffer(renderPatches) 
     
    1315} 
    1416//----------------------------------------------------------------------- 
    15 bool ItemBufferQueryManager::ShootRay(const Ray &ray, std::vector<Mesh *> *visibleMeshes, bool isGlobalLine) 
     17bool ItemBufferQueryManager::ShootRay(const Ray &ray,  
     18                                                                          std::vector<Mesh *> *visibleMeshes,  
     19                                                                          bool isGlobalLine) 
    1620{ 
    1721    // run OGRE ray shooting query 
     
    5054        ColourValue bg = mViewport->getBackgroundColour(); 
    5155        mViewport->setBackgroundColour(ColourValue(0, 0, 0, 0)); 
     56        pfHierarchyInterface->GetRenderSystem()->clearFrameBuffer(FBT_COLOUR | FBT_DEPTH); 
    5257 
     58        //-- render item buffer 
     59        sm->_renderScene(pCam, mViewport, false); 
     60    //mViewport->getTarget()->update(); 
    5361 
    54         // --- render item buffer 
    55         pfHierarchyInterface->GetSceneManager()->_renderScene(pCam, mViewport, false); 
     62//for(int j=0; j<10000000; j++) printf("wait"); 
    5663 
    5764 
     
    6471 
    6572        int n = mRenderPatchesForItemBuffer ? (int)visiblePatches->size() : (int)visibleGeometry->size(); 
    66          
     73 
     74        std::stringstream d; d << "dimx: " << dimx << ", dimy: " << dimy; 
     75        LogManager::getSingleton().logMessage(d.str()); 
     76 
    6777        // loop through frame buffer & collect visible pixels 
    6878        for (int idx = 0; idx < dimy * dimx * 3; idx += 3) 
    6979        { 
    70                 // -- decode color code to receive id 
     80                //-- decode color code to receive id 
    7181                int id = buf[idx] << 16; 
    7282                id += buf[idx + 1] << 8; 
    7383                id += buf[idx + 2]; 
    7484 
    75                 // if valid id <= add visibility (id values start at 1 
     85                std::stringstream d; d << "myid: " << (int)buf[idx] << " " << (int)buf[idx + 1] << " " << (int)buf[idx + 2]; 
     86                LogManager::getSingleton().logMessage(d.str()); 
     87 
     88                // if valid id <= add visibility (id values start at 1) 
    7689                if ((id > 0) && (id < n)) 
    7790                { 
     
    144157                                 
    145158                        subEnt->setId(id); 
     159                        subEnt->setId((41 << 16) + (4 << 8) + 60); 
     160                        //subEnt->setId((2 << 16) + (4 << 8) + 60); 
    146161                } 
    147162                         
Note: See TracChangeset for help on using the changeset viewer.