通过ShaderEffectSource快照有时是锯齿状的

时间:2017-09-19 10:55:22

标签: qt opengl qml qtquick2

我的组件的代码是这样的:

import QtQuick 2.5

Item {
    id: root

    width: 315
    height: 315

    property bool active

    Image {
        id: srcImage
        width: root.width
        height: root.height

        source: "/test.png"

        y: root.active ? 0 : 300
    }

    ShaderEffectSource {
        id: snapshotter
        sourceItem: {
            if(root.active) {
                return srcImage;
            } else {
                // Work around a bug that causes the snapshotter to lose its
                // contents. (see http://stackoverflow.com/a/43067294 )
                return snapshotter;
            }
        }
        width: root.width
        height: root.height
        live: root.active
        recursive: sourceItem == snapshotter
        textureSize: Qt.size(root.width, root.height)
        y: live ? 300 : 0
    }
}

我得到了这样的结果(并排破碎和不间断):

screenshot

我找出了原因,我会直接将其作为答案发布。

1 个答案:

答案 0 :(得分:1)

我必须确保组件的绝对坐标(窗口相对)是整数。修好了。