enlightenment/src/bin/e_wayland/e_output.h

73 lines
1.5 KiB
C

#ifdef E_TYPEDEFS
typedef struct _E_Output_Mode E_Output_Mode;
typedef struct _E_Output E_Output;
#else
# ifndef E_OUTPUT_H
# define E_OUTPUT_H
struct _E_Output_Mode
{
Evas_Coord w, h;
unsigned int refresh;
unsigned int flags;
};
struct _E_Output
{
unsigned int id;
E_Compositor *compositor;
Evas_Coord x, y, w, h;
Evas_Coord mm_w, mm_h;
char *make, *model;
unsigned int subpixel;
unsigned int transform;
Eina_List *modes;
E_Output_Mode *current, *original;
Eina_Bool dirty : 1;
struct
{
pixman_region32_t region;
pixman_region32_t prev_damage;
Eina_Bool needed : 1;
Eina_Bool scheduled : 1;
} repaint;
struct
{
struct wl_list link;
struct wl_list resources;
struct wl_global *global;
} wl;
struct
{
struct wl_signal frame;
struct wl_signal destroy;
} signals;
void *state;
/* TODO: add backlight and dpms support */
void (*cb_repaint_start)(E_Output *output);
void (*cb_repaint)(E_Output *output, pixman_region32_t *damage);
void (*cb_destroy)(E_Output *output);
};
EAPI void e_output_init(E_Output *output, E_Compositor *comp, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h, unsigned int transform);
EAPI void e_output_shutdown(E_Output *output);
EAPI void e_output_repaint(E_Output *output, unsigned int secs);
EAPI void e_output_repaint_schedule(E_Output *output);
EAPI void e_output_damage(E_Output *output);
# endif
#endif