mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2025-10-31 22:25:21 -04:00
Merge remote-tracking branch 'upstream/master' into output-damage
This commit is contained in:
commit
59c53e8333
16 changed files with 220 additions and 92 deletions
|
|
@ -194,6 +194,9 @@ static bool wlr_drm_connector_swap_buffers(struct wlr_output *output) {
|
|||
struct wlr_drm_backend *drm = (struct wlr_drm_backend *)output->backend;
|
||||
|
||||
struct wlr_drm_crtc *crtc = conn->crtc;
|
||||
if (!crtc) {
|
||||
return false;
|
||||
}
|
||||
struct wlr_drm_plane *plane = crtc->primary;
|
||||
|
||||
struct gbm_bo *bo = wlr_drm_surface_swap_buffers(&plane->surf);
|
||||
|
|
@ -237,6 +240,9 @@ void wlr_drm_connector_start_renderer(struct wlr_drm_connector *conn) {
|
|||
|
||||
struct wlr_drm_backend *drm = (struct wlr_drm_backend *)conn->output.backend;
|
||||
struct wlr_drm_crtc *crtc = conn->crtc;
|
||||
if (!crtc) {
|
||||
return;
|
||||
}
|
||||
struct wlr_drm_plane *plane = crtc->primary;
|
||||
|
||||
struct gbm_bo *bo = wlr_drm_surface_get_front(
|
||||
|
|
@ -457,6 +463,9 @@ static bool wlr_drm_connector_set_mode(struct wlr_output *output,
|
|||
}
|
||||
|
||||
struct wlr_drm_crtc *crtc = conn->crtc;
|
||||
if (!crtc) {
|
||||
return false;
|
||||
}
|
||||
wlr_log(L_DEBUG, "%s: crtc=%ju ovr=%jd pri=%jd cur=%jd", conn->output.name,
|
||||
crtc - drm->crtcs,
|
||||
crtc->overlay ? crtc->overlay - drm->overlay_planes : -1,
|
||||
|
|
@ -508,6 +517,9 @@ static bool wlr_drm_connector_set_cursor(struct wlr_output *output,
|
|||
struct wlr_drm_renderer *renderer = &drm->renderer;
|
||||
|
||||
struct wlr_drm_crtc *crtc = conn->crtc;
|
||||
if (!crtc) {
|
||||
return false;
|
||||
}
|
||||
struct wlr_drm_plane *plane = crtc->cursor;
|
||||
|
||||
// We don't have a real cursor plane, so we make a fake one
|
||||
|
|
@ -633,6 +645,9 @@ static bool wlr_drm_connector_move_cursor(struct wlr_output *output,
|
|||
int x, int y) {
|
||||
struct wlr_drm_connector *conn = (struct wlr_drm_connector *)output;
|
||||
struct wlr_drm_backend *drm = (struct wlr_drm_backend *)output->backend;
|
||||
if (!conn->crtc) {
|
||||
return false;
|
||||
}
|
||||
struct wlr_drm_plane *plane = conn->crtc->cursor;
|
||||
|
||||
struct wlr_box box;
|
||||
|
|
|
|||
|
|
@ -330,7 +330,9 @@ static bool add_signal_matches(struct logind_session *session) {
|
|||
|
||||
static int dbus_event(int fd, uint32_t mask, void *data) {
|
||||
sd_bus *bus = data;
|
||||
while (sd_bus_process(bus, NULL) > 0);
|
||||
while (sd_bus_process(bus, NULL) > 0) {
|
||||
// Do nothing.
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -307,8 +307,9 @@ size_t wlr_session_find_gpus(struct wlr_session *session,
|
|||
}
|
||||
|
||||
const char *seat = udev_device_get_property_value(dev, "ID_SEAT");
|
||||
if (!seat)
|
||||
if (!seat) {
|
||||
seat = "seat0";
|
||||
}
|
||||
if (session->seat[0] && strcmp(session->seat, seat) != 0) {
|
||||
udev_device_unref(dev);
|
||||
continue;
|
||||
|
|
|
|||
|
|
@ -85,12 +85,24 @@ static void wlr_wl_backend_destroy(struct wlr_backend *_backend) {
|
|||
|
||||
wl_event_source_remove(backend->remote_display_src);
|
||||
wlr_egl_finish(&backend->egl);
|
||||
if (backend->seat) wl_seat_destroy(backend->seat);
|
||||
if (backend->shm) wl_shm_destroy(backend->shm);
|
||||
if (backend->shell) zxdg_shell_v6_destroy(backend->shell);
|
||||
if (backend->compositor) wl_compositor_destroy(backend->compositor);
|
||||
if (backend->registry) wl_registry_destroy(backend->registry);
|
||||
if (backend->remote_display) wl_display_disconnect(backend->remote_display);
|
||||
if (backend->seat) {
|
||||
wl_seat_destroy(backend->seat);
|
||||
}
|
||||
if (backend->shm) {
|
||||
wl_shm_destroy(backend->shm);
|
||||
}
|
||||
if (backend->shell) {
|
||||
zxdg_shell_v6_destroy(backend->shell);
|
||||
}
|
||||
if (backend->compositor) {
|
||||
wl_compositor_destroy(backend->compositor);
|
||||
}
|
||||
if (backend->registry) {
|
||||
wl_registry_destroy(backend->registry);
|
||||
}
|
||||
if (backend->remote_display) {
|
||||
wl_display_disconnect(backend->remote_display);
|
||||
}
|
||||
free(backend);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue