methinks nash you missed doing the pipe pipeline for map changes.

SVN revision: 56805
This commit is contained in:
Carsten Haitzler 2011-02-08 12:10:58 +00:00
parent 7881c0b849
commit c743e4f56c
4 changed files with 33 additions and 31 deletions

View File

@ -1440,23 +1440,23 @@ evas_common_pipe_image_draw(RGBA_Image *src, RGBA_Image *dst,
}
static void
evas_common_pipe_op_map4_free(RGBA_Pipe_Op *op)
evas_common_pipe_op_map_free(RGBA_Pipe_Op *op)
{
#ifdef EVAS_FRAME_QUEUING
LKL(op->op.image.src->cache_entry.ref_fq_del);
op->op.image.src->cache_entry.ref_fq[1]++;
LKU(op->op.image.src->cache_entry.ref_fq_del);
#else
op->op.map4.src->ref--;
if (op->op.map4.src->ref == 0)
evas_cache_image_drop(&op->op.map4.src->cache_entry);
op->op.map.src->ref--;
if (op->op.map.src->ref == 0)
evas_cache_image_drop(&op->op.map.src->cache_entry);
#endif
free(op->op.map4.p);
free(op->op.map.p);
evas_common_pipe_op_free(op);
}
static void
evas_common_pipe_map4_draw_do(RGBA_Image *dst, RGBA_Pipe_Op *op, RGBA_Pipe_Thread_Info *info)
evas_common_pipe_map_draw_do(RGBA_Image *dst, RGBA_Pipe_Op *op, RGBA_Pipe_Thread_Info *info)
{
if (info)
{
@ -1469,22 +1469,22 @@ evas_common_pipe_map4_draw_do(RGBA_Image *dst, RGBA_Pipe_Op *op, RGBA_Pipe_Threa
evas_common_draw_context_clip_clip(&(context), info->x, info->y, info->w, info->h);
#endif
evas_common_map4_rgba(op->op.map4.src, dst,
&context, op->op.map4.p,
op->op.map4.smooth, op->op.map4.level);
evas_common_map_rgba(op->op.map.src, dst,
&context, op->op.map.npoints, op->op.map.p,
op->op.map.smooth, op->op.map.level);
}
else
{
evas_common_map4_rgba(op->op.map4.src, dst,
&(op->context), op->op.map4.p,
op->op.map4.smooth, op->op.map4.level);
evas_common_map_rgba(op->op.map.src, dst,
&(op->context), op->op.map.npoints, op->op.map.p,
op->op.map.smooth, op->op.map.level);
}
}
EAPI void
evas_common_pipe_map4_draw(RGBA_Image *src, RGBA_Image *dst,
RGBA_Draw_Context *dc, RGBA_Map_Point *p,
int smooth, int level)
evas_common_pipe_map_draw(RGBA_Image *src, RGBA_Image *dst,
RGBA_Draw_Context *dc, int npoints, RGBA_Map_Point *p,
int smooth, int level)
{
RGBA_Pipe_Op *op;
RGBA_Map_Point *pts_copy;
@ -1503,8 +1503,9 @@ evas_common_pipe_map4_draw(RGBA_Image *src, RGBA_Image *dst,
for (i = 0; i < 4; ++i)
pts_copy[i] = p[i];
op->op.map4.smooth = smooth;
op->op.map4.level = level;
op->op.map.npoints = npoints;
op->op.map.smooth = smooth;
op->op.map.level = level;
#ifdef EVAS_FRAME_QUEUING
LKL(src->cache_entry.ref_fq_add);
src->cache_entry.ref_fq[0]++;
@ -1512,10 +1513,10 @@ evas_common_pipe_map4_draw(RGBA_Image *src, RGBA_Image *dst,
#else
src->ref++;
#endif
op->op.map4.src = src;
op->op.map4.p = pts_copy;
op->op_func = evas_common_pipe_map4_draw_do;
op->free_func = evas_common_pipe_op_map4_free;
op->op.map.src = src;
op->op.map.p = pts_copy;
op->op_func = evas_common_pipe_map_draw_do;
op->free_func = evas_common_pipe_op_map_free;
evas_common_pipe_draw_context_copy(dc, op);
#ifdef EVAS_FRAME_QUEUING
@ -1533,7 +1534,7 @@ evas_common_pipe_map4_draw(RGBA_Image *src, RGBA_Image *dst,
}
static void
evas_common_pipe_map4_render(RGBA_Image *root)
evas_common_pipe_map_render(RGBA_Image *root)
{
RGBA_Pipe *p;
int i;
@ -1543,15 +1544,15 @@ evas_common_pipe_map4_render(RGBA_Image *root)
{
for (i = 0; i < p->op_num; i++)
{
if (p->op[i].op_func == evas_common_pipe_map4_draw_do)
if (p->op[i].op_func == evas_common_pipe_map_draw_do)
{
if (p->op[i].op.map4.src->cache_entry.pipe)
evas_common_pipe_map4_render(p->op[i].op.map4.src);
if (p->op[i].op.map.src->cache_entry.pipe)
evas_common_pipe_map_render(p->op[i].op.map.src);
}
else if (p->op[i].op_func == evas_common_pipe_image_draw_do)
{
if (p->op[i].op.image.src->cache_entry.pipe)
evas_common_pipe_map4_render(p->op[i].op.image.src);
evas_common_pipe_map_render(p->op[i].op.image.src);
}
}
}
@ -1706,7 +1707,7 @@ evas_common_pipe_image_load(RGBA_Image *im)
}
EAPI void
evas_common_pipe_map4_begin(RGBA_Image *root)
evas_common_pipe_map_begin(RGBA_Image *root)
{
if (!evas_common_pipe_init())
{
@ -1724,7 +1725,7 @@ evas_common_pipe_map4_begin(RGBA_Image *root)
evas_common_pipe_image_load_do();
evas_common_pipe_map4_render(root);
evas_common_pipe_map_render(root);
}
#endif

View File

@ -97,7 +97,7 @@ EAPI void evas_common_pipe_image_load(RGBA_Image *im);
EAPI void evas_common_pipe_image_draw(RGBA_Image *src, RGBA_Image *dst, RGBA_Draw_Context *dc, int smooth, int src_region_x, int src_region_y, int src_region_w, int src_region_h, int dst_region_x, int dst_region_y, int dst_region_w, int dst_region_h);
EAPI void evas_common_pipe_map_begin(RGBA_Image *root);
EAPI void evas_common_pipe_map_draw(RGBA_Image *src, RGBA_Image *dst,
RGBA_Draw_Context *dc, RGBA_Map_Point *p,
RGBA_Draw_Context *dc, int npoints, RGBA_Map_Point *p,
int smooth, int level);
EAPI void evas_common_pipe_flush(RGBA_Image *im);

View File

@ -722,9 +722,10 @@ struct _RGBA_Pipe_Op
struct {
RGBA_Image *src;
RGBA_Map_Point *p;
int npoints;
int smooth;
int level;
} map4;
} map;
} op;
};

View File

@ -562,7 +562,7 @@ eng_image_map_draw(void *data __UNUSED__, void *context, void *surface, void *im
if (npoints > 4)
{
eng_image_map_draw(data, context, surface, image, npoints - 2, p + 2,
smooth, level);
smooth, level);
}
}