// // shadow.qml // developer/utilities/render // // Olivier Prat, created on 10/25/2017. // Copyright 2017 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 "configSlider" Rectangle { id: root; HifiConstants { id: hifi; } color: hifi.colors.baseGray; property var viewConfig: Render.getConfig("RenderMainView.DrawViewFrustum"); property var shadowConfig : Render.getConfig("RenderMainView.ShadowSetup"); property var shadow0Config: Render.getConfig("RenderMainView.DrawShadowFrustum0"); property var shadow1Config: Render.getConfig("RenderMainView.DrawShadowFrustum1"); property var shadow2Config: Render.getConfig("RenderMainView.DrawShadowFrustum2"); property var shadow3Config: Render.getConfig("RenderMainView.DrawShadowFrustum3"); property var shadowBBox0Config: Render.getConfig("RenderMainView.DrawShadowBBox0"); property var shadowBBox1Config: Render.getConfig("RenderMainView.DrawShadowBBox1"); property var shadowBBox2Config: Render.getConfig("RenderMainView.DrawShadowBBox2"); property var shadowBBox3Config: Render.getConfig("RenderMainView.DrawShadowBBox3"); Component.onCompleted: { viewConfig.enabled = true; shadow0Config.enabled = true; shadow1Config.enabled = true; shadow2Config.enabled = true; shadow3Config.enabled = true; shadowBBox0Config.enabled = true; shadowBBox1Config.enabled = true; shadowBBox2Config.enabled = true; shadowBBox3Config.enabled = true; } Component.onDestruction: { viewConfig.enabled = false; shadow0Config.enabled = false; shadow1Config.enabled = false; shadow2Config.enabled = false; shadow3Config.enabled = false; shadow0Config.isFrozen = false; shadow1Config.isFrozen = false; shadow2Config.isFrozen = false; shadow3Config.isFrozen = false; shadowBBox0Config.enabled = false; shadowBBox1Config.enabled = false; shadowBBox2Config.enabled = false; shadowBBox3Config.enabled = false; shadowBBox0Config.isFrozen = false; shadowBBox1Config.isFrozen = false; shadowBBox2Config.isFrozen = false; shadowBBox3Config.isFrozen = false; } ColumnLayout { spacing: 20 anchors.left: parent.left anchors.right: parent.right anchors.margins: hifi.dimensions.contentMargin.x RowLayout { spacing: 20 Layout.fillWidth: true HifiControls.CheckBox { boxSize: 20 text: "Freeze" checked: false onCheckedChanged: { viewConfig.isFrozen = checked; shadow0Config.isFrozen = checked; shadow1Config.isFrozen = checked; shadow2Config.isFrozen = checked; shadow3Config.isFrozen = checked; shadowBBox0Config.isFrozen = checked; shadowBBox1Config.isFrozen = checked; shadowBBox2Config.isFrozen = checked; shadowBBox3Config.isFrozen = checked; } } HifiControls.Label { text: "View" color: "yellow" font.italic: true } HifiControls.Label { text: "Shadow" color: "blue" font.italic: true } HifiControls.Label { text: "AABB" color: "red" font.italic: true } } Repeater { model: [ "0", "1", "2", "3" ] ColumnLayout { spacing: 8 anchors.left: parent.left anchors.right: parent.right HifiControls.Separator { anchors.left: parent.left anchors.right: parent.right } HifiControls.CheckBox { text: "Cascade "+modelData boxSize: 20 checked: Render.getConfig("RenderMainView.DrawShadowFrustum"+modelData) onCheckedChanged: { Render.getConfig("RenderMainView.DrawShadowFrustum"+modelData).enabled = checked; Render.getConfig("RenderMainView.DrawShadowBBox"+modelData).enabled = checked; } } ConfigSlider { label: qsTr("Constant bias") integral: false config: shadowConfig property: "constantBias"+modelData max: 1.0 min: 0.0 height: 38 width:250 } ConfigSlider { label: qsTr("Slope bias") integral: false config: shadowConfig property: "slopeBias"+modelData max: 1.0 min: 0.0 height: 38 width: 250 } } } } }