forked from enlightenment/efl
evas_render: Ensure proper rendering when objects are on planes
If only objects on planes change, we don't see any damage for the main buffer, so a page flip never occurs and the plane doesn't update. For now forcing a tiny damage area is the easy way to work around this. Also force a pixels get callback for enlightenment's surface frame callback tracking. Signed-off-by: Derek Foreman <derek.foreman.samsung@gmail.com> Reviewed-by: Cedric BAIL <cedric.bail@free.fr> Differential Revision: https://phab.enlightenment.org/D7196
This commit is contained in:
parent
706f377edd
commit
21726e05fc
|
@ -839,6 +839,18 @@ evas_object_render_pre_effect_updates(Eina_Array *rects, Evas_Object *eo_obj, in
|
|||
if (!obj->layer) return;
|
||||
|
||||
if (obj->is_smart) goto end;
|
||||
|
||||
if (evas_object_is_on_plane(eo_obj, obj))
|
||||
{
|
||||
/* We need some damage to occur if only planes are being updated,
|
||||
or nothing will provoke a page flip.
|
||||
*/
|
||||
obj->layer->evas->engine.func->output_redraws_rect_add(ENC,
|
||||
0, 0, 1, 1);
|
||||
/* Force a pixels get callback for E's benefit :( */
|
||||
evas_object_pixels_get_force(eo_obj, obj);
|
||||
goto end;
|
||||
}
|
||||
/* FIXME: was_v isn't used... why? */
|
||||
if (!obj->clip.clipees)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue