aboutsummaryrefslogtreecommitdiffstats
path: root/src/imports/controls/material
diff options
context:
space:
mode:
authorAlexandru Croitor <alexandru.croitor@qt.io>2019-08-15 18:54:24 +0200
committerAlexandru Croitor <alexandru.croitor@qt.io>2019-08-15 18:55:53 +0200
commitd9df6eed8cdab44f5139408c9fa21325591b3fc8 (patch)
treefae5e5ea6adc503532d2c6308d3e9c11f065fd7f /src/imports/controls/material
parentf343e8e477ac27a5c59276bca63d0e199087fb87 (diff)
parent341ace84485ffb3c2f05818e1b95604849217c9a (diff)
Merge remote-tracking branch 'origin/wip/qt6' into wip/cmake
Diffstat (limited to 'src/imports/controls/material')
-rw-r--r--src/imports/controls/material/CMakeLists.txt148
-rw-r--r--src/imports/controls/material/qtquickcontrols2materialstyleplugin.cpp4
-rw-r--r--src/imports/controls/material/qtquickcontrols2materialstyleplugin.qrc1
-rw-r--r--src/imports/controls/material/shaders/+qsb/RectangularGlow.fragbin0 -> 2321 bytes
-rw-r--r--src/imports/controls/material/shaders/RectangularGlow_rhi.frag28
5 files changed, 107 insertions, 74 deletions
diff --git a/src/imports/controls/material/CMakeLists.txt b/src/imports/controls/material/CMakeLists.txt
index 7f6f8a39..c1c964b2 100644
--- a/src/imports/controls/material/CMakeLists.txt
+++ b/src/imports/controls/material/CMakeLists.txt
@@ -34,85 +34,90 @@ add_qml_module(qtquickcontrols2materialstyleplugin
)
# Resources:
+set(qtquickcontrols2materialstyleplugin_resource_files
+ "images/arrow-indicator.png"
+ "images/arrow-indicator@2x.png"
+ "images/arrow-indicator@3x.png"
+ "images/arrow-indicator@4x.png"
+ "images/check.png"
+ "images/check@2x.png"
+ "images/check@3x.png"
+ "images/check@4x.png"
+ "images/drop-indicator.png"
+ "images/drop-indicator@2x.png"
+ "images/drop-indicator@3x.png"
+ "images/drop-indicator@4x.png"
+ "shaders/+glslcore/RectangularGlow.frag"
+ "shaders/+hlsl/RectangularGlow.frag"
+ "shaders/+qsb/RectangularGlow.frag"
+ "shaders/RectangularGlow.frag"
+)
+
add_qt_resource(qtquickcontrols2materialstyleplugin "qtquickcontrols2materialstyleplugin"
PREFIX
"/qt-project.org/imports/QtQuick/Controls.2/Material"
FILES
- images/arrow-indicator.png
- images/arrow-indicator@2x.png
- images/arrow-indicator@3x.png
- images/arrow-indicator@4x.png
- images/check.png
- images/check@2x.png
- images/check@3x.png
- images/check@4x.png
- images/drop-indicator.png
- images/drop-indicator@2x.png
- images/drop-indicator@3x.png
- images/drop-indicator@4x.png
- shaders/+glslcore/RectangularGlow.frag
- shaders/+hlsl/RectangularGlow.frag
- shaders/RectangularGlow.frag
+ ${qtquickcontrols2materialstyleplugin_resource_files}
)
set(qml_files
- ApplicationWindow.qml
- BoxShadow.qml
- BusyIndicator.qml
- Button.qml
- CheckBox.qml
- CheckDelegate.qml
- CheckIndicator.qml
- ComboBox.qml
- CursorDelegate.qml
- DelayButton.qml
- Dial.qml
- Dialog.qml
- DialogButtonBox.qml
- Drawer.qml
- ElevationEffect.qml
- Frame.qml
- GroupBox.qml
- ItemDelegate.qml
- Label.qml
- Menu.qml
- MenuBar.qml
- MenuBarItem.qml
- MenuItem.qml
- MenuSeparator.qml
- Page.qml
- PageIndicator.qml
- Pane.qml
- Popup.qml
- ProgressBar.qml
- RadioButton.qml
- RadioDelegate.qml
- RadioIndicator.qml
- RangeSlider.qml
- RoundButton.qml
- RectangularGlow.qml
- ScrollBar.qml
- ScrollIndicator.qml
- Slider.qml
- SliderHandle.qml
- SpinBox.qml
- SplitView.qml
- StackView.qml
- SwipeDelegate.qml
- SwipeView.qml
- Switch.qml
- SwitchDelegate.qml
- SwitchIndicator.qml
- TabBar.qml
- TabButton.qml
- TextArea.qml
- TextField.qml
- ToolBar.qml
- ToolButton.qml
- ToolSeparator.qml
- ToolTip.qml
- Tumbler.qml
+ "ApplicationWindow.qml"
+ "BoxShadow.qml"
+ "BusyIndicator.qml"
+ "Button.qml"
+ "CheckBox.qml"
+ "CheckDelegate.qml"
+ "CheckIndicator.qml"
+ "ComboBox.qml"
+ "CursorDelegate.qml"
+ "DelayButton.qml"
+ "Dial.qml"
+ "Dialog.qml"
+ "DialogButtonBox.qml"
+ "Drawer.qml"
+ "ElevationEffect.qml"
+ "Frame.qml"
+ "GroupBox.qml"
+ "ItemDelegate.qml"
+ "Label.qml"
+ "Menu.qml"
+ "MenuBar.qml"
+ "MenuBarItem.qml"
+ "MenuItem.qml"
+ "MenuSeparator.qml"
+ "Page.qml"
+ "PageIndicator.qml"
+ "Pane.qml"
+ "Popup.qml"
+ "ProgressBar.qml"
+ "RadioButton.qml"
+ "RadioDelegate.qml"
+ "RadioIndicator.qml"
+ "RangeSlider.qml"
+ "RoundButton.qml"
+ "RectangularGlow.qml"
+ "ScrollBar.qml"
+ "ScrollIndicator.qml"
+ "Slider.qml"
+ "SliderHandle.qml"
+ "SpinBox.qml"
+ "SplitView.qml"
+ "StackView.qml"
+ "SwipeDelegate.qml"
+ "SwipeView.qml"
+ "Switch.qml"
+ "SwitchDelegate.qml"
+ "SwitchIndicator.qml"
+ "TabBar.qml"
+ "TabButton.qml"
+ "TextArea.qml"
+ "TextField.qml"
+ "ToolBar.qml"
+ "ToolButton.qml"
+ "ToolSeparator.qml"
+ "ToolTip.qml"
+ "Tumbler.qml"
)
add_qt_resource(qtquickcontrols2materialstyleplugin qmake_QtQuick_Controls_2_Material
@@ -126,7 +131,6 @@ qt_install_qml_files(qtquickcontrols2materialstyleplugin
#### Keys ignored in scope 1:.:.:material.pro:<TRUE>:
-# CONFIG = "no_cxx_module" "install_qml_files" "builtin_resources" "qtquickcompiler"
# IMPORT_NAME = "QtQuick.Controls.Material"
# IMPORT_VERSION = "2.$$QT_MINOR_VERSION"
# OTHER_FILES = "qmldir" "$$QML_FILES"
diff --git a/src/imports/controls/material/qtquickcontrols2materialstyleplugin.cpp b/src/imports/controls/material/qtquickcontrols2materialstyleplugin.cpp
index eb0e6c87..d8cc04dd 100644
--- a/src/imports/controls/material/qtquickcontrols2materialstyleplugin.cpp
+++ b/src/imports/controls/material/qtquickcontrols2materialstyleplugin.cpp
@@ -68,11 +68,11 @@ QtQuickControls2MaterialStylePlugin::QtQuickControls2MaterialStylePlugin(QObject
void QtQuickControls2MaterialStylePlugin::registerTypes(const char *uri)
{
- qmlRegisterModule(uri, 2, QT_VERSION_MINOR); // Qt 5.12->2.12, 5.13->2.13...
+ qmlRegisterModule(uri, 2, 15); // Qt 5.12->2.12, 5.13->2.13...
qmlRegisterUncreatableType<QQuickMaterialStyle>(uri, 2, 0, "Material", tr("Material is an attached property"));
QByteArray import = QByteArray(uri) + ".impl";
- qmlRegisterModule(import, 2, QT_VERSION_MINOR); // Qt 5.12->2.12, 5.13->2.13...
+ qmlRegisterModule(import, 2, 15); // Qt 5.12->2.12, 5.13->2.13...
qmlRegisterType<QQuickMaterialBusyIndicator>(import, 2, 0, "BusyIndicatorImpl");
qmlRegisterType<QQuickMaterialProgressBar>(import, 2, 0, "ProgressBarImpl");
diff --git a/src/imports/controls/material/qtquickcontrols2materialstyleplugin.qrc b/src/imports/controls/material/qtquickcontrols2materialstyleplugin.qrc
index 6e29aea4..71f9563b 100644
--- a/src/imports/controls/material/qtquickcontrols2materialstyleplugin.qrc
+++ b/src/imports/controls/material/qtquickcontrols2materialstyleplugin.qrc
@@ -15,5 +15,6 @@
<file>shaders/RectangularGlow.frag</file>
<file>shaders/+glslcore/RectangularGlow.frag</file>
<file>shaders/+hlsl/RectangularGlow.frag</file>
+ <file>shaders/+qsb/RectangularGlow.frag</file>
</qresource>
</RCC>
diff --git a/src/imports/controls/material/shaders/+qsb/RectangularGlow.frag b/src/imports/controls/material/shaders/+qsb/RectangularGlow.frag
new file mode 100644
index 00000000..a805b134
--- /dev/null
+++ b/src/imports/controls/material/shaders/+qsb/RectangularGlow.frag
Binary files differ
diff --git a/src/imports/controls/material/shaders/RectangularGlow_rhi.frag b/src/imports/controls/material/shaders/RectangularGlow_rhi.frag
new file mode 100644
index 00000000..3e7d2dfe
--- /dev/null
+++ b/src/imports/controls/material/shaders/RectangularGlow_rhi.frag
@@ -0,0 +1,28 @@
+#version 440
+
+layout(location = 0) in vec2 qt_TexCoord0;
+layout(location = 0) out vec4 fragColor;
+
+layout(std140, binding = 0) uniform buf {
+ mat4 qt_Matrix;
+ float qt_Opacity;
+ float relativeSizeX;
+ float relativeSizeY;
+ float spread;
+ vec4 color;
+} ubuf;
+
+float linearstep(float e0, float e1, float x)
+{
+ return clamp((x - e0) / (e1 - e0), 0.0, 1.0);
+}
+
+void main()
+{
+ float alpha =
+ smoothstep(0.0, ubuf.relativeSizeX, 0.5 - abs(0.5 - qt_TexCoord0.x)) *
+ smoothstep(0.0, ubuf.relativeSizeY, 0.5 - abs(0.5 - qt_TexCoord0.y));
+
+ float spreadMultiplier = linearstep(ubuf.spread, 1.0 - ubuf.spread, alpha);
+ fragColor = ubuf.color * ubuf.qt_Opacity * spreadMultiplier * spreadMultiplier;
+}