Add pointer to backend inside wlr_output
This commit is contained in:
parent
4ea84c5765
commit
822a9f65a4
|
@ -707,7 +707,7 @@ void wlr_drm_scan_connectors(struct wlr_drm_backend *drm) {
|
||||||
drmModeFreeConnector(drm_conn);
|
drmModeFreeConnector(drm_conn);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
wlr_output_init(&wlr_conn->output, &output_impl);
|
wlr_output_init(&wlr_conn->output, &drm->backend, &output_impl);
|
||||||
|
|
||||||
struct wl_event_loop *ev = wl_display_get_event_loop(drm->display);
|
struct wl_event_loop *ev = wl_display_get_event_loop(drm->display);
|
||||||
wlr_conn->retry_pageflip = wl_event_loop_add_timer(ev, retry_pageflip,
|
wlr_conn->retry_pageflip = wl_event_loop_add_timer(ev, retry_pageflip,
|
||||||
|
|
|
@ -241,7 +241,7 @@ struct wlr_output *wlr_wl_output_create(struct wlr_backend *_backend) {
|
||||||
wlr_log(L_ERROR, "Failed to allocate wlr_wl_backend_output");
|
wlr_log(L_ERROR, "Failed to allocate wlr_wl_backend_output");
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
wlr_output_init(&output->wlr_output, &output_impl);
|
wlr_output_init(&output->wlr_output, &backend->backend, &output_impl);
|
||||||
struct wlr_output *wlr_output = &output->wlr_output;
|
struct wlr_output *wlr_output = &output->wlr_output;
|
||||||
|
|
||||||
wlr_output->width = 640;
|
wlr_output->width = 640;
|
||||||
|
|
|
@ -264,7 +264,7 @@ static bool wlr_x11_backend_start(struct wlr_backend *backend) {
|
||||||
|
|
||||||
output->x11 = x11;
|
output->x11 = x11;
|
||||||
|
|
||||||
wlr_output_init(&output->wlr_output, &output_impl);
|
wlr_output_init(&output->wlr_output, &x11->backend, &output_impl);
|
||||||
snprintf(output->wlr_output.name, sizeof(output->wlr_output.name), "X11-1");
|
snprintf(output->wlr_output.name, sizeof(output->wlr_output.name), "X11-1");
|
||||||
|
|
||||||
output->win = xcb_generate_id(x11->xcb_conn);
|
output->win = xcb_generate_id(x11->xcb_conn);
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
#ifndef WLR_INTERFACES_WLR_OUTPUT_H
|
#ifndef WLR_INTERFACES_WLR_OUTPUT_H
|
||||||
#define WLR_INTERFACES_WLR_OUTPUT_H
|
#define WLR_INTERFACES_WLR_OUTPUT_H
|
||||||
|
|
||||||
#include <wlr/types/wlr_output.h>
|
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
|
#include <wlr/types/wlr_output.h>
|
||||||
|
#include <wlr/backend.h>
|
||||||
|
|
||||||
struct wlr_output_impl {
|
struct wlr_output_impl {
|
||||||
void (*enable)(struct wlr_output *output, bool enable);
|
void (*enable)(struct wlr_output *output, bool enable);
|
||||||
|
@ -21,7 +22,8 @@ struct wlr_output_impl {
|
||||||
uint16_t (*get_gamma_size)(struct wlr_output *output);
|
uint16_t (*get_gamma_size)(struct wlr_output *output);
|
||||||
};
|
};
|
||||||
|
|
||||||
void wlr_output_init(struct wlr_output *output, const struct wlr_output_impl *impl);
|
void wlr_output_init(struct wlr_output *output, struct wlr_backend *backend,
|
||||||
|
const struct wlr_output_impl *impl);
|
||||||
void wlr_output_free(struct wlr_output *output);
|
void wlr_output_free(struct wlr_output *output);
|
||||||
void wlr_output_update_matrix(struct wlr_output *output);
|
void wlr_output_update_matrix(struct wlr_output *output);
|
||||||
struct wl_global *wlr_output_create_global(
|
struct wl_global *wlr_output_create_global(
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
#ifndef WLR_TYPES_WLR_OUTPUT_H
|
#ifndef WLR_TYPES_WLR_OUTPUT_H
|
||||||
#define WLR_TYPES_WLR_OUTPUT_H
|
#define WLR_TYPES_WLR_OUTPUT_H
|
||||||
|
|
||||||
#include <wayland-server.h>
|
|
||||||
#include <wlr/util/list.h>
|
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
|
#include <wayland-server.h>
|
||||||
|
#include <wlr/backend.h>
|
||||||
|
#include <wlr/util/list.h>
|
||||||
|
|
||||||
struct wlr_output_mode {
|
struct wlr_output_mode {
|
||||||
uint32_t flags; // enum wl_output_mode
|
uint32_t flags; // enum wl_output_mode
|
||||||
|
@ -15,6 +16,7 @@ struct wlr_output_impl;
|
||||||
|
|
||||||
struct wlr_output {
|
struct wlr_output {
|
||||||
const struct wlr_output_impl *impl;
|
const struct wlr_output_impl *impl;
|
||||||
|
struct wlr_backend *backend;
|
||||||
|
|
||||||
struct wl_global *wl_global;
|
struct wl_global *wl_global;
|
||||||
struct wl_list wl_resources;
|
struct wl_list wl_resources;
|
||||||
|
|
|
@ -307,8 +307,9 @@ bool wlr_output_move_cursor(struct wlr_output *output, int x, int y) {
|
||||||
return output->impl->move_cursor(output, x, y);
|
return output->impl->move_cursor(output, x, y);
|
||||||
}
|
}
|
||||||
|
|
||||||
void wlr_output_init(struct wlr_output *output,
|
void wlr_output_init(struct wlr_output *output, struct wlr_backend *backend,
|
||||||
const struct wlr_output_impl *impl) {
|
const struct wlr_output_impl *impl) {
|
||||||
|
output->backend = backend;
|
||||||
output->impl = impl;
|
output->impl = impl;
|
||||||
output->modes = list_create();
|
output->modes = list_create();
|
||||||
output->transform = WL_OUTPUT_TRANSFORM_NORMAL;
|
output->transform = WL_OUTPUT_TRANSFORM_NORMAL;
|
||||||
|
|
Loading…
Reference in New Issue