FrostedGlass.qml 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. // Copyright (C) 2021 The Qt Company Ltd.
  2. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
  3. import QtQuick
  4. Item {
  5. id: root
  6. required property Item backgroundItem
  7. property alias range: glassEffect.range
  8. property alias blur: glassEffect.blur
  9. property alias color: glassEffect.color
  10. property alias backgroundRect: backgroundSourceImage.sourceRect
  11. ShaderEffectSource {
  12. anchors.fill: parent
  13. id: backgroundSourceImage
  14. sourceRect: Qt.rect(0, 0, width, height)
  15. sourceItem: root.backgroundItem
  16. visible: false
  17. }
  18. ShaderEffectSource {
  19. anchors.fill: parent
  20. id: noiseImageSource
  21. sourceRect: Qt.rect(0, 0, width, height)
  22. sourceItem: noiseImage
  23. visible: false
  24. }
  25. Image {
  26. anchors.fill: parent
  27. id: noiseImage
  28. fillMode: Image.Tile
  29. horizontalAlignment: Image.AlignLeft
  30. verticalAlignment: Image.AlignTop
  31. visible: false
  32. source: "assets/images/noise.png"
  33. }
  34. ShaderEffect {
  35. id: glassEffect
  36. property variant sourceTex: backgroundSourceImage
  37. property variant noiseTex: noiseImageSource
  38. property real range: 0.25;
  39. property real blur: 0.05;
  40. property color color: "white"
  41. anchors.fill: parent
  42. fragmentShader: "assets/shaders/frostedGlass.frag.qsb"
  43. }
  44. }