Initial commit
This commit is contained in:
@@ -0,0 +1,392 @@
|
||||
// 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("Texture")
|
||||
width: parent.width
|
||||
|
||||
SectionLayout {
|
||||
PropertyLabel {
|
||||
text: qsTr("Source")
|
||||
tooltip: qsTr("Sets the location of an image file containing the data used by the texture.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
UrlChooser {
|
||||
backendValue: backendValues.source
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Source Item")
|
||||
tooltip: qsTr("Sets an item to be used as the source of the texture.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ItemFilterComboBox {
|
||||
typeFilter: "QtQuick.Item"
|
||||
backendValue: backendValues.sourceItem
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
PropertyLabel {
|
||||
text: qsTr("Texture Data")
|
||||
tooltip: qsTr("Sets a reference to a TextureData component which defines the contents and properties of raw texture data.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ItemFilterComboBox {
|
||||
typeFilter: "QtQuick3D.TextureData"
|
||||
backendValue: backendValues.textureData
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Scale")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
minimumValue: 0
|
||||
maximumValue: 999999
|
||||
decimals: 2
|
||||
backendValue: backendValues.scaleU
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
ControlLabel {
|
||||
text: "U"
|
||||
tooltip: qsTr("Sets how to scale the U texture coordinate when mapping to UV coordinates of a mesh.")
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlGap }
|
||||
|
||||
SpinBox {
|
||||
minimumValue: 0
|
||||
maximumValue: 999999
|
||||
decimals: 2
|
||||
backendValue: backendValues.scaleV
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
ControlLabel {
|
||||
text: "V"
|
||||
tooltip: qsTr("Sets how to scale the V texture coordinate when mapping to UV coordinates of a mesh.")
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Flip V")
|
||||
tooltip: qsTr("Sets the use of the vertically flipped coordinates.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
id: flipVcheckBox
|
||||
text: backendValues.flipV.valueToString
|
||||
backendValue: backendValues.flipV
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Flip U")
|
||||
tooltip: qsTr("Sets the use of the horizontally flipped texture coordinates.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
id: flipUCheckBox
|
||||
text: backendValues.flipU.valueToString
|
||||
backendValue: backendValues.flipU
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Auto Orientation")
|
||||
tooltip: qsTr("Sets if a texture transformation, such as flipping the V texture coordinate, is applied automatically for textures where this is typically relevant.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
id: autoOrientationCheckBox
|
||||
text: backendValues.autoOrientation.valueToString
|
||||
backendValue: backendValues.autoOrientation
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Texture Mapping")
|
||||
tooltip: qsTr("Sets which method of mapping to use when sampling this texture.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
scope: "Texture"
|
||||
model: ["UV", "Environment", "LightProbe"]
|
||||
backendValue: backendValues.mappingMode
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("U Tiling")
|
||||
tooltip: qsTr("Sets how the texture is mapped when the U scaling value is greater than 1.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
scope: "Texture"
|
||||
model: ["ClampToEdge", "MirroredRepeat", "Repeat"]
|
||||
backendValue: backendValues.tilingModeHorizontal
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("V Tiling")
|
||||
tooltip: qsTr("Sets how the texture is mapped when the V scaling value is greater than 1.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
scope: "Texture"
|
||||
model: ["ClampToEdge", "MirroredRepeat", "Repeat"]
|
||||
backendValue: backendValues.tilingModeVertical
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("UV Index")
|
||||
tooltip: qsTr("Sets the UV coordinate index used by this texture.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
minimumValue: 0
|
||||
maximumValue: 999999
|
||||
decimals: 0
|
||||
backendValue: backendValues.indexUV
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("UV Rotation")
|
||||
tooltip: qsTr("Sets the rotation of the texture around the pivot point.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
maximumValue: 999999
|
||||
minimumValue: -999999
|
||||
decimals: 0
|
||||
backendValue: backendValues.rotationUV
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Position")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
maximumValue: 999999
|
||||
minimumValue: -999999
|
||||
decimals: 2
|
||||
stepSize: 0.1
|
||||
backendValue: backendValues.positionU
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
ControlLabel {
|
||||
text: "U"
|
||||
tooltip: qsTr("Sets the U coordinate mapping offset from left to right.")
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlGap }
|
||||
|
||||
SpinBox {
|
||||
maximumValue: 999999
|
||||
minimumValue: -999999
|
||||
decimals: 2
|
||||
stepSize: 0.1
|
||||
backendValue: backendValues.positionV
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
ControlLabel {
|
||||
text: "V"
|
||||
tooltip: qsTr("Sets the V coordinate mapping offset from bottom to top.")
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Pivot")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
maximumValue: 999999
|
||||
minimumValue: -999999
|
||||
decimals: 2
|
||||
stepSize: 0.1
|
||||
backendValue: backendValues.pivotU
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
ControlLabel {
|
||||
text: "U"
|
||||
tooltip: qsTr("Sets the pivot U position.")
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlGap }
|
||||
|
||||
SpinBox {
|
||||
maximumValue: 999999
|
||||
minimumValue: -999999
|
||||
decimals: 2
|
||||
stepSize: 0.1
|
||||
backendValue: backendValues.pivotV
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
ControlLabel {
|
||||
text: "V"
|
||||
tooltip: qsTr("Sets the pivot V position.")
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Generate Mipmaps")
|
||||
tooltip: qsTr("Sets if mipmaps are generated for textures that do not provide mipmap levels themselves.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
id: generateMipmapscheckBox
|
||||
text: backendValues.generateMipmaps.valueToString
|
||||
backendValue: backendValues.generateMipmaps
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Mag Filter")
|
||||
tooltip: qsTr("Sets how the texture is sampled when a texel covers more than one pixel.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
scope: "Texture"
|
||||
model: ["None", "Nearest", "Linear"]
|
||||
backendValue: backendValues.magFilter
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Min Filter")
|
||||
tooltip: qsTr("Sets how the texture is sampled when a texel covers more than one pixel.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
scope: "Texture"
|
||||
model: ["None", "Nearest", "Linear"]
|
||||
backendValue: backendValues.minFilter
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Mip Filter")
|
||||
tooltip: qsTr("Sets how the texture mipmaps are sampled when a texel covers less than one pixel.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
scope: "Texture"
|
||||
model: ["None", "Nearest", "Linear"]
|
||||
backendValue: backendValues.mipFilter
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user