#ifndef BACKEND_DRM_RENDERER_H #define BACKEND_DRM_RENDERER_H #include #include #include #include struct wlr_drm_renderer { int fd; struct gbm_device *gbm; struct wlr_egl egl; }; struct wlr_drm_surface { uint32_t width; uint32_t height; struct gbm_surface *gbm; EGLSurface egl; struct gbm_bo *front; struct gbm_bo *back; }; bool wlr_drm_renderer_init(struct wlr_drm_renderer *renderer, int fd); void wlr_drm_renderer_finish(struct wlr_drm_renderer *renderer); bool wlr_drm_surface_init(struct wlr_drm_renderer *renderer, struct wlr_drm_surface *surf, uint32_t width, uint32_t height, uint32_t format, uint32_t flags); void wlr_drm_surface_finish(struct wlr_drm_renderer *renderer, struct wlr_drm_surface *surf); void wlr_drm_surface_make_current(struct wlr_drm_renderer *renderer, struct wlr_drm_surface *surf); struct gbm_bo *wlr_drm_surface_swap_buffers(struct wlr_drm_renderer *renderer, struct wlr_drm_surface *surf); struct gbm_bo *wlr_drm_surface_get_front(struct wlr_drm_renderer *renderer, struct wlr_drm_surface *surf); #endif