diff options
author | Alexandru Croitor <alexandru.croitor@qt.io> | 2019-08-15 18:54:24 +0200 |
---|---|---|
committer | Alexandru Croitor <alexandru.croitor@qt.io> | 2019-08-15 18:55:53 +0200 |
commit | d9df6eed8cdab44f5139408c9fa21325591b3fc8 (patch) | |
tree | fae5e5ea6adc503532d2c6308d3e9c11f065fd7f /src/imports/controls/material | |
parent | f343e8e477ac27a5c59276bca63d0e199087fb87 (diff) | |
parent | 341ace84485ffb3c2f05818e1b95604849217c9a (diff) |
Merge remote-tracking branch 'origin/wip/qt6' into wip/cmake
Change-Id: I62feb82fcf389bf83c92f83e2ed1a6783d3179ba
Diffstat (limited to 'src/imports/controls/material')
-rw-r--r-- | src/imports/controls/material/CMakeLists.txt | 148 | ||||
-rw-r--r-- | src/imports/controls/material/qtquickcontrols2materialstyleplugin.cpp | 4 | ||||
-rw-r--r-- | src/imports/controls/material/qtquickcontrols2materialstyleplugin.qrc | 1 | ||||
-rw-r--r-- | src/imports/controls/material/shaders/+qsb/RectangularGlow.frag | bin | 0 -> 2321 bytes | |||
-rw-r--r-- | src/imports/controls/material/shaders/RectangularGlow_rhi.frag | 28 |
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 Binary files differnew file mode 100644 index 00000000..a805b134 --- /dev/null +++ b/src/imports/controls/material/shaders/+qsb/RectangularGlow.frag 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; +} |