derekf pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=3be2630a3050dab9f73a181324813bda727ed0fd

commit 3be2630a3050dab9f73a181324813bda727ed0fd
Author: Derek Foreman <der...@osg.samsung.com>
Date:   Wed Sep 7 22:13:34 2016 -0500

    ecore_drm2: make flip to NULL buffer mean something
    
    When triple buffering we'll have a buffer in ecore_drm2's "next" position.
    Until now we've had to query it from the engine then try to re post it.
    
    Also, when generating ticks we need to flip to the current buffer when no
    changes have been made to get another callback.
    
    Now a NULL fb to fb_flip will either flip to next, if available, or current
    if there's nothing new to flip to.
---
 src/lib/ecore_drm2/ecore_drm2_fb.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/src/lib/ecore_drm2/ecore_drm2_fb.c 
b/src/lib/ecore_drm2/ecore_drm2_fb.c
index 36de500..1c1c947 100644
--- a/src/lib/ecore_drm2/ecore_drm2_fb.c
+++ b/src/lib/ecore_drm2/ecore_drm2_fb.c
@@ -228,18 +228,25 @@ ecore_drm2_fb_flip(Ecore_Drm2_Fb *fb, Ecore_Drm2_Output 
*output)
 {
    int ret = 0;
 
-   EINA_SAFETY_ON_NULL_RETURN_VAL(fb, -1);
    EINA_SAFETY_ON_NULL_RETURN_VAL(output, -1);
    EINA_SAFETY_ON_NULL_RETURN_VAL(output->current_mode, -1);
 
    if (!output->enabled) return -1;
 
+   if (!fb) fb = output->next;
+
+   /* So we can generate a tick by flipping to the current fb */
+   if (!fb) fb = output->current;
+
    if (output->next)
      {
         output->next->busy = EINA_FALSE;
         output->next = NULL;
      }
 
+   /* If we don't have an fb to set by now, BAIL! */
+   if (!fb) return -1;
+
    if ((!output->current) ||
        (output->current->stride != fb->stride))
      {

-- 


Reply via email to