Как заставить GDI+ не изменять цвет при наложении с альфаканалом

Мне нужно накладывать графику, генерированную через GDI+ на видеокадр в формате YUV.

Я наивно предполагал делать следующее:

- создать битмеп в 32 бита, то есть с альфа-каналом

- подключить на него GDI+

- рисовать на нём

- попиксельно пересчитывать RGB в YUV и потом по значению альфа-канала микшировать получившееся значение с исходным значением в кадре

И вроде всё работает. Но. Дело в том, что если я что-то рисую с альфа-каналом, то предусмотрено два варианта наложения:

CompositingModeSourceCopy и CompositingModeSourceOver

Over мне совсем не подходит - он в соответствии со значением альфы смешивает подложку и рисуемое.

Copy вроде более подходящее - не смешивает подложку и рисуемое, а просто кладёт рисуемое. Но зачем-то при этом пересчитывает рисуемые цвета в соответствии с альфой. А мне нужны чистые цвета, которые я задал.

То есть если я задаю SolidBrush(MakeColor(0x80, 0xFF, 0xFF, 0xFF)) и рисую круг, то мне в выходной картинке нужен круг цвета 0x80FFFFFF. Вместо этого я получаю круг цвета 0x80808080, так как все FF умножаются на 80. И я искренне не понимаю - на черта - у меня же есть альфа канал - я буду делать наложение потом - зачем мне делать предумножение цветов?

Может есть какой-то способ получить ровно тот цвет, который я задал? Без микширования и предумножения?

Понятно, что можно это всё обойти с помощью костылей, но это как-то через одно место...