aboutsummaryrefslogtreecommitdiffstats
path: root/drmtools.h
blob: 3934375b7addfa8176b26ff3ceb7ff7d7e5eab76 (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
struct fbformat {
    const char            name[8];
    const char            fields[16];
    const char            bits[16];
    uint32_t              bpp;      /*  bytes per pixel         */
    uint32_t              depth;    /*  legacy        (ADDFB)   */
    uint32_t              fourcc;   /*  DRM_FORMAT_*  (ADDFB2)  */
    cairo_format_t        cairo;    /*  CAIRO_FORMAT_*          */
    pixman_format_code_t  pixman;   /*  PIXMAN_*                */
    uint32_t              virtio;   /*  VIRTIO_GPU_FORMAT_*     */
};

extern const struct fbformat fmts[];
extern const uint32_t fmtcnt;

/* ------------------------------------------------------------------ */

const char *drm_connector_type_name(int nr);
const char *drm_connector_mode_name(int nr);
const char *drm_encoder_type_name(int nr);
void drm_conn_name(drmModeConnector *conn, char *dest, int dlen);
bool drm_probe_format(int fd, const struct fbformat *fmt);
void drm_print_format(FILE *fp, const struct fbformat *fmt,
                      int indent, bool libs);
void drm_print_format_hdr(FILE *fp, int indent, bool libs);

/* ------------------------------------------------------------------ */

extern int fd;
extern uint32_t fb_id;
extern drmModeConnector *conn;
extern drmModeModeInfo *mode;
extern drmVersion *version;

void drm_init_dev(int devnr, const char *output,
                  const char *modename, bool need_dumb);
void drm_fini_dev(void);
void drm_show_fb(void);