У меня есть изображение, которое я хочу иметь закругленные углы и быть серой в некоторых условиях. Поэтому я попытался использовать OpacityMask для закругленных углов и Colorize, чтобы сделать его серым. Всякий раз, когда я запускаю программу, это сообщение отображается на консоли:
ShaderEffectSource: для 'recursive' должно быть установлено значение true при рендеринге
рекурсивно.
А Colorize не применяется.
Я переместил код в более простую программу, и когда я его запускаю, отображается то же сообщение, но оба эффекта применяются (показано округленное серое изображение)
Вот упрощенная версия моего кода:
Image
{
id: gameIcon;
anchors.left: parent.left
anchors.leftMargin: 5
source: "NAME-YOUR-OWN-ROSE-2-2009.jpg"
fillMode: Image.PreserveAspectFit
width: 300
Colorize
{
saturation: 0
anchors.fill: parent
source: gameIcon
}
layer.enabled: true;
layer.effect: OpacityMask
{
maskSource: Item
{
width: gameIcon.width
height: gameIcon.height
Rectangle
{
id : maskId
anchors.centerIn: parent
width: Math.min(gameIcon.width, gameIcon.height)
height: width
radius: Math.min(width, height) * 0.5
}
}
}
}
Что с ним не так?