forked from enlightenment/efl
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:
parent
e3a28ecd1e
commit
eafed87ffd
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in New Issue