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.
master
Roman Gilg 4 years ago committed by Simon Ser
parent b29ac8fbac
commit b36af22c94

@ -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;
} }

@ -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);
} }
} }

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

@ -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

@ -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;

Loading…
Cancel
Save