summaryrefslogtreecommitdiff
path: root/src/controls/Styles/Android/drawables/ImageDrawable.qml
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@theqtcompany.com>2014-11-27 18:04:58 +0100
committerFrederik Gladhorn <frederik.gladhorn@theqtcompany.com>2014-11-27 18:04:58 +0100
commit71314570d03631f50ab2c262011aba6a572d0ced (patch)
tree6d0c663ad313af89efff8e7b0fdafe6a28b19505 /src/controls/Styles/Android/drawables/ImageDrawable.qml
parent3704a616dfabb71ebd3ffc64f8efe32931c82a8b (diff)
parentea099e341b5f8845be56f81b22e44a8b6cb227a2 (diff)
downloadqtquickcontrols-71314570d03631f50ab2c262011aba6a572d0ced.tar.gz
Merge remote-tracking branch 'origin/5.4.0' into 5.4
Change-Id: I4c81a7852e7041328b7cfa320e907cc3cb863f04
Diffstat (limited to 'src/controls/Styles/Android/drawables/ImageDrawable.qml')
-rw-r--r--src/controls/Styles/Android/drawables/ImageDrawable.qml28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/controls/Styles/Android/drawables/ImageDrawable.qml b/src/controls/Styles/Android/drawables/ImageDrawable.qml
index 1e71a389..4b41b2f2 100644
--- a/src/controls/Styles/Android/drawables/ImageDrawable.qml
+++ b/src/controls/Styles/Android/drawables/ImageDrawable.qml
@@ -52,5 +52,33 @@ Drawable {
anchors.fill: parent
fillMode: Image.TileHorizontally
source: AndroidStyle.filePath(styleDef.path)
+
+ layer.enabled: !!styleDef && !!styleDef.tintList
+ layer.effect: ShaderEffect {
+ property variant source: image
+ property color color: AndroidStyle.colorValue(styleDef.tintList[state])
+ state: {
+ var states = []
+ if (pressed) states.push("PRESSED")
+ if (enabled) states.push("ENABLED")
+ if (focused) states.push("FOCUSED")
+ if (selected) states.push("SELECTED")
+ if (window_focused) states.push("WINDOW_FOCUSED")
+ if (!states.length)
+ states.push("EMPTY")
+ return states.join("_") + "_STATE_SET"
+ }
+ // QtGraphicalEffects/ColorOverlay:
+ fragmentShader: "
+ varying mediump vec2 qt_TexCoord0;
+ uniform highp float qt_Opacity;
+ uniform lowp sampler2D source;
+ uniform highp vec4 color;
+ void main() {
+ highp vec4 pixelColor = texture2D(source, qt_TexCoord0);
+ gl_FragColor = vec4(mix(pixelColor.rgb/max(pixelColor.a, 0.00390625), color.rgb/max(color.a, 0.00390625), color.a) * pixelColor.a, pixelColor.a) * qt_Opacity;
+ }
+ "
+ }
}
}