diff options
author | Scott Anderson <ascent12@hotmail.com> | 2017-09-30 19:11:41 +1300 |
---|---|---|
committer | Scott Anderson <ascent12@hotmail.com> | 2017-09-30 19:11:41 +1300 |
commit | d0708b1a3a3fb9fd3a073d6c5406b26e8bf617e9 (patch) | |
tree | be19c29026e04846db7521183f073328e319c558 /include/backend/drm/iface.h | |
parent | 610b0493ac4a3bbde44378adf855c7202b1e59c4 (diff) |
Split DRM internal interface to its own header
Diffstat (limited to 'include/backend/drm/iface.h')
-rw-r--r-- | include/backend/drm/iface.h | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/include/backend/drm/iface.h b/include/backend/drm/iface.h new file mode 100644 index 00000000..cf77f4d4 --- /dev/null +++ b/include/backend/drm/iface.h @@ -0,0 +1,35 @@ +#ifndef BACKEND_DRM_IFACE_H +#define BACKEND_DRM_IFACE_H + +#include <stdbool.h> +#include <stdint.h> + +#include <gbm.h> +#include <xf86drm.h> +#include <xf86drmMode.h> + +struct wlr_drm_backend; +struct wlr_drm_output; +struct wlr_drm_crtc; + +// Used to provide atomic or legacy DRM functions +struct wlr_drm_interface { + // Enable or disable DPMS for output + void (*conn_enable)(struct wlr_drm_backend *backend, + struct wlr_drm_output *output, bool enable); + // Pageflip on crtc. If mode is non-NULL perform a full modeset using it. + bool (*crtc_pageflip)(struct wlr_drm_backend *backend, + struct wlr_drm_output *output, struct wlr_drm_crtc *crtc, + uint32_t fb_id, drmModeModeInfo *mode); + // Enable the cursor buffer on crtc. Set bo to NULL to disable + bool (*crtc_set_cursor)(struct wlr_drm_backend *backend, + struct wlr_drm_crtc *crtc, struct gbm_bo *bo); + // Move the cursor on crtc + bool (*crtc_move_cursor)(struct wlr_drm_backend *backend, + struct wlr_drm_crtc *crtc, int x, int y); +}; + +extern const struct wlr_drm_interface iface_atomic; +extern const struct wlr_drm_interface iface_legacy; + +#endif |