Канвас, наложение картинки и всего остального
Пример дома попробую минимизировать, пока скриншот. Я так понимаю, канвас вообще не должен XORиться, до этого я такого не видел, ан вот:
Картинка нарисована форматом ARGB Raw, с прозрачностью. Пользуюсь стандартным CCanvas
Другие картинки и код будет когда доберусь домой

Дело в том, что Вам следует использовать формат COLOR_FORMAT_ARGB_NORMALIZE, а не COLOR_FORMAT_ARGB_RAW
Статья на wiki в тему, к сожалению только на английском.
for(UINT i=0;i<img_size;i++)
{
switch(a=BYTE(rgb[i]>>24))
{
case 0xFF: break;
case 0x00: rgb[i]=0; break;
default:
r =BYTE((rgb[i]>>16)&255);
g =BYTE((rgb[i]>> 8)&255);
b =BYTE((rgb[i] )&255);
rgb[i]=(a<<24)|(BYTE(r*a/255)<<16)|(BYTE(g*a/255)<<8)|BYTE(b*a/255);
break;
}
}
Спасибо, попробую. Но тогда в справке не совсем понятно написано
Я бы и в жизни не подумал, что вот это
Компоненты цвета не обрабатываются терминалом (должны быть корректно заданы пользователем)
каким-то боком относится к premultiplied
_________
Да, так все ок

Рисую тут на канве и обнаружил странное поведение, которое мне не нравится и которое я не могу пока победить.
Засада в том, что на разных графиках и разных терминалах получается разный принцип наложения картинки.
На одном графике нарисованная (с прозрачностью, ARGB Raw) картинка рисуется как надо, на втором под графиком (нет, свойство как фон не выставлено), на третьем вообще ксорится с графиком. Кто в курсе что это вообще такое и как на это влиять? Я вообще не трогаю (да и не в курсе есть ли такие) какие-нибудь свойства наложения объектов