From d8022aa5b0fbf93edcb88aba316e697b562938a1 Mon Sep 17 00:00:00 2001 From: Zach Pomerantz Date: Mon, 21 Dec 2015 14:31:03 -0800 Subject: [PATCH] Add back deferred debugging and combine context init --- interface/src/Application.cpp | 13 +++++-------- .../render-utils/src/RenderScriptingInterface.cpp | 5 +++++ .../render-utils/src/RenderScriptingInterface.h | 10 ++++------ libraries/render/src/render/Engine.cpp | 9 ++++++--- libraries/render/src/render/Engine.h | 7 ++++--- 5 files changed, 24 insertions(+), 20 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 36742db528..0f566c0480 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -3721,21 +3721,18 @@ void Application::displaySide(RenderArgs* renderArgs, Camera& theCamera, bool se { PerformanceTimer perfTimer("EngineRun"); + auto renderInterface = DependencyManager::get(); + auto renderContext = renderInterface->getRenderContext(); + renderArgs->_shouldRender = LODManager::shouldRender; renderArgs->_viewFrustum = getDisplayViewFrustum(); - - auto renderInterface = DependencyManager::get(); - auto renderItemsConfig = renderInterface->getItemsConfig(); - auto renderToneConfig = renderInterface->getToneConfig(); - int drawStatus = renderInterface->getDrawStatus(); - bool drawHitEffect = renderInterface->getDrawHitEffect(); + renderContext.setArgs(renderArgs); bool occlusionStatus = Menu::getInstance()->isOptionChecked(MenuOption::DebugAmbientOcclusion); bool antialiasingStatus = Menu::getInstance()->isOptionChecked(MenuOption::Antialiasing); bool showOwnedStatus = Menu::getInstance()->isOptionChecked(MenuOption::PhysicsShowOwned); + renderContext.setOptions(occlusionStatus, antialiasingStatus, showOwnedStatus); - render::RenderContext renderContext{renderArgs, renderItemsConfig, renderToneConfig}; - renderContext.setOptions(drawStatus, drawHitEffect, occlusionStatus, antialiasingStatus, showOwnedStatus); _renderEngine->setRenderContext(renderContext); // Before the deferred pass, let's try to use the render engine diff --git a/libraries/render-utils/src/RenderScriptingInterface.cpp b/libraries/render-utils/src/RenderScriptingInterface.cpp index b2d63c0407..a99dc814d5 100644 --- a/libraries/render-utils/src/RenderScriptingInterface.cpp +++ b/libraries/render-utils/src/RenderScriptingInterface.cpp @@ -40,6 +40,11 @@ QString RenderScripting::Tone::getCurve() const { }; } +render::RenderContext RenderScriptingInterface::getRenderContext() { + render::RenderContext::ItemsConfig items{ *_opaque, *_transparent, *_overlay3D }; + return render::RenderContext{ items, *_tone, _drawStatus, _drawHitEffect, _deferredDebugSize, _deferredDebugMode }; +} + void RenderScriptingInterface::setItemCounts(const render::RenderContext::ItemsConfig& items) { _opaque->setCounts(items.opaque); _transparent->setCounts(items.transparent); diff --git a/libraries/render-utils/src/RenderScriptingInterface.h b/libraries/render-utils/src/RenderScriptingInterface.h index 6cbc37f65a..19e57445e1 100644 --- a/libraries/render-utils/src/RenderScriptingInterface.h +++ b/libraries/render-utils/src/RenderScriptingInterface.h @@ -78,15 +78,13 @@ class RenderScriptingInterface : public QObject, public Dependency { Q_PROPERTY(RenderScripting::Tone* tone READ getTone) - Q_PROPERTY(int deferredDebugMode MEMBER _deferredDebugMode) - Q_PROPERTY(glm::vec4 deferredDebugSize MEMBER _deferredDebugSize) Q_PROPERTY(int displayItemStatus MEMBER _drawStatus) Q_PROPERTY(bool displayHitEffect MEMBER _drawHitEffect) - inline int getDrawStatus() { return _drawStatus; } - inline bool getDrawHitEffect() { return _drawHitEffect; } - inline const render::RenderContext::ItemsConfig getItemsConfig() { return std::move(render::RenderContext::ItemsConfig{ *_opaque, *_transparent, *_overlay3D }); } - inline const render::RenderContext::Tone& getToneConfig() { return *_tone; } + Q_PROPERTY(int deferredDebugMode MEMBER _deferredDebugMode) + Q_PROPERTY(glm::vec4 deferredDebugSize MEMBER _deferredDebugSize) + + render::RenderContext getRenderContext(); void setItemCounts(const render::RenderContext::ItemsConfig& items); protected: diff --git a/libraries/render/src/render/Engine.cpp b/libraries/render/src/render/Engine.cpp index 0cf09e0ca4..c38ceda034 100644 --- a/libraries/render/src/render/Engine.cpp +++ b/libraries/render/src/render/Engine.cpp @@ -13,11 +13,14 @@ #include "DrawTask.h" using namespace render; -void RenderContext::setOptions(int drawStatus, bool drawHitEffect, bool occlusion, bool fxaa, bool showOwned) { - _drawStatus = drawStatus; +RenderContext::RenderContext(ItemsConfig items, Tone tone, int drawStatus, bool drawHitEffect, glm::vec4 deferredDebugSize, int deferredDebugMode) + : _args{ nullptr }, _items{ items }, _tone{ tone }, + _drawStatus{ drawStatus }, _drawHitEffect{ drawHitEffect }, + _deferredDebugSize{ deferredDebugSize }, _deferredDebugMode{ deferredDebugMode } {}; + +void RenderContext::setOptions(bool occlusion, bool fxaa, bool showOwned) { _occlusionStatus = occlusion; _fxaaStatus = fxaa; - _drawHitEffect = drawHitEffect; if (showOwned) { _drawStatus |= render::showNetworkStatusFlag; diff --git a/libraries/render/src/render/Engine.h b/libraries/render/src/render/Engine.h index c1ceeb46f4..02f3bf3b2c 100644 --- a/libraries/render/src/render/Engine.h +++ b/libraries/render/src/render/Engine.h @@ -77,9 +77,10 @@ public: float exposure = 0.0; }; - RenderContext(RenderArgs* args, ItemsConfig items, Tone tone) : _args{args}, _items{items}, _tone{tone} {}; - RenderContext() : RenderContext(nullptr, {}, {}) {}; + RenderContext(ItemsConfig items, Tone tone, int drawStatus, bool drawHitEffect, glm::vec4 deferredDebugSize, int deferredDebugMode); + RenderContext() : RenderContext({}, {}, {}, {}, {}, {}) {}; + void setArgs(RenderArgs* args) { _args = args; } inline RenderArgs* getArgs() { return _args; } inline ItemsConfig& getItemsConfig() { return _items; } inline Tone& getTone() { return _tone; } @@ -87,7 +88,7 @@ public: inline bool getDrawHitEffect() { return _drawHitEffect; } inline bool getOcclusionStatus() { return _occlusionStatus; } inline bool getFxaaStatus() { return _fxaaStatus; } - void setOptions(int drawStatus, bool drawHitEffect, bool occlusion, bool fxaa, bool showOwned); + void setOptions(bool occlusion, bool fxaa, bool showOwned); // Debugging int _deferredDebugMode = -1;