mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2026-04-21 06:46:46 -04:00
Merge upstream
This commit is contained in:
commit
c673b684a0
203 changed files with 6752 additions and 4861 deletions
|
|
@ -10,10 +10,4 @@
|
|||
*/
|
||||
uint32_t backend_get_buffer_caps(struct wlr_backend *backend);
|
||||
|
||||
/**
|
||||
* Get the backend's allocator. Automatically creates the allocator if
|
||||
* necessary.
|
||||
*/
|
||||
struct wlr_allocator *backend_get_allocator(struct wlr_backend *backend);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ struct wlr_drm_plane {
|
|||
|
||||
struct wlr_drm_crtc {
|
||||
uint32_t id;
|
||||
uint32_t lessee_id;
|
||||
struct wlr_drm_lease *lease;
|
||||
|
||||
// Atomic modesetting only
|
||||
uint32_t mode_id;
|
||||
|
|
@ -118,7 +118,7 @@ struct wlr_drm_connector {
|
|||
enum wlr_drm_connector_status status;
|
||||
bool desired_enabled;
|
||||
uint32_t id;
|
||||
uint32_t lessee_id;
|
||||
struct wlr_drm_lease *lease;
|
||||
|
||||
struct wlr_drm_crtc *crtc;
|
||||
uint32_t possible_crtcs;
|
||||
|
|
@ -149,6 +149,7 @@ bool init_drm_resources(struct wlr_drm_backend *drm);
|
|||
void finish_drm_resources(struct wlr_drm_backend *drm);
|
||||
void scan_drm_connectors(struct wlr_drm_backend *state,
|
||||
struct wlr_device_hotplug_event *event);
|
||||
void scan_drm_leases(struct wlr_drm_backend *drm);
|
||||
int handle_drm_event(int fd, uint32_t mask, void *data);
|
||||
void destroy_drm_connector(struct wlr_drm_connector *conn);
|
||||
bool drm_connector_commit_state(struct wlr_drm_connector *conn,
|
||||
|
|
@ -157,6 +158,7 @@ bool drm_connector_is_cursor_visible(struct wlr_drm_connector *conn);
|
|||
bool drm_connector_supports_vrr(struct wlr_drm_connector *conn);
|
||||
size_t drm_crtc_get_gamma_lut_size(struct wlr_drm_backend *drm,
|
||||
struct wlr_drm_crtc *crtc);
|
||||
void drm_lease_destroy(struct wlr_drm_lease *lease);
|
||||
|
||||
struct wlr_drm_fb *plane_get_next_fb(struct wlr_drm_plane *plane);
|
||||
|
||||
|
|
|
|||
24
include/backend/drm/monitor.h
Normal file
24
include/backend/drm/monitor.h
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
#ifndef BACKEND_DRM_MONITOR_H
|
||||
#define BACKEND_DRM_MONITOR_H
|
||||
|
||||
#include <wlr/backend/drm.h>
|
||||
|
||||
/**
|
||||
* Helper to create new DRM sub-backends on GPU hotplug.
|
||||
*/
|
||||
struct wlr_drm_backend_monitor {
|
||||
struct wlr_backend *multi;
|
||||
struct wlr_backend *primary_drm;
|
||||
struct wlr_session *session;
|
||||
|
||||
struct wl_listener multi_destroy;
|
||||
struct wl_listener primary_drm_destroy;
|
||||
struct wl_listener session_destroy;
|
||||
struct wl_listener session_add_drm_card;
|
||||
};
|
||||
|
||||
struct wlr_drm_backend_monitor *drm_backend_monitor_create(
|
||||
struct wlr_backend *multi, struct wlr_backend *primary_drm,
|
||||
struct wlr_session *session);
|
||||
|
||||
#endif
|
||||
|
|
@ -39,11 +39,4 @@ size_t match_obj(size_t num_objs, const uint32_t objs[static restrict num_objs],
|
|||
size_t num_res, const uint32_t res[static restrict num_res],
|
||||
uint32_t out[static restrict num_res]);
|
||||
|
||||
/**
|
||||
* Close a GEM buffer handle.
|
||||
*
|
||||
* TODO: replace with drmCloseBufferHandle.
|
||||
*/
|
||||
void close_bo_handle(int drm_fd, uint32_t handle);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -8,14 +8,10 @@
|
|||
|
||||
struct wlr_headless_backend {
|
||||
struct wlr_backend backend;
|
||||
int drm_fd;
|
||||
struct wl_display *display;
|
||||
struct wl_list outputs;
|
||||
size_t last_output_num;
|
||||
struct wl_list input_devices;
|
||||
struct wl_listener display_destroy;
|
||||
struct wlr_renderer *parent_renderer;
|
||||
struct wl_listener parent_renderer_destroy;
|
||||
bool started;
|
||||
};
|
||||
|
||||
|
|
@ -29,12 +25,6 @@ struct wlr_headless_output {
|
|||
int frame_delay; // ms
|
||||
};
|
||||
|
||||
struct wlr_headless_input_device {
|
||||
struct wlr_input_device wlr_input_device;
|
||||
|
||||
struct wlr_headless_backend *backend;
|
||||
};
|
||||
|
||||
struct wlr_headless_backend *headless_backend_from_backend(
|
||||
struct wlr_backend *wlr_backend);
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,12 @@
|
|||
#include <wayland-server-core.h>
|
||||
#include <wlr/backend/interface.h>
|
||||
#include <wlr/backend/libinput.h>
|
||||
#include <wlr/interfaces/wlr_input_device.h>
|
||||
#include <wlr/interfaces/wlr_keyboard.h>
|
||||
#include <wlr/interfaces/wlr_pointer.h>
|
||||
#include <wlr/interfaces/wlr_switch.h>
|
||||
#include <wlr/interfaces/wlr_tablet_pad.h>
|
||||
#include <wlr/interfaces/wlr_tablet_tool.h>
|
||||
#include <wlr/interfaces/wlr_touch.h>
|
||||
#include <wlr/types/wlr_input_device.h>
|
||||
|
||||
struct wlr_libinput_backend {
|
||||
|
|
@ -26,7 +31,7 @@ struct wlr_libinput_backend {
|
|||
|
||||
struct wlr_libinput_input_device {
|
||||
struct wlr_input_device wlr_input_device;
|
||||
|
||||
struct wl_list link;
|
||||
struct libinput_device *handle;
|
||||
};
|
||||
|
||||
|
|
@ -39,6 +44,15 @@ struct wlr_input_device *get_appropriate_device(
|
|||
enum wlr_input_device_type desired_type,
|
||||
struct libinput_device *device);
|
||||
|
||||
void destroy_libinput_input_device(struct wlr_libinput_input_device *dev);
|
||||
|
||||
extern const struct wlr_keyboard_impl libinput_keyboard_impl;
|
||||
extern const struct wlr_pointer_impl libinput_pointer_impl;
|
||||
extern const struct wlr_switch_impl libinput_switch_impl;
|
||||
extern const struct wlr_tablet_impl libinput_tablet_impl;
|
||||
extern const struct wlr_tablet_pad_impl libinput_tablet_pad_impl;
|
||||
extern const struct wlr_touch_impl libinput_touch_impl;
|
||||
|
||||
struct wlr_keyboard *create_libinput_keyboard(
|
||||
struct libinput_device *device);
|
||||
void handle_keyboard_key(struct libinput_event *event,
|
||||
|
|
|
|||
|
|
@ -1,27 +0,0 @@
|
|||
#ifndef BACKEND_NOOP_H
|
||||
#define BACKEND_NOOP_H
|
||||
|
||||
#include <wlr/backend/noop.h>
|
||||
#include <wlr/backend/interface.h>
|
||||
|
||||
struct wlr_noop_backend {
|
||||
struct wlr_backend backend;
|
||||
struct wl_display *display;
|
||||
struct wl_list outputs;
|
||||
size_t last_output_num;
|
||||
bool started;
|
||||
|
||||
struct wl_listener display_destroy;
|
||||
};
|
||||
|
||||
struct wlr_noop_output {
|
||||
struct wlr_output wlr_output;
|
||||
|
||||
struct wlr_noop_backend *backend;
|
||||
struct wl_list link;
|
||||
};
|
||||
|
||||
struct wlr_noop_backend *noop_backend_from_backend(
|
||||
struct wlr_backend *wlr_backend);
|
||||
|
||||
#endif
|
||||
|
|
@ -11,4 +11,7 @@ bool libseat_change_vt(struct wlr_session *base, unsigned vt);
|
|||
|
||||
void session_init(struct wlr_session *session);
|
||||
|
||||
struct wlr_device *session_open_if_kms(struct wlr_session *restrict session,
|
||||
const char *restrict path);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@ struct wlr_wl_backend {
|
|||
struct zwp_relative_pointer_manager_v1 *zwp_relative_pointer_manager_v1;
|
||||
struct wl_list seats; // wlr_wl_seat.link
|
||||
struct zwp_tablet_manager_v2 *tablet_manager;
|
||||
clockid_t presentation_clock;
|
||||
struct wlr_drm_format_set shm_formats;
|
||||
struct wlr_drm_format_set linux_dmabuf_v1_formats;
|
||||
struct wl_drm *legacy_drm;
|
||||
|
|
@ -86,6 +87,7 @@ struct wlr_wl_output {
|
|||
|
||||
struct wlr_wl_input_device {
|
||||
struct wlr_input_device wlr_input_device;
|
||||
struct wl_list link;
|
||||
uint32_t fingers;
|
||||
|
||||
struct wlr_wl_backend *backend;
|
||||
|
|
@ -132,9 +134,12 @@ struct wlr_wl_input_device *create_wl_input_device(
|
|||
struct wlr_wl_seat *seat, enum wlr_input_device_type type);
|
||||
bool create_wl_seat(struct wl_seat *wl_seat, struct wlr_wl_backend *wl);
|
||||
void destroy_wl_seats(struct wlr_wl_backend *wl);
|
||||
void destroy_wl_input_device(struct wlr_wl_input_device *dev);
|
||||
void destroy_wl_buffer(struct wlr_wl_buffer *buffer);
|
||||
|
||||
extern const struct wl_seat_listener seat_listener;
|
||||
extern const struct wlr_tablet_pad_impl tablet_pad_impl;
|
||||
extern const struct wlr_tablet_impl tablet_impl;
|
||||
|
||||
struct wlr_wl_tablet_seat *wl_add_tablet_seat(
|
||||
struct zwp_tablet_manager_v2 *manager,
|
||||
|
|
|
|||
|
|
@ -15,11 +15,10 @@
|
|||
|
||||
#include <pixman.h>
|
||||
#include <wlr/backend/x11.h>
|
||||
#include <wlr/interfaces/wlr_input_device.h>
|
||||
#include <wlr/interfaces/wlr_keyboard.h>
|
||||
#include <wlr/interfaces/wlr_output.h>
|
||||
#include <wlr/interfaces/wlr_pointer.h>
|
||||
#include <wlr/interfaces/wlr_touch.h>
|
||||
#include <wlr/types/wlr_pointer.h>
|
||||
#include <wlr/render/drm_format_set.h>
|
||||
|
||||
#define XCB_EVENT_RESPONSE_TYPE_MASK 0x7f
|
||||
|
|
@ -35,10 +34,8 @@ struct wlr_x11_output {
|
|||
xcb_present_event_t present_event_id;
|
||||
|
||||
struct wlr_pointer pointer;
|
||||
struct wlr_input_device pointer_dev;
|
||||
|
||||
struct wlr_touch touch;
|
||||
struct wlr_input_device touch_dev;
|
||||
struct wl_list touchpoints; // wlr_x11_touchpoint::link
|
||||
|
||||
struct wl_list buffers; // wlr_x11_buffer::link
|
||||
|
|
@ -81,7 +78,6 @@ struct wlr_x11_backend {
|
|||
struct wl_list outputs; // wlr_x11_output::link
|
||||
|
||||
struct wlr_keyboard keyboard;
|
||||
struct wlr_input_device keyboard_dev;
|
||||
|
||||
int drm_fd;
|
||||
struct wlr_drm_format_set dri3_formats;
|
||||
|
|
@ -130,10 +126,9 @@ struct wlr_x11_backend *get_x11_backend_from_backend(
|
|||
struct wlr_x11_output *get_x11_output_from_window_id(
|
||||
struct wlr_x11_backend *x11, xcb_window_t window);
|
||||
|
||||
extern const struct wlr_keyboard_impl keyboard_impl;
|
||||
extern const struct wlr_pointer_impl pointer_impl;
|
||||
extern const struct wlr_touch_impl touch_impl;
|
||||
extern const struct wlr_input_device_impl input_device_impl;
|
||||
extern const struct wlr_keyboard_impl x11_keyboard_impl;
|
||||
extern const struct wlr_pointer_impl x11_pointer_impl;
|
||||
extern const struct wlr_touch_impl x11_touch_impl;
|
||||
|
||||
void handle_x11_xinput_event(struct wlr_x11_backend *x11,
|
||||
xcb_ge_generic_event_t *event);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue