OSDev http://osdev.su/ |
|
Alpha смешивание http://osdev.su/viewtopic.php?f=6&t=2463 |
Страница 1 из 1 |
Автор: | grenders22 [ 06 июл 2018, 22:05 ] |
Заголовок сообщения: | Alpha смешивание |
На просторах интернета нашел код ниже для смешивания цветов. При ff видимость нулевая, при 00 стопроцентная видимость. Не могу понять почему так выходит. Код: uint32_t MMXBlend(uint32_t source, uint32_t overlap){
asm volatile( "movd %%edx,%%mm0;"::"d"(source)); asm volatile( "movd %%edx,%%mm1;"::"d"(overlap)); asm volatile( "pxor %mm2, %mm2;" "punpcklbw %mm2,%mm0;" "punpcklbw %mm2,%mm1;" "movq %mm1, %mm3;" "punpckhwd %mm3,%mm3;" "punpckhdq %mm3,%mm3;" "mov $0xFF00FF, %edx;" "movd %edx, %mm2;" "punpckldq %mm2,%mm2;" "psubw %mm3,%mm2;" "pmullw %mm3,%mm0;" "pmullw %mm2,%mm1;" "psrlw $8,%mm0;" "psrlw $8,%mm1;" "paddw %mm1,%mm0;" "packuswb %mm0,%mm0;" ); asm volatile( "movd %%mm0,%%edx":"=d"(source)); return source; } |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |