-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdisplay_drm.h
46 lines (41 loc) · 1.13 KB
/
display_drm.h
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
45
46
#ifndef DISPLAY_DRM
#define DISPLAY_DRM
enum connections{
connected = 1,
disconnected = 2,
unknown = 3,
};
struct framebuffer{
int fb_id;
int height;
int width;
int size;
char * addr;
};
struct display{
int fd;
int mouse_fd;
int kbd_fd;
int connector_id;
int encoder_id;
int crtc_id;
int height;
int width;
int size;
uint64_t ptr_connector_id;
struct framebuffer ** fbs;
struct drm_mode_modeinfo mode;
};
int drm_ioctl(int fd, int cmd, void * data);
void drm_get_resources(int fd, struct drm_mode_card_res * res);
void drm_get_connector(int fd, int connector_id, struct drm_mode_get_connector * connector);
void drm_get_encoder(int fd, int encoder_id, struct drm_mode_get_encoder * enc);
void create_framebuffer(int fd, int width, int height, struct framebuffer * fb);
void drm_set_crtc(struct display * display);
void drm_page_flip(int fd, int fb_id, int crtc_id);
int open_dev();
void start_display(struct display * display);
void create_framebuffers(struct display * display);
void show_modes(int fd);
struct display * choose_mode(int fd, int height, int width);
#endif