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);
}

Ответы (0 шт):