QPainter имеет много режимов композиции, но ни один из них не называется аддитивным.Мне интересно, потому что аддитивное смешивание все время используется в играх для освещения / частиц.Единственный режим наложения - это что-то вроде эффекта освещения.
РЕДАКТИРОВАТЬ: Я понял, вот как вы можете эффективно создавать разноцветные огни в Qt.
В конструкторе или где-либо еще, а не в событии рисования:
light = QPixmap("light.png");
QPainter pix(light);
pix.setCompositionMode(QPainter::CompositionMode_Overlay);
pix.fillRect(light.rect(), QColor(255, 0, 0, 255)); // colorize the light in any color
Событие рисования:
// Do drawing, e.g. a background
p.drawPixmap(0, 0, QPixmap("background.png"));
// draw the lighting
p.setCompositionMode(QPainter::CompositionMode_Plus);
p.drawPixmap(100, 100, light);
Вы можете повторно использовать одно и то же растровое изображение и рисовать его с помощьюразличная непрозрачность или размер и т. д.