1

CanvasQMLで使用しRectangleて、OpenGLで回転して描画しています。コードは次のとおりです。

//...
property variant points: []

onPointsChanged:{
    canvas.requestPaint();
}

//...

Canvas{
    //...

    onPaint:{
        var ctx = canvas.getContext('2d')

        ctx.clearRect(0,0, width, height);
        ctx.beginPath()
        ctx.strokeStyle = 'red'
        ctx.lineWidth = 3

        for(var i = 0; i < points.length; i++){
            var p1 = convertPoint(points[i])
            if(i == 0){
                ctx.moveTo(p1.x, p1.y)
                continue
            }

            ctx.lineTo(p1.x, p1.y)
        }
        ctx.stroke()
        ctx.restore()
    }

    function convertPoint(p){
        var x = p.x * width;
        var y = p.y * height;
        return Qt.point(x,y);
    }
}

C++ コードでは 4 ポイントがカウントされ、30 ミリ秒ごとに qml に送信されます。問題は、MinGW でコンパイルすると、このペイント操作が CPU 使用率の 50% を占め、MSVC2010 でコンパイルすると、CPU の 17% を消費することです。それはいくつかのバグですか、それとも何が悪いのですか?

4

1 に答える 1