177 lines · 5.9 KB · Text
RawDownload
////  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.7import QtQuick.Controls 1.4import QtQuick.Layouts 1.3 import stylesUit 1.0import controlsUit 1.0 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: 10        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            }        }        ConfigSlider {            label: qsTr("Bias Input")            integral: false            config: shadowConfig            property: "biasInput"            max: 1.0            min: 0.0            height: 38            width: 250        }        ConfigSlider {            label: qsTr("Shadow Max Distance")            integral: false            config: shadowConfig            property: "maxDistance"            max: 250.0            min: 0.0            height: 38            width: 250        }        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                }            }        }    }}