Qt,C++ Работа с QPainter::CompositionMode
Работаю с наследованным от QGraphicsItem объектом и переопределенными его абстрактными методами. идея что есть квадрат и угловатая маска, я хочу что бы на сорс изображении пропали пиксили на которые наложили маску.( setMask() не годится так как изображение дальше будет анимировано а мне нужно динамически накладывать маску( а setMask() требует одного размера пиксилей у сорса и маски)) При применении композиции получаю или не тот результат который хочу или чаще всего черный экран. Как это можно поправить?
ball::ball()
{
sourceImage=new QImage();
destinationImage=new QImage();
sourceImage->load("./texture/ball_text_rect.png");
destinationImage->load("./texture/mask.png");
}
QRectF ball::boundingRect() const
{
return QRectF(-100,-100,200,200); /// Ограничиваем область, в которой лежит треугольник
}
void ball::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
painter->drawImage(QRectF(-100,-100,200,200),*sourceImage,QRectF(x,y,height,weight));
painter->setCompositionMode(QPainter::CompositionMode_SourceOut);
painter->drawImage(QRectF(-100,-100,200,200),*destinationImage,QRectF(x,y,height,weight));
//x,y, = 0
//height,weight = 500
// в результате черный экран
Q_UNUSED(option);
Q_UNUSED(widget);
}