From e770d7b679c010593ccbacf190008c21c3538b8e Mon Sep 17 00:00:00 2001 From: Zach Pomerantz Date: Tue, 26 Jan 2016 18:56:22 -0800 Subject: [PATCH] Add PhysicsShowOwned back to Menu --- interface/src/Application.cpp | 15 ++++++++------- interface/src/Menu.cpp | 6 ++++++ interface/src/Menu.h | 1 + libraries/render/src/render/DrawStatus.cpp | 5 ++++- libraries/render/src/render/DrawStatus.h | 11 ++++++++--- 5 files changed, 27 insertions(+), 11 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index ea853bc6a6..fdad0d6502 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -673,13 +673,6 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer) : _offscreenContext->makeCurrent(); initializeGL(); - // Start rendering - render::CullFunctor cullFunctor = LODManager::shouldRender; - _renderEngine->addJob("RenderShadowTask", cullFunctor); - _renderEngine->addJob("RenderDeferredTask", cullFunctor); - _renderEngine->registerScene(_main3DScene); - // TODO: Load a cached config file - _offscreenContext->makeCurrent(); // Tell our entity edit sender about our known jurisdictions @@ -1150,9 +1143,17 @@ void Application::initializeGL() { initDisplay(); qCDebug(interfaceapp, "Initialized Display."); + // Set up the render engine + render::CullFunctor cullFunctor = LODManager::shouldRender; + _renderEngine->addJob("RenderShadowTask", cullFunctor); + _renderEngine->addJob("RenderDeferredTask", cullFunctor); + _renderEngine->registerScene(_main3DScene); + // TODO: Load a cached config file + // The UI can't be created until the primary OpenGL // context is created, because it needs to share // texture resources + // Needs to happen AFTER the render engine initialization to access its configuration initializeUi(); qCDebug(interfaceapp, "Initialized Offscreen UI."); _offscreenContext->makeCurrent(); diff --git a/interface/src/Menu.cpp b/interface/src/Menu.cpp index 27d1ed9bc2..fe545e0f2e 100644 --- a/interface/src/Menu.cpp +++ b/interface/src/Menu.cpp @@ -32,6 +32,7 @@ #include "devices/Faceshift.h" #include "input-plugins/SpacemouseManager.h" #include "MainWindow.h" +#include "render/DrawStatus.h" #include "scripting/MenuScriptingInterface.h" #include "ui/AssetUploadDialogFactory.h" #include "ui/DialogsManager.h" @@ -584,6 +585,11 @@ Menu::Menu() { // Developer > Physics >>> MenuWrapper* physicsOptionsMenu = developerMenu->addMenu("Physics"); + { + auto drawStatusConfig = qApp->getRenderEngine()->getConfiguration()->getConfig(); + addCheckableActionToQMenuAndActionHash(physicsOptionsMenu, MenuOption::PhysicsShowOwned, + 0, false, drawStatusConfig, SLOT(setShowNetwork(bool))); + } addCheckableActionToQMenuAndActionHash(physicsOptionsMenu, MenuOption::PhysicsShowHulls); // Developer > Display Crash Options diff --git a/interface/src/Menu.h b/interface/src/Menu.h index f07ce641d8..f0c742e361 100644 --- a/interface/src/Menu.h +++ b/interface/src/Menu.h @@ -245,6 +245,7 @@ namespace MenuOption { const QString PackageModel = "Package Model..."; const QString Pair = "Pair"; const QString PhysicsShowHulls = "Draw Collision Hulls"; + const QString PhysicsShowOwned = "Highlight Simulation Ownership"; const QString PipelineWarnings = "Log Render Pipeline Warnings"; const QString Preferences = "General..."; const QString Quit = "Quit"; diff --git a/libraries/render/src/render/DrawStatus.cpp b/libraries/render/src/render/DrawStatus.cpp index c043867c88..112aa0be03 100644 --- a/libraries/render/src/render/DrawStatus.cpp +++ b/libraries/render/src/render/DrawStatus.cpp @@ -27,7 +27,10 @@ using namespace render; - +void DrawStatusConfig::dirtyHelper() { + enabled = showNetwork || showDisplay; + emit dirty(); +} const gpu::PipelinePointer DrawStatus::getDrawItemBoundsPipeline() { if (!_drawItemBoundsPipeline) { diff --git a/libraries/render/src/render/DrawStatus.h b/libraries/render/src/render/DrawStatus.h index d1caeca673..b00e42b13d 100644 --- a/libraries/render/src/render/DrawStatus.h +++ b/libraries/render/src/render/DrawStatus.h @@ -18,15 +18,20 @@ namespace render { class DrawStatusConfig : public Job::Config { Q_OBJECT - Q_PROPERTY(bool enabled MEMBER enabled) - Q_PROPERTY(bool showDisplay MEMBER showDisplay NOTIFY dirty) - Q_PROPERTY(bool showNetwork MEMBER showDisplay NOTIFY dirty) + Q_PROPERTY(bool showDisplay MEMBER showDisplay WRITE setShowDisplay) + Q_PROPERTY(bool showNetwork MEMBER showNetwork WRITE setShowNetwork) public: DrawStatusConfig() : Job::Config(false) {} + void dirtyHelper(); + bool showDisplay{ false }; bool showNetwork{ false }; + public slots: + void setShowDisplay(bool enabled) { showDisplay = enabled; dirtyHelper(); } + void setShowNetwork(bool enabled) { showNetwork = enabled; dirtyHelper(); } + signals: void dirty(); };