backend/drm: remove mode argument to crtc_pageflip

Add a new wlr_drm_crtc.pending bitfield which keeps track of pending
output changes. More fields will be added in the future (e.g. active,
gamma).
This commit is contained in:
Simon Ser 2020-05-07 17:11:32 +02:00
parent 7a149fe5ba
commit 69b2279092
5 changed files with 45 additions and 26 deletions

View file

@ -42,8 +42,15 @@ struct wlr_drm_plane {
union wlr_drm_plane_props props;
};
enum wlr_drm_crtc_field {
WLR_DRM_CRTC_MODE = 1 << 0,
};
struct wlr_drm_crtc {
uint32_t id;
uint32_t pending; // bitfield of enum wlr_drm_crtc_field
drmModeModeInfo mode;
// Atomic modesetting only
uint32_t mode_id;

View file

@ -16,9 +16,9 @@ struct wlr_drm_interface {
// Enable or disable DPMS for connector
bool (*conn_enable)(struct wlr_drm_backend *drm,
struct wlr_drm_connector *conn, bool enable);
// Pageflip on crtc. If mode is non-NULL perform a full modeset using it.
// Pageflip on crtc.
bool (*crtc_pageflip)(struct wlr_drm_backend *drm,
struct wlr_drm_connector *conn, drmModeModeInfo *mode);
struct wlr_drm_connector *conn);
// Enable the cursor buffer on crtc. Set bo to NULL to disable
bool (*crtc_set_cursor)(struct wlr_drm_backend *drm,
struct wlr_drm_crtc *crtc, struct gbm_bo *bo);