diff options
author | Simon Ser <contact@emersion.fr> | 2022-08-18 19:17:33 +0200 |
---|---|---|
committer | Simon Ser <contact@emersion.fr> | 2023-02-20 18:38:57 +0100 |
commit | 9d43e7e4d67d4076c8b20ee2715eadec86a83e73 (patch) | |
tree | 1c75d2e0719d5a48ac97d5d1fb80c28f84ee66a1 /include/backend | |
parent | b4e9487312a8b5b80c56ddfdd5751c12882cd3a9 (diff) |
backend/drm: add libliftoff interface
Diffstat (limited to 'include/backend')
-rw-r--r-- | include/backend/drm/drm.h | 6 | ||||
-rw-r--r-- | include/backend/drm/iface.h | 9 |
2 files changed, 15 insertions, 0 deletions
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 |