1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-04-10 18:51:21 +03:00

0030135: Visualization, TKOpenGl - frame statistics do not include information about instanced structures

OpenGl_FrameStats now takes into account OpenGl_Structure::InstancedStructure().
OpenGl_View::renderStructs() - fixed resetting non-culled structure counters.
This commit is contained in:
kgv 2018-09-13 17:34:08 +03:00 committed by apn
parent 6b1800cb76
commit 0de16e296a
2 changed files with 108 additions and 105 deletions

View File

@ -399,8 +399,11 @@ void OpenGl_FrameStats::updateStructures (Standard_Integer theViewId,
for (OpenGl_IndexedMapOfStructure::Iterator aStructIter (theStructures); aStructIter.More(); aStructIter.Next())
{
const OpenGl_Structure* aStruct = aStructIter.Value();
if (aStruct->IsCulled()
|| !aStruct->IsVisible (theViewId))
const bool isStructHidden = aStruct->IsCulled()
|| !aStruct->IsVisible (theViewId);
for (; aStruct != NULL; aStruct = aStruct->InstancedStructure())
{
if (isStructHidden)
{
if (theToCountMem)
{
@ -525,3 +528,4 @@ void OpenGl_FrameStats::updateStructures (Standard_Integer theViewId,
}
}
}
}

View File

@ -1071,6 +1071,7 @@ void OpenGl_View::renderStructs (Graphic3d_Camera::Projection theProjection,
OpenGl_FrameBuffer* theOitAccumFbo,
const Standard_Boolean theToDrawImmediate)
{
myZLayers.UpdateCulling (myWorkspace, theToDrawImmediate);
if ( myZLayers.NbStructures() <= 0 )
return;
@ -1080,8 +1081,6 @@ void OpenGl_View::renderStructs (Graphic3d_Camera::Projection theProjection,
myRaytraceInitStatus == OpenGl_RT_FAIL ||
aCtx->IsFeedback();
myZLayers.UpdateCulling (myWorkspace, theToDrawImmediate);
if (!toRenderGL)
{
toRenderGL = !initRaytraceResources (aCtx) ||