* @since_tizen 6.0
*/
EAPI Eina_Bool ecore_wl2_subsurface_video_surface_destination_set(Ecore_Wl2_Subsurface *subsurface, int x, int y, int w, int h);
+
+/**
+ * @brief Set an auxiliary hint on a given subsurface
+ *
+ * @param subsurface The subsurface to set an auxiliary hint
+ * @param hint The auxiliary hint string
+ * @param val The value string
+ *
+ * @ingroup Ecore_Wl2_Subsurface_Group
+ * @since_tizen 6.0
+ */
+EAPI void ecore_wl2_subsurface_aux_hint_set(Ecore_Wl2_Subsurface *subsurface, const char *hint, const char *val);
//
# undef EAPI
# define EAPI
EINA_SAFETY_ON_NULL_RETURN_VAL(subsurface->parent, EINA_FALSE);
EINA_SAFETY_ON_NULL_RETURN_VAL(subsurface->parent->display, EINA_FALSE);
- subsurface->video = EINA_TRUE;
win = subsurface->parent;
display = win->display;
+ if (!display->wl.tz_policy) return EINA_FALSE;
+
tizen_policy_place_subsurface_below_parent(display->wl.tz_policy,
subsurface->wl.subsurface);
if (!win->tbm_client)
{
+ /* deinit tbm_client in ecore_wl2_window_free */
win->tbm_client = wayland_tbm_client_init(display->wl.display);
- if (!win->tbm_client)
- {
- ERR("Failed to init wayland tbm client");
- goto client_init_err;
- }
+ if (!win->tbm_client) return EINA_FALSE;
}
subsurface->wl.tbm_surface = tbm_surface_create(1, 1, TBM_FORMAT_ARGB8888);
- if (!subsurface->wl.tbm_surface)
- {
- ERR("Failed to create tbm surface");
- goto client_init_err;
- }
+ if (!subsurface->wl.tbm_surface) return EINA_FALSE;
subsurface->wl.wl_buffer = wayland_tbm_client_create_buffer(win->tbm_client,
subsurface->wl.tbm_surface);
wl_surface_attach(subsurface->wl.surface, subsurface->wl.wl_buffer, 0, 0);
wl_surface_commit(subsurface->wl.surface);
+ subsurface->video = EINA_TRUE;
return EINA_TRUE;
buf_fill_err:
tbm_surface_destroy(subsurface->wl.tbm_surface);
subsurface->wl.tbm_surface = NULL;
-client_init_err:
- subsurface->video = EINA_FALSE;
-
return EINA_FALSE;
}
EINA_SAFETY_ON_NULL_RETURN(subsurface);
_ecore_wl2_subsurfae_place_surface_stack(subsurface, other, EINA_FALSE);
}
+
+EAPI void
+ecore_wl2_subsurface_aux_hint_set(Ecore_Wl2_Subsurface *subsurface, const char *hint, const char *val)
+{
+ int id = INT_MAX; /* id is meaningless to window manager server */
+ Ecore_Wl2_Window *win;
+ Ecore_Wl2_Display *display;
+
+ EINA_SAFETY_ON_NULL_RETURN(hint);
+ EINA_SAFETY_ON_NULL_RETURN(val);
+ EINA_SAFETY_ON_NULL_RETURN(subsurface);
+ EINA_SAFETY_ON_NULL_RETURN(subsurface->parent);
+ EINA_SAFETY_ON_NULL_RETURN(subsurface->parent->display);
+
+ win = subsurface->parent;
+ display = win->display;
+
+ if (display->wl.tz_policy)
+ tizen_policy_add_aux_hint(display->wl.tz_policy, subsurface->wl.surface, id, hint, val);
+}
//