// Copyright (C) 2021 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only import QtQuick 2.15 import QtQuick.Layouts 1.15 import HelperWidgets 2.0 import StudioTheme 1.0 as StudioTheme Section { caption: qsTr("Custom Material") width: parent.width SectionLayout { PropertyLabel { text: qsTr("Shading Mode") tooltip: qsTr("Sets the material type.\nUnshaded materials are not affected by the environment (for example, lights).") } SecondColumnLayout { ComboBox { scope: "CustomMaterial" model: ["Unshaded", "Shaded"] backendValue: backendValues.shadingMode implicitWidth: StudioTheme.Values.singleControlColumnWidth + StudioTheme.Values.actionIndicatorWidth } ExpandingSpacer {} } PropertyLabel { text: qsTr("Vertex Shader") tooltip: qsTr("Sets the path to the vertex shader source file.") } SecondColumnLayout { UrlChooser { backendValue: backendValues.vertexShader filter: "*.vert *.vsh *.glslv *.glsl" } ExpandingSpacer {} } PropertyLabel { text: qsTr("Fragment Shader") tooltip: qsTr("Sets the path to the fragment shader source file.") } SecondColumnLayout { UrlChooser { backendValue: backendValues.fragmentShader filter: "*.frag *.fsh *.glslf *.glsl" } ExpandingSpacer {} } PropertyLabel { text: qsTr("Source Blend") tooltip: qsTr("Sets the source blend factor.") } SecondColumnLayout { ComboBox { scope: "CustomMaterial" model: ["NoBlend", "Zero", "One", "SrcColor", "OneMinusSrcColor", "DstColor", "OneMinusDstColor", "SrcAlpha", "OneMinusSrcAlpha", "DstAlpha", "OneMinusDstAlpha", "ConstantColor", "OneMinusConstantColor", "ConstantAlpha", "OneMinusConstantAlpha", "SrcAlphaSaturate"] backendValue: backendValues.sourceBlend implicitWidth: StudioTheme.Values.singleControlColumnWidth + StudioTheme.Values.actionIndicatorWidth } ExpandingSpacer {} } PropertyLabel { text: qsTr("Destination Blend") tooltip: qsTr("Sets the destination blend factor.") } SecondColumnLayout { ComboBox { scope: "CustomMaterial" model: ["NoBlend", "Zero", "One", "SrcColor", "OneMinusSrcColor", "DstColor", "OneMinusDstColor", "SrcAlpha", "OneMinusSrcAlpha", "DstAlpha", "OneMinusDstAlpha", "ConstantColor", "OneMinusConstantColor", "ConstantAlpha", "OneMinusConstantAlpha", "SrcAlphaSaturate"] backendValue: backendValues.destinationBlend implicitWidth: StudioTheme.Values.singleControlColumnWidth + StudioTheme.Values.actionIndicatorWidth } ExpandingSpacer {} } PropertyLabel { text: qsTr("Always Dirty") tooltip: qsTr("Sets the material to refresh every time it is used by QtQuick3D.") } SecondColumnLayout { CheckBox { text: backendValues.alwaysDirty.valueToString backendValue: backendValues.alwaysDirty implicitWidth: StudioTheme.Values.singleControlColumnWidth + StudioTheme.Values.actionIndicatorWidth } ExpandingSpacer {} } PropertyLabel { text: qsTr("Line Width") tooltip: qsTr("Sets the width of the lines when the geometry is using a primitive type of lines or line strips.") } SecondColumnLayout { SpinBox { minimumValue: 1 maximumValue: 999999 decimals: 2 backendValue: backendValues.lineWidth implicitWidth: StudioTheme.Values.twoControlColumnWidth + StudioTheme.Values.actionIndicatorWidth } ExpandingSpacer {} } } }