diff --git a/interface/src/ui/overlays/Overlays.cpp b/interface/src/ui/overlays/Overlays.cpp index a9eb9184dd..eb2c0d77a7 100644 --- a/interface/src/ui/overlays/Overlays.cpp +++ b/interface/src/ui/overlays/Overlays.cpp @@ -87,11 +87,10 @@ void Overlays::renderHUD() { QReadLocker lock(&_lock); auto lodManager = DependencyManager::get(); - RenderArgs args = { NULL, Application::getInstance()->getViewFrustum(), - lodManager->getOctreeSizeScale(), - lodManager->getBoundaryLevelAdjust(), - RenderArgs::DEFAULT_RENDER_MODE, RenderArgs::MONO, RenderArgs::RENDER_DEBUG_NONE, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; + RenderArgs args(NULL, Application::getInstance()->getViewFrustum(), + lodManager->getOctreeSizeScale(), + lodManager->getBoundaryLevelAdjust(), + RenderArgs::DEFAULT_RENDER_MODE, RenderArgs::MONO, RenderArgs::RENDER_DEBUG_NONE); foreach(Overlay* thisOverlay, _overlaysHUD) { if (thisOverlay->is3D()) { @@ -125,11 +124,10 @@ void Overlays::renderWorld(bool drawFront, float myAvatarScale = 1.0f; auto lodManager = DependencyManager::get(); - RenderArgs args = { NULL, Application::getInstance()->getDisplayViewFrustum(), - lodManager->getOctreeSizeScale(), - lodManager->getBoundaryLevelAdjust(), - renderMode, renderSide, renderDebugFlags, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; + RenderArgs args(NULL, Application::getInstance()->getDisplayViewFrustum(), + lodManager->getOctreeSizeScale(), + lodManager->getBoundaryLevelAdjust(), + renderMode, renderSide, renderDebugFlags); foreach(Overlay* thisOverlay, _overlaysWorld) { diff --git a/libraries/entities-renderer/src/EntityTreeRenderer.cpp b/libraries/entities-renderer/src/EntityTreeRenderer.cpp index c9a968a58e..041dde70bf 100644 --- a/libraries/entities-renderer/src/EntityTreeRenderer.cpp +++ b/libraries/entities-renderer/src/EntityTreeRenderer.cpp @@ -392,8 +392,8 @@ void EntityTreeRenderer::render(RenderArgs::RenderMode renderMode, ViewFrustum* frustum = (renderMode == RenderArgs::SHADOW_RENDER_MODE) ? _viewState->getShadowViewFrustum() : _viewState->getCurrentViewFrustum(); - RenderArgs args = { this, frustum, getSizeScale(), getBoundaryLevelAdjust(), renderMode, renderSide, - renderDebugFlags, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; + RenderArgs args(this, frustum, getSizeScale(), getBoundaryLevelAdjust(), + renderMode, renderSide, renderDebugFlags); _tree->lockForRead(); diff --git a/libraries/octree/src/OctreeRenderer.cpp b/libraries/octree/src/OctreeRenderer.cpp index 4347934d87..946ad3aa1b 100644 --- a/libraries/octree/src/OctreeRenderer.cpp +++ b/libraries/octree/src/OctreeRenderer.cpp @@ -167,8 +167,8 @@ bool OctreeRenderer::renderOperation(OctreeElement* element, void* extraData) { void OctreeRenderer::render(RenderArgs::RenderMode renderMode, RenderArgs::RenderSide renderSide, RenderArgs::DebugFlags renderDebugFlags) { - RenderArgs args = { this, _viewFrustum, getSizeScale(), getBoundaryLevelAdjust(), renderMode, renderSide, - renderDebugFlags, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; + RenderArgs args(this, _viewFrustum, getSizeScale(), getBoundaryLevelAdjust(), + renderMode, renderSide, renderDebugFlags); if (_tree) { _tree->lockForRead(); _tree->recurseTreeWithOperation(renderOperation, &args); diff --git a/libraries/shared/src/RenderArgs.h b/libraries/shared/src/RenderArgs.h index bc3e2edb6d..d2e7298d0f 100644 --- a/libraries/shared/src/RenderArgs.h +++ b/libraries/shared/src/RenderArgs.h @@ -22,10 +22,36 @@ public: enum RenderSide { MONO, STEREO_LEFT, STEREO_RIGHT }; enum DebugFlags { - RENDER_DEBUG_NONE=0, - RENDER_DEBUG_HULLS=1, - RENDER_DEBUG_SIMULATION_OWNERSHIP=2 + RENDER_DEBUG_NONE = 0, + RENDER_DEBUG_HULLS = 1, + RENDER_DEBUG_SIMULATION_OWNERSHIP = 2, }; + + RenderArgs(OctreeRenderer* _renderer = nullptr, + ViewFrustum* _viewFrustum = nullptr, + float _sizeScale = 1.0f, + int _boundaryLevelAdjust = 0, + RenderMode _renderMode = DEFAULT_RENDER_MODE, + RenderSide _renderSide = MONO, + DebugFlags _debugFlags = RENDER_DEBUG_NONE, + + int _elementsTouched = 0, + int _itemsRendered = 0, + int _itemsOutOfView = 0, + int _itemsTooSmall = 0, + + int _meshesConsidered = 0, + int _meshesRendered = 0, + int _meshesOutOfView = 0, + int _meshesTooSmall = 0, + + int _materialSwitches = 0, + int _trianglesRendered = 0, + int _quadsRendered = 0, + + int _translucentMeshPartsRendered = 0, + int _opaqueMeshPartsRendered = 0) { + } OctreeRenderer* _renderer; ViewFrustum* _viewFrustum;