Файл примера GrayscaleEffect.qml
declarative/shadereffects/qml/shadereffects/GrayscaleEffect.qml
import QtQuick 1.0
import Qt.labs.shaders 1.0
ShaderEffectItem {
id: effect
property real ratio: 1.0
property variant source: 0
fragmentShader:
"
varying highp vec2 qt_TexCoord0;
uniform sampler2D source;
uniform highp float ratio;
void main(void)
{
lowp vec4 textureColor = texture2D(source, qt_TexCoord0.st);
lowp float gray = dot(textureColor, vec4(0.299, 0.587, 0.114, 0.0));
gl_FragColor = vec4(gray * ratio + textureColor.r * (1.0 - ratio), gray * ratio + textureColor.g * (1.0 - ratio), gray * ratio + textureColor.b * (1.0 - ratio), textureColor.a);
}
"
}