ShaderEffectSource:当对qml图像使用Colorize和OpacityMask进行递归渲染时,必须将'recursive'设置为true

时间:2019-06-22 10:14:31

标签: qt qml

我有一个想要在某些情况下具有圆角并为灰度的图像。因此,我尝试使用OpacityMask绘制圆角,并使用Colorize将其设为灰度。每当我运行程序时,此消息就会显示在控制台上:

  

ShaderEffectSource:渲染时必须将“递归”设置为true   递归地。

并且不应用“着色”。 我将代码移到了一个简单的程序上,当我运行该程序时,会显示相同的消息,但同时应用了两种效果(显示了一个圆角的灰度图像) 这是我的代码的简化版本:

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           
            }       
        }
    }
}   

这是怎么了?

0 个答案:

没有答案