Adding ui to debug render settings

This commit is contained in:
Sam Gateau 2019-05-28 18:01:39 -07:00
parent 24049a4321
commit 0862e40b41
4 changed files with 77 additions and 11 deletions

View file

@ -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;
}

View file

@ -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} <code>"deferred"</code> or <code>"forward"</code>
* @returns {number} <code>"DEFERRED"</code> or <code>"FORWARD"</code>
*/
QString getRenderMethod();
RenderMethod getRenderMethod();
/**jsdoc
* Sets the current render method
* @function Render.setRenderMethod
* @param {string} renderMethod - <code>"deferred"</code> or <code>"forward"</code>
* @param {number} renderMethod - <code>"DEFERRED"</code> or <code>"FORWARD"</code>
*/
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 - <code>"DEFERRED"</code> or <code>"FORWARD"</code>
*/
// void setRenderMethod(RenderMethod renderMethod);
private:
Setting::Handle<int> _renderMethodSetting { "renderMethod", RENDER_FORWARD ? render::Args::RenderMethod::FORWARD : render::Args::RenderMethod::DEFERRED };
Setting::Handle<bool> _shadowsEnabledSetting { "shadowsEnabled", true };

View file

@ -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"
}
}

View file

@ -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}
});