From 9d43e7e4d67d4076c8b20ee2715eadec86a83e73 Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Thu, 18 Aug 2022 19:17:33 +0200 Subject: backend/drm: add libliftoff interface --- include/backend/drm/drm.h | 6 ++++++ include/backend/drm/iface.h | 9 +++++++++ 2 files changed, 15 insertions(+) (limited to 'include/backend/drm') diff --git a/include/backend/drm/drm.h b/include/backend/drm/drm.h index 0c07811b..f2cd9c50 100644 --- a/include/backend/drm/drm.h +++ b/include/backend/drm/drm.h @@ -30,11 +30,16 @@ struct wlr_drm_plane { struct wlr_drm_format_set formats; union wlr_drm_plane_props props; + + uint32_t initial_crtc_id; + struct liftoff_plane *liftoff; + struct liftoff_layer *liftoff_layer; }; struct wlr_drm_crtc { uint32_t id; struct wlr_drm_lease *lease; + struct liftoff_output *liftoff; // Atomic modesetting only uint32_t mode_id; @@ -60,6 +65,7 @@ struct wlr_drm_backend { int fd; char *name; struct wlr_device *dev; + struct liftoff_device *liftoff; size_t num_crtcs; struct wlr_drm_crtc *crtcs; diff --git a/include/backend/drm/iface.h b/include/backend/drm/iface.h index d52bbd3d..c4bd62e4 100644 --- a/include/backend/drm/iface.h +++ b/include/backend/drm/iface.h @@ -13,6 +13,8 @@ struct wlr_drm_connector_state; // Used to provide atomic or legacy DRM functions struct wlr_drm_interface { + bool (*init)(struct wlr_drm_backend *drm); + void (*finish)(struct wlr_drm_backend *drm); // Commit all pending changes on a CRTC. bool (*crtc_commit)(struct wlr_drm_connector *conn, const struct wlr_drm_connector_state *state, uint32_t flags, @@ -21,8 +23,15 @@ struct wlr_drm_interface { extern const struct wlr_drm_interface atomic_iface; extern const struct wlr_drm_interface legacy_iface; +extern const struct wlr_drm_interface liftoff_iface; bool drm_legacy_crtc_set_gamma(struct wlr_drm_backend *drm, struct wlr_drm_crtc *crtc, size_t size, uint16_t *lut); +bool create_mode_blob(struct wlr_drm_backend *drm, + struct wlr_drm_connector *conn, + const struct wlr_drm_connector_state *state, uint32_t *blob_id); +bool create_gamma_lut_blob(struct wlr_drm_backend *drm, + size_t size, const uint16_t *lut, uint32_t *blob_id); + #endif -- cgit v1.2.3