- Timestamp:
- 05/06/05 01:39:32 (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/VUT/GtpVisibility/src/CoherentHierarchicalCullingManager.cpp
r85 r86 1 1 #include "CoherentHierarchicalCullingManager.h" 2 //#include <windows.h>2 #include <windows.h> 3 3 4 4 namespace GtpVisibility { … … 8 8 { 9 9 mNumFrustumCulledNodes = mNumQueryCulledNodes = 0; 10 //OutputDebugString("Coherent Culling\n");10 // OutputDebugString("Coherent Culling\n"); 11 11 12 12 QueryQueue queryQueue; 13 13 unsigned int visiblePixels = 0; 14 bool isAvailable = false; 15 14 16 //-- PART 1: process finished occlusion queries 15 17 while (!mHierarchyInterface->GetQueue()->empty() || !queryQueue.empty()) 16 18 { 17 19 while (!queryQueue.empty() && 18 (queryQueue.front().second->ResultAvailable() || mHierarchyInterface->GetQueue()->empty())) 20 queryQueue.front().second->GetQueryResult(visiblePixels, 21 mHierarchyInterface->GetQueue()->empty())) 19 22 { 20 23 HierarchyNode *node = queryQueue.front().first; 21 22 // wait until result available 23 unsigned int visiblePixels = queryQueue.front().second->GetQueryResult(); 24 24 25 25 queryQueue.pop(); 26 26 … … 67 67 68 68 // identify nodes that we cannot skip queries for 69 bool mustQuery = !wasVisible || mHierarchyInterface->HasGeometry(node) || mHierarchyInterface->IsLeaf(node); 69 bool mustQuery = !wasVisible || mHierarchyInterface->HasGeometry(node) || 70 mHierarchyInterface->IsLeaf(node); 70 71 71 72 // reset node's visibility classification … … 78 79 if (mustQuery) 79 80 { 80 queryQueue.push(QueryPair(node, mHierarchyInterface->IssueOcclusionQuery(node))); 81 queryQueue.push(QueryPair(node, 82 mHierarchyInterface->IssueOcclusionQuery(node, wasVisible))); 81 83 } 82 84
Note: See TracChangeset
for help on using the changeset viewer.