ShaderEffectSource: для 'recursive' должно быть установлено значение true, если при рекурсивном рендеринге возникает ошибка при использовании Colorize и OpacityMask для изображения в формате qml - PullRequest
1 голос
/ 22 июня 2019

У меня есть изображение, которое я хочу иметь закругленные углы и быть серой в некоторых условиях. Поэтому я попытался использовать 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           
            }       
        }
    }
}   

Что с ним не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...