Canvas
QMLで使用し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% を消費することです。それはいくつかのバグですか、それとも何が悪いのですか?