/**************************************************************************** ** ** Copyright (C) 2020 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qt Quick 3D. ** ** $QT_BEGIN_LICENSE:GPL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3 or (at your option) any later version ** approved by the KDE Free Qt Foundation. The licenses are as published by ** the Free Software Foundation and appearing in the file LICENSE.GPL3 ** included in the packaging of this file. Please review the following ** information to ensure the GNU General Public License requirements will ** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ** $QT_END_LICENSE$ ** ****************************************************************************/ import QtQuick 2.15 import HelperWidgets 2.0 import QtQuick.Layouts 1.12 Column { width: parent.width Section { caption: qsTr("Custom Material") width: parent.width SectionLayout { Label { text: qsTr("Transparency") tooltip: qsTr("Specifies if the material has transparency.") } SecondColumnLayout { CheckBox { text: backendValues.hasTransparency.valueToString backendValue: backendValues.hasTransparency Layout.fillWidth: true } } Label { text: qsTr("Refraction") tooltip: qsTr("Specifies if the material has refraction.") } SecondColumnLayout { CheckBox { text: backendValues.hasRefraction.valueToString backendValue: backendValues.hasRefraction Layout.fillWidth: true } } Label { text: qsTr("Always Dirty") tooltip: qsTr("Specifies if the material needs to be refreshed every time it is used.") } SecondColumnLayout { CheckBox { text: backendValues.alwaysDirty.valueToString backendValue: backendValues.alwaysDirty Layout.fillWidth: true } } Label { text: qsTr("Shader Info") tooltip: qsTr("Shader info for the material.") } SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.ShaderInfo" Layout.fillWidth: true backendValue: backendValues.shaderInfo } } Label { text: qsTr("Passes") tooltip: qsTr("Render passes of the material.") } SecondColumnLayout { EditableListView { backendValue: backendValues.passes model: backendValues.passes.expressionAsList Layout.fillWidth: true typeFilter: "QtQuick3D.Pass" onAdd: function(value) { backendValues.passes.idListAdd(value) } onRemove: function(idx) { backendValues.passes.idListRemove(idx) } onReplace: function (idx, value) { backendValues.passes.idListReplace(idx, value) } } } } } Section { // Copied from quick3d's MaterialSection.qml caption: qsTr("Material") width: parent.width SectionLayout { Label { text: qsTr("Light Probe") tooltip: qsTr("Defines a texture for overriding or setting an image based lighting texture for use with this material.") } SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" Layout.fillWidth: true backendValue: backendValues.lightProbe } } Label { text: qsTr("Displacement Map") tooltip: qsTr("Defines a grayscale image used to offset the vertices of geometry across the surface of the material.") } SecondColumnLayout { IdComboBox { typeFilter: "QtQuick3D.Texture" Layout.fillWidth: true backendValue: backendValues.displacementMap } } Label { text: qsTr("Displacement Amount") tooltip: qsTr("Controls the offset amount for the displacement map.") } SecondColumnLayout { SpinBox { maximumValue: 9999999 minimumValue: -9999999 realDragRange: 5000 decimals: 0 backendValue: backendValues.displacementAmount Layout.fillWidth: true } } Label { text: qsTr("Culling Mode") tooltip: qsTr("Defines whether culling is enabled and which mode is actually enabled.") } ComboBox { scope: "Material" model: ["BackFaceCulling", "FrontFaceCulling", "NoCulling"] backendValue: backendValues.cullMode Layout.fillWidth: true } } } }