forked from enlightenment/efl
evas: optimization - handle if c1 == c2 for map interplated lines
This commit is contained in:
parent
509090bafc
commit
1914148446
|
@ -7,13 +7,13 @@
|
|||
int x, w, ww;
|
||||
FPc u, v, ud, vd, dv, ue, ve;
|
||||
DATA32 *d, *s;
|
||||
#ifdef COLMUL
|
||||
#ifdef COLMUL
|
||||
FPc cv, cd; // col
|
||||
# ifdef SCALE_USING_MMX
|
||||
FPc cc;
|
||||
#endif
|
||||
#endif
|
||||
DATA32 c1, c2; // col
|
||||
#endif
|
||||
#endif
|
||||
Line *line;
|
||||
|
||||
#ifdef SCALE_USING_MMX
|
||||
|
@ -74,8 +74,8 @@
|
|||
else
|
||||
d = buf;
|
||||
|
||||
#define SMOOTH 1
|
||||
#ifdef COLMUL
|
||||
#define SMOOTH 1
|
||||
#ifdef COLMUL
|
||||
c1 = span->col[0]; // col
|
||||
c2 = span->col[1]; // col
|
||||
cv = 0; // col
|
||||
|
@ -85,16 +85,20 @@
|
|||
{
|
||||
if (c1 == 0xffffffff)
|
||||
{
|
||||
#endif
|
||||
#endif
|
||||
#define COLSAME 1
|
||||
#include "evas_map_image_loop.c"
|
||||
#ifdef COLMUL
|
||||
#undef COLSAME
|
||||
#ifdef COLMUL
|
||||
}
|
||||
else if ((c1 == 0x0000ff) && (!src->cache_entry.flags.alpha))
|
||||
{
|
||||
// all black line
|
||||
# define COLBLACK 1
|
||||
# define COLSAME 1
|
||||
# include "evas_map_image_loop.c"
|
||||
# undef COLBLACK
|
||||
# undef COLSAME
|
||||
# undef COLBLACK
|
||||
}
|
||||
else if (c1 == 0x000000)
|
||||
{
|
||||
|
@ -103,7 +107,9 @@
|
|||
else
|
||||
{
|
||||
// generic loop
|
||||
# define COLSAME 1
|
||||
# include "evas_map_image_loop.c"
|
||||
# undef COLSAME
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -132,7 +138,7 @@
|
|||
#ifdef COLMUL
|
||||
FPc cv, cd; // col
|
||||
DATA32 c1, c2; // col
|
||||
#endif
|
||||
#endif
|
||||
Line *line;
|
||||
|
||||
line = &(spans[y - ystart]);
|
||||
|
@ -185,16 +191,20 @@
|
|||
{
|
||||
if (c1 == 0xffffffff)
|
||||
{
|
||||
#endif
|
||||
#endif
|
||||
#define COLSAME 1
|
||||
#include "evas_map_image_loop.c"
|
||||
#undef COLSAME
|
||||
#ifdef COLMUL
|
||||
}
|
||||
else if ((c1 == 0x0000ff) && (!src->cache_entry.flags.alpha))
|
||||
{
|
||||
// all black line
|
||||
# define COLBLACK 1
|
||||
# define COLSAME 1
|
||||
# include "evas_map_image_loop.c"
|
||||
# undef COLBLACK
|
||||
# undef COLSAME
|
||||
# undef COLBLACK
|
||||
}
|
||||
else if (c1 == 0x000000)
|
||||
{
|
||||
|
@ -203,7 +213,9 @@
|
|||
else
|
||||
{
|
||||
// generic loop
|
||||
# define COLSAME 1
|
||||
# include "evas_map_image_loop.c"
|
||||
# undef COLSAME
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
|
@ -1,5 +1,12 @@
|
|||
#ifdef SMOOTH
|
||||
{
|
||||
# ifdef SCALE_USING_MMX
|
||||
# ifdef COLMUL
|
||||
# ifdef COLSAME
|
||||
MOV_P2R(c1, mm7, mm0); // col
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
while (ww > 0)
|
||||
{
|
||||
# ifdef COLBLACK
|
||||
|
@ -56,6 +63,10 @@
|
|||
}
|
||||
INTERP_256_R2R(mm4, mm2, mm1, mm5);
|
||||
# ifdef COLMUL
|
||||
# ifdef COLSAME
|
||||
// MOV_P2R(c1, mm7, mm0); // col
|
||||
MUL4_SYM_R2R(mm7, mm1, mm5); // col
|
||||
# else
|
||||
cc = cv >> 16; // col
|
||||
cv += cd; // col
|
||||
MOV_A2R(cc, mm2); // col
|
||||
|
@ -63,6 +74,7 @@
|
|||
MOV_P2R(c2, mm4, mm0); // col
|
||||
INTERP_256_R2R(mm2, mm4, mm3, mm5); // col
|
||||
MUL4_SYM_R2R(mm3, mm1, mm5); // col
|
||||
# endif
|
||||
# endif
|
||||
MOV_R2P(mm1, *d, mm0);
|
||||
# else
|
||||
|
@ -70,9 +82,13 @@
|
|||
val3 = INTERP_256(ru, val4, val3);
|
||||
val1 = INTERP_256(rv, val3, val1); // col
|
||||
# ifdef COLMUL
|
||||
# ifdef COLSAME
|
||||
*d = MUL4_SYM(c1, val1);
|
||||
# else
|
||||
val2 = INTERP_256((cv >> 16), c2, c1); // col
|
||||
*d = MUL4_SYM(val2, val1); // col
|
||||
cv += cd; // col
|
||||
# endif
|
||||
# else
|
||||
*d = INTERP_256(rv, val3, val1);
|
||||
# endif
|
||||
|
@ -90,7 +106,11 @@
|
|||
{
|
||||
# ifdef COLMUL
|
||||
# ifndef COLBLACK
|
||||
DATA32 val1, cval; // col
|
||||
DATA32 val1;
|
||||
# ifdef COLSAME
|
||||
# else
|
||||
DATA32 cval; // col
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
# ifdef COLBLACK
|
||||
|
@ -100,9 +120,13 @@
|
|||
(u >> (FP + FPI));
|
||||
# ifdef COLMUL
|
||||
val1 = *s; // col
|
||||
# ifdef COLSAME
|
||||
*d = MUL4_SYM(c1, val1);
|
||||
# else
|
||||
cval = INTERP_256((cv >> 16), c2, c1); // col
|
||||
*d = MUL4_SYM(cval, val1);
|
||||
cv += cd; // col
|
||||
# endif
|
||||
# else
|
||||
*d = *s;
|
||||
# endif
|
||||
|
|
Loading…
Reference in New Issue