Not sure if we need more than one piece of user_data per surface.
And this should be a general feature of any proxy object.
struct wl_object base;
struct wl_display *display;
struct wl_list listener_list;
+ void *user_data;
};
struct wl_compositor {
wl_proxy_marshal(&surface->proxy,
WL_SURFACE_DAMAGE, x, y, width, height);
}
+
+WL_EXPORT void
+wl_surface_set_user_data(struct wl_surface *surface, void *user_data)
+{
+ surface->proxy.user_data = user_data;
+}
+
+WL_EXPORT void *
+wl_surface_get_user_data(struct wl_surface *surface)
+{
+ return surface->proxy.user_data;
+}
void wl_surface_damage(struct wl_surface *surface,
int32_t x, int32_t y, int32_t width, int32_t height);
+void wl_surface_set_user_data(struct wl_surface *surface, void *user_data);
+void *wl_surface_get_user_data(struct wl_surface *surface);
+
struct wl_output;
struct wl_output_listener {
void (*geometry)(void *data,