2015-06-03 09:56:35 -07:00
|
|
|
#ifndef _EVAS_ENGINE_GL_DRM_H
|
|
|
|
# define _EVAS_ENGINE_GL_DRM_H
|
|
|
|
|
2016-12-08 15:04:11 -08:00
|
|
|
#include "../gl_generic/Evas_Engine_GL_Shared.h"
|
|
|
|
|
2016-05-03 09:02:20 -07:00
|
|
|
# include <Ecore_Drm2.h>
|
2015-06-03 09:56:35 -07:00
|
|
|
# include <gbm.h>
|
|
|
|
|
|
|
|
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;
|
|
|
|
|
2016-12-08 15:04:11 -08:00
|
|
|
struct
|
2015-06-03 09:56:35 -07:00
|
|
|
{
|
|
|
|
struct gbm_device *gbm;
|
|
|
|
|
2017-07-21 13:48:40 -07:00
|
|
|
Ecore_Drm2_Device *dev;
|
|
|
|
int 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;
|
2016-12-08 15:04:11 -08:00
|
|
|
Evas_Engine_Info_Gl_Swap_Mode swap_mode : 4;
|
2015-06-03 09:56:35 -07:00
|
|
|
} 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
|