diff --git a/interface/src/scripting/RenderScriptingInterface.cpp b/interface/src/scripting/RenderScriptingInterface.cpp index 360a75b557..14fd9c6878 100644 --- a/interface/src/scripting/RenderScriptingInterface.cpp +++ b/interface/src/scripting/RenderScriptingInterface.cpp @@ -19,24 +19,24 @@ RenderScriptingInterface* RenderScriptingInterface::getInstance() { } RenderScriptingInterface::RenderScriptingInterface() { - setRenderMethod((render::Args::RenderMethod)_renderMethodSetting.get() == render::Args::RenderMethod::DEFERRED ? DEFERRED : FORWARD); + setRenderMethod((RenderMethod)_renderMethodSetting.get() == RenderMethod::DEFERRED ? RenderMethod::DEFERRED : RenderMethod::FORWARD); setShadowsEnabled(_shadowsEnabledSetting.get()); setAmbientOcclusionEnabled(_ambientOcclusionEnabledSetting.get()); setAntialiasingEnabled(_antialiasingEnabledSetting.get()); } -QString RenderScriptingInterface::getRenderMethod() { - return (render::Args::RenderMethod)_renderMethodSetting.get() == render::Args::RenderMethod::DEFERRED ? DEFERRED : FORWARD; +RenderScriptingInterface::RenderMethod RenderScriptingInterface::getRenderMethod() { + return (RenderMethod)_renderMethodSetting.get() == RenderMethod::DEFERRED ? RenderMethod::DEFERRED : RenderMethod::FORWARD; } -void RenderScriptingInterface::setRenderMethod(const QString& renderMethod) { - render::Args::RenderMethod newMethod = renderMethod == FORWARD ? render::Args::RenderMethod::FORWARD : render::Args::RenderMethod::DEFERRED; +void RenderScriptingInterface::setRenderMethod(RenderScriptingInterface::RenderMethod renderMethod) { + RenderMethod newMethod = renderMethod == RenderMethod::FORWARD ? RenderMethod::FORWARD : RenderMethod::DEFERRED; if (_renderMethodSetting.get() == newMethod) { return; } if (QThread::currentThread() != thread()) { - QMetaObject::invokeMethod(this, "setRenderMethod", Q_ARG(const QString&, renderMethod)); + QMetaObject::invokeMethod(this, "setRenderMethod", Q_ARG(RenderScriptingInterface::RenderMethod, renderMethod)); return; } diff --git a/interface/src/scripting/RenderScriptingInterface.h b/interface/src/scripting/RenderScriptingInterface.h index 329433fb60..5476ac7cbf 100644 --- a/interface/src/scripting/RenderScriptingInterface.h +++ b/interface/src/scripting/RenderScriptingInterface.h @@ -25,7 +25,7 @@ */ class RenderScriptingInterface : public QObject { Q_OBJECT - Q_PROPERTY(QString renderMethod READ getRenderMethod WRITE setRenderMethod) + Q_PROPERTY(RenderMethod renderMethod READ getRenderMethod WRITE setRenderMethod) Q_PROPERTY(bool shadowsEnabled READ getShadowsEnabled WRITE setShadowsEnabled) Q_PROPERTY(bool ambientOcclusionEnabled READ getAmbientOcclusionEnabled WRITE setAmbientOcclusionEnabled) Q_PROPERTY(bool antialiasingEnabled READ getAntialiasingEnabled WRITE setAntialiasingEnabled) @@ -35,6 +35,13 @@ public: static RenderScriptingInterface* getInstance(); + // RenderMethod enum type + enum RenderMethod { + DEFERRED = render::Args::RenderMethod::DEFERRED, + FORWARD = render::Args::RenderMethod::FORWARD, + }; + Q_ENUM(RenderMethod); + public slots: /**jsdoc * Get a config for a job by name @@ -50,16 +57,16 @@ public slots: /**jsdoc * Gets the current render method * @function Render.getRenderMethod - * @returns {string} "deferred" or "forward" + * @returns {number} "DEFERRED" or "FORWARD" */ - QString getRenderMethod(); + RenderMethod getRenderMethod(); /**jsdoc * Sets the current render method * @function Render.setRenderMethod - * @param {string} renderMethod - "deferred" or "forward" + * @param {number} renderMethod - "DEFERRED" or "FORWARD" */ - void setRenderMethod(const QString& renderMethod); + void setRenderMethod(RenderMethod renderMethod); /**jsdoc * Whether or not shadows are enabled @@ -103,6 +110,20 @@ public slots: */ void setAntialiasingEnabled(bool enabled); + /**jsdoc + * Gets the current render resolution scale + * @function Render.getRenderResolutionScale + * @returns {number} + */ +// RenderMethod getRenderMethod(); + + /**jsdoc + * Sets the current render method + * @function Render.setRenderMethod + * @param {number} renderMethod - "DEFERRED" or "FORWARD" + */ + // void setRenderMethod(RenderMethod renderMethod); + private: Setting::Handle _renderMethodSetting { "renderMethod", RENDER_FORWARD ? render::Args::RenderMethod::FORWARD : render::Args::RenderMethod::DEFERRED }; Setting::Handle _shadowsEnabledSetting { "shadowsEnabled", true }; diff --git a/scripts/developer/utilities/render/luci/RenderSettings.qml b/scripts/developer/utilities/render/luci/RenderSettings.qml new file mode 100644 index 0000000000..13a124db26 --- /dev/null +++ b/scripts/developer/utilities/render/luci/RenderSettings.qml @@ -0,0 +1,38 @@ +// +// Render Settings.qml +// +// Created by Sam Gateau on 5/28/2019 +// Copyright 2019 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 2.2 +import QtQuick.Layouts 1.3 + +import controlsUit 1.0 as HifiControls + +import "../../lib/prop" as Prop + +Column { + anchors.fill: parent + id: theGrapchicsSettings; + + Prop.PropEnum { + label: "Render Method" + object: Render + property: "renderMethod" + enums: [ + "Deferred", + "Forward" + ] + } + + Prop.PropBool { + label: "Shadows" + object: Render + property: "shadowsEnabled" + } +} + diff --git a/scripts/developer/utilities/render/renderSettings.js b/scripts/developer/utilities/render/renderSettings.js new file mode 100644 index 0000000000..451fa798f8 --- /dev/null +++ b/scripts/developer/utilities/render/renderSettings.js @@ -0,0 +1,7 @@ +// Test key commands +var window = Desktop.createWindow(Script.resolvePath('./luci/RenderSettings.qml'), { + title: "Render Settings", + presentationMode: Desktop.PresentationMode.NATIVE, + size: {x: 350, y: 700} +}); +