backend: move get_drm_fd to public interface

The get_drm_fd was made available in an internal header with a53ab146f. Move it
now to the public header so consumers opting in to the unstable interfaces can
make use of it.
This commit is contained in:
Roman Gilg 2021-04-12 10:39:51 +02:00 committed by Simon Ser
parent b29ac8fbac
commit b36af22c94
5 changed files with 10 additions and 14 deletions

View file

@ -16,7 +16,6 @@
#include <wlr/backend/wayland.h> #include <wlr/backend/wayland.h>
#include <wlr/config.h> #include <wlr/config.h>
#include <wlr/util/log.h> #include <wlr/util/log.h>
#include "backend/backend.h"
#include "backend/multi.h" #include "backend/multi.h"
#if WLR_HAS_X11_BACKEND #if WLR_HAS_X11_BACKEND
@ -72,7 +71,7 @@ clockid_t wlr_backend_get_presentation_clock(struct wlr_backend *backend) {
return CLOCK_MONOTONIC; return CLOCK_MONOTONIC;
} }
int backend_get_drm_fd(struct wlr_backend *backend) { int wlr_backend_get_drm_fd(struct wlr_backend *backend) {
if (!backend->impl->get_drm_fd) { if (!backend->impl->get_drm_fd) {
return -1; return -1;
} }

View file

@ -6,7 +6,6 @@
#include <wlr/backend/interface.h> #include <wlr/backend/interface.h>
#include <wlr/backend/session.h> #include <wlr/backend/session.h>
#include <wlr/util/log.h> #include <wlr/util/log.h>
#include "backend/backend.h"
#include "backend/multi.h" #include "backend/multi.h"
#include "util/signal.h" #include "util/signal.h"
@ -103,7 +102,7 @@ static int multi_backend_get_drm_fd(struct wlr_backend *backend) {
struct subbackend_state *sub; struct subbackend_state *sub;
wl_list_for_each(sub, &multi->backends, link) { wl_list_for_each(sub, &multi->backends, link) {
if (sub->backend->impl->get_drm_fd) { if (sub->backend->impl->get_drm_fd) {
return backend_get_drm_fd(sub->backend); return wlr_backend_get_drm_fd(sub->backend);
} }
} }

View file

@ -1,8 +0,0 @@
#ifndef BACKEND_H
#define BACKEND_H
#include <wlr/backend.h>
int backend_get_drm_fd(struct wlr_backend *backend);
#endif

View file

@ -57,5 +57,12 @@ struct wlr_session *wlr_backend_get_session(struct wlr_backend *backend);
* Returns the clock used by the backend for presentation feedback. * Returns the clock used by the backend for presentation feedback.
*/ */
clockid_t wlr_backend_get_presentation_clock(struct wlr_backend *backend); clockid_t wlr_backend_get_presentation_clock(struct wlr_backend *backend);
/**
* Returns the DRM node file descriptor used by the backend's underlying
* platform. Can be used by consumers for additional rendering operations.
* The consumer must not close the file descriptor since the backend continues
* to have ownership of it.
*/
int wlr_backend_get_drm_fd(struct wlr_backend *backend);
#endif #endif

View file

@ -11,7 +11,6 @@
#include "util/signal.h" #include "util/signal.h"
#include "render/pixel_format.h" #include "render/pixel_format.h"
#include "render/wlr_renderer.h" #include "render/wlr_renderer.h"
#include "backend/backend.h"
void wlr_renderer_init(struct wlr_renderer *renderer, void wlr_renderer_init(struct wlr_renderer *renderer,
const struct wlr_renderer_impl *impl) { const struct wlr_renderer_impl *impl) {
@ -247,7 +246,7 @@ struct wlr_renderer *wlr_renderer_autocreate_with_drm_fd(int drm_fd) {
} }
struct wlr_renderer *wlr_renderer_autocreate(struct wlr_backend *backend) { struct wlr_renderer *wlr_renderer_autocreate(struct wlr_backend *backend) {
int drm_fd = backend_get_drm_fd(backend); int drm_fd = wlr_backend_get_drm_fd(backend);
if (drm_fd < 0) { if (drm_fd < 0) {
wlr_log(WLR_ERROR, "Failed to get DRM FD from backend"); wlr_log(WLR_ERROR, "Failed to get DRM FD from backend");
return NULL; return NULL;