diff options
Diffstat (limited to 'include/backend')
-rw-r--r-- | include/backend/drm/drm.h | 8 | ||||
-rw-r--r-- | include/backend/drm/iface.h | 7 | ||||
-rw-r--r-- | include/backend/drm/properties.h | 4 |
3 files changed, 17 insertions, 2 deletions
diff --git a/include/backend/drm/drm.h b/include/backend/drm/drm.h index af472ede..12530da6 100644 --- a/include/backend/drm/drm.h +++ b/include/backend/drm/drm.h @@ -39,9 +39,15 @@ struct wlr_drm_plane { struct wlr_drm_crtc { uint32_t id; - uint32_t mode_id; // atomic modesetting only + + // Atomic modesetting only + uint32_t mode_id; + uint32_t gamma_lut; drmModeAtomicReq *atomic; + // Legacy only + drmModeCrtc *legacy_crtc; + union { struct { struct wlr_drm_plane *overlay; diff --git a/include/backend/drm/iface.h b/include/backend/drm/iface.h index 4a5d2e9d..15cdf1ab 100644 --- a/include/backend/drm/iface.h +++ b/include/backend/drm/iface.h @@ -27,6 +27,13 @@ struct wlr_drm_interface { // Move the cursor on crtc bool (*crtc_move_cursor)(struct wlr_drm_backend *drm, struct wlr_drm_crtc *crtc, int x, int y); + // Set the gamma lut on crtc + bool (*crtc_set_gamma)(struct wlr_drm_backend *drm, + struct wlr_drm_crtc *crtc, uint16_t *r, uint16_t *g, uint16_t *b, + uint32_t size); + // Get the gamma lut size of a crtc + uint32_t (*crtc_get_gamma_size)(struct wlr_drm_backend *drm, + struct wlr_drm_crtc *crtc); }; extern const struct wlr_drm_interface atomic_iface; diff --git a/include/backend/drm/properties.h b/include/backend/drm/properties.h index 7de386ea..3cf8cc87 100644 --- a/include/backend/drm/properties.h +++ b/include/backend/drm/properties.h @@ -32,8 +32,10 @@ union wlr_drm_crtc_props { uint32_t active; uint32_t mode_id; + uint32_t gamma_lut; + uint32_t gamma_lut_size; }; - uint32_t props[4]; + uint32_t props[6]; }; union wlr_drm_plane_props { |