Changeset 164 for trunk/VUT/Ogre/src/OgreItemBufferQueryManager.cpp
- Timestamp:
- 07/11/05 03:25:50 (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/VUT/Ogre/src/OgreItemBufferQueryManager.cpp
r159 r164 6 6 7 7 namespace Ogre { 8 8 9 //----------------------------------------------------------------------- 9 ItemBufferQueryManager::ItemBufferQueryManager(PlatformHierarchyInterface *hierarchyInterface, Viewport *vp, 10 ItemBufferQueryManager::ItemBufferQueryManager(PlatformHierarchyInterface *hierarchyInterface, 11 Viewport *vp, 10 12 const bool renderPatches): 11 13 PlatformQueryManager(hierarchyInterface, vp), mRenderPatchesForItemBuffer(renderPatches) … … 13 15 } 14 16 //----------------------------------------------------------------------- 15 bool ItemBufferQueryManager::ShootRay(const Ray &ray, std::vector<Mesh *> *visibleMeshes, bool isGlobalLine) 17 bool ItemBufferQueryManager::ShootRay(const Ray &ray, 18 std::vector<Mesh *> *visibleMeshes, 19 bool isGlobalLine) 16 20 { 17 21 // run OGRE ray shooting query … … 50 54 ColourValue bg = mViewport->getBackgroundColour(); 51 55 mViewport->setBackgroundColour(ColourValue(0, 0, 0, 0)); 56 pfHierarchyInterface->GetRenderSystem()->clearFrameBuffer(FBT_COLOUR | FBT_DEPTH); 52 57 58 //-- render item buffer 59 sm->_renderScene(pCam, mViewport, false); 60 //mViewport->getTarget()->update(); 53 61 54 // --- render item buffer 55 pfHierarchyInterface->GetSceneManager()->_renderScene(pCam, mViewport, false); 62 //for(int j=0; j<10000000; j++) printf("wait"); 56 63 57 64 … … 64 71 65 72 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 67 77 // loop through frame buffer & collect visible pixels 68 78 for (int idx = 0; idx < dimy * dimx * 3; idx += 3) 69 79 { 70 // 80 //-- decode color code to receive id 71 81 int id = buf[idx] << 16; 72 82 id += buf[idx + 1] << 8; 73 83 id += buf[idx + 2]; 74 84 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) 76 89 if ((id > 0) && (id < n)) 77 90 { … … 144 157 145 158 subEnt->setId(id); 159 subEnt->setId((41 << 16) + (4 << 8) + 60); 160 //subEnt->setId((2 << 16) + (4 << 8) + 60); 146 161 } 147 162
Note: See TracChangeset
for help on using the changeset viewer.