ecore-wl2: Move ecore_wl2_subsurface functions to be internal
authorChristopher Michael <cp.michael@samsung.com>
Thu, 9 Jan 2020 15:17:32 +0000 (10:17 -0500)
committerJongmin Lee <jm105.lee@samsung.com>
Thu, 9 Jan 2020 21:13:30 +0000 (06:13 +0900)
These functions are not used outside of EFL so there is no need for
them to be public.

ref T8013

src/lib/ecore_wl2/Ecore_Wl2.h
src/lib/ecore_wl2/ecore_wl2_internal.h

index 2c3df10..9ab8c67 100644 (file)
@@ -659,7 +659,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
  */
 
 /**
@@ -1939,163 +1938,6 @@ EAPI Ecore_Wl2_Virtual_Keyboard_State ecore_wl2_window_keyboard_state_get(Ecore_
 //
 
 /**
- * @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
  *
index 7fcbaff..744319a 100644 (file)
@@ -313,6 +313,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