evas-drm: Start on hardware Plane support

@feature: Start on hardware Plane support
 - Add Plane structure
 - Store list of Planes in the Output buffer

Signed-off-by: Chris Michael <cp.michael@samsung.com>
This commit is contained in:
Chris Michael 2014-02-12 14:28:00 +00:00
parent fcd4929702
commit 62a6b32ed3
1 changed files with 29 additions and 17 deletions

View File

@ -11,12 +11,6 @@
#include <xf86drmMode.h>
#include <drm_fourcc.h>
/* #ifdef HAVE_DRM_HW_ACCEL */
/* # include <gbm.h> */
/* # include <EGL/egl.h> */
/* # include <EGL/eglext.h> */
/* #endif */
#include <signal.h>
#include <sys/ioctl.h>
#include <sys/types.h>
@ -54,6 +48,7 @@ extern int _evas_engine_drm_log_dom;
# define NUM_BUFFERS 3
typedef struct _Buffer Buffer;
typedef struct _Plane Plane;
typedef struct _Outbuf Outbuf;
enum
@ -78,19 +73,30 @@ struct _Buffer
int stride, size;
int handle;
unsigned int fb;
void *data;
void *data; // used for software framebuffers
/* # ifdef HAVE_DRM_HW_ACCEL */
/* struct gbm_surface *surface; */
/* struct */
/* { */
/* EGLSurface surface; */
/* } egl; */
/* # endif */
# ifdef HAVE_DRM_HW_ACCEL
void *bo; // used for hardware framebuffers
# endif
Eina_Bool valid : 1;
};
struct _Plane
{
unsigned int id;
unsigned int crtcs;
struct
{
unsigned int x, y;
unsigned int w, h;
} src, dst;
unsigned int num_formats;
unsigned int formats[];
};
struct _Outbuf
{
int w, h;
@ -102,19 +108,25 @@ struct _Outbuf
RGBA_Image *onebuf;
Eina_Array onebuf_regions;
int fd;
unsigned int conn, crtc;
Buffer buffer[NUM_BUFFERS], *sent;
int curr, num;
int fd;
unsigned int conn, crtc;
drmModeModeInfo mode;
drmEventContext ctx;
Eina_Bool pending_flip : 1;
Eina_Bool use_async_page_flip : 1;
Eina_List *pending_writes;
Eina_List *prev_pending_writes;
Eina_Bool use_async_page_flip : 1;
Eina_List *planes;
# ifdef HAVE_DRM_HW_ACCEL
void *surface;
# endif
} priv;
};