From 6b1c7bf96e3a67420c0c7929bf9d65691f5d696a Mon Sep 17 00:00:00 2001 From: Sam Gateau <samuel.gateau@gmail.com> Date: Tue, 20 Nov 2018 23:15:09 -0800 Subject: [PATCH] restoring the engine render views and cleaning up the task / config section of the pr --- libraries/render-utils/src/BloomEffect.cpp | 1 - libraries/task/src/task/Config.cpp | 3 - libraries/task/src/task/Config.h | 2 +- libraries/task/src/task/Task.h | 2 +- scripts/developer/utilities/lib/jet/jet.js | 5 +- .../utilities/render/engineInspector.js | 71 +++++++++++++++++++ .../utilities/render/engineInspector.qml | 30 ++++++++ .../utilities/render/engineProfiler.js | 59 +++++++++++++++ .../utilities/render/engineProfiler.qml | 31 ++++++++ 9 files changed, 196 insertions(+), 8 deletions(-) create mode 100644 scripts/developer/utilities/render/engineInspector.js create mode 100644 scripts/developer/utilities/render/engineInspector.qml create mode 100644 scripts/developer/utilities/render/engineProfiler.js create mode 100644 scripts/developer/utilities/render/engineProfiler.qml diff --git a/libraries/render-utils/src/BloomEffect.cpp b/libraries/render-utils/src/BloomEffect.cpp index e5b32bb1d4..414a1c3f91 100644 --- a/libraries/render-utils/src/BloomEffect.cpp +++ b/libraries/render-utils/src/BloomEffect.cpp @@ -283,7 +283,6 @@ void BloomEffect::configure(const Config& config) { blurName.back() = '0' + i; auto blurConfig = config.getConfig<render::BlurGaussian>(blurName); blurConfig->filterScale = 1.0f; - //blurConfig->setProperty("filterScale", 1.0f); } } diff --git a/libraries/task/src/task/Config.cpp b/libraries/task/src/task/Config.cpp index c0e9c41468..5e8e4b246d 100644 --- a/libraries/task/src/task/Config.cpp +++ b/libraries/task/src/task/Config.cpp @@ -41,7 +41,6 @@ void JobConfig::setPresetList(const QJsonObject& object) { void TaskConfig::connectChildConfig(QConfigPointer childConfig, const std::string& name) { childConfig->setParent(this); childConfig->setObjectName(name.c_str()); - // childConfig->propagateParentEnabled((_isParentEnabled ? _isEnabled : false)); // Connect loaded->refresh QObject::connect(childConfig.get(), SIGNAL(loaded()), this, SLOT(refresh())); @@ -69,8 +68,6 @@ void TaskConfig::transferChildrenConfigs(QConfigPointer source) { QObject::connect(child, SIGNAL(dirtyEnabled()), this, SLOT(refresh())); } } - - // propagateParentEnabledToSubs(); } void TaskConfig::refresh() { diff --git a/libraries/task/src/task/Config.h b/libraries/task/src/task/Config.h index ab3303110b..da9b95a274 100644 --- a/libraries/task/src/task/Config.h +++ b/libraries/task/src/task/Config.h @@ -125,7 +125,7 @@ public: // Running Time measurement // The new stats signal is emitted once per run time of a job when stats (cpu runtime) are updated - void setCPURunTime(const std::chrono::nanoseconds& runtime) { _msCPURunTime = std::chrono::duration<double, std::milli>(runtime).count(); /* emit newStats();*/ } + void setCPURunTime(const std::chrono::nanoseconds& runtime) { _msCPURunTime = std::chrono::duration<double, std::milli>(runtime).count(); emit newStats(); } double getCPURunTime() const { return _msCPURunTime; } // Describe the node graph data connections of the associated Job/Task diff --git a/libraries/task/src/task/Task.h b/libraries/task/src/task/Task.h index 0f4c67478e..fb7012b16c 100644 --- a/libraries/task/src/task/Task.h +++ b/libraries/task/src/task/Task.h @@ -164,7 +164,7 @@ public: void run(const ContextPointer& jobContext) override { jobContext->jobConfig = std::static_pointer_cast<Config>(Concept::_config); - if (/*jobContext->jobConfig->alwaysEnabled || */jobContext->jobConfig->isEnabled()) { + if (jobContext->jobConfig->isEnabled()) { jobRun(_data, jobContext, _input.get<I>(), _output.edit<O>()); } jobContext->jobConfig.reset(); diff --git a/scripts/developer/utilities/lib/jet/jet.js b/scripts/developer/utilities/lib/jet/jet.js index cb78e2cc3f..71fb3e1f70 100644 --- a/scripts/developer/utilities/lib/jet/jet.js +++ b/scripts/developer/utilities/lib/jet/jet.js @@ -172,7 +172,7 @@ function job_tree_model_functor(jobTreeModel, maxLevel, newNodeFunctor) { // Traverse the jobTreenode data structure created above function job_traverseTreeNode(root, functor, depth) { - // if (root.subNode.length) { + if (root.subNode.length) { depth++; for (var i = 0; i <root.subNode.length; i++) { var sub = root.subNode[i]; @@ -180,8 +180,9 @@ function job_traverseTreeNode(root, functor, depth) { job_traverseTreeNode(sub, functor, depth, 0) } } - // } + } } + function job_traverseTreeNodeRoot(root, functor) { if (functor(root, 0, 0)) { job_traverseTreeNode(root, functor, 0) diff --git a/scripts/developer/utilities/render/engineInspector.js b/scripts/developer/utilities/render/engineInspector.js new file mode 100644 index 0000000000..74e4231ff1 --- /dev/null +++ b/scripts/developer/utilities/render/engineInspector.js @@ -0,0 +1,71 @@ + /*function openEngineTaskView() { + // Set up the qml ui + var qml = Script.resolvePath('engineInspector.qml'); + var window = new OverlayWindow({ + title: 'Render Engine', + source: qml, + width: 500, + height: 100 + }); + window.setPosition(200, 50); + window.closed.connect(function() { Script.stop(); }); + } + openEngineTaskView();*/ + + (function() { + var TABLET_BUTTON_NAME = "Inspector"; + var QMLAPP_URL = Script.resolvePath("./engineInspector.qml"); + var ICON_URL = Script.resolvePath("../../../system/assets/images/luci-i.svg"); + var ACTIVE_ICON_URL = Script.resolvePath("../../../system/assets/images/luci-a.svg"); + + var tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system"); + var button = tablet.addButton({ + text: TABLET_BUTTON_NAME, + icon: ICON_URL, + activeIcon: ACTIVE_ICON_URL + }); + + Script.scriptEnding.connect(function () { + killWindow() + button.clicked.disconnect(onClicked); + tablet.removeButton(button); + }); + + button.clicked.connect(onClicked); + + var onScreen = false; + var window; + + function onClicked() { + if (onScreen) { + killWindow() + } else { + createWindow() + } + } + + function createWindow() { + var qml = Script.resolvePath(QMLAPP_URL); + window = new OverlayWindow({ + title: 'Render Engine Inspector', + source: qml, + width: 250, + height: 500 + }); + window.setPosition(200, 50); + window.closed.connect(killWindow); + onScreen = true + button.editProperties({isActive: true}); + } + + function killWindow() { + if (window !== undefined) { + window.closed.disconnect(killWindow); + window.close() + window = undefined + } + onScreen = false + button.editProperties({isActive: false}) + } + }()); + \ No newline at end of file diff --git a/scripts/developer/utilities/render/engineInspector.qml b/scripts/developer/utilities/render/engineInspector.qml new file mode 100644 index 0000000000..31283a4756 --- /dev/null +++ b/scripts/developer/utilities/render/engineInspector.qml @@ -0,0 +1,30 @@ +// +// EngineInspector.qml +// +// Created by Sam Gateau on 06/07/2018 +// Copyright 2016 High Fidelity, Inc. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or https://www.apache.org/licenses/LICENSE-2.0.html +// +import QtQuick 2.7 +import QtQuick.Controls 1.4 +import QtQuick.Layouts 1.3 + +import stylesUit 1.0 +import controlsUit 1.0 as HifiControls + +import "../lib/jet/qml" as Jet + +Item { + HifiConstants { id: hifi;} + id: root; + anchors.fill: parent + + property var rootConfig: Render.getConfig("") + + Jet.TaskListView { + rootConfig: root.rootConfig + anchors.fill: root + } +} \ No newline at end of file diff --git a/scripts/developer/utilities/render/engineProfiler.js b/scripts/developer/utilities/render/engineProfiler.js new file mode 100644 index 0000000000..418cab8622 --- /dev/null +++ b/scripts/developer/utilities/render/engineProfiler.js @@ -0,0 +1,59 @@ + + + (function() { + var TABLET_BUTTON_NAME = "Profiler"; + var QMLAPP_URL = Script.resolvePath("./engineProfiler.qml"); + var ICON_URL = Script.resolvePath("../../../system/assets/images/luci-i.svg"); + var ACTIVE_ICON_URL = Script.resolvePath("../../../system/assets/images/luci-a.svg"); + + var tablet = Tablet.getTablet("com.highfidelity.interface.tablet.system"); + var button = tablet.addButton({ + text: TABLET_BUTTON_NAME, + icon: ICON_URL, + activeIcon: ACTIVE_ICON_URL + }); + + Script.scriptEnding.connect(function () { + killWindow() + button.clicked.disconnect(onClicked); + tablet.removeButton(button); + }); + + button.clicked.connect(onClicked); + + var onScreen = false; + var window; + + function onClicked() { + if (onScreen) { + killWindow() + } else { + createWindow() + } + } + + function createWindow() { + var qml = Script.resolvePath(QMLAPP_URL); + window = Desktop.createWindow(Script.resolvePath(QMLAPP_URL), { + title: 'Render Engine Profiler', + flags: Desktop.ALWAYS_ON_TOP, + presentationMode: Desktop.PresentationMode.NATIVE, + size: {x: 500, y: 100} + }); + window.setPosition(200, 50); + window.closed.connect(killWindow); + onScreen = true + button.editProperties({isActive: true}); + } + + function killWindow() { + if (window !== undefined) { + window.closed.disconnect(killWindow); + window.close() + window = undefined + } + onScreen = false + button.editProperties({isActive: false}) + } + }()); + \ No newline at end of file diff --git a/scripts/developer/utilities/render/engineProfiler.qml b/scripts/developer/utilities/render/engineProfiler.qml new file mode 100644 index 0000000000..bfa049d089 --- /dev/null +++ b/scripts/developer/utilities/render/engineProfiler.qml @@ -0,0 +1,31 @@ +// +// EngineProfiler.qml +// +// Created by Sam Gateau on 06/07/2018 +// Copyright 2016 High Fidelity, Inc. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or https://www.apache.org/licenses/LICENSE-2.0.html +// +import QtQuick 2.7 +import QtQuick.Controls 1.4 +import QtQuick.Layouts 1.3 + +import "qrc:///qml/styles-uit" +import "qrc:///qml/controls-uit" as HifiControls + +import "../lib/jet/qml" as Jet + +Item { + HifiConstants { id: hifi;} + id: root; + anchors.fill: parent + + property var rootConfig: Render.getConfig("") + + + Jet.TaskTimeFrameView { + rootConfig: root.rootConfig + anchors.fill: root + } +} \ No newline at end of file