OSDev

для всех
Текущее время: 29 мар 2024, 02:48

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: Alpha смешивание
СообщениеДобавлено: 06 июл 2018, 22:05 

Зарегистрирован: 04 мар 2018, 21:34
Сообщения: 55
На просторах интернета нашел код ниже для смешивания цветов. При 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 сообщение ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB