2015-06-03 09:56:35 -07:00
|
|
|
#ifndef _EVAS_ENGINE_GL_DRM_H
|
|
|
|
# define _EVAS_ENGINE_GL_DRM_H
|
|
|
|
|
2016-05-03 09:02:20 -07:00
|
|
|
# include <Ecore_Drm2.h>
|
2015-06-03 09:56:35 -07:00
|
|
|
# include <gbm.h>
|
|
|
|
|
2015-06-12 08:44:29 -07:00
|
|
|
typedef enum _Evas_Engine_Info_GL_Drm_Swap_Mode
|
|
|
|
{
|
|
|
|
EVAS_ENGINE_GL_DRM_SWAP_MODE_AUTO = 0,
|
|
|
|
EVAS_ENGINE_GL_DRM_SWAP_MODE_FULL = 1,
|
|
|
|
EVAS_ENGINE_GL_DRM_SWAP_MODE_COPY = 2,
|
|
|
|
EVAS_ENGINE_GL_DRM_SWAP_MODE_DOUBLE = 3,
|
|
|
|
EVAS_ENGINE_GL_DRM_SWAP_MODE_TRIPLE = 4,
|
|
|
|
EVAS_ENGINE_GL_DRM_SWAP_MODE_QUADRUPLE = 5
|
|
|
|
} Evas_Engine_Info_GL_Drm_Swap_Mode;
|
|
|
|
|
2015-06-03 09:56:35 -07:00
|
|
|
typedef struct _Evas_Engine_Info_GL_Drm Evas_Engine_Info_GL_Drm;
|
|
|
|
|
|
|
|
struct _Evas_Engine_Info_GL_Drm
|
|
|
|
{
|
|
|
|
/* PRIVATE - don't mess with this baby or evas will poke its tongue out */
|
|
|
|
/* at you and make nasty noises */
|
|
|
|
Evas_Engine_Info magic;
|
|
|
|
|
|
|
|
struct
|
|
|
|
{
|
|
|
|
struct gbm_device *gbm;
|
|
|
|
|
2016-05-03 09:02:20 -07:00
|
|
|
int fd, bpp;
|
2015-06-03 09:56:35 -07:00
|
|
|
unsigned int rotation, depth;
|
|
|
|
unsigned int format, flags;
|
|
|
|
|
2016-05-03 09:02:20 -07:00
|
|
|
void *output;
|
2015-06-03 09:56:35 -07:00
|
|
|
|
|
|
|
Eina_Bool destination_alpha : 1;
|
|
|
|
Eina_Bool vsync : 1;
|
|
|
|
Eina_Bool indirect : 1;
|
|
|
|
unsigned char swap_mode : 4;
|
|
|
|
} info;
|
|
|
|
|
2015-06-03 11:30:10 -07:00
|
|
|
struct
|
|
|
|
{
|
|
|
|
void (*pre_swap)(void *data, Evas *evas);
|
|
|
|
void (*post_swap)(void *data, Evas *evas);
|
|
|
|
void *data;
|
|
|
|
} callback;
|
|
|
|
|
2015-06-03 09:56:35 -07:00
|
|
|
/* non-blocking or blocking mode */
|
|
|
|
Evas_Engine_Render_Mode render_mode;
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|