ecore_drm2: Add scanout status callbacks
authorDerek Foreman <derekf@osg.samsung.com>
Fri, 16 Jun 2017 21:32:45 +0000 (16:32 -0500)
committerDerek Foreman <derekf@osg.samsung.com>
Fri, 23 Jun 2017 13:15:41 +0000 (08:15 -0500)
This generates callbacks when a fb becomes scanned out on a hardware plane
or when it no longer is.

src/lib/ecore_drm2/ecore_drm2_fb.c

index 8977528..d601803 100644 (file)
@@ -299,6 +299,10 @@ ecore_drm2_fb_flip_complete(Ecore_Drm2_Output *output)
                     fb->scanout_count++;
 
                   plane->scanout = EINA_TRUE;
+                  if (fb->status_handler && (fb->scanout_count == 1))
+                    fb->status_handler(fb,
+                                       ECORE_DRM2_FB_STATUS_SCANOUT_ON,
+                                       fb->status_data);
                   continue;
                }
              plane_scanout = plane->scanout;
@@ -307,6 +311,10 @@ ecore_drm2_fb_flip_complete(Ecore_Drm2_Output *output)
              if (!plane_scanout) continue;
 
              fb->scanout_count--;
+             if (fb->status_handler && (fb->scanout_count == 0))
+               fb->status_handler(fb,
+                                  ECORE_DRM2_FB_STATUS_SCANOUT_OFF,
+                                  fb->status_data);
           }
      }