Remove wlr_output_state, update backends

This commit is contained in:
Drew DeVault 2017-08-13 10:51:50 -04:00
parent 4386816889
commit 41e735242d
12 changed files with 149 additions and 164 deletions

View file

@ -12,6 +12,7 @@
#include <wlr/backend/session.h>
#include <wlr/backend/drm.h>
#include <wlr/types/wlr_output.h>
#include <wlr/egl.h>
#include <wlr/util/list.h>
@ -137,8 +138,9 @@ struct wlr_output_mode_state {
drmModeModeInfo mode;
};
struct wlr_output_state {
struct wlr_output *base;
struct wlr_drm_output {
struct wlr_output output;
enum wlr_drm_output_state state;
uint32_t connector;
@ -161,10 +163,10 @@ struct wlr_output_state {
struct wlr_drm_interface {
// Enable or disable DPMS for output
void (*conn_enable)(struct wlr_drm_backend *backend,
struct wlr_output_state *output, bool enable);
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_output_state *output, struct wlr_drm_crtc *crtc,
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,
@ -177,11 +179,11 @@ struct wlr_drm_interface {
bool wlr_drm_check_features(struct wlr_drm_backend *drm);
bool wlr_drm_resources_init(struct wlr_drm_backend *drm);
void wlr_drm_resources_free(struct wlr_drm_backend *drm);
void wlr_drm_output_cleanup(struct wlr_output_state *output, bool restore);
void wlr_drm_output_cleanup(struct wlr_drm_output *output, bool restore);
void wlr_drm_scan_connectors(struct wlr_drm_backend *state);
int wlr_drm_event(int fd, uint32_t mask, void *data);
void wlr_drm_output_start_renderer(struct wlr_output_state *output);
void wlr_drm_output_start_renderer(struct wlr_drm_output *output);
#endif

View file

@ -6,6 +6,7 @@
#include <wayland-egl.h>
#include <wlr/egl.h>
#include <wlr/backend/wayland.h>
#include <wlr/types/wlr_output.h>
#include <wlr/types/wlr_input_device.h>
#include <wlr/util/list.h>
@ -29,9 +30,10 @@ struct wlr_wl_backend {
char *seat_name;
};
struct wlr_output_state {
struct wlr_wl_backend_output {
struct wlr_output wlr_output;
struct wlr_wl_backend *backend;
struct wlr_output *wlr_output;
struct wl_surface *surface;
struct wl_shell_surface *shell_surface;
struct wl_egl_window *egl_window;
@ -47,12 +49,12 @@ struct wlr_input_device_state {
struct wlr_pointer_state {
enum wlr_axis_source axis_source;
struct wlr_output *current_output;
struct wlr_wl_backend_output *current_output;
};
void wlr_wl_registry_poll(struct wlr_wl_backend *backend);
struct wlr_output *wlr_wl_output_for_surface(struct wlr_wl_backend *backend,
struct wl_surface *surface);
struct wlr_wl_backend_output *wlr_wl_output_for_surface(
struct wlr_wl_backend *backend, struct wl_surface *surface);
extern const struct wl_seat_listener seat_listener;