mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2025-10-29 05:40:12 -04:00
ext-image-capture-source-v1: add source pointer cursors
This commit is contained in:
parent
dadcbf65e6
commit
6712e774d4
3 changed files with 38 additions and 0 deletions
|
|
@ -13,12 +13,15 @@
|
|||
#include <wlr/types/wlr_ext_image_capture_source_v1.h>
|
||||
|
||||
struct wlr_ext_image_copy_capture_frame_v1;
|
||||
struct wlr_seat;
|
||||
|
||||
struct wlr_ext_image_capture_source_v1_interface {
|
||||
void (*schedule_frame)(struct wlr_ext_image_capture_source_v1 *source);
|
||||
void (*copy_frame)(struct wlr_ext_image_capture_source_v1 *source,
|
||||
struct wlr_ext_image_copy_capture_frame_v1 *dst_frame,
|
||||
struct wlr_ext_image_capture_source_v1_frame_event *frame_event);
|
||||
struct wlr_ext_image_capture_source_v1_cursor *(*get_pointer_cursor)(
|
||||
struct wlr_ext_image_capture_source_v1 *source, struct wlr_seat *seat);
|
||||
};
|
||||
|
||||
void wlr_ext_image_capture_source_v1_init(struct wlr_ext_image_capture_source_v1 *source,
|
||||
|
|
@ -27,4 +30,8 @@ void wlr_ext_image_capture_source_v1_finish(struct wlr_ext_image_capture_source_
|
|||
bool wlr_ext_image_capture_source_v1_create_resource(struct wlr_ext_image_capture_source_v1 *source,
|
||||
struct wl_client *client, uint32_t new_id);
|
||||
|
||||
void wlr_ext_image_capture_source_v1_cursor_init(struct wlr_ext_image_capture_source_v1_cursor *source_cursor,
|
||||
const struct wlr_ext_image_capture_source_v1_interface *impl);
|
||||
void wlr_ext_image_capture_source_v1_cursor_finish(struct wlr_ext_image_capture_source_v1_cursor *source_cursor);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -48,6 +48,26 @@ struct wlr_ext_image_capture_source_v1_frame_event {
|
|||
const pixman_region32_t *damage;
|
||||
};
|
||||
|
||||
/**
|
||||
* A cursor capture source.
|
||||
*
|
||||
* Provides additional cursor-specific functionality on top of
|
||||
* struct wlr_ext_image_capture_source_v1.
|
||||
*/
|
||||
struct wlr_ext_image_capture_source_v1_cursor {
|
||||
struct wlr_ext_image_capture_source_v1 base;
|
||||
|
||||
bool entered;
|
||||
int32_t x, y;
|
||||
struct {
|
||||
int32_t x, y;
|
||||
} hotspot;
|
||||
|
||||
struct {
|
||||
struct wl_signal update;
|
||||
} events;
|
||||
};
|
||||
|
||||
/**
|
||||
* Obtain a struct wlr_ext_image_capture_source_v1 from an ext_image_capture_source_v1
|
||||
* resource.
|
||||
|
|
|
|||
|
|
@ -69,3 +69,14 @@ bool wlr_ext_image_capture_source_v1_create_resource(struct wlr_ext_image_captur
|
|||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void wlr_ext_image_capture_source_v1_cursor_init(struct wlr_ext_image_capture_source_v1_cursor *source_cursor,
|
||||
const struct wlr_ext_image_capture_source_v1_interface *impl) {
|
||||
*source_cursor = (struct wlr_ext_image_capture_source_v1_cursor){0};
|
||||
wlr_ext_image_capture_source_v1_init(&source_cursor->base, impl);
|
||||
wl_signal_init(&source_cursor->events.update);
|
||||
}
|
||||
|
||||
void wlr_ext_image_capture_source_v1_cursor_finish(struct wlr_ext_image_capture_source_v1_cursor *source_cursor) {
|
||||
wlr_ext_image_capture_source_v1_finish(&source_cursor->base);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue