forked from enlightenment/efl
Evas masking: Skip GL fast path for border images
Right now the engines don't support mask tiles so we can't just scale up an image on-the-fly when doing a masking operation. Skip fast path and force render of border images into their own surface.
This commit is contained in:
parent
4227bae2b6
commit
a871ac96a8
|
@ -1831,9 +1831,10 @@ evas_render_mask_subrender(Evas_Public_Data *evas,
|
|||
EINA_COW_WRITE_BEGIN(evas_object_mask_cow, mask->mask, Evas_Object_Mask_Data, mdata)
|
||||
mdata->redraw = EINA_FALSE;
|
||||
|
||||
if (is_image)
|
||||
if (is_image && ENFN->image_scaled_update)
|
||||
{
|
||||
Eina_Bool filled = EINA_FALSE;
|
||||
Eina_Bool filled = EINA_FALSE, border = EINA_FALSE;
|
||||
int bl = 0, br = 0, bt = 0, bb = 0;
|
||||
|
||||
if (evas_object_image_filled_get(mask->object))
|
||||
filled = EINA_TRUE;
|
||||
|
@ -1845,8 +1846,11 @@ evas_render_mask_subrender(Evas_Public_Data *evas,
|
|||
filled = EINA_TRUE;
|
||||
}
|
||||
|
||||
if (filled & !prev_mask && mask->func->engine_data_get &&
|
||||
ENFN->image_scaled_update)
|
||||
evas_object_image_border_get(mask->object, &bl, &br, &bt, &bb);
|
||||
if (bl || br || bt || bb)
|
||||
border = EINA_TRUE;
|
||||
|
||||
if (!border && filled & !prev_mask && mask->func->engine_data_get)
|
||||
{
|
||||
/* Fast path (for GL) that avoids creating a map surface, render the
|
||||
* scaled image in it, when the shaders can just scale on the fly. */
|
||||
|
|
Loading…
Reference in New Issue