mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2025-11-22 06:59:44 -05:00
Remove wlr_output_state, update backends
This commit is contained in:
parent
4386816889
commit
41e735242d
12 changed files with 149 additions and 164 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
|
|
@ -4,21 +4,19 @@
|
|||
#include <stdbool.h>
|
||||
|
||||
struct wlr_output_impl {
|
||||
void (*enable)(struct wlr_output_state *state, bool enable);
|
||||
bool (*set_mode)(struct wlr_output_state *state,
|
||||
struct wlr_output_mode *mode);
|
||||
void (*transform)(struct wlr_output_state *state,
|
||||
void (*enable)(struct wlr_output *output, bool enable);
|
||||
bool (*set_mode)(struct wlr_output *output, struct wlr_output_mode *mode);
|
||||
void (*transform)(struct wlr_output *output,
|
||||
enum wl_output_transform transform);
|
||||
bool (*set_cursor)(struct wlr_output_state *state,
|
||||
const uint8_t *buf, int32_t stride, uint32_t width, uint32_t height);
|
||||
bool (*move_cursor)(struct wlr_output_state *state, int x, int y);
|
||||
void (*destroy)(struct wlr_output_state *state);
|
||||
void (*make_current)(struct wlr_output_state *state);
|
||||
void (*swap_buffers)(struct wlr_output_state *state);
|
||||
bool (*set_cursor)(struct wlr_output *output, const uint8_t *buf,
|
||||
int32_t stride, uint32_t width, uint32_t height);
|
||||
bool (*move_cursor)(struct wlr_output *output, int x, int y);
|
||||
void (*destroy)(struct wlr_output *output);
|
||||
void (*make_current)(struct wlr_output *output);
|
||||
void (*swap_buffers)(struct wlr_output *output);
|
||||
};
|
||||
|
||||
struct wlr_output *wlr_output_create(struct wlr_output_impl *impl,
|
||||
struct wlr_output_state *state);
|
||||
void wlr_output_init(struct wlr_output *output, const struct wlr_output_impl *impl);
|
||||
void wlr_output_free(struct wlr_output *output);
|
||||
void wlr_output_update_matrix(struct wlr_output *output);
|
||||
struct wl_global *wlr_output_create_global(
|
||||
|
|
|
|||
|
|
@ -14,12 +14,10 @@ struct wlr_output_mode {
|
|||
};
|
||||
|
||||
struct wlr_output_impl;
|
||||
struct wlr_output_state;
|
||||
|
||||
struct wlr_output {
|
||||
const struct wlr_output_impl *impl;
|
||||
struct wlr_output_state *state;
|
||||
void *user_data;
|
||||
|
||||
struct wl_global *wl_global;
|
||||
struct wl_list wl_resources;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue