если необходимо смасштабировать обьект в ноде то применяем трансформационную ноду которую перемножаем на трансформационную матрицу.
для того, чтобы обьект остался на своем месте его необходимо сдвинуть в начало координат, а затем вернуть обратно.
QSGNode *quickItem::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *)
{
QRectF bounds = boundingRect();
QSGNode *n = static_cast(oldNode);
if (!n) {
n = new QSGNode();
} else {
QSGTransformNode *transformNode = new QSGTransformNode;
QMatrix4x4 m;
m.translate(bounds.width()/2, bounds.height()/2,0);
m.scale(0.1);
m.translate(-bounds.width()/2, -bounds.height()/2,0);
transformNode->setMatrix(m);
n->appendChildNode(transformNode);
}
return n;
}
Более подробно тут.
Комментариев нет:
Отправить комментарий