bool grdev_is_drm_card(grdev_card *card);
grdev_card *grdev_find_drm_card(grdev_session *session, dev_t devnum);
int grdev_drm_card_new(grdev_card **out, grdev_session *session, struct udev_device *ud);
+void grdev_drm_card_hotplug(grdev_card *card, struct udev_device *ud);
/*
* Displays
};
struct grdev_tile {
- LIST_FIELDS(grdev_tile, childs_by_node);
+ LIST_FIELDS(grdev_tile, children_by_node);
grdev_tile *parent;
grdev_display *display;
} leaf;
struct {
- size_t n_childs;
+ size_t n_children;
LIST_HEAD(grdev_tile, child_list);
} node;
};
struct grdev_display {
grdev_session *session;
char *name;
+ void *userdata;
size_t n_leafs;
grdev_tile *tile;
grdev_tile *tile;
grdev_display_cache *cache;
+ sd_event_source *vsync_src;
uint32_t width;
uint32_t height;
+ uint32_t vrefresh;
size_t max_fbs;
grdev_fb *front;
void grdev_pipe_ready(grdev_pipe *pipe, bool running);
void grdev_pipe_frame(grdev_pipe *pipe);
+void grdev_pipe_schedule(grdev_pipe *pipe, uint64_t frames);
/*
* Cards