50 lines
844 B
QML
50 lines
844 B
QML
import QtQuick 2.0
|
|
|
|
Item
|
|
{
|
|
id: root
|
|
|
|
width: 100
|
|
height: 100
|
|
|
|
property bool layerEffect: false;
|
|
onLayerEffectChanged: root.maybeUse();
|
|
Component.onCompleted: root.maybeUse();
|
|
|
|
property real layerOpacity: 1;
|
|
property bool layerVisible: true;
|
|
|
|
function maybeUse() {
|
|
if (root.layerEffect)
|
|
box.layer.effect = shaderEffect
|
|
}
|
|
|
|
Component {
|
|
id: shaderEffect
|
|
ShaderEffect {
|
|
fragmentShader: "visible.frag.qsb"
|
|
}
|
|
|
|
}
|
|
|
|
Rectangle {
|
|
id: box
|
|
width: 100
|
|
height: 100
|
|
|
|
color: "#0000ff"
|
|
visible: parent.layerVisible;
|
|
opacity: parent.layerOpacity;
|
|
|
|
Rectangle {
|
|
x: 50
|
|
width: 50
|
|
height: 100
|
|
color: "#00ff00"
|
|
}
|
|
|
|
layer.enabled: true
|
|
|
|
}
|
|
}
|