ecore_drm2: Track whether an Ecore_Drm2_Plane has ever been on scanout
authorDerek Foreman <derekf@osg.samsung.com>
Fri, 16 Jun 2017 21:15:57 +0000 (16:15 -0500)
committerDerek Foreman <derekf@osg.samsung.com>
Fri, 23 Jun 2017 13:15:41 +0000 (08:15 -0500)
src/lib/ecore_drm2/ecore_drm2_fb.c
src/lib/ecore_drm2/ecore_drm2_private.h

index ddd7c3e..28154e5 100644 (file)
@@ -284,7 +284,11 @@ ecore_drm2_fb_flip_complete(Ecore_Drm2_Output *output)
 
         EINA_LIST_FOREACH_SAFE(output->planes, l, ll, plane)
           {
-             if (!plane->dead) continue;
+             if (!plane->dead)
+               {
+                  plane->scanout = EINA_TRUE;
+                  continue;
+               }
              output->planes = eina_list_remove_list(output->planes, l);
              free(plane);
           }
index 730c7b5..d387e90 100644 (file)
@@ -176,6 +176,7 @@ struct _Ecore_Drm2_Plane
    Ecore_Drm2_Output *output;
    Ecore_Drm2_Fb *fb;
    Eina_Bool dead;
+   Eina_Bool scanout;
 };
 
 struct _Ecore_Drm2_Output_Mode