struct wl_resource *buffer_resource)
{
struct weston_output *output =
- wl_resource_get_user_data(output_resource);
+ weston_output_from_resource(output_resource);
struct weston_buffer *buffer =
weston_buffer_from_resource(buffer_resource);
wl_list_insert(&shell->input_panel.surfaces,
&input_panel_surface->link);
- input_panel_surface->output = wl_resource_get_user_data(output_resource);
+ input_panel_surface->output = weston_output_from_resource(output_resource);
input_panel_surface->panel = 0;
}
surface->committed = background_committed;
surface->committed_private = shell;
weston_surface_set_label_func(surface, background_get_label);
- surface->output = wl_resource_get_user_data(output_resource);
+ surface->output = weston_output_from_resource(output_resource);
view->output = surface->output;
weston_desktop_shell_send_configure(resource, 0,
surface_resource,
surface->committed = panel_committed;
surface->committed_private = shell;
weston_surface_set_label_func(surface, panel_get_label);
- surface->output = wl_resource_get_user_data(output_resource);
+ surface->output = weston_output_from_resource(output_resource);
view->output = surface->output;
weston_desktop_shell_send_configure(resource, 0,
surface_resource,
}
if (output_res) {
- output = wl_resource_get_user_data(output_res);
+ output = weston_output_from_resource(output_res);
fsout = fs_output_for_output(output);
fs_output_set_surface(fsout, surface, method, 0, 0);
} else {
struct weston_seat *seat;
struct fs_output *fsout;
- output = wl_resource_get_user_data(output_res);
+ output = weston_output_from_resource(output_res);
fsout = fs_output_for_output(output);
if (surface_res == NULL) {
wl_list_insert(&shell->input_panel.surfaces,
&input_panel_surface->link);
- input_panel_surface->output = wl_resource_get_user_data(output_resource);
+ input_panel_surface->output = weston_output_from_resource(output_resource);
input_panel_surface->panel = 0;
}
struct weston_output *output = NULL;
if (output_resource != NULL)
- output = wl_resource_get_user_data(output_resource);
+ output = weston_output_from_resource(output_resource);
weston_desktop_wl_shell_change_state(surface, FULLSCREEN, NULL, 0, 0);
weston_desktop_api_fullscreen_requested(surface->desktop, dsurface,
struct weston_output *output = NULL;
if (output_resource != NULL)
- output = wl_resource_get_user_data(output_resource);
+ output = weston_output_from_resource(output_resource);
weston_desktop_xdg_surface_ensure_added(surface);
weston_desktop_api_fullscreen_requested(surface->desktop, dsurface,
struct weston_output *output = NULL;
if (output_resource != NULL)
- output = wl_resource_get_user_data(output_resource);
+ output = weston_output_from_resource(output_resource);
weston_desktop_xdg_toplevel_ensure_added(toplevel);
weston_desktop_api_fullscreen_requested(toplevel->base.desktop, dsurface,
wl_output_send_done(resource);
}
+/** Get the backing object of wl_output
+ *
+ * \param resource A wl_output protocol object.
+ * \return The backing object (user data) of a wl_resource representing a
+ * wl_output protocol object.
+ */
+WL_EXPORT struct weston_output *
+weston_output_from_resource(struct wl_resource *resource)
+{
+ assert(wl_resource_instance_of(resource, &wl_output_interface,
+ &output_interface));
+
+ return wl_resource_get_user_data(resource);
+}
+
+
/* Move other outputs when one is resized so the space remains contiguous. */
static void
weston_compositor_reflow_outputs(struct weston_compositor *compositor,
void
weston_pending_output_coldplug(struct weston_compositor *compositor);
+struct weston_output *
+weston_output_from_resource(struct wl_resource *resource);
+
#ifdef __cplusplus
}
#endif
struct wl_resource *buffer_resource)
{
struct weston_output *output =
- wl_resource_get_user_data(output_resource);
+ weston_output_from_resource(output_resource);
struct weston_buffer *buffer =
weston_buffer_from_resource(buffer_resource);