diff options
| -rwxr-xr-x | indra/newview/llviewerregion.cpp | 28 | 
1 files changed, 16 insertions, 12 deletions
diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp index b3837a41fe..f549f6740d 100755 --- a/indra/newview/llviewerregion.cpp +++ b/indra/newview/llviewerregion.cpp @@ -1435,18 +1435,22 @@ void LLViewerRegion::killObject(LLVOCacheEntry* entry, std::vector<LLDrawable*>&  	if(!drawablep->getParent())  	{ -		//LLViewerObject::const_child_list_t& child_list = drawablep->getVObj()->getChildren(); -		//for (LLViewerObject::child_list_t::const_iterator iter = child_list.begin(); -		//	iter != child_list.end(); iter++) -		//{ -		//	LLViewerObject* child = *iter; -		//	if(child->mDrawable->isRecentlyVisible()) -		//	{ -		//		//set the parent group visible if any of its children visible. -		//		((LLViewerOctreeEntryData*)drawablep)->setVisible(); -		//		return; -		//	} -		//} +		LLViewerObject::const_child_list_t& child_list = drawablep->getVObj()->getChildren(); +		for (LLViewerObject::child_list_t::const_iterator iter = child_list.begin(); +			iter != child_list.end(); iter++) +		{ +			LLViewerObject* child = *iter; +			if(child->mDrawable) +			{ +				LLOcclusionCullingGroup* group = (LLOcclusionCullingGroup*)child->mDrawable->getGroup(); +				if(group && group->isAnyRecentlyVisible()) +				{ +					//set the parent group visible if any of its children visible. +					((LLViewerOctreeEntryData*)drawablep)->setVisible(); +					return; +				} +			} +		}  		delete_list.push_back(drawablep);				  	}				  }  | 
