summaryrefslogtreecommitdiff
path: root/src/common/backend.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/common/backend.h')
-rw-r--r--src/common/backend.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/common/backend.h b/src/common/backend.h
index 17d781e..f0fae03 100644
--- a/src/common/backend.h
+++ b/src/common/backend.h
@@ -28,6 +28,7 @@ struct yasl_surface {
void *ud;
uint64_t frame_generation;
struct input_queue input;
+ enum yasl_pointer_mode pointer_mode;
struct yasl_frame_clock clock;
uint64_t frames_skipped;
yasl_timer_id *timers;
@@ -70,7 +71,11 @@ struct yasl_backend_ops {
void (*surface_set_title)(struct yasl_surface *s, const char *title);
void (*surface_schedule_redraw)(struct yasl_surface *s);
bool (*surface_present)(struct yasl_surface *s, const struct yasl_framebuffer *fb, const struct yasl_damage_list *damage);
- bool (*surface_input_poll)(struct yasl_surface *s, struct yasl_input_event *ev);
+ /* Optional; NULL means the common input queue is drained. */
+ bool (*surface_poll_event)(struct yasl_surface *s, struct yasl_event *ev);
+ /* Optional; NULL means only YASL_POINTER_NORMAL is supported. Backends that
+ * implement RELATIVE push POINTER_MOTION with delta set and pos frozen. */
+ bool (*surface_set_pointer_mode)(struct yasl_surface *s, enum yasl_pointer_mode mode);
struct yasl_geometry (*surface_geometry)(const struct yasl_surface *s);
struct yasl_timing (*surface_timing)(const struct yasl_surface *s);
uint64_t (*surface_frame_time_ns)(struct yasl_surface *s, uint64_t now);