forked from enlightenment/efl
parent
2ecb8da51f
commit
ccc60306a0
|
@ -36,6 +36,7 @@ evas_common_draw_context_new(void)
|
|||
RGBA_Draw_Context *dc;
|
||||
|
||||
dc = calloc(1, sizeof(RGBA_Draw_Context));
|
||||
dc->sli.h = 1;
|
||||
return dc;
|
||||
}
|
||||
|
||||
|
@ -543,3 +544,10 @@ evas_common_draw_context_set_render_op(RGBA_Draw_Context *dc , int op)
|
|||
{
|
||||
dc->render_op = op;
|
||||
}
|
||||
|
||||
EAPI void
|
||||
evas_common_draw_context_set_sli(RGBA_Draw_Context *dc, int y, int h)
|
||||
{
|
||||
dc->sli.y = y;
|
||||
dc->sli.h = h;
|
||||
}
|
||||
|
|
|
@ -259,22 +259,27 @@ evas_common_font_draw(RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Font *fn, int
|
|||
in_w = 0;
|
||||
dx = chr_x;
|
||||
dy = y - (chr_y - i - y);
|
||||
if ((dx < (ext_x + ext_w)) &&
|
||||
(dy >= (ext_y)) &&
|
||||
(dy < (ext_y + ext_h)))
|
||||
#ifdef EVAS_SLI
|
||||
if (((dy) % dc->sli.h) == dc->sli.y)
|
||||
#endif
|
||||
{
|
||||
if (dx + w > (ext_x + ext_w))
|
||||
in_w += (dx + w) - (ext_x + ext_w);
|
||||
if (dx < ext_x)
|
||||
if ((dx < (ext_x + ext_w)) &&
|
||||
(dy >= (ext_y)) &&
|
||||
(dy < (ext_y + ext_h)))
|
||||
{
|
||||
in_w += ext_x - dx;
|
||||
in_x = ext_x - dx;
|
||||
dx = ext_x;
|
||||
}
|
||||
if (in_w < w)
|
||||
{
|
||||
func(NULL, data + (i * j) + in_x, dc->col.col,
|
||||
im + (dy * im_w) + dx, w - in_w);
|
||||
if (dx + w > (ext_x + ext_w))
|
||||
in_w += (dx + w) - (ext_x + ext_w);
|
||||
if (dx < ext_x)
|
||||
{
|
||||
in_w += ext_x - dx;
|
||||
in_x = ext_x - dx;
|
||||
dx = ext_x;
|
||||
}
|
||||
if (in_w < w)
|
||||
{
|
||||
func(NULL, data + (i * j) + in_x, dc->col.col,
|
||||
im + (dy * im_w) + dx, w - in_w);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -295,36 +300,41 @@ evas_common_font_draw(RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Font *fn, int
|
|||
in_w = 0;
|
||||
dx = chr_x;
|
||||
dy = y - (chr_y - i - y);
|
||||
tp = tmpbuf;
|
||||
dp = data + (i * fg->glyph_out->bitmap.pitch);
|
||||
for (bi = 0; bi < w; bi += 8)
|
||||
#ifdef EVAS_SLI
|
||||
if (((dy) % dc->sli.h) == dc->sli.y)
|
||||
#endif
|
||||
{
|
||||
bits = *dp;
|
||||
if ((w - bi) < 8) end = w - bi;
|
||||
else end = 8;
|
||||
for (bj = 0; bj < end; bj++)
|
||||
tp = tmpbuf;
|
||||
dp = data + (i * fg->glyph_out->bitmap.pitch);
|
||||
for (bi = 0; bi < w; bi += 8)
|
||||
{
|
||||
*tp = bitrepl[(bits >> (7 - bj)) & 0x1];
|
||||
tp++;
|
||||
bits = *dp;
|
||||
if ((w - bi) < 8) end = w - bi;
|
||||
else end = 8;
|
||||
for (bj = 0; bj < end; bj++)
|
||||
{
|
||||
*tp = bitrepl[(bits >> (7 - bj)) & 0x1];
|
||||
tp++;
|
||||
}
|
||||
dp++;
|
||||
}
|
||||
dp++;
|
||||
}
|
||||
if ((dx < (ext_x + ext_w)) &&
|
||||
(dy >= (ext_y)) &&
|
||||
(dy < (ext_y + ext_h)))
|
||||
{
|
||||
if (dx + w > (ext_x + ext_w))
|
||||
in_w += (dx + w) - (ext_x + ext_w);
|
||||
if (dx < ext_x)
|
||||
if ((dx < (ext_x + ext_w)) &&
|
||||
(dy >= (ext_y)) &&
|
||||
(dy < (ext_y + ext_h)))
|
||||
{
|
||||
in_w += ext_x - dx;
|
||||
in_x = ext_x - dx;
|
||||
dx = ext_x;
|
||||
}
|
||||
if (in_w < w)
|
||||
{
|
||||
func(NULL, tmpbuf + in_x, dc->col.col,
|
||||
im + (dy * im_w) + dx, w - in_w);
|
||||
if (dx + w > (ext_x + ext_w))
|
||||
in_w += (dx + w) - (ext_x + ext_w);
|
||||
if (dx < ext_x)
|
||||
{
|
||||
in_w += ext_x - dx;
|
||||
in_x = ext_x - dx;
|
||||
dx = ext_x;
|
||||
}
|
||||
if (in_w < w)
|
||||
{
|
||||
func(NULL, tmpbuf + in_x, dc->col.col,
|
||||
im + (dy * im_w) + dx, w - in_w);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -526,10 +526,15 @@ evas_common_gradient_draw(RGBA_Image *dst, RGBA_Draw_Context *dc,
|
|||
buf = pdst;
|
||||
while (pdst < dst_end)
|
||||
{
|
||||
gfunc(map, len, buf, mask, w, xoff, yoff, axx, axy, ayx, ayy, gdata);
|
||||
if (!direct_copy)
|
||||
bfunc(buf, mask, 0, pdst, w);
|
||||
evas_common_cpu_end_opt();
|
||||
#ifdef EVAS_SLI
|
||||
if (((yoff + y) % dc->sli.h) == dc->sli.y)
|
||||
#endif
|
||||
{
|
||||
gfunc(map, len, buf, mask, w, xoff, yoff, axx, axy, ayx, ayy, gdata);
|
||||
if (!direct_copy)
|
||||
bfunc(buf, mask, 0, pdst, w);
|
||||
evas_common_cpu_end_opt();
|
||||
}
|
||||
buf += buf_step;
|
||||
pdst += dst->image->w;
|
||||
yoff++;
|
||||
|
|
|
@ -152,24 +152,29 @@ _evas_draw_simple_line(RGBA_Image *dst, RGBA_Draw_Context *dc, int x0, int y0, i
|
|||
|
||||
if (dy == 0)
|
||||
{
|
||||
if ((y0 >= ty) && (y0 <= by))
|
||||
#ifdef EVAS_SLI
|
||||
if (((y0) % dc->sli.h) == dc->sli.y)
|
||||
#endif
|
||||
{
|
||||
if (dx < 0)
|
||||
if ((y0 >= ty) && (y0 <= by))
|
||||
{
|
||||
int tmp = x1;
|
||||
if (dx < 0)
|
||||
{
|
||||
int tmp = x1;
|
||||
|
||||
x1 = x0;
|
||||
x0 = tmp;
|
||||
}
|
||||
|
||||
x1 = x0;
|
||||
x0 = tmp;
|
||||
if (x0 < lx) x0 = lx;
|
||||
if (x1 > rx) x1 = rx;
|
||||
|
||||
len = x1 - x0 + 1;
|
||||
p = dst->image->data + (dstw * y0) + x0;
|
||||
sfunc = evas_common_gfx_func_composite_color_span_get(color, dst, len, dc->render_op);
|
||||
if (sfunc)
|
||||
sfunc(NULL, NULL, color, p, len);
|
||||
}
|
||||
|
||||
if (x0 < lx) x0 = lx;
|
||||
if (x1 > rx) x1 = rx;
|
||||
|
||||
len = x1 - x0 + 1;
|
||||
p = dst->image->data + (dstw * y0) + x0;
|
||||
sfunc = evas_common_gfx_func_composite_color_span_get(color, dst, len, dc->render_op);
|
||||
if (sfunc)
|
||||
sfunc(NULL, NULL, color, p, len);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
@ -188,7 +193,12 @@ _evas_draw_simple_line(RGBA_Image *dst, RGBA_Draw_Context *dc, int x0, int y0, i
|
|||
p = dst->image->data + (dstw * y0) + x0;
|
||||
while (len--)
|
||||
{
|
||||
pfunc(0, 255, color, p);
|
||||
#ifdef EVAS_SLI
|
||||
if (((y1 + 1 - len) % dc->sli.h) == dc->sli.y)
|
||||
#endif
|
||||
{
|
||||
pfunc(0, 255, color, p);
|
||||
}
|
||||
p += dstw;
|
||||
}
|
||||
}
|
||||
|
@ -273,7 +283,12 @@ _evas_draw_simple_line(RGBA_Image *dst, RGBA_Draw_Context *dc, int x0, int y0, i
|
|||
|
||||
while (len--)
|
||||
{
|
||||
pfunc(0, 255, color, p);
|
||||
#ifdef EVAS_SLI
|
||||
if (((y1 + 1 - len) % dc->sli.h) == dc->sli.y)
|
||||
#endif
|
||||
{
|
||||
pfunc(0, 255, color, p);
|
||||
}
|
||||
p += dstw;
|
||||
}
|
||||
}
|
||||
|
@ -486,8 +501,13 @@ _evas_draw_line(RGBA_Image *dst, RGBA_Draw_Context *dc, int x0, int y0, int x1,
|
|||
if ((py < 0) && (dely < 0)) return;
|
||||
if ((py > by) && (dely > 0)) return;
|
||||
}
|
||||
if (IN_RANGE(px, py, clw, clh))
|
||||
pfunc(0, 255, color, p);
|
||||
#ifdef EVAS_SLI
|
||||
if (((py) % dc->sli.h) == dc->sli.y)
|
||||
#endif
|
||||
{
|
||||
if (IN_RANGE(px, py, clw, clh))
|
||||
pfunc(0, 255, color, p);
|
||||
}
|
||||
yy += dyy;
|
||||
px++;
|
||||
p++;
|
||||
|
@ -514,8 +534,13 @@ _evas_draw_line(RGBA_Image *dst, RGBA_Draw_Context *dc, int x0, int y0, int x1,
|
|||
if ((px < 0) && (delx < 0)) return;
|
||||
if ((px > rx) && (delx > 0)) return;
|
||||
}
|
||||
if (IN_RANGE(px, py, clw, clh))
|
||||
pfunc(0, 255, color, p);
|
||||
#ifdef EVAS_SLI
|
||||
if (((py) % dc->sli.h) == dc->sli.y)
|
||||
#endif
|
||||
{
|
||||
if (IN_RANGE(px, py, clw, clh))
|
||||
pfunc(0, 255, color, p);
|
||||
}
|
||||
xx += dxx;
|
||||
py++;
|
||||
p += dstw;
|
||||
|
|
|
@ -62,13 +62,6 @@ evas_common_pipe_op_free(RGBA_Pipe_Op *op)
|
|||
}
|
||||
|
||||
/* main api calls */
|
||||
EAPI void
|
||||
evas_common_pipe_begin(RGBA_Image *im)
|
||||
{
|
||||
/* FIXME: PTHREAD start any processing threads and lock - otherwise do
|
||||
* nothing */
|
||||
}
|
||||
|
||||
#ifdef BUILD_PTHREAD
|
||||
typedef struct _Thinfo
|
||||
{
|
||||
|
@ -118,6 +111,77 @@ evas_common_pipe_thread(void *data)
|
|||
}
|
||||
#endif
|
||||
|
||||
#ifdef BUILD_PTHREAD
|
||||
static int thread_num = 0;
|
||||
static Thinfo thinfo[TH_MAX];
|
||||
static pthread_barrier_t thbarrier[2];
|
||||
#endif
|
||||
|
||||
EAPI void
|
||||
evas_common_pipe_begin(RGBA_Image *im)
|
||||
{
|
||||
#ifdef BUILD_PTHREAD
|
||||
int i, y, h;
|
||||
|
||||
if (thread_num == 0)
|
||||
{
|
||||
int cpunum;
|
||||
|
||||
cpunum = evas_common_cpu_count();
|
||||
thread_num = cpunum;
|
||||
pthread_barrier_init(&(thbarrier[0]), NULL, thread_num + 1);
|
||||
for (i = 0; i < thread_num; i++)
|
||||
{
|
||||
pthread_attr_t attr;
|
||||
cpu_set_t cpu;
|
||||
|
||||
pthread_attr_init(&attr);
|
||||
CPU_ZERO(&cpu);
|
||||
CPU_SET(i % cpunum, &cpu);
|
||||
pthread_attr_setaffinity_np(&attr, sizeof(cpu), &cpu);
|
||||
thinfo[i].thread_num = i;
|
||||
thinfo[i].info = NULL;
|
||||
thinfo[i].barrier = thbarrier;
|
||||
/* setup initial locks */
|
||||
pthread_create(&(thinfo[i].thread_id), &attr,
|
||||
evas_common_pipe_thread, &(thinfo[i]));
|
||||
}
|
||||
}
|
||||
y = 0;
|
||||
h = im->image->h / thread_num;
|
||||
if (h < 1) h = 1;
|
||||
for (i = 0; i < thread_num; i++)
|
||||
{
|
||||
RGBA_Pipe_Thread_Info *info;
|
||||
|
||||
// if (y >= im->image->h) break;
|
||||
info = calloc(1, sizeof(RGBA_Pipe_Thread_Info));
|
||||
info->im = im;
|
||||
#ifdef EVAS_SLI
|
||||
info->x = 0;
|
||||
info->w = im->image->w;
|
||||
info->y = i;
|
||||
info->h = thread_num;
|
||||
#else
|
||||
info->x = 0;
|
||||
info->y = y;
|
||||
info->w = im->image->w;
|
||||
if (i == (thread_num - 1))
|
||||
info->h = im->image->h - y;
|
||||
else
|
||||
info->h = h;
|
||||
y += info->h;
|
||||
#endif
|
||||
thinfo[i].info = info;
|
||||
/* send startsignal */
|
||||
// printf("START %i\n", i);
|
||||
}
|
||||
pthread_barrier_init(&(thbarrier[1]), NULL, thread_num + 1);
|
||||
pthread_barrier_wait(&(thbarrier[0]));
|
||||
pthread_barrier_destroy(&(thbarrier[0]));
|
||||
#endif
|
||||
}
|
||||
|
||||
EAPI void
|
||||
evas_common_pipe_flush(RGBA_Image *im)
|
||||
{
|
||||
|
@ -130,60 +194,9 @@ evas_common_pipe_flush(RGBA_Image *im)
|
|||
/* FIXME: PTHREAD join all threads here (if not finished) or begin then join
|
||||
* otherwise just process pipe */
|
||||
{
|
||||
static int thread_num = 0;
|
||||
static Thinfo thinfo[TH_MAX];
|
||||
static pthread_barrier_t barrier[2];
|
||||
|
||||
if (thread_num == 0)
|
||||
{
|
||||
thread_num = evas_common_cpu_count();
|
||||
pthread_barrier_init(&(barrier[0]), NULL, thread_num + 1);
|
||||
for (i = 0; i < thread_num; i++)
|
||||
{
|
||||
pthread_attr_t attr;
|
||||
cpu_set_t cpu;
|
||||
|
||||
pthread_attr_init(&attr);
|
||||
CPU_ZERO(&cpu);
|
||||
CPU_SET(i, &cpu);
|
||||
pthread_attr_setaffinity_np(&attr, sizeof(cpu), &cpu);
|
||||
thinfo[i].thread_num = i;
|
||||
thinfo[i].info = NULL;
|
||||
thinfo[i].barrier = barrier;
|
||||
/* setup initial locks */
|
||||
pthread_create(&(thinfo[i].thread_id), &attr,
|
||||
evas_common_pipe_thread, &(thinfo[i]));
|
||||
}
|
||||
}
|
||||
y = 0;
|
||||
h = im->image->h / thread_num;
|
||||
if (h < 1) h = 1;
|
||||
for (i = 0; i < thread_num; i++)
|
||||
{
|
||||
RGBA_Pipe_Thread_Info *info;
|
||||
|
||||
// if (y >= im->image->h) break;
|
||||
info = calloc(1, sizeof(RGBA_Pipe_Thread_Info));
|
||||
info->im = im;
|
||||
info->x = 0;
|
||||
info->y = y;
|
||||
info->w = im->image->w;
|
||||
if (i == (thread_num - 1))
|
||||
info->h = im->image->h - y;
|
||||
else
|
||||
info->h = h;
|
||||
y += info->h;
|
||||
thinfo[i].info = info;
|
||||
/* send startsignal */
|
||||
// printf("START %i\n", i);
|
||||
}
|
||||
pthread_barrier_init(&(barrier[1]), NULL, thread_num + 1);
|
||||
pthread_barrier_wait(&(barrier[0]));
|
||||
pthread_barrier_destroy(&(barrier[0]));
|
||||
|
||||
pthread_barrier_init(&(barrier[0]), NULL, thread_num + 1);
|
||||
pthread_barrier_wait(&(barrier[1]));
|
||||
pthread_barrier_destroy(&(barrier[1]));
|
||||
pthread_barrier_init(&(thbarrier[0]), NULL, thread_num + 1);
|
||||
pthread_barrier_wait(&(thbarrier[1]));
|
||||
pthread_barrier_destroy(&(thbarrier[1]));
|
||||
// printf("DONE\n");
|
||||
}
|
||||
|
||||
|
@ -238,7 +251,11 @@ evas_common_pipe_rectangle_draw_do(RGBA_Image *dst, RGBA_Pipe_Op *op, RGBA_Pipe_
|
|||
RGBA_Draw_Context context;
|
||||
|
||||
memcpy(&(context), &(op->context), sizeof(RGBA_Draw_Context));
|
||||
#ifdef EVAS_SLI
|
||||
evas_common_draw_context_set_sli(&(context), info->y, info->h);
|
||||
#else
|
||||
evas_common_draw_context_clip_clip(&(context), info->x, info->y, info->w, info->h);
|
||||
#endif
|
||||
evas_common_rectangle_draw(dst, &(context),
|
||||
op->op.rect.x, op->op.rect.y,
|
||||
op->op.rect.w, op->op.rect.h);
|
||||
|
@ -276,7 +293,11 @@ evas_common_pipe_line_draw_do(RGBA_Image *dst, RGBA_Pipe_Op *op, RGBA_Pipe_Threa
|
|||
RGBA_Draw_Context context;
|
||||
|
||||
memcpy(&(context), &(op->context), sizeof(RGBA_Draw_Context));
|
||||
#ifdef EVAS_SLI
|
||||
evas_common_draw_context_set_sli(&(context), info->y, info->h);
|
||||
#else
|
||||
evas_common_draw_context_clip_clip(&(context), info->x, info->y, info->w, info->h);
|
||||
#endif
|
||||
evas_common_line_draw(dst, &(context),
|
||||
op->op.line.x0, op->op.line.y0,
|
||||
op->op.line.x1, op->op.line.y1);
|
||||
|
@ -327,7 +348,11 @@ evas_common_pipe_poly_draw_do(RGBA_Image *dst, RGBA_Pipe_Op *op, RGBA_Pipe_Threa
|
|||
RGBA_Draw_Context context;
|
||||
|
||||
memcpy(&(context), &(op->context), sizeof(RGBA_Draw_Context));
|
||||
#ifdef EVAS_SLI
|
||||
evas_common_draw_context_set_sli(&(context), info->y, info->h);
|
||||
#else
|
||||
evas_common_draw_context_clip_clip(&(context), info->x, info->y, info->w, info->h);
|
||||
#endif
|
||||
evas_common_polygon_draw(dst, &(context),
|
||||
op->op.poly.points);
|
||||
}
|
||||
|
@ -379,7 +404,11 @@ evas_common_pipe_grad_draw_do(RGBA_Image *dst, RGBA_Pipe_Op *op, RGBA_Pipe_Threa
|
|||
RGBA_Draw_Context context;
|
||||
|
||||
memcpy(&(context), &(op->context), sizeof(RGBA_Draw_Context));
|
||||
#ifdef EVAS_SLI
|
||||
evas_common_draw_context_set_sli(&(context), info->y, info->h);
|
||||
#else
|
||||
evas_common_draw_context_clip_clip(&(context), info->x, info->y, info->w, info->h);
|
||||
#endif
|
||||
evas_common_gradient_draw(dst, &(context),
|
||||
op->op.grad.x, op->op.grad.y,
|
||||
op->op.grad.w, op->op.grad.h,
|
||||
|
@ -429,7 +458,11 @@ evas_common_pipe_text_draw_do(RGBA_Image *dst, RGBA_Pipe_Op *op, RGBA_Pipe_Threa
|
|||
RGBA_Draw_Context context;
|
||||
|
||||
memcpy(&(context), &(op->context), sizeof(RGBA_Draw_Context));
|
||||
#ifdef EVAS_SLI
|
||||
evas_common_draw_context_set_sli(&(context), info->y, info->h);
|
||||
#else
|
||||
evas_common_draw_context_clip_clip(&(context), info->x, info->y, info->w, info->h);
|
||||
#endif
|
||||
evas_common_font_draw(dst, &(context),
|
||||
op->op.text.font, op->op.text.x, op->op.text.y,
|
||||
op->op.text.text);
|
||||
|
@ -476,7 +509,11 @@ evas_common_pipe_image_draw_do(RGBA_Image *dst, RGBA_Pipe_Op *op, RGBA_Pipe_Thre
|
|||
RGBA_Draw_Context context;
|
||||
|
||||
memcpy(&(context), &(op->context), sizeof(RGBA_Draw_Context));
|
||||
#ifdef EVAS_SLI
|
||||
evas_common_draw_context_set_sli(&(context), info->y, info->h);
|
||||
#else
|
||||
evas_common_draw_context_clip_clip(&(context), info->x, info->y, info->w, info->h);
|
||||
#endif
|
||||
if (op->op.image.smooth)
|
||||
evas_common_scale_rgba_in_to_out_clip_smooth(op->op.image.src,
|
||||
dst, &(context),
|
||||
|
|
|
@ -276,8 +276,13 @@ evas_common_polygon_draw(RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Polygon_Po
|
|||
DATA32 *ptr;
|
||||
|
||||
span = (RGBA_Span *)l;
|
||||
ptr = dst->image->data + (span->y * (dst->image->w)) + span->x;
|
||||
func(NULL, NULL, dc->col.col, ptr, span->w);
|
||||
#ifdef EVAS_SLI
|
||||
if (((span->y) % dc->sli.h) == dc->sli.y)
|
||||
#endif
|
||||
{
|
||||
ptr = dst->image->data + (span->y * (dst->image->w)) + span->x;
|
||||
func(NULL, NULL, dc->col.col, ptr, span->w);
|
||||
}
|
||||
}
|
||||
while (spans)
|
||||
{
|
||||
|
|
|
@ -67,7 +67,12 @@ rectangle_draw_internal(RGBA_Image *dst, RGBA_Draw_Context *dc, int x, int y, in
|
|||
ptr = dst->image->data + (y * dst->image->w) + x;
|
||||
for (yy = 0; yy < h; yy++)
|
||||
{
|
||||
func(NULL, NULL, dc->col.col, ptr, w);
|
||||
#ifdef EVAS_SLI
|
||||
if (((yy + y) % dc->sli.h) == dc->sli.y)
|
||||
#endif
|
||||
{
|
||||
func(NULL, NULL, dc->col.col, ptr, w);
|
||||
}
|
||||
ptr += dst->image->w;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -247,7 +247,12 @@ scale_rgba_in_to_out_clip_sample_internal(RGBA_Image *src, RGBA_Image *dst,
|
|||
for (y = 0; y < dst_clip_h; y++)
|
||||
{
|
||||
/* * blend here [clip_w *] ptr -> dst_ptr * */
|
||||
func(ptr, NULL, dc->mul.col, dst_ptr, dst_clip_w);
|
||||
#ifdef EVAS_SLI
|
||||
if (((y + dst_clip_y) % dc->sli.h) == dc->sli.y)
|
||||
#endif
|
||||
{
|
||||
func(ptr, NULL, dc->mul.col, dst_ptr, dst_clip_w);
|
||||
}
|
||||
ptr += src_w;
|
||||
dst_ptr += dst_w;
|
||||
}
|
||||
|
@ -269,13 +274,18 @@ scale_rgba_in_to_out_clip_sample_internal(RGBA_Image *src, RGBA_Image *dst,
|
|||
{
|
||||
for (y = 0; y < dst_clip_h; y++)
|
||||
{
|
||||
dst_ptr = dptr;
|
||||
for (x = 0; x < dst_clip_w; x++)
|
||||
{
|
||||
ptr = row_ptr[y] + lin_ptr[x];
|
||||
*dst_ptr = *ptr;
|
||||
dst_ptr++;
|
||||
}
|
||||
#ifdef EVAS_SLI
|
||||
if (((y + dst_clip_y) % dc->sli.h) == dc->sli.y)
|
||||
#endif
|
||||
{
|
||||
dst_ptr = dptr;
|
||||
for (x = 0; x < dst_clip_w; x++)
|
||||
{
|
||||
ptr = row_ptr[y] + lin_ptr[x];
|
||||
*dst_ptr = *ptr;
|
||||
dst_ptr++;
|
||||
}
|
||||
}
|
||||
dptr += dst_w;
|
||||
}
|
||||
}
|
||||
|
@ -288,15 +298,20 @@ scale_rgba_in_to_out_clip_sample_internal(RGBA_Image *src, RGBA_Image *dst,
|
|||
|
||||
for (y = 0; y < dst_clip_h; y++)
|
||||
{
|
||||
dst_ptr = buf;
|
||||
for (x = 0; x < dst_clip_w; x++)
|
||||
{
|
||||
ptr = row_ptr[y] + lin_ptr[x];
|
||||
*dst_ptr = *ptr;
|
||||
dst_ptr++;
|
||||
}
|
||||
/* * blend here [clip_w *] buf -> dptr * */
|
||||
func(buf, NULL, dc->mul.col, dptr, dst_clip_w);
|
||||
#ifdef EVAS_SLI
|
||||
if (((y + dst_clip_y) % dc->sli.h) == dc->sli.y)
|
||||
#endif
|
||||
{
|
||||
dst_ptr = buf;
|
||||
for (x = 0; x < dst_clip_w; x++)
|
||||
{
|
||||
ptr = row_ptr[y] + lin_ptr[x];
|
||||
*dst_ptr = *ptr;
|
||||
dst_ptr++;
|
||||
}
|
||||
/* * blend here [clip_w *] buf -> dptr * */
|
||||
func(buf, NULL, dc->mul.col, dptr, dst_clip_w);
|
||||
}
|
||||
dptr += dst_w;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,6 +5,9 @@
|
|||
int *xp, xap, yap, pos;
|
||||
int dyy, dxx;
|
||||
int w = dst_clip_w;
|
||||
#ifdef EVAS_SLI
|
||||
int ysli = dst_clip_y;
|
||||
#endif
|
||||
|
||||
dptr = dst_ptr;
|
||||
pos = (src_region_y * src_w) + src_region_x;
|
||||
|
@ -21,66 +24,73 @@
|
|||
{
|
||||
while (dst_clip_h--)
|
||||
{
|
||||
while (dst_clip_w--)
|
||||
#ifdef EVAS_SLI
|
||||
if (((ysli) % dc->sli.h) == dc->sli.y)
|
||||
#endif
|
||||
{
|
||||
Cx = *xapp >> 16;
|
||||
xap = *xapp & 0xffff;
|
||||
pix = *yp + *xp + pos;
|
||||
|
||||
a = (A_VAL(pix) * xap) >> 10;
|
||||
r = (R_VAL(pix) * xap) >> 10;
|
||||
g = (G_VAL(pix) * xap) >> 10;
|
||||
b = (B_VAL(pix) * xap) >> 10;
|
||||
for (j = (1 << 14) - xap; j > Cx; j -= Cx)
|
||||
while (dst_clip_w--)
|
||||
{
|
||||
pix++;
|
||||
a += (A_VAL(pix) * Cx) >> 10;
|
||||
r += (R_VAL(pix) * Cx) >> 10;
|
||||
g += (G_VAL(pix) * Cx) >> 10;
|
||||
b += (B_VAL(pix) * Cx) >> 10;
|
||||
}
|
||||
if (j > 0)
|
||||
{
|
||||
pix++;
|
||||
a += (A_VAL(pix) * j) >> 10;
|
||||
r += (R_VAL(pix) * j) >> 10;
|
||||
g += (G_VAL(pix) * j) >> 10;
|
||||
b += (B_VAL(pix) * j) >> 10;
|
||||
}
|
||||
if ((yap = *yapp) > 0)
|
||||
{
|
||||
pix = *yp + *xp + src_w + pos;
|
||||
aa = (A_VAL(pix) * xap) >> 10;
|
||||
rr = (R_VAL(pix) * xap) >> 10;
|
||||
gg = (G_VAL(pix) * xap) >> 10;
|
||||
bb = (B_VAL(pix) * xap) >> 10;
|
||||
Cx = *xapp >> 16;
|
||||
xap = *xapp & 0xffff;
|
||||
pix = *yp + *xp + pos;
|
||||
|
||||
a = (A_VAL(pix) * xap) >> 10;
|
||||
r = (R_VAL(pix) * xap) >> 10;
|
||||
g = (G_VAL(pix) * xap) >> 10;
|
||||
b = (B_VAL(pix) * xap) >> 10;
|
||||
for (j = (1 << 14) - xap; j > Cx; j -= Cx)
|
||||
{
|
||||
pix++;
|
||||
aa += (A_VAL(pix) * Cx) >> 10;
|
||||
rr += (R_VAL(pix) * Cx) >> 10;
|
||||
gg += (G_VAL(pix) * Cx) >> 10;
|
||||
bb += (B_VAL(pix) * Cx) >> 10;
|
||||
}
|
||||
a += (A_VAL(pix) * Cx) >> 10;
|
||||
r += (R_VAL(pix) * Cx) >> 10;
|
||||
g += (G_VAL(pix) * Cx) >> 10;
|
||||
b += (B_VAL(pix) * Cx) >> 10;
|
||||
}
|
||||
if (j > 0)
|
||||
{
|
||||
pix++;
|
||||
aa += (A_VAL(pix) * j) >> 10;
|
||||
rr += (R_VAL(pix) * j) >> 10;
|
||||
gg += (G_VAL(pix) * j) >> 10;
|
||||
bb += (B_VAL(pix) * j) >> 10;
|
||||
a += (A_VAL(pix) * j) >> 10;
|
||||
r += (R_VAL(pix) * j) >> 10;
|
||||
g += (G_VAL(pix) * j) >> 10;
|
||||
b += (B_VAL(pix) * j) >> 10;
|
||||
}
|
||||
a += ((aa - a) * yap) >> 8;
|
||||
r += ((rr - r) * yap) >> 8;
|
||||
g += ((gg - g) * yap) >> 8;
|
||||
b += ((bb - b) * yap) >> 8;
|
||||
if ((yap = *yapp) > 0)
|
||||
{
|
||||
pix = *yp + *xp + src_w + pos;
|
||||
aa = (A_VAL(pix) * xap) >> 10;
|
||||
rr = (R_VAL(pix) * xap) >> 10;
|
||||
gg = (G_VAL(pix) * xap) >> 10;
|
||||
bb = (B_VAL(pix) * xap) >> 10;
|
||||
for (j = (1 << 14) - xap; j > Cx; j -= Cx)
|
||||
{
|
||||
pix++;
|
||||
aa += (A_VAL(pix) * Cx) >> 10;
|
||||
rr += (R_VAL(pix) * Cx) >> 10;
|
||||
gg += (G_VAL(pix) * Cx) >> 10;
|
||||
bb += (B_VAL(pix) * Cx) >> 10;
|
||||
}
|
||||
if (j > 0)
|
||||
{
|
||||
pix++;
|
||||
aa += (A_VAL(pix) * j) >> 10;
|
||||
rr += (R_VAL(pix) * j) >> 10;
|
||||
gg += (G_VAL(pix) * j) >> 10;
|
||||
bb += (B_VAL(pix) * j) >> 10;
|
||||
}
|
||||
a += ((aa - a) * yap) >> 8;
|
||||
r += ((rr - r) * yap) >> 8;
|
||||
g += ((gg - g) * yap) >> 8;
|
||||
b += ((bb - b) * yap) >> 8;
|
||||
}
|
||||
*pbuf++ = ARGB_JOIN(a >> 4, r >> 4, g >> 4, b >> 4);
|
||||
xp++; xapp++;
|
||||
}
|
||||
*pbuf++ = ARGB_JOIN(a >> 4, r >> 4, g >> 4, b >> 4);
|
||||
xp++; xapp++;
|
||||
|
||||
func(buf, NULL, dc->mul.col, dptr, w);
|
||||
}
|
||||
|
||||
func(buf, NULL, dc->mul.col, dptr, w);
|
||||
|
||||
#ifdef EVAS_SLI
|
||||
ysli++;
|
||||
#endif
|
||||
pbuf = buf;
|
||||
dptr += dst_w; dst_clip_w = w;
|
||||
yp++; yapp++;
|
||||
|
@ -98,56 +108,64 @@
|
|||
while (dst_clip_h--)
|
||||
{
|
||||
pbuf = dptr;
|
||||
while (dst_clip_w--)
|
||||
#ifdef EVAS_SLI
|
||||
if (((ysli) % dc->sli.h) == dc->sli.y)
|
||||
#endif
|
||||
{
|
||||
Cx = *xapp >> 16;
|
||||
xap = *xapp & 0xffff;
|
||||
pix = *yp + *xp + pos;
|
||||
|
||||
r = (R_VAL(pix) * xap) >> 10;
|
||||
g = (G_VAL(pix) * xap) >> 10;
|
||||
b = (B_VAL(pix) * xap) >> 10;
|
||||
for (j = (1 << 14) - xap; j > Cx; j -= Cx)
|
||||
while (dst_clip_w--)
|
||||
{
|
||||
pix++;
|
||||
r += (R_VAL(pix) * Cx) >> 10;
|
||||
g += (G_VAL(pix) * Cx) >> 10;
|
||||
b += (B_VAL(pix) * Cx) >> 10;
|
||||
}
|
||||
if (j > 0)
|
||||
{
|
||||
pix++;
|
||||
r += (R_VAL(pix) * j) >> 10;
|
||||
g += (G_VAL(pix) * j) >> 10;
|
||||
b += (B_VAL(pix) * j) >> 10;
|
||||
}
|
||||
if ((yap = *yapp) > 0)
|
||||
{
|
||||
pix = *yp + *xp + src_w + pos;
|
||||
rr = (R_VAL(pix) * xap) >> 10;
|
||||
gg = (G_VAL(pix) * xap) >> 10;
|
||||
bb = (B_VAL(pix) * xap) >> 10;
|
||||
Cx = *xapp >> 16;
|
||||
xap = *xapp & 0xffff;
|
||||
pix = *yp + *xp + pos;
|
||||
|
||||
r = (R_VAL(pix) * xap) >> 10;
|
||||
g = (G_VAL(pix) * xap) >> 10;
|
||||
b = (B_VAL(pix) * xap) >> 10;
|
||||
for (j = (1 << 14) - xap; j > Cx; j -= Cx)
|
||||
{
|
||||
pix++;
|
||||
rr += (R_VAL(pix) * Cx) >> 10;
|
||||
gg += (G_VAL(pix) * Cx) >> 10;
|
||||
bb += (B_VAL(pix) * Cx) >> 10;
|
||||
r += (R_VAL(pix) * Cx) >> 10;
|
||||
g += (G_VAL(pix) * Cx) >> 10;
|
||||
b += (B_VAL(pix) * Cx) >> 10;
|
||||
}
|
||||
if (j > 0)
|
||||
{
|
||||
pix++;
|
||||
rr += (R_VAL(pix) * j) >> 10;
|
||||
gg += (G_VAL(pix) * j) >> 10;
|
||||
bb += (B_VAL(pix) * j) >> 10;
|
||||
r += (R_VAL(pix) * j) >> 10;
|
||||
g += (G_VAL(pix) * j) >> 10;
|
||||
b += (B_VAL(pix) * j) >> 10;
|
||||
}
|
||||
r += ((rr - r) * yap) >> 8;
|
||||
g += ((gg - g) * yap) >> 8;
|
||||
b += ((bb - b) * yap) >> 8;
|
||||
if ((yap = *yapp) > 0)
|
||||
{
|
||||
pix = *yp + *xp + src_w + pos;
|
||||
rr = (R_VAL(pix) * xap) >> 10;
|
||||
gg = (G_VAL(pix) * xap) >> 10;
|
||||
bb = (B_VAL(pix) * xap) >> 10;
|
||||
for (j = (1 << 14) - xap; j > Cx; j -= Cx)
|
||||
{
|
||||
pix++;
|
||||
rr += (R_VAL(pix) * Cx) >> 10;
|
||||
gg += (G_VAL(pix) * Cx) >> 10;
|
||||
bb += (B_VAL(pix) * Cx) >> 10;
|
||||
}
|
||||
if (j > 0)
|
||||
{
|
||||
pix++;
|
||||
rr += (R_VAL(pix) * j) >> 10;
|
||||
gg += (G_VAL(pix) * j) >> 10;
|
||||
bb += (B_VAL(pix) * j) >> 10;
|
||||
}
|
||||
r += ((rr - r) * yap) >> 8;
|
||||
g += ((gg - g) * yap) >> 8;
|
||||
b += ((bb - b) * yap) >> 8;
|
||||
}
|
||||
*pbuf++ = ARGB_JOIN(0xff, r >> 4, g >> 4, b >> 4);
|
||||
xp++; xapp++;
|
||||
}
|
||||
*pbuf++ = ARGB_JOIN(0xff, r >> 4, g >> 4, b >> 4);
|
||||
xp++; xapp++;
|
||||
}
|
||||
#ifdef EVAS_SLI
|
||||
ysli++;
|
||||
#endif
|
||||
|
||||
dptr += dst_w; dst_clip_w = w;
|
||||
yp++; yapp++;
|
||||
|
@ -160,59 +178,67 @@
|
|||
{
|
||||
while (dst_clip_h--)
|
||||
{
|
||||
while (dst_clip_w--)
|
||||
#ifdef EVAS_SLI
|
||||
if (((ysli) % dc->sli.h) == dc->sli.y)
|
||||
#endif
|
||||
{
|
||||
Cx = *xapp >> 16;
|
||||
xap = *xapp & 0xffff;
|
||||
pix = *yp + *xp + pos;
|
||||
|
||||
r = (R_VAL(pix) * xap) >> 10;
|
||||
g = (G_VAL(pix) * xap) >> 10;
|
||||
b = (B_VAL(pix) * xap) >> 10;
|
||||
for (j = (1 << 14) - xap; j > Cx; j -= Cx)
|
||||
while (dst_clip_w--)
|
||||
{
|
||||
pix++;
|
||||
r += (R_VAL(pix) * Cx) >> 10;
|
||||
g += (G_VAL(pix) * Cx) >> 10;
|
||||
b += (B_VAL(pix) * Cx) >> 10;
|
||||
}
|
||||
if (j > 0)
|
||||
{
|
||||
pix++;
|
||||
r += (R_VAL(pix) * j) >> 10;
|
||||
g += (G_VAL(pix) * j) >> 10;
|
||||
b += (B_VAL(pix) * j) >> 10;
|
||||
}
|
||||
if ((yap = *yapp) > 0)
|
||||
{
|
||||
pix = *yp + *xp + src_w + pos;
|
||||
rr = (R_VAL(pix) * xap) >> 10;
|
||||
gg = (G_VAL(pix) * xap) >> 10;
|
||||
bb = (B_VAL(pix) * xap) >> 10;
|
||||
Cx = *xapp >> 16;
|
||||
xap = *xapp & 0xffff;
|
||||
pix = *yp + *xp + pos;
|
||||
|
||||
r = (R_VAL(pix) * xap) >> 10;
|
||||
g = (G_VAL(pix) * xap) >> 10;
|
||||
b = (B_VAL(pix) * xap) >> 10;
|
||||
for (j = (1 << 14) - xap; j > Cx; j -= Cx)
|
||||
{
|
||||
pix++;
|
||||
rr += (R_VAL(pix) * Cx) >> 10;
|
||||
gg += (G_VAL(pix) * Cx) >> 10;
|
||||
bb += (B_VAL(pix) * Cx) >> 10;
|
||||
r += (R_VAL(pix) * Cx) >> 10;
|
||||
g += (G_VAL(pix) * Cx) >> 10;
|
||||
b += (B_VAL(pix) * Cx) >> 10;
|
||||
}
|
||||
if (j > 0)
|
||||
{
|
||||
pix++;
|
||||
rr += (R_VAL(pix) * j) >> 10;
|
||||
gg += (G_VAL(pix) * j) >> 10;
|
||||
bb += (B_VAL(pix) * j) >> 10;
|
||||
r += (R_VAL(pix) * j) >> 10;
|
||||
g += (G_VAL(pix) * j) >> 10;
|
||||
b += (B_VAL(pix) * j) >> 10;
|
||||
}
|
||||
r += ((rr - r) * yap) >> 8;
|
||||
g += ((gg - g) * yap) >> 8;
|
||||
b += ((bb - b) * yap) >> 8;
|
||||
if ((yap = *yapp) > 0)
|
||||
{
|
||||
pix = *yp + *xp + src_w + pos;
|
||||
rr = (R_VAL(pix) * xap) >> 10;
|
||||
gg = (G_VAL(pix) * xap) >> 10;
|
||||
bb = (B_VAL(pix) * xap) >> 10;
|
||||
for (j = (1 << 14) - xap; j > Cx; j -= Cx)
|
||||
{
|
||||
pix++;
|
||||
rr += (R_VAL(pix) * Cx) >> 10;
|
||||
gg += (G_VAL(pix) * Cx) >> 10;
|
||||
bb += (B_VAL(pix) * Cx) >> 10;
|
||||
}
|
||||
if (j > 0)
|
||||
{
|
||||
pix++;
|
||||
rr += (R_VAL(pix) * j) >> 10;
|
||||
gg += (G_VAL(pix) * j) >> 10;
|
||||
bb += (B_VAL(pix) * j) >> 10;
|
||||
}
|
||||
r += ((rr - r) * yap) >> 8;
|
||||
g += ((gg - g) * yap) >> 8;
|
||||
b += ((bb - b) * yap) >> 8;
|
||||
}
|
||||
*pbuf++ = ARGB_JOIN(0xff, r >> 4, g >> 4, b >> 4);
|
||||
xp++; xapp++;
|
||||
}
|
||||
*pbuf++ = ARGB_JOIN(0xff, r >> 4, g >> 4, b >> 4);
|
||||
xp++; xapp++;
|
||||
|
||||
func(buf, NULL, dc->mul.col, dptr, w);
|
||||
}
|
||||
#ifdef EVAS_SLI
|
||||
ysli++;
|
||||
#endif
|
||||
|
||||
func(buf, NULL, dc->mul.col, dptr, w);
|
||||
|
||||
pbuf = buf;
|
||||
dptr += dst_w; dst_clip_w = w;
|
||||
yp++; yapp++;
|
||||
|
|
|
@ -4,6 +4,9 @@
|
|||
int a, r, g, b, rx, gx, bx, ax;
|
||||
int xap, yap, pos;
|
||||
int dyy, dxx;
|
||||
#ifdef EVAS_SLI
|
||||
int ysli = dst_clip_y;
|
||||
#endif
|
||||
|
||||
DATA32 **yp;
|
||||
int *xp;
|
||||
|
@ -26,48 +29,22 @@
|
|||
{
|
||||
while (dst_clip_h--)
|
||||
{
|
||||
Cy = *yapp >> 16;
|
||||
yap = *yapp & 0xffff;
|
||||
|
||||
while (dst_clip_w--)
|
||||
#ifdef EVAS_SLI
|
||||
if (((ysli) % dc->sli.h) == dc->sli.y)
|
||||
#endif
|
||||
{
|
||||
Cx = *xapp >> 16;
|
||||
xap = *xapp & 0xffff;
|
||||
|
||||
sptr = *yp + *xp + pos;
|
||||
pix = sptr;
|
||||
sptr += src_w;
|
||||
|
||||
ax = (A_VAL(pix) * xap) >> 9;
|
||||
rx = (R_VAL(pix) * xap) >> 9;
|
||||
gx = (G_VAL(pix) * xap) >> 9;
|
||||
bx = (B_VAL(pix) * xap) >> 9;
|
||||
pix++;
|
||||
for (i = (1 << 14) - xap; i > Cx; i -= Cx)
|
||||
{
|
||||
ax += (A_VAL(pix) * Cx) >> 9;
|
||||
rx += (R_VAL(pix) * Cx) >> 9;
|
||||
gx += (G_VAL(pix) * Cx) >> 9;
|
||||
bx += (B_VAL(pix) * Cx) >> 9;
|
||||
pix++;
|
||||
}
|
||||
if (i > 0)
|
||||
{
|
||||
ax += (A_VAL(pix) * i) >> 9;
|
||||
rx += (R_VAL(pix) * i) >> 9;
|
||||
gx += (G_VAL(pix) * i) >> 9;
|
||||
bx += (B_VAL(pix) * i) >> 9;
|
||||
}
|
||||
|
||||
a = (ax * yap) >> 14;
|
||||
r = (rx * yap) >> 14;
|
||||
g = (gx * yap) >> 14;
|
||||
b = (bx * yap) >> 14;
|
||||
|
||||
for (j = (1 << 14) - yap; j > Cy; j -= Cy)
|
||||
Cy = *yapp >> 16;
|
||||
yap = *yapp & 0xffff;
|
||||
|
||||
while (dst_clip_w--)
|
||||
{
|
||||
Cx = *xapp >> 16;
|
||||
xap = *xapp & 0xffff;
|
||||
|
||||
sptr = *yp + *xp + pos;
|
||||
pix = sptr;
|
||||
sptr += src_w;
|
||||
|
||||
ax = (A_VAL(pix) * xap) >> 9;
|
||||
rx = (R_VAL(pix) * xap) >> 9;
|
||||
gx = (G_VAL(pix) * xap) >> 9;
|
||||
|
@ -88,48 +65,81 @@
|
|||
gx += (G_VAL(pix) * i) >> 9;
|
||||
bx += (B_VAL(pix) * i) >> 9;
|
||||
}
|
||||
|
||||
a += (ax * Cy) >> 14;
|
||||
r += (rx * Cy) >> 14;
|
||||
g += (gx * Cy) >> 14;
|
||||
b += (bx * Cy) >> 14;
|
||||
}
|
||||
if (j > 0)
|
||||
{
|
||||
pix = sptr;
|
||||
sptr += src_w;
|
||||
ax = (A_VAL(pix) * xap) >> 9;
|
||||
rx = (R_VAL(pix) * xap) >> 9;
|
||||
gx = (G_VAL(pix) * xap) >> 9;
|
||||
bx = (B_VAL(pix) * xap) >> 9;
|
||||
pix++;
|
||||
for (i = (1 << 14) - xap; i > Cx; i -= Cx)
|
||||
|
||||
a = (ax * yap) >> 14;
|
||||
r = (rx * yap) >> 14;
|
||||
g = (gx * yap) >> 14;
|
||||
b = (bx * yap) >> 14;
|
||||
|
||||
for (j = (1 << 14) - yap; j > Cy; j -= Cy)
|
||||
{
|
||||
ax += (A_VAL(pix) * Cx) >> 9;
|
||||
rx += (R_VAL(pix) * Cx) >> 9;
|
||||
gx += (G_VAL(pix) * Cx) >> 9;
|
||||
bx += (B_VAL(pix) * Cx) >> 9;
|
||||
pix = sptr;
|
||||
sptr += src_w;
|
||||
ax = (A_VAL(pix) * xap) >> 9;
|
||||
rx = (R_VAL(pix) * xap) >> 9;
|
||||
gx = (G_VAL(pix) * xap) >> 9;
|
||||
bx = (B_VAL(pix) * xap) >> 9;
|
||||
pix++;
|
||||
for (i = (1 << 14) - xap; i > Cx; i -= Cx)
|
||||
{
|
||||
ax += (A_VAL(pix) * Cx) >> 9;
|
||||
rx += (R_VAL(pix) * Cx) >> 9;
|
||||
gx += (G_VAL(pix) * Cx) >> 9;
|
||||
bx += (B_VAL(pix) * Cx) >> 9;
|
||||
pix++;
|
||||
}
|
||||
if (i > 0)
|
||||
{
|
||||
ax += (A_VAL(pix) * i) >> 9;
|
||||
rx += (R_VAL(pix) * i) >> 9;
|
||||
gx += (G_VAL(pix) * i) >> 9;
|
||||
bx += (B_VAL(pix) * i) >> 9;
|
||||
}
|
||||
|
||||
a += (ax * Cy) >> 14;
|
||||
r += (rx * Cy) >> 14;
|
||||
g += (gx * Cy) >> 14;
|
||||
b += (bx * Cy) >> 14;
|
||||
}
|
||||
if (i > 0)
|
||||
if (j > 0)
|
||||
{
|
||||
ax += (A_VAL(pix) * i) >> 9;
|
||||
rx += (R_VAL(pix) * i) >> 9;
|
||||
gx += (G_VAL(pix) * i) >> 9;
|
||||
bx += (B_VAL(pix) * i) >> 9;
|
||||
pix = sptr;
|
||||
sptr += src_w;
|
||||
ax = (A_VAL(pix) * xap) >> 9;
|
||||
rx = (R_VAL(pix) * xap) >> 9;
|
||||
gx = (G_VAL(pix) * xap) >> 9;
|
||||
bx = (B_VAL(pix) * xap) >> 9;
|
||||
pix++;
|
||||
for (i = (1 << 14) - xap; i > Cx; i -= Cx)
|
||||
{
|
||||
ax += (A_VAL(pix) * Cx) >> 9;
|
||||
rx += (R_VAL(pix) * Cx) >> 9;
|
||||
gx += (G_VAL(pix) * Cx) >> 9;
|
||||
bx += (B_VAL(pix) * Cx) >> 9;
|
||||
pix++;
|
||||
}
|
||||
if (i > 0)
|
||||
{
|
||||
ax += (A_VAL(pix) * i) >> 9;
|
||||
rx += (R_VAL(pix) * i) >> 9;
|
||||
gx += (G_VAL(pix) * i) >> 9;
|
||||
bx += (B_VAL(pix) * i) >> 9;
|
||||
}
|
||||
|
||||
a += (ax * j) >> 14;
|
||||
r += (rx * j) >> 14;
|
||||
g += (gx * j) >> 14;
|
||||
b += (bx * j) >> 14;
|
||||
}
|
||||
|
||||
a += (ax * j) >> 14;
|
||||
r += (rx * j) >> 14;
|
||||
g += (gx * j) >> 14;
|
||||
b += (bx * j) >> 14;
|
||||
*pbuf++ = ARGB_JOIN(a >> 5, r >> 5, g >> 5, b >> 5);
|
||||
xp++; xapp++;
|
||||
}
|
||||
*pbuf++ = ARGB_JOIN(a >> 5, r >> 5, g >> 5, b >> 5);
|
||||
xp++; xapp++;
|
||||
|
||||
func(buf, NULL, dc->mul.col, dptr, w);
|
||||
}
|
||||
|
||||
func(buf, NULL, dc->mul.col, dptr, w);
|
||||
|
||||
#ifdef EVAS_SLI
|
||||
ysli++;
|
||||
#endif
|
||||
pbuf = buf;
|
||||
dptr += dst_w; dst_clip_w = w;
|
||||
xp = xpoints + dxx;
|
||||
|
@ -146,45 +156,23 @@
|
|||
{
|
||||
while (dst_clip_h--)
|
||||
{
|
||||
Cy = *yapp >> 16;
|
||||
yap = *yapp & 0xffff;
|
||||
|
||||
pbuf = dptr;
|
||||
while (dst_clip_w--)
|
||||
#ifdef EVAS_SLI
|
||||
if (((ysli) % dc->sli.h) == dc->sli.y)
|
||||
#endif
|
||||
{
|
||||
Cx = *xapp >> 16;
|
||||
xap = *xapp & 0xffff;
|
||||
Cy = *yapp >> 16;
|
||||
yap = *yapp & 0xffff;
|
||||
|
||||
sptr = *yp + *xp + pos;
|
||||
pix = sptr;
|
||||
sptr += src_w;
|
||||
|
||||
rx = (R_VAL(pix) * xap) >> 9;
|
||||
gx = (G_VAL(pix) * xap) >> 9;
|
||||
bx = (B_VAL(pix) * xap) >> 9;
|
||||
pix++;
|
||||
for (i = (1 << 14) - xap; i > Cx; i -= Cx)
|
||||
{
|
||||
rx += (R_VAL(pix) * Cx) >> 9;
|
||||
gx += (G_VAL(pix) * Cx) >> 9;
|
||||
bx += (B_VAL(pix) * Cx) >> 9;
|
||||
pix++;
|
||||
}
|
||||
if (i > 0)
|
||||
{
|
||||
rx += (R_VAL(pix) * i) >> 9;
|
||||
gx += (G_VAL(pix) * i) >> 9;
|
||||
bx += (B_VAL(pix) * i) >> 9;
|
||||
}
|
||||
|
||||
r = (rx * yap) >> 14;
|
||||
g = (gx * yap) >> 14;
|
||||
b = (bx * yap) >> 14;
|
||||
|
||||
for (j = (1 << 14) - yap; j > Cy; j -= Cy)
|
||||
pbuf = dptr;
|
||||
while (dst_clip_w--)
|
||||
{
|
||||
Cx = *xapp >> 16;
|
||||
xap = *xapp & 0xffff;
|
||||
|
||||
sptr = *yp + *xp + pos;
|
||||
pix = sptr;
|
||||
sptr += src_w;
|
||||
|
||||
rx = (R_VAL(pix) * xap) >> 9;
|
||||
gx = (G_VAL(pix) * xap) >> 9;
|
||||
bx = (B_VAL(pix) * xap) >> 9;
|
||||
|
@ -203,39 +191,69 @@
|
|||
bx += (B_VAL(pix) * i) >> 9;
|
||||
}
|
||||
|
||||
r += (rx * Cy) >> 14;
|
||||
g += (gx * Cy) >> 14;
|
||||
b += (bx * Cy) >> 14;
|
||||
}
|
||||
if (j > 0)
|
||||
{
|
||||
pix = sptr;
|
||||
sptr += src_w;
|
||||
rx = (R_VAL(pix) * xap) >> 9;
|
||||
gx = (G_VAL(pix) * xap) >> 9;
|
||||
bx = (B_VAL(pix) * xap) >> 9;
|
||||
pix++;
|
||||
for (i = (1 << 14) - xap; i > Cx; i -= Cx)
|
||||
{
|
||||
rx += (R_VAL(pix) * Cx) >> 9;
|
||||
gx += (G_VAL(pix) * Cx) >> 9;
|
||||
bx += (B_VAL(pix) * Cx) >> 9;
|
||||
pix++;
|
||||
}
|
||||
if (i > 0)
|
||||
{
|
||||
rx += (R_VAL(pix) * i) >> 9;
|
||||
gx += (G_VAL(pix) * i) >> 9;
|
||||
bx += (B_VAL(pix) * i) >> 9;
|
||||
}
|
||||
r = (rx * yap) >> 14;
|
||||
g = (gx * yap) >> 14;
|
||||
b = (bx * yap) >> 14;
|
||||
|
||||
r += (rx * j) >> 14;
|
||||
g += (gx * j) >> 14;
|
||||
b += (bx * j) >> 14;
|
||||
for (j = (1 << 14) - yap; j > Cy; j -= Cy)
|
||||
{
|
||||
pix = sptr;
|
||||
sptr += src_w;
|
||||
rx = (R_VAL(pix) * xap) >> 9;
|
||||
gx = (G_VAL(pix) * xap) >> 9;
|
||||
bx = (B_VAL(pix) * xap) >> 9;
|
||||
pix++;
|
||||
for (i = (1 << 14) - xap; i > Cx; i -= Cx)
|
||||
{
|
||||
rx += (R_VAL(pix) * Cx) >> 9;
|
||||
gx += (G_VAL(pix) * Cx) >> 9;
|
||||
bx += (B_VAL(pix) * Cx) >> 9;
|
||||
pix++;
|
||||
}
|
||||
if (i > 0)
|
||||
{
|
||||
rx += (R_VAL(pix) * i) >> 9;
|
||||
gx += (G_VAL(pix) * i) >> 9;
|
||||
bx += (B_VAL(pix) * i) >> 9;
|
||||
}
|
||||
|
||||
r += (rx * Cy) >> 14;
|
||||
g += (gx * Cy) >> 14;
|
||||
b += (bx * Cy) >> 14;
|
||||
}
|
||||
if (j > 0)
|
||||
{
|
||||
pix = sptr;
|
||||
sptr += src_w;
|
||||
rx = (R_VAL(pix) * xap) >> 9;
|
||||
gx = (G_VAL(pix) * xap) >> 9;
|
||||
bx = (B_VAL(pix) * xap) >> 9;
|
||||
pix++;
|
||||
for (i = (1 << 14) - xap; i > Cx; i -= Cx)
|
||||
{
|
||||
rx += (R_VAL(pix) * Cx) >> 9;
|
||||
gx += (G_VAL(pix) * Cx) >> 9;
|
||||
bx += (B_VAL(pix) * Cx) >> 9;
|
||||
pix++;
|
||||
}
|
||||
if (i > 0)
|
||||
{
|
||||
rx += (R_VAL(pix) * i) >> 9;
|
||||
gx += (G_VAL(pix) * i) >> 9;
|
||||
bx += (B_VAL(pix) * i) >> 9;
|
||||
}
|
||||
|
||||
r += (rx * j) >> 14;
|
||||
g += (gx * j) >> 14;
|
||||
b += (bx * j) >> 14;
|
||||
}
|
||||
*pbuf++ = ARGB_JOIN(0xff, r >> 5, g >> 5, b >> 5);
|
||||
xp++; xapp++;
|
||||
}
|
||||
*pbuf++ = ARGB_JOIN(0xff, r >> 5, g >> 5, b >> 5);
|
||||
xp++; xapp++;
|
||||
}
|
||||
#ifdef EVAS_SLI
|
||||
ysli++;
|
||||
#endif
|
||||
dptr += dst_w; dst_clip_w = w;
|
||||
xp = xpoints + dxx;
|
||||
xapp = xapoints + dxx;
|
||||
|
@ -247,44 +265,22 @@
|
|||
{
|
||||
while (dst_clip_h--)
|
||||
{
|
||||
Cy = *yapp >> 16;
|
||||
yap = *yapp & 0xffff;
|
||||
|
||||
while (dst_clip_w--)
|
||||
#ifdef EVAS_SLI
|
||||
if (((ysli) % dc->sli.h) == dc->sli.y)
|
||||
#endif
|
||||
{
|
||||
Cx = *xapp >> 16;
|
||||
xap = *xapp & 0xffff;
|
||||
Cy = *yapp >> 16;
|
||||
yap = *yapp & 0xffff;
|
||||
|
||||
sptr = *yp + *xp + pos;
|
||||
pix = sptr;
|
||||
sptr += src_w;
|
||||
|
||||
rx = (R_VAL(pix) * xap) >> 9;
|
||||
gx = (G_VAL(pix) * xap) >> 9;
|
||||
bx = (B_VAL(pix) * xap) >> 9;
|
||||
pix++;
|
||||
for (i = (1 << 14) - xap; i > Cx; i -= Cx)
|
||||
{
|
||||
rx += (R_VAL(pix) * Cx) >> 9;
|
||||
gx += (G_VAL(pix) * Cx) >> 9;
|
||||
bx += (B_VAL(pix) * Cx) >> 9;
|
||||
pix++;
|
||||
}
|
||||
if (i > 0)
|
||||
{
|
||||
rx += (R_VAL(pix) * i) >> 9;
|
||||
gx += (G_VAL(pix) * i) >> 9;
|
||||
bx += (B_VAL(pix) * i) >> 9;
|
||||
}
|
||||
|
||||
r = (rx * yap) >> 14;
|
||||
g = (gx * yap) >> 14;
|
||||
b = (bx * yap) >> 14;
|
||||
|
||||
for (j = (1 << 14) - yap; j > Cy; j -= Cy)
|
||||
while (dst_clip_w--)
|
||||
{
|
||||
Cx = *xapp >> 16;
|
||||
xap = *xapp & 0xffff;
|
||||
|
||||
sptr = *yp + *xp + pos;
|
||||
pix = sptr;
|
||||
sptr += src_w;
|
||||
|
||||
rx = (R_VAL(pix) * xap) >> 9;
|
||||
gx = (G_VAL(pix) * xap) >> 9;
|
||||
bx = (B_VAL(pix) * xap) >> 9;
|
||||
|
@ -303,42 +299,71 @@
|
|||
bx += (B_VAL(pix) * i) >> 9;
|
||||
}
|
||||
|
||||
r += (rx * Cy) >> 14;
|
||||
g += (gx * Cy) >> 14;
|
||||
b += (bx * Cy) >> 14;
|
||||
}
|
||||
if (j > 0)
|
||||
{
|
||||
pix = sptr;
|
||||
sptr += src_w;
|
||||
rx = (R_VAL(pix) * xap) >> 9;
|
||||
gx = (G_VAL(pix) * xap) >> 9;
|
||||
bx = (B_VAL(pix) * xap) >> 9;
|
||||
pix++;
|
||||
for (i = (1 << 14) - xap; i > Cx; i -= Cx)
|
||||
{
|
||||
rx += (R_VAL(pix) * Cx) >> 9;
|
||||
gx += (G_VAL(pix) * Cx) >> 9;
|
||||
bx += (B_VAL(pix) * Cx) >> 9;
|
||||
pix++;
|
||||
}
|
||||
if (i > 0)
|
||||
{
|
||||
rx += (R_VAL(pix) * i) >> 9;
|
||||
gx += (G_VAL(pix) * i) >> 9;
|
||||
bx += (B_VAL(pix) * i) >> 9;
|
||||
}
|
||||
r = (rx * yap) >> 14;
|
||||
g = (gx * yap) >> 14;
|
||||
b = (bx * yap) >> 14;
|
||||
|
||||
r += (rx * j) >> 14;
|
||||
g += (gx * j) >> 14;
|
||||
b += (bx * j) >> 14;
|
||||
for (j = (1 << 14) - yap; j > Cy; j -= Cy)
|
||||
{
|
||||
pix = sptr;
|
||||
sptr += src_w;
|
||||
rx = (R_VAL(pix) * xap) >> 9;
|
||||
gx = (G_VAL(pix) * xap) >> 9;
|
||||
bx = (B_VAL(pix) * xap) >> 9;
|
||||
pix++;
|
||||
for (i = (1 << 14) - xap; i > Cx; i -= Cx)
|
||||
{
|
||||
rx += (R_VAL(pix) * Cx) >> 9;
|
||||
gx += (G_VAL(pix) * Cx) >> 9;
|
||||
bx += (B_VAL(pix) * Cx) >> 9;
|
||||
pix++;
|
||||
}
|
||||
if (i > 0)
|
||||
{
|
||||
rx += (R_VAL(pix) * i) >> 9;
|
||||
gx += (G_VAL(pix) * i) >> 9;
|
||||
bx += (B_VAL(pix) * i) >> 9;
|
||||
}
|
||||
|
||||
r += (rx * Cy) >> 14;
|
||||
g += (gx * Cy) >> 14;
|
||||
b += (bx * Cy) >> 14;
|
||||
}
|
||||
if (j > 0)
|
||||
{
|
||||
pix = sptr;
|
||||
sptr += src_w;
|
||||
rx = (R_VAL(pix) * xap) >> 9;
|
||||
gx = (G_VAL(pix) * xap) >> 9;
|
||||
bx = (B_VAL(pix) * xap) >> 9;
|
||||
pix++;
|
||||
for (i = (1 << 14) - xap; i > Cx; i -= Cx)
|
||||
{
|
||||
rx += (R_VAL(pix) * Cx) >> 9;
|
||||
gx += (G_VAL(pix) * Cx) >> 9;
|
||||
bx += (B_VAL(pix) * Cx) >> 9;
|
||||
pix++;
|
||||
}
|
||||
if (i > 0)
|
||||
{
|
||||
rx += (R_VAL(pix) * i) >> 9;
|
||||
gx += (G_VAL(pix) * i) >> 9;
|
||||
bx += (B_VAL(pix) * i) >> 9;
|
||||
}
|
||||
|
||||
r += (rx * j) >> 14;
|
||||
g += (gx * j) >> 14;
|
||||
b += (bx * j) >> 14;
|
||||
}
|
||||
*pbuf++ = ARGB_JOIN(0xff, r >> 5, g >> 5, b >> 5);
|
||||
xp++; xapp++;
|
||||
}
|
||||
*pbuf++ = ARGB_JOIN(0xff, r >> 5, g >> 5, b >> 5);
|
||||
xp++; xapp++;
|
||||
|
||||
func(buf, NULL, dc->mul.col, dptr, w);
|
||||
}
|
||||
|
||||
func(buf, NULL, dc->mul.col, dptr, w);
|
||||
|
||||
#ifdef EVAS_SLI
|
||||
ysli++;
|
||||
#endif
|
||||
pbuf = buf;
|
||||
dptr += dst_w; dst_clip_w = w;
|
||||
xp = xpoints + dxx;
|
||||
|
|
|
@ -5,7 +5,10 @@
|
|||
int *xp, xap, yap, pos;
|
||||
int dyy, dxx;
|
||||
int w = dst_clip_w;
|
||||
|
||||
#ifdef EVAS_SLI
|
||||
int ysli = dst_clip_y;
|
||||
#endif
|
||||
|
||||
dptr = dst_ptr;
|
||||
pos = (src_region_y * src_w) + src_region_x;
|
||||
dyy = dst_clip_y - dst_region_y;
|
||||
|
@ -21,67 +24,74 @@
|
|||
{
|
||||
while (dst_clip_h--)
|
||||
{
|
||||
Cy = *yapp >> 16;
|
||||
yap = *yapp & 0xffff;
|
||||
|
||||
while (dst_clip_w--)
|
||||
#ifdef EVAS_SLI
|
||||
if (((ysli) % dc->sli.h) == dc->sli.y)
|
||||
#endif
|
||||
{
|
||||
pix = *yp + *xp + pos;
|
||||
|
||||
a = (A_VAL(pix) * yap) >> 10;
|
||||
r = (R_VAL(pix) * yap) >> 10;
|
||||
g = (G_VAL(pix) * yap) >> 10;
|
||||
b = (B_VAL(pix) * yap) >> 10;
|
||||
for (j = (1 << 14) - yap; j > Cy; j -= Cy)
|
||||
Cy = *yapp >> 16;
|
||||
yap = *yapp & 0xffff;
|
||||
|
||||
while (dst_clip_w--)
|
||||
{
|
||||
pix += src_w;
|
||||
a += (A_VAL(pix) * Cy) >> 10;
|
||||
r += (R_VAL(pix) * Cy) >> 10;
|
||||
g += (G_VAL(pix) * Cy) >> 10;
|
||||
b += (B_VAL(pix) * Cy) >> 10;
|
||||
}
|
||||
if (j > 0)
|
||||
{
|
||||
pix += src_w;
|
||||
a += (A_VAL(pix) * j) >> 10;
|
||||
r += (R_VAL(pix) * j) >> 10;
|
||||
g += (G_VAL(pix) * j) >> 10;
|
||||
b += (B_VAL(pix) * j) >> 10;
|
||||
}
|
||||
if ((xap = *xapp) > 0)
|
||||
{
|
||||
pix = *yp + *xp + 1 + pos;
|
||||
aa = (A_VAL(pix) * yap) >> 10;
|
||||
rr = (R_VAL(pix) * yap) >> 10;
|
||||
gg = (G_VAL(pix) * yap) >> 10;
|
||||
bb = (B_VAL(pix) * yap) >> 10;
|
||||
pix = *yp + *xp + pos;
|
||||
|
||||
a = (A_VAL(pix) * yap) >> 10;
|
||||
r = (R_VAL(pix) * yap) >> 10;
|
||||
g = (G_VAL(pix) * yap) >> 10;
|
||||
b = (B_VAL(pix) * yap) >> 10;
|
||||
for (j = (1 << 14) - yap; j > Cy; j -= Cy)
|
||||
{
|
||||
pix += src_w;
|
||||
aa += (A_VAL(pix) * Cy) >> 10;
|
||||
rr += (R_VAL(pix) * Cy) >> 10;
|
||||
gg += (G_VAL(pix) * Cy) >> 10;
|
||||
bb += (B_VAL(pix) * Cy) >> 10;
|
||||
a += (A_VAL(pix) * Cy) >> 10;
|
||||
r += (R_VAL(pix) * Cy) >> 10;
|
||||
g += (G_VAL(pix) * Cy) >> 10;
|
||||
b += (B_VAL(pix) * Cy) >> 10;
|
||||
}
|
||||
if (j > 0)
|
||||
{
|
||||
pix += src_w;
|
||||
aa += (A_VAL(pix) * j) >> 10;
|
||||
rr += (R_VAL(pix) * j) >> 10;
|
||||
gg += (G_VAL(pix) * j) >> 10;
|
||||
bb += (B_VAL(pix) * j) >> 10;
|
||||
a += (A_VAL(pix) * j) >> 10;
|
||||
r += (R_VAL(pix) * j) >> 10;
|
||||
g += (G_VAL(pix) * j) >> 10;
|
||||
b += (B_VAL(pix) * j) >> 10;
|
||||
}
|
||||
a += ((aa - a) * xap) >> 8;
|
||||
r += ((rr - r) * xap) >> 8;
|
||||
g += ((gg - g) * xap) >> 8;
|
||||
b += ((bb - b) * xap) >> 8;
|
||||
if ((xap = *xapp) > 0)
|
||||
{
|
||||
pix = *yp + *xp + 1 + pos;
|
||||
aa = (A_VAL(pix) * yap) >> 10;
|
||||
rr = (R_VAL(pix) * yap) >> 10;
|
||||
gg = (G_VAL(pix) * yap) >> 10;
|
||||
bb = (B_VAL(pix) * yap) >> 10;
|
||||
for (j = (1 << 14) - yap; j > Cy; j -= Cy)
|
||||
{
|
||||
pix += src_w;
|
||||
aa += (A_VAL(pix) * Cy) >> 10;
|
||||
rr += (R_VAL(pix) * Cy) >> 10;
|
||||
gg += (G_VAL(pix) * Cy) >> 10;
|
||||
bb += (B_VAL(pix) * Cy) >> 10;
|
||||
}
|
||||
if (j > 0)
|
||||
{
|
||||
pix += src_w;
|
||||
aa += (A_VAL(pix) * j) >> 10;
|
||||
rr += (R_VAL(pix) * j) >> 10;
|
||||
gg += (G_VAL(pix) * j) >> 10;
|
||||
bb += (B_VAL(pix) * j) >> 10;
|
||||
}
|
||||
a += ((aa - a) * xap) >> 8;
|
||||
r += ((rr - r) * xap) >> 8;
|
||||
g += ((gg - g) * xap) >> 8;
|
||||
b += ((bb - b) * xap) >> 8;
|
||||
}
|
||||
*pbuf++ = ARGB_JOIN(a >> 4, r >> 4, g >> 4, b >> 4);
|
||||
xp++; xapp++;
|
||||
}
|
||||
*pbuf++ = ARGB_JOIN(a >> 4, r >> 4, g >> 4, b >> 4);
|
||||
xp++; xapp++;
|
||||
}
|
||||
|
||||
func(buf, NULL, dc->mul.col, dptr, w);
|
||||
|
||||
|
||||
func(buf, NULL, dc->mul.col, dptr, w);
|
||||
}
|
||||
#ifdef EVAS_SLI
|
||||
ysli++;
|
||||
#endif
|
||||
pbuf = buf;
|
||||
dptr += dst_w; dst_clip_w = w;
|
||||
yp++; yapp++;
|
||||
|
@ -98,58 +108,66 @@
|
|||
{
|
||||
while (dst_clip_h--)
|
||||
{
|
||||
Cy = *yapp >> 16;
|
||||
yap = *yapp & 0xffff;
|
||||
|
||||
pbuf = dptr;
|
||||
while (dst_clip_w--)
|
||||
#ifdef EVAS_SLI
|
||||
if (((ysli) % dc->sli.h) == dc->sli.y)
|
||||
#endif
|
||||
{
|
||||
pix = *yp + *xp + pos;
|
||||
Cy = *yapp >> 16;
|
||||
yap = *yapp & 0xffff;
|
||||
|
||||
r = (R_VAL(pix) * yap) >> 10;
|
||||
g = (G_VAL(pix) * yap) >> 10;
|
||||
b = (B_VAL(pix) * yap) >> 10;
|
||||
for (j = (1 << 14) - yap; j > Cy; j -= Cy)
|
||||
pbuf = dptr;
|
||||
while (dst_clip_w--)
|
||||
{
|
||||
pix += src_w;
|
||||
r += (R_VAL(pix) * Cy) >> 10;
|
||||
g += (G_VAL(pix) * Cy) >> 10;
|
||||
b += (B_VAL(pix) * Cy) >> 10;
|
||||
}
|
||||
if (j > 0)
|
||||
{
|
||||
pix += src_w;
|
||||
r += (R_VAL(pix) * j) >> 10;
|
||||
g += (G_VAL(pix) * j) >> 10;
|
||||
b += (B_VAL(pix) * j) >> 10;
|
||||
}
|
||||
if ((xap = *xapp) > 0)
|
||||
{
|
||||
pix = *yp + *xp + 1 + pos;
|
||||
rr = (R_VAL(pix) * yap) >> 10;
|
||||
gg = (G_VAL(pix) * yap) >> 10;
|
||||
bb = (B_VAL(pix) * yap) >> 10;
|
||||
pix = *yp + *xp + pos;
|
||||
|
||||
r = (R_VAL(pix) * yap) >> 10;
|
||||
g = (G_VAL(pix) * yap) >> 10;
|
||||
b = (B_VAL(pix) * yap) >> 10;
|
||||
for (j = (1 << 14) - yap; j > Cy; j -= Cy)
|
||||
{
|
||||
pix += src_w;
|
||||
rr += (R_VAL(pix) * Cy) >> 10;
|
||||
gg += (G_VAL(pix) * Cy) >> 10;
|
||||
bb += (B_VAL(pix) * Cy) >> 10;
|
||||
r += (R_VAL(pix) * Cy) >> 10;
|
||||
g += (G_VAL(pix) * Cy) >> 10;
|
||||
b += (B_VAL(pix) * Cy) >> 10;
|
||||
}
|
||||
if (j > 0)
|
||||
{
|
||||
pix += src_w;
|
||||
rr += (R_VAL(pix) * j) >> 10;
|
||||
gg += (G_VAL(pix) * j) >> 10;
|
||||
bb += (B_VAL(pix) * j) >> 10;
|
||||
r += (R_VAL(pix) * j) >> 10;
|
||||
g += (G_VAL(pix) * j) >> 10;
|
||||
b += (B_VAL(pix) * j) >> 10;
|
||||
}
|
||||
r += ((rr - r) * xap) >> 8;
|
||||
g += ((gg - g) * xap) >> 8;
|
||||
b += ((bb - b) * xap) >> 8;
|
||||
if ((xap = *xapp) > 0)
|
||||
{
|
||||
pix = *yp + *xp + 1 + pos;
|
||||
rr = (R_VAL(pix) * yap) >> 10;
|
||||
gg = (G_VAL(pix) * yap) >> 10;
|
||||
bb = (B_VAL(pix) * yap) >> 10;
|
||||
for (j = (1 << 14) - yap; j > Cy; j -= Cy)
|
||||
{
|
||||
pix += src_w;
|
||||
rr += (R_VAL(pix) * Cy) >> 10;
|
||||
gg += (G_VAL(pix) * Cy) >> 10;
|
||||
bb += (B_VAL(pix) * Cy) >> 10;
|
||||
}
|
||||
if (j > 0)
|
||||
{
|
||||
pix += src_w;
|
||||
rr += (R_VAL(pix) * j) >> 10;
|
||||
gg += (G_VAL(pix) * j) >> 10;
|
||||
bb += (B_VAL(pix) * j) >> 10;
|
||||
}
|
||||
r += ((rr - r) * xap) >> 8;
|
||||
g += ((gg - g) * xap) >> 8;
|
||||
b += ((bb - b) * xap) >> 8;
|
||||
}
|
||||
*pbuf++ = ARGB_JOIN(0xff, r >> 4, g >> 4, b >> 4);
|
||||
xp++; xapp++;
|
||||
}
|
||||
*pbuf++ = ARGB_JOIN(0xff, r >> 4, g >> 4, b >> 4);
|
||||
xp++; xapp++;
|
||||
}
|
||||
#ifdef EVAS_SLI
|
||||
ysli++;
|
||||
#endif
|
||||
dptr += dst_w; dst_clip_w = w;
|
||||
yp++; yapp++;
|
||||
xp = xpoints + dxx;
|
||||
|
@ -161,60 +179,67 @@
|
|||
{
|
||||
while (dst_clip_h--)
|
||||
{
|
||||
Cy = *yapp >> 16;
|
||||
yap = *yapp & 0xffff;
|
||||
|
||||
while (dst_clip_w--)
|
||||
#ifdef EVAS_SLI
|
||||
if (((ysli) % dc->sli.h) == dc->sli.y)
|
||||
#endif
|
||||
{
|
||||
pix = *yp + *xp + pos;
|
||||
Cy = *yapp >> 16;
|
||||
yap = *yapp & 0xffff;
|
||||
|
||||
r = (R_VAL(pix) * yap) >> 10;
|
||||
g = (G_VAL(pix) * yap) >> 10;
|
||||
b = (B_VAL(pix) * yap) >> 10;
|
||||
for (j = (1 << 14) - yap; j > Cy; j -= Cy)
|
||||
while (dst_clip_w--)
|
||||
{
|
||||
pix += src_w;
|
||||
r += (R_VAL(pix) * Cy) >> 10;
|
||||
g += (G_VAL(pix) * Cy) >> 10;
|
||||
b += (B_VAL(pix) * Cy) >> 10;
|
||||
}
|
||||
if (j > 0)
|
||||
{
|
||||
pix += src_w;
|
||||
r += (R_VAL(pix) * j) >> 10;
|
||||
g += (G_VAL(pix) * j) >> 10;
|
||||
b += (B_VAL(pix) * j) >> 10;
|
||||
}
|
||||
if ((xap = *xapp) > 0)
|
||||
{
|
||||
pix = *yp + *xp + 1 + pos;
|
||||
rr = (R_VAL(pix) * yap) >> 10;
|
||||
gg = (G_VAL(pix) * yap) >> 10;
|
||||
bb = (B_VAL(pix) * yap) >> 10;
|
||||
pix = *yp + *xp + pos;
|
||||
|
||||
r = (R_VAL(pix) * yap) >> 10;
|
||||
g = (G_VAL(pix) * yap) >> 10;
|
||||
b = (B_VAL(pix) * yap) >> 10;
|
||||
for (j = (1 << 14) - yap; j > Cy; j -= Cy)
|
||||
{
|
||||
pix += src_w;
|
||||
rr += (R_VAL(pix) * Cy) >> 10;
|
||||
gg += (G_VAL(pix) * Cy) >> 10;
|
||||
bb += (B_VAL(pix) * Cy) >> 10;
|
||||
r += (R_VAL(pix) * Cy) >> 10;
|
||||
g += (G_VAL(pix) * Cy) >> 10;
|
||||
b += (B_VAL(pix) * Cy) >> 10;
|
||||
}
|
||||
if (j > 0)
|
||||
{
|
||||
pix += src_w;
|
||||
rr += (R_VAL(pix) * j) >> 10;
|
||||
gg += (G_VAL(pix) * j) >> 10;
|
||||
bb += (B_VAL(pix) * j) >> 10;
|
||||
r += (R_VAL(pix) * j) >> 10;
|
||||
g += (G_VAL(pix) * j) >> 10;
|
||||
b += (B_VAL(pix) * j) >> 10;
|
||||
}
|
||||
r += ((rr - r) * xap) >> 8;
|
||||
g += ((gg - g) * xap) >> 8;
|
||||
b += ((bb - b) * xap) >> 8;
|
||||
if ((xap = *xapp) > 0)
|
||||
{
|
||||
pix = *yp + *xp + 1 + pos;
|
||||
rr = (R_VAL(pix) * yap) >> 10;
|
||||
gg = (G_VAL(pix) * yap) >> 10;
|
||||
bb = (B_VAL(pix) * yap) >> 10;
|
||||
for (j = (1 << 14) - yap; j > Cy; j -= Cy)
|
||||
{
|
||||
pix += src_w;
|
||||
rr += (R_VAL(pix) * Cy) >> 10;
|
||||
gg += (G_VAL(pix) * Cy) >> 10;
|
||||
bb += (B_VAL(pix) * Cy) >> 10;
|
||||
}
|
||||
if (j > 0)
|
||||
{
|
||||
pix += src_w;
|
||||
rr += (R_VAL(pix) * j) >> 10;
|
||||
gg += (G_VAL(pix) * j) >> 10;
|
||||
bb += (B_VAL(pix) * j) >> 10;
|
||||
}
|
||||
r += ((rr - r) * xap) >> 8;
|
||||
g += ((gg - g) * xap) >> 8;
|
||||
b += ((bb - b) * xap) >> 8;
|
||||
}
|
||||
*pbuf++ = ARGB_JOIN(0xff, r >> 4, g >> 4, b >> 4);
|
||||
xp++; xapp++;
|
||||
}
|
||||
*pbuf++ = ARGB_JOIN(0xff, r >> 4, g >> 4, b >> 4);
|
||||
xp++; xapp++;
|
||||
|
||||
func(buf, NULL, dc->mul.col, dptr, w);
|
||||
}
|
||||
|
||||
func(buf, NULL, dc->mul.col, dptr, w);
|
||||
|
||||
#ifdef EVAS_SLI
|
||||
ysli++;
|
||||
#endif
|
||||
pbuf = buf;
|
||||
dptr += dst_w; dst_clip_w = w;
|
||||
yp++; yapp++;
|
||||
|
|
|
@ -1,7 +1,10 @@
|
|||
{
|
||||
DATA32 *ptr;
|
||||
RGBA_Gfx_Func func;
|
||||
|
||||
#ifdef EVAS_SLI
|
||||
int ysli = dst_clip_y;
|
||||
#endif
|
||||
|
||||
ptr = src->image->data + ((dst_clip_y - dst_region_y + src_region_y) * src_w) + (dst_clip_x - dst_region_x) + src_region_x;
|
||||
if (dc->mul.use)
|
||||
func = evas_common_gfx_func_composite_pixel_color_span_get(src, dc->mul.col, dst, dst_clip_w, dc->render_op);
|
||||
|
@ -9,7 +12,15 @@
|
|||
func = evas_common_gfx_func_composite_pixel_span_get(src, dst, dst_clip_w, dc->render_op);
|
||||
while (dst_clip_h--)
|
||||
{
|
||||
func(ptr, NULL, dc->mul.col, dst_ptr, dst_clip_w);
|
||||
#ifdef EVAS_SLI
|
||||
if (((ysli) % dc->sli.h) == dc->sli.y)
|
||||
#endif
|
||||
{
|
||||
func(ptr, NULL, dc->mul.col, dst_ptr, dst_clip_w);
|
||||
}
|
||||
#ifdef EVAS_SLI
|
||||
ysli++;
|
||||
#endif
|
||||
ptr += src_w;
|
||||
dst_ptr += dst_w;
|
||||
}
|
||||
|
|
|
@ -59,49 +59,59 @@
|
|||
if (drh == srh)
|
||||
{
|
||||
int sxx0 = sxx;
|
||||
|
||||
#ifdef EVAS_SLI
|
||||
int ysli = dst_clip_y;
|
||||
#endif
|
||||
psrc = src->image->data + (src_w * (sry + cy)) + srx;
|
||||
while (pdst < pdst_end)
|
||||
{
|
||||
pbuf = buf; pbuf_end = buf + dst_clip_w;
|
||||
sxx = sxx0;
|
||||
#ifdef SCALE_USING_MMX
|
||||
pxor_r2r(mm0, mm0);
|
||||
MOV_A2R(ALPHA_255, mm5)
|
||||
#ifdef EVAS_SLI
|
||||
if (((ysli) % dc->sli.h) == dc->sli.y)
|
||||
#endif
|
||||
while (pbuf < pbuf_end)
|
||||
{
|
||||
DATA32 p0, p1;
|
||||
int ax;
|
||||
|
||||
sx = (sxx >> 16);
|
||||
ax = 1 + ((sxx - (sx << 16)) >> 8);
|
||||
p0 = p1 = *(psrc + sx);
|
||||
if ((sx + 1) < srw)
|
||||
p1 = *(psrc + sx + 1);
|
||||
{
|
||||
pbuf = buf; pbuf_end = buf + dst_clip_w;
|
||||
sxx = sxx0;
|
||||
#ifdef SCALE_USING_MMX
|
||||
MOV_P2R(p0, mm1, mm0)
|
||||
if (p0 | p1)
|
||||
{
|
||||
MOV_A2R(ax, mm3)
|
||||
MOV_P2R(p1, mm2, mm0)
|
||||
INTERP_256_R2R(mm3, mm2, mm1, mm5)
|
||||
}
|
||||
MOV_R2P(mm1, *pbuf, mm0)
|
||||
pbuf++;
|
||||
pxor_r2r(mm0, mm0);
|
||||
MOV_A2R(ALPHA_255, mm5)
|
||||
#endif
|
||||
while (pbuf < pbuf_end)
|
||||
{
|
||||
DATA32 p0, p1;
|
||||
int ax;
|
||||
|
||||
sx = (sxx >> 16);
|
||||
ax = 1 + ((sxx - (sx << 16)) >> 8);
|
||||
p0 = p1 = *(psrc + sx);
|
||||
if ((sx + 1) < srw)
|
||||
p1 = *(psrc + sx + 1);
|
||||
#ifdef SCALE_USING_MMX
|
||||
MOV_P2R(p0, mm1, mm0)
|
||||
if (p0 | p1)
|
||||
{
|
||||
MOV_A2R(ax, mm3)
|
||||
MOV_P2R(p1, mm2, mm0)
|
||||
INTERP_256_R2R(mm3, mm2, mm1, mm5)
|
||||
}
|
||||
MOV_R2P(mm1, *pbuf, mm0)
|
||||
pbuf++;
|
||||
#else
|
||||
if (p0 | p1)
|
||||
p0 = INTERP_256(ax, p1, p0);
|
||||
*pbuf++ = p0;
|
||||
if (p0 | p1)
|
||||
p0 = INTERP_256(ax, p1, p0);
|
||||
*pbuf++ = p0;
|
||||
#endif
|
||||
sxx += dsxx;
|
||||
}
|
||||
/* * blend here [clip_w *] buf -> dptr * */
|
||||
if (!direct_scale)
|
||||
func(buf, NULL, dc->mul.col, pdst, dst_clip_w);
|
||||
pdst += dst_w;
|
||||
psrc += src_w;
|
||||
buf += buf_step;
|
||||
sxx += dsxx;
|
||||
}
|
||||
/* * blend here [clip_w *] buf -> dptr * */
|
||||
if (!direct_scale)
|
||||
func(buf, NULL, dc->mul.col, pdst, dst_clip_w);
|
||||
}
|
||||
#ifdef EVAS_SLI
|
||||
ysli++;
|
||||
#endif
|
||||
pdst += dst_w;
|
||||
psrc += src_w;
|
||||
buf += buf_step;
|
||||
}
|
||||
|
||||
goto done_scale_up;
|
||||
|
@ -109,45 +119,56 @@
|
|||
else if (drw == srw)
|
||||
{
|
||||
DATA32 *ps = src->image->data + (src_w * sry) + srx + cx;
|
||||
#ifdef EVAS_SLI
|
||||
int ysli = dst_clip_y;
|
||||
#endif
|
||||
|
||||
while (pdst < pdst_end)
|
||||
{
|
||||
int ay;
|
||||
|
||||
sy = syy >> 16;
|
||||
psrc = ps + (sy * src_w);
|
||||
ay = 1 + ((syy - (sy << 16)) >> 8);
|
||||
#ifdef SCALE_USING_MMX
|
||||
pxor_r2r(mm0, mm0);
|
||||
MOV_A2R(ALPHA_255, mm5)
|
||||
MOV_A2R(ay, mm4)
|
||||
#ifdef EVAS_SLI
|
||||
if (((ysli) % dc->sli.h) == dc->sli.y)
|
||||
#endif
|
||||
pbuf = buf; pbuf_end = buf + dst_clip_w;
|
||||
while (pbuf < pbuf_end)
|
||||
{
|
||||
DATA32 p0 = *psrc, p2 = p0;
|
||||
|
||||
if ((sy + 1) < srh)
|
||||
p2 = *(psrc + src_w);
|
||||
{
|
||||
int ay;
|
||||
|
||||
sy = syy >> 16;
|
||||
psrc = ps + (sy * src_w);
|
||||
ay = 1 + ((syy - (sy << 16)) >> 8);
|
||||
#ifdef SCALE_USING_MMX
|
||||
MOV_P2R(p0, mm1, mm0)
|
||||
if (p0 | p2)
|
||||
{
|
||||
MOV_P2R(p2, mm2, mm0)
|
||||
INTERP_256_R2R(mm4, mm2, mm1, mm5)
|
||||
}
|
||||
MOV_R2P(mm1, *pbuf, mm0)
|
||||
pbuf++;
|
||||
pxor_r2r(mm0, mm0);
|
||||
MOV_A2R(ALPHA_255, mm5)
|
||||
MOV_A2R(ay, mm4)
|
||||
#endif
|
||||
pbuf = buf; pbuf_end = buf + dst_clip_w;
|
||||
while (pbuf < pbuf_end)
|
||||
{
|
||||
DATA32 p0 = *psrc, p2 = p0;
|
||||
|
||||
if ((sy + 1) < srh)
|
||||
p2 = *(psrc + src_w);
|
||||
#ifdef SCALE_USING_MMX
|
||||
MOV_P2R(p0, mm1, mm0)
|
||||
if (p0 | p2)
|
||||
{
|
||||
MOV_P2R(p2, mm2, mm0)
|
||||
INTERP_256_R2R(mm4, mm2, mm1, mm5)
|
||||
}
|
||||
MOV_R2P(mm1, *pbuf, mm0)
|
||||
pbuf++;
|
||||
#else
|
||||
if (p0 | p2)
|
||||
p0 = INTERP_256(ay, p2, p0);
|
||||
*pbuf++ = p0;
|
||||
if (p0 | p2)
|
||||
p0 = INTERP_256(ay, p2, p0);
|
||||
*pbuf++ = p0;
|
||||
#endif
|
||||
psrc++;
|
||||
}
|
||||
/* * blend here [clip_w *] buf -> dptr * */
|
||||
if (!direct_scale)
|
||||
func(buf, NULL, dc->mul.col, pdst, dst_clip_w);
|
||||
psrc++;
|
||||
}
|
||||
/* * blend here [clip_w *] buf -> dptr * */
|
||||
if (!direct_scale)
|
||||
func(buf, NULL, dc->mul.col, pdst, dst_clip_w);
|
||||
}
|
||||
#ifdef EVAS_SLI
|
||||
ysli++;
|
||||
#endif
|
||||
pdst += dst_w;
|
||||
syy += dsyy;
|
||||
buf += buf_step;
|
||||
|
@ -158,73 +179,84 @@
|
|||
{
|
||||
DATA32 *ps = src->image->data + (src_w * sry) + srx;
|
||||
int sxx0 = sxx;
|
||||
#ifdef EVAS_SLI
|
||||
int ysli = dst_clip_y;
|
||||
#endif
|
||||
|
||||
while (pdst < pdst_end)
|
||||
{
|
||||
int ay;
|
||||
|
||||
sy = syy >> 16;
|
||||
psrc = ps + (sy * src_w);
|
||||
ay = 1 + ((syy - (sy << 16)) >> 8);
|
||||
#ifdef SCALE_USING_MMX
|
||||
MOV_A2R(ay, mm4)
|
||||
pxor_r2r(mm0, mm0);
|
||||
MOV_A2R(ALPHA_255, mm5)
|
||||
#ifdef EVAS_SLI
|
||||
if (((ysli) % dc->sli.h) == dc->sli.y)
|
||||
#endif
|
||||
pbuf = buf; pbuf_end = buf + dst_clip_w;
|
||||
sxx = sxx0;
|
||||
while (pbuf < pbuf_end)
|
||||
{
|
||||
int ax;
|
||||
DATA32 *p, *q;
|
||||
DATA32 p0, p1, p2, p3;
|
||||
|
||||
sx = sxx >> 16;
|
||||
ax = 1 + ((sxx - (sx << 16)) >> 8);
|
||||
p = psrc + sx; q = p + src_w;
|
||||
p0 = p1 = p2 = p3 = *p;
|
||||
if ((sx + 1) < srw)
|
||||
p1 = *(p + 1);
|
||||
if ((sy + 1) < srh)
|
||||
{
|
||||
p2 = *q; p3 = p2;
|
||||
if ((sx + 1) < srw)
|
||||
p3 = *(q + 1);
|
||||
}
|
||||
{
|
||||
int ay;
|
||||
|
||||
sy = syy >> 16;
|
||||
psrc = ps + (sy * src_w);
|
||||
ay = 1 + ((syy - (sy << 16)) >> 8);
|
||||
#ifdef SCALE_USING_MMX
|
||||
MOV_A2R(ax, mm6)
|
||||
MOV_P2R(p0, mm1, mm0)
|
||||
if (p0 | p1)
|
||||
{
|
||||
MOV_P2R(p1, mm2, mm0)
|
||||
INTERP_256_R2R(mm6, mm2, mm1, mm5)
|
||||
}
|
||||
MOV_P2R(p2, mm2, mm0)
|
||||
if (p2 | p3)
|
||||
{
|
||||
MOV_P2R(p3, mm3, mm0)
|
||||
INTERP_256_R2R(mm6, mm3, mm2, mm5)
|
||||
}
|
||||
INTERP_256_R2R(mm4, mm2, mm1, mm5)
|
||||
MOV_R2P(mm1, *pbuf, mm0)
|
||||
pbuf++;
|
||||
MOV_A2R(ay, mm4)
|
||||
pxor_r2r(mm0, mm0);
|
||||
MOV_A2R(ALPHA_255, mm5)
|
||||
#endif
|
||||
pbuf = buf; pbuf_end = buf + dst_clip_w;
|
||||
sxx = sxx0;
|
||||
while (pbuf < pbuf_end)
|
||||
{
|
||||
int ax;
|
||||
DATA32 *p, *q;
|
||||
DATA32 p0, p1, p2, p3;
|
||||
|
||||
sx = sxx >> 16;
|
||||
ax = 1 + ((sxx - (sx << 16)) >> 8);
|
||||
p = psrc + sx; q = p + src_w;
|
||||
p0 = p1 = p2 = p3 = *p;
|
||||
if ((sx + 1) < srw)
|
||||
p1 = *(p + 1);
|
||||
if ((sy + 1) < srh)
|
||||
{
|
||||
p2 = *q; p3 = p2;
|
||||
if ((sx + 1) < srw)
|
||||
p3 = *(q + 1);
|
||||
}
|
||||
#ifdef SCALE_USING_MMX
|
||||
MOV_A2R(ax, mm6)
|
||||
MOV_P2R(p0, mm1, mm0)
|
||||
if (p0 | p1)
|
||||
{
|
||||
MOV_P2R(p1, mm2, mm0)
|
||||
INTERP_256_R2R(mm6, mm2, mm1, mm5)
|
||||
}
|
||||
MOV_P2R(p2, mm2, mm0)
|
||||
if (p2 | p3)
|
||||
{
|
||||
MOV_P2R(p3, mm3, mm0)
|
||||
INTERP_256_R2R(mm6, mm3, mm2, mm5)
|
||||
}
|
||||
INTERP_256_R2R(mm4, mm2, mm1, mm5)
|
||||
MOV_R2P(mm1, *pbuf, mm0)
|
||||
pbuf++;
|
||||
#else
|
||||
if (p0 | p1)
|
||||
p0 = INTERP_256(ax, p1, p0);
|
||||
if (p2 | p3)
|
||||
p2 = INTERP_256(ax, p3, p2);
|
||||
if (p0 | p2)
|
||||
p0 = INTERP_256(ay, p2, p0);
|
||||
*pbuf++ = p0;
|
||||
if (p0 | p1)
|
||||
p0 = INTERP_256(ax, p1, p0);
|
||||
if (p2 | p3)
|
||||
p2 = INTERP_256(ax, p3, p2);
|
||||
if (p0 | p2)
|
||||
p0 = INTERP_256(ay, p2, p0);
|
||||
*pbuf++ = p0;
|
||||
#endif
|
||||
sxx += dsxx;
|
||||
}
|
||||
/* * blend here [clip_w *] buf -> dptr * */
|
||||
if (!direct_scale)
|
||||
func(buf, NULL, dc->mul.col, pdst, dst_clip_w);
|
||||
pdst += dst_w;
|
||||
syy += dsyy;
|
||||
buf += buf_step;
|
||||
sxx += dsxx;
|
||||
}
|
||||
/* * blend here [clip_w *] buf -> dptr * */
|
||||
if (!direct_scale)
|
||||
func(buf, NULL, dc->mul.col, pdst, dst_clip_w);
|
||||
}
|
||||
#ifdef EVAS_SLI
|
||||
ysli++;
|
||||
#endif
|
||||
pdst += dst_w;
|
||||
syy += dsyy;
|
||||
buf += buf_step;
|
||||
}
|
||||
}
|
||||
done_scale_up:
|
||||
|
|
|
@ -22,7 +22,12 @@
|
|||
# define LKU(x) pthread_mutex_unlock(&(x));
|
||||
# define TH(x) pthread_t x
|
||||
# define THI(x) int x
|
||||
# define TH_MAX 4
|
||||
# define TH_MAX 8
|
||||
|
||||
// even though in theory having every Nth rendered line done by a different
|
||||
// thread might even out load across threads - it actually slows things down.
|
||||
//#define EVAS_SLI 1
|
||||
|
||||
#else
|
||||
# define LK(x)
|
||||
# define LKI(x)
|
||||
|
@ -255,8 +260,11 @@ struct _RGBA_Draw_Context
|
|||
struct {
|
||||
int color_space;
|
||||
} interpolation;
|
||||
unsigned char anti_alias : 1;
|
||||
struct {
|
||||
int y, h;
|
||||
} sli;
|
||||
int render_op;
|
||||
unsigned char anti_alias : 1;
|
||||
};
|
||||
|
||||
struct _RGBA_Surface
|
||||
|
@ -978,9 +986,10 @@ EAPI Cutout_Rect *evas_common_draw_context_cutouts_split (Cutout_Rect
|
|||
EAPI Cutout_Rect *evas_common_draw_context_cutout_split (Cutout_Rect *in, Cutout_Rect *split);
|
||||
EAPI Cutout_Rect *evas_common_draw_context_cutout_merge (Cutout_Rect *in, Cutout_Rect *merge);
|
||||
EAPI void evas_common_draw_context_set_anti_alias (RGBA_Draw_Context *dc, unsigned char aa);
|
||||
EAPI void evas_common_draw_context_set_color_interpolation (RGBA_Draw_Context *dc, int color_space);
|
||||
EAPI void evas_common_draw_context_set_color_interpolation(RGBA_Draw_Context *dc, int color_space);
|
||||
EAPI void evas_common_draw_context_set_render_op (RGBA_Draw_Context *dc, int op);
|
||||
|
||||
EAPI void evas_common_draw_context_set_sli (RGBA_Draw_Context *dc, int y, int h);
|
||||
|
||||
/****/
|
||||
/* image rendering pipelines... new optional system - non-immediate and
|
||||
* threadable
|
||||
|
|
Loading…
Reference in New Issue