ecore-wl2: Move ecore_wl2_subsurface functions to be internal

These functions are not used outside of EFL so there is no need for
them to be public.

ref T8013
This commit is contained in:
Christopher Michael 2020-01-09 10:17:32 -05:00
parent e3a28ecd1e
commit eafed87ffd
2 changed files with 157 additions and 158 deletions

View File

@ -453,7 +453,6 @@ typedef struct _Ecore_Wl2_Surface_Interface
* @li @ref Ecore_Wl2_Window_Group
* @li @ref Ecore_Wl2_Output_Group
* @li @ref Ecore_Wl2_Input_Group
* @li @ref Ecore_Wl2_Subsurface_Group
*/
/**
@ -1564,163 +1563,6 @@ EAPI void ecore_wl2_input_pointer_set(Ecore_Wl2_Input *input, struct wl_surface
*/
EAPI void ecore_wl2_input_cursor_from_name_set(Ecore_Wl2_Input *input, const char *cursor);
/**
* @defgroup Ecore_Wl2_Subsurface_Group Functions to manipulate subsurfaces.
* @ingroup Ecore_Wl2_Group
*
* Functions to manipulate wayland subsurfaces, using Ecore_Wl2_Subsurface.
*
* This API is intended to expose Wayland subsurface functionality, although it
* should not be necessary for most applications to use it, as soon as we have
* means to make Evas automatically switch Evas images to use subsurfaces.
*
* It can/should be used, for instance, when subsurfaces are needed to be not
* in sync with the main window surface.
*/
/**
* Create and return a new subsurface.
*
* Create a new surface (and subsurface interface), with the parent surface
* being the one associated with the given @param win.
*
* The @param win must be visible, otherwise there will be no surface created
* for it yet.
*
* @return the allocated and initialized Ecore_Wl2_Subsurface object, or
* NULL on failure
*
* @ingroup Ecore_Wl2_Subsurface_Group
* @since 1.17
*/
EAPI Ecore_Wl2_Subsurface *ecore_wl2_subsurface_new(Ecore_Wl2_Window *window);
/**
* Destroy the given subsurface, as well as the surface associated with it.
*
* @param subsurface the subsurface
*
* @ingroup Ecore_Wl2_Subsurface_Group
* @since 1.17
*/
EAPI void ecore_wl2_subsurface_del(Ecore_Wl2_Subsurface *subsurface);
/**
* Get the wl_surface for this subsurface
*
* @param subsurface the subsurface
*
* @return the wl_surface associated with this subsurface, or NULL on failure
*
* @ingroup Ecore_Wl2_Subsurface_Group
* @since 1.17
*/
EAPI struct wl_surface *ecore_wl2_subsurface_surface_get(Ecore_Wl2_Subsurface *subsurface);
/**
* Set the position of this subsurface, relative to its parent surface.
* If subsurface is defined and the x, y coordinates differ from the currently
* tracked position, this also schedules a sub-surface position change.
*
* @param subsurface the subsurface
* @param x coordinate in the parent surface
* @param y coordinate in the parent surface
*
* @ingroup Ecore_Wl2_Subsurface_Group
* @since 1.17
*/
EAPI void ecore_wl2_subsurface_position_set(Ecore_Wl2_Subsurface *subsurface, int x, int y);
/**
* Get the position of this subsurface, relative to its parent surface.
* Coordinates will be returned in x and y if non-NULL.
*
* @param subsurface the subsurface
* @param x coordinate in the parent surface, or NULL to ignore
* @param y coordinate in the parent surface, or NULL to ignore
*
* @ingroup Ecore_Wl2_Subsurface_Group
* @since 1.17
*/
EAPI void ecore_wl2_subsurface_position_get(Ecore_Wl2_Subsurface *subsurface, int *x, int *y);
/**
* Place subsurface on layer above a reference surface
*
* Moves the @param subsurface to just above the reference @param
* surface, changing the z-order. The reference @param surface must
* be either a sibling or parent surface, else a protocol error will
* be generated.
*
* @param subsurface the subsurface
* @param surface the sibling reference surface
*
* @ingroup Ecore_Wl2_Subsurface_Group
* @since 1.17
*/
EAPI void ecore_wl2_subsurface_place_above(Ecore_Wl2_Subsurface *subsurface, struct wl_surface *surface);
/**
* Place subsurface on layer below a reference surface
*
* See ecore_wl2_subsurface_place_above.
*
* @param subsurface the subsurface
* @param surface the sibling reference surface
*
* @ingroup Ecore_Wl2_Subsurface_Group
* @since 1.17
*/
EAPI void ecore_wl2_subsurface_place_below(Ecore_Wl2_Subsurface *subsurface, struct wl_surface *surface);
/**
* Enables or disables sub-surface synchronization
*
* When synchronization is enabled, surface commits on the subsurface
* will be cached and only applied when the parent surface's state is
* applied. This ensures atomic updates of the parent and all of its
* synchronized sub-surfaces.
*
* When synchronization is disabled, commits will apply to the pending
* state directly without caching, just like a normal wl_surface. If
* there are already cached events when this is set, those events are
* applied simultaneously with the desync event.
*
* Attempting to enable synchronization when the subsurface already
* thinks it's sync'd, or desync when it believes its desync'd, will
* be trivially ignored and will not generate a Wayland event.
*
* See Wayland's set_desync documentation for further details and
* exceptional cases.
*
* @param subsurface the subsurface
* @param sync true to enable synchronization, false to desynchronize
*
* @ingroup Ecore_Wl2_Subsurface_Group
* @since 1.17
*/
EAPI void ecore_wl2_subsurface_sync_set(Ecore_Wl2_Subsurface *subsurface, Eina_Bool sync);
/**
* Set an opaque region for the given subsurface.
*
* This is an optimization hint to the compositor to allow it avoid
* redrawing content unnecessarily. Note that marking transparent
* content as opaque will cause repaint artifacts.
*
* Use a 0x0 region size to unset the opaque region.
*
* @param subsurface the subsurface
* @param x coordinate in the parent surface
* @param y coordinate in the parent surface
* @param w width to set as opaque
* @param h height to set as opaque
*
* @ingroup Ecore_Wl2_Subsurface_Group
* @since 1.17
*/
EAPI void ecore_wl2_subsurface_opaque_region_set(Ecore_Wl2_Subsurface *subsurface, int x, int y, int w, int h);
/**
* @defgroup Ecore_Wl2_Output_Group Wayland Library Output Functions
* @ingroup Ecore_Wl2_Group

View File

@ -348,6 +348,163 @@ EAPI Eina_Bool ecore_wl2_offer_supports_mime(Ecore_Wl2_Offer *offer, const char
*/
EAPI void ecore_wl2_offer_finish(Ecore_Wl2_Offer *offer);
/**
* @defgroup Ecore_Wl2_Subsurface_Group Functions to manipulate subsurfaces.
* @ingroup Ecore_Wl2_Group
*
* Functions to manipulate wayland subsurfaces, using Ecore_Wl2_Subsurface.
*
* This API is intended to expose Wayland subsurface functionality, although it
* should not be necessary for most applications to use it, as soon as we have
* means to make Evas automatically switch Evas images to use subsurfaces.
*
* It can/should be used, for instance, when subsurfaces are needed to be not
* in sync with the main window surface.
*/
/**
* Create and return a new subsurface.
*
* Create a new surface (and subsurface interface), with the parent surface
* being the one associated with the given @param win.
*
* The @param win must be visible, otherwise there will be no surface created
* for it yet.
*
* @return the allocated and initialized Ecore_Wl2_Subsurface object, or
* NULL on failure
*
* @ingroup Ecore_Wl2_Subsurface_Group
* @since 1.17
*/
EAPI Ecore_Wl2_Subsurface *ecore_wl2_subsurface_new(Ecore_Wl2_Window *window);
/**
* Destroy the given subsurface, as well as the surface associated with it.
*
* @param subsurface the subsurface
*
* @ingroup Ecore_Wl2_Subsurface_Group
* @since 1.17
*/
EAPI void ecore_wl2_subsurface_del(Ecore_Wl2_Subsurface *subsurface);
/**
* Get the wl_surface for this subsurface
*
* @param subsurface the subsurface
*
* @return the wl_surface associated with this subsurface, or NULL on failure
*
* @ingroup Ecore_Wl2_Subsurface_Group
* @since 1.17
*/
EAPI struct wl_surface *ecore_wl2_subsurface_surface_get(Ecore_Wl2_Subsurface *subsurface);
/**
* Set the position of this subsurface, relative to its parent surface.
* If subsurface is defined and the x, y coordinates differ from the currently
* tracked position, this also schedules a sub-surface position change.
*
* @param subsurface the subsurface
* @param x coordinate in the parent surface
* @param y coordinate in the parent surface
*
* @ingroup Ecore_Wl2_Subsurface_Group
* @since 1.17
*/
EAPI void ecore_wl2_subsurface_position_set(Ecore_Wl2_Subsurface *subsurface, int x, int y);
/**
* Get the position of this subsurface, relative to its parent surface.
* Coordinates will be returned in x and y if non-NULL.
*
* @param subsurface the subsurface
* @param x coordinate in the parent surface, or NULL to ignore
* @param y coordinate in the parent surface, or NULL to ignore
*
* @ingroup Ecore_Wl2_Subsurface_Group
* @since 1.17
*/
EAPI void ecore_wl2_subsurface_position_get(Ecore_Wl2_Subsurface *subsurface, int *x, int *y);
/**
* Place subsurface on layer above a reference surface
*
* Moves the @param subsurface to just above the reference @param
* surface, changing the z-order. The reference @param surface must
* be either a sibling or parent surface, else a protocol error will
* be generated.
*
* @param subsurface the subsurface
* @param surface the sibling reference surface
*
* @ingroup Ecore_Wl2_Subsurface_Group
* @since 1.17
*/
EAPI void ecore_wl2_subsurface_place_above(Ecore_Wl2_Subsurface *subsurface, struct wl_surface *surface);
/**
* Place subsurface on layer below a reference surface
*
* See ecore_wl2_subsurface_place_above.
*
* @param subsurface the subsurface
* @param surface the sibling reference surface
*
* @ingroup Ecore_Wl2_Subsurface_Group
* @since 1.17
*/
EAPI void ecore_wl2_subsurface_place_below(Ecore_Wl2_Subsurface *subsurface, struct wl_surface *surface);
/**
* Enables or disables sub-surface synchronization
*
* When synchronization is enabled, surface commits on the subsurface
* will be cached and only applied when the parent surface's state is
* applied. This ensures atomic updates of the parent and all of its
* synchronized sub-surfaces.
*
* When synchronization is disabled, commits will apply to the pending
* state directly without caching, just like a normal wl_surface. If
* there are already cached events when this is set, those events are
* applied simultaneously with the desync event.
*
* Attempting to enable synchronization when the subsurface already
* thinks it's sync'd, or desync when it believes its desync'd, will
* be trivially ignored and will not generate a Wayland event.
*
* See Wayland's set_desync documentation for further details and
* exceptional cases.
*
* @param subsurface the subsurface
* @param sync true to enable synchronization, false to desynchronize
*
* @ingroup Ecore_Wl2_Subsurface_Group
* @since 1.17
*/
EAPI void ecore_wl2_subsurface_sync_set(Ecore_Wl2_Subsurface *subsurface, Eina_Bool sync);
/**
* Set an opaque region for the given subsurface.
*
* This is an optimization hint to the compositor to allow it avoid
* redrawing content unnecessarily. Note that marking transparent
* content as opaque will cause repaint artifacts.
*
* Use a 0x0 region size to unset the opaque region.
*
* @param subsurface the subsurface
* @param x coordinate in the parent surface
* @param y coordinate in the parent surface
* @param w width to set as opaque
* @param h height to set as opaque
*
* @ingroup Ecore_Wl2_Subsurface_Group
* @since 1.17
*/
EAPI void ecore_wl2_subsurface_opaque_region_set(Ecore_Wl2_Subsurface *subsurface, int x, int y, int w, int h);
# undef EAPI
# define EAPI