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_Window_Group
|
||||||
* @li @ref Ecore_Wl2_Output_Group
|
* @li @ref Ecore_Wl2_Output_Group
|
||||||
* @li @ref Ecore_Wl2_Input_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);
|
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
|
* @defgroup Ecore_Wl2_Output_Group Wayland Library Output Functions
|
||||||
* @ingroup Ecore_Wl2_Group
|
* @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);
|
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
|
# undef EAPI
|
||||||
# define EAPI
|
# define EAPI
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue