derekf pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=21726e05fc2b62e41c138cbce16c6a7e0e3d20d8

commit 21726e05fc2b62e41c138cbce16c6a7e0e3d20d8
Author: Derek Foreman <derek.foreman.sams...@gmail.com>
Date:   Mon Oct 22 10:35:39 2018 -0500

    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.sams...@gmail.com>
    Reviewed-by: Cedric BAIL <cedric.b...@free.fr>
    Differential Revision: https://phab.enlightenment.org/D7196
---
 src/lib/evas/canvas/evas_object_main.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/src/lib/evas/canvas/evas_object_main.c 
b/src/lib/evas/canvas/evas_object_main.c
index e0f02da945..954528ca29 100644
--- a/src/lib/evas/canvas/evas_object_main.c
+++ b/src/lib/evas/canvas/evas_object_main.c
@@ -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)
      {

-- 


Reply via email to