ecore_drm2: simplify API to get latest FB

What we've always wanted when getting the "current" FB is to get
the most recently submit one - this may be current, next, or pending.

Replace ecore_drm2_output_current_fb_get() with a function that gets the
most recent one - ecore_drm2_output_latest_fb_get().  Now callers don't
have to check the next buffer themselves first, and we don't have to
add an API for pending.
This commit is contained in:
Derek Foreman 2016-09-08 11:40:11 -05:00
parent ace55231a3
commit cc29a25c47
2 changed files with 12 additions and 6 deletions

View File

@ -456,16 +456,20 @@ EAPI unsigned int ecore_drm2_output_crtc_get(Ecore_Drm2_Output *output);
EAPI Ecore_Drm2_Fb *ecore_drm2_output_next_fb_get(Ecore_Drm2_Output *output);
/**
* Return the current Ecore_Drm2_Fb used on a given output
* Return the most recently set Ecore_Drm2_Fb for a given output
*
* This may be the currently scanned out buffer, a buffer currently being
* flipped to scanout, or a buffer that has been submit but may not
* actually ever hit scanout at all.
*
* @param output
*
* @return The current Ecore_Drm2_Fb used on this output, or NULL otherwise
* @return The latest Ecore_Drm2_Fb submit for this output, or NULL otherwise
*
* @ingroup Ecore_Drm2_Output_Group
* @since 1.18
* @since 1.19
*/
EAPI Ecore_Drm2_Fb *ecore_drm2_output_current_fb_get(Ecore_Drm2_Output *output);
EAPI Ecore_Drm2_Fb *ecore_drm2_output_latest_fb_get(Ecore_Drm2_Output *output);
/**
* Set the next Ecore_Drm2_Fb to be used on a given output

View File

@ -945,10 +945,12 @@ ecore_drm2_output_next_fb_set(Ecore_Drm2_Output *output, Ecore_Drm2_Fb *fb)
}
EAPI Ecore_Drm2_Fb *
ecore_drm2_output_current_fb_get(Ecore_Drm2_Output *output)
ecore_drm2_output_latest_fb_get(Ecore_Drm2_Output *output)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(output, NULL);
return output->current;
if (output->pending) return output->pending;
if (output->current) return output->current;
return output->next;
}
EAPI void