efl/src/modules/evas/engines/wayland_shm/evas_engine.h

95 lines
1.8 KiB
C

#ifndef _EVAS_ENGINE_H
# define _EVAS_ENGINE_H
//# define LOGFNS 1
# ifdef LOGFNS
# include <stdio.h>
# define LOGFN(fl, ln, fn) printf("-EVAS-WL: %25s: %5i - %s\n", fl, ln, fn);
# else
# define LOGFN(fl, ln, fn)
# endif
extern int _evas_engine_way_shm_log_dom;
# ifdef ERR
# undef ERR
# endif
# define ERR(...) EINA_LOG_DOM_ERR(_evas_engine_way_shm_log_dom, __VA_ARGS__)
# ifdef DBG
# undef DBG
# endif
# define DBG(...) EINA_LOG_DOM_DBG(_evas_engine_way_shm_log_dom, __VA_ARGS__)
# ifdef INF
# undef INF
# endif
# define INF(...) EINA_LOG_DOM_INFO(_evas_engine_way_shm_log_dom, __VA_ARGS__)
# ifdef WRN
# undef WRN
# endif
# define WRN(...) EINA_LOG_DOM_WARN(_evas_engine_way_shm_log_dom, __VA_ARGS__)
# ifdef CRIT
# undef CRIT
# endif
# define CRIT(...) EINA_LOG_DOM_CRIT(_evas_engine_way_shm_log_dom, __VA_ARGS__)
# include <wayland-client.h>
typedef enum _Outbuf_Depth Outbuf_Depth;
typedef struct _Outbuf Outbuf;
enum _Outbuf_Depth
{
OUTBUF_DEPTH_NONE,
OUTBUF_DEPTH_ARGB_32BPP_8888_8888,
OUTBUF_DEPTH_RGB_32BPP_8888_8888,
OUTBUF_DEPTH_LAST
};
enum
{
MODE_FULL,
MODE_COPY,
MODE_DOUBLE,
MODE_TRIPLE
};
struct _Outbuf
{
int x, y, w, h;
unsigned int rotation;
Outbuf_Depth depth;
int onebuf;
struct
{
struct
{
/* wayland shared memory object */
struct wl_shm *shm;
struct wl_surface *surface;
} wl;
/* swapper */
void *swapper;
/* one big buffer for updates. flushed on idle_flush */
RGBA_Image *onebuf;
Eina_Array onebuf_regions;
/* a list of pending regions to write out */
Eina_List *pending_writes;
/* list of previous frame pending regions to write out */
Eina_List *prev_pending_writes;
Eina_Bool destination_alpha : 1;
} priv;
};
#endif