diff options
| author | Berke Güzel <wenekar1@gmail.com> | 2026-10-11 23:51:43 +0300 |
|---|---|---|
| committer | Berke Güzel <wenekar1@gmail.com> | 2026-10-11 23:51:43 +0300 |
| commit | e813252e685d761235ad45e170d97c9375f51958 (patch) | |
| tree | e57bae545c0eb22aac4119a890b8344ee7cd09d2 /src/wayland/api.h | |
| parent | 608b49052178ea74f593c925cdeedf352aa1c357 (diff) | |
| parent | 6eac0a5f2c552728efca420b1129fae7d4fea773 (diff) | |
Merge branch 'backend-selection' into main
- Implement runtime backend selection (Wayland, X11, Cocoa)
- Add native X11 backend with clipboard, keyboard, mouse, and placement
- Integrate multi-backend integration tests running under Weston and Xwayland
- Retain zero-hole struct packing, branchless ALU/LUT primitives, and paced event loop
Diffstat (limited to 'src/wayland/api.h')
| -rw-r--r-- | src/wayland/api.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/src/wayland/api.h b/src/wayland/api.h new file mode 100644 index 0000000..8252041 --- /dev/null +++ b/src/wayland/api.h @@ -0,0 +1,48 @@ +#ifndef YASL_WAYLAND_API_H +#define YASL_WAYLAND_API_H + +#include "common/backend.h" + +struct wayland_display; +struct wayland_surface; + +struct wayland_display *wayland_display_open(struct yasl_loop *loop, const struct yasl_display_spec *spec); +void wayland_display_close(struct wayland_display *d); +uint32_t wayland_display_caps(const struct wayland_display *d); +void wayland_display_dispatch(struct wayland_display *d); +int wayland_display_dispatch_timeout(struct wayland_display *d, int timeout_ms); +void wayland_display_flush(struct wayland_display *d); +int wayland_display_modifiers(const struct wayland_display *d); +void wayland_display_copy(struct wayland_display *d, enum yasl_selection sel, const char *text); +void wayland_display_paste(struct wayland_display *d, enum yasl_selection sel, struct wayland_surface *target); +bool wayland_display_drag_start(struct wayland_display *d, struct wayland_surface *origin, const struct yasl_drag_image *image, const struct yasl_drag_listener *l, void *ud); +void wayland_display_drag_cancel(struct wayland_display *d); +struct wayland_surface *wayland_surface_create_toplevel(struct wayland_display *d, const struct yasl_surface_spec *spec); +struct wayland_surface *wayland_surface_create_popup(struct wayland_surface *parent, const struct yasl_popup_spec *spec); +bool wayland_surface_popup_reposition(struct wayland_surface *popup, const struct yasl_popup_spec *spec); +void wayland_surface_destroy(struct wayland_surface *s); +struct wayland_display *wayland_surface_display(const struct wayland_surface *s); +void wayland_surface_set_callbacks(struct wayland_surface *s, const struct yasl_surface_cbs *cbs, void *ud); +void wayland_surface_set_title(struct wayland_surface *s, const char *title); +void wayland_surface_schedule_redraw(struct wayland_surface *s); +bool wayland_surface_present(struct wayland_surface *s, const struct yasl_framebuffer *fb, const struct yasl_damage_list *damage); +bool wayland_surface_input_poll(struct wayland_surface *s, struct yasl_input_event *ev); +struct yasl_vector2i wayland_surface_size(const struct wayland_surface *s); +uint32_t wayland_surface_scale_120(const struct wayland_surface *s); +uint32_t wayland_surface_state(const struct wayland_surface *s); +struct yasl_timing wayland_surface_timing(const struct wayland_surface *s); +uint64_t wayland_surface_frame_time_ns(struct wayland_surface *s, uint64_t now); +void wayland_surface_set_cursor(struct wayland_surface *s, enum yasl_cursor cursor); +void wayland_surface_set_background_color(struct wayland_surface *s, uint32_t bg); +const char *wayland_surface_ime_preedit(const struct wayland_surface *s); +bool wayland_surface_ime_preedit_cursor(const struct wayland_surface *s, int *begin, int *end); +void wayland_surface_set_ime_caret(struct wayland_surface *s, struct yasl_rect2i caret); +bool wayland_surface_start_interactive_move(struct wayland_surface *s); +bool wayland_surface_start_interactive_resize(struct wayland_surface *s, enum yasl_resize_edge edge); +bool wayland_surface_show_window_menu(struct wayland_surface *s, struct yasl_vector2i pos); +bool wayland_surface_drag_carry(struct wayland_surface *s, struct yasl_vector2i offset); +bool wayland_surface_place_under_pointer(struct wayland_surface *s, struct yasl_vector2i at); +void *wayland_display_get_native_handle(struct wayland_display *d); +void *wayland_surface_get_native_handle(struct wayland_surface *s); + +#endif |
