aboutsummaryrefslogtreecommitdiff
path: root/include/wlr/wayland.h
blob: 158acc33db7d1a756d95d48f19943d38fac2c6aa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#ifndef _WLR_WAYLAND_H
#define _WLR_WAYLAND_H

#include <wayland-server.h>
#include <wlr/common/list.h>
#include <stdbool.h>

struct wlr_output_mode_state;

struct wlr_output_mode {
	struct wlr_output_mode_state *state;
	uint32_t flags; // enum wl_output_mode
	int32_t width, height;
	int32_t refresh; // mHz
};

struct wlr_output_impl;
struct wlr_output_state;

struct wlr_output {
	const struct wlr_output_impl *impl;
	struct wlr_output_state *state;

	uint32_t flags;
	char *name;
	char *make;
	char *model;
	uint32_t scale;
	int32_t x, y;
	int32_t phys_width, phys_height; // mm
	int32_t subpixel; // enum wl_output_subpixel
	int32_t transform; // enum wl_output_transform

	list_t *modes;
	struct wlr_output_mode *current_mode;

	struct {
		struct wl_signal frame;
	} events;
};

bool wlr_output_set_mode(struct wlr_output *output, struct wlr_output_mode *mode);

#endif