2012-05-03 14:01:31 -07:00
|
|
|
#include "evas_cserve2_slave.h"
|
|
|
|
|
2013-07-01 01:52:06 -07:00
|
|
|
Eina_Bool
|
|
|
|
evas_cserve2_image_premul_data(unsigned int *data, unsigned int len)
|
2012-05-03 14:01:31 -07:00
|
|
|
{
|
|
|
|
unsigned int *de = data + len;
|
|
|
|
unsigned int nas = 0;
|
|
|
|
|
|
|
|
while (data < de)
|
|
|
|
{
|
2013-07-01 01:52:06 -07:00
|
|
|
unsigned int a = 1 + (*data >> 24);
|
2012-05-03 14:01:31 -07:00
|
|
|
|
2013-07-01 01:52:06 -07:00
|
|
|
*data = (*data & 0xff000000) +
|
|
|
|
(((((*data) >> 8) & 0xff) * a) & 0xff00) +
|
|
|
|
(((((*data) & 0x00ff00ff) * a) >> 8) & 0x00ff00ff);
|
|
|
|
data++;
|
2012-05-03 14:01:31 -07:00
|
|
|
|
2013-07-01 01:52:06 -07:00
|
|
|
if ((a == 1) || (a == 256))
|
|
|
|
nas++;
|
2012-05-03 14:01:31 -07:00
|
|
|
}
|
|
|
|
|
2013-06-27 00:18:40 -07:00
|
|
|
return ((ALPHA_SPARSE_INV_FRACTION * nas) >= len);
|
|
|
|
}
|