devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=54680b1f972e9b88679a44966266616a7bef3729
commit 54680b1f972e9b88679a44966266616a7bef3729 Author: Chris Michael <[email protected]> Date: Fri Feb 28 12:32:38 2014 +0000 evas-drm: cleanup outbuf structure and functions @bugfix: this cleans up the Outbuf structure by removing unused fields, Fixing some function declarations, and defaulting the number of buffers to 2 (double-buffering) Signed-off-by: Chris Michael <[email protected]> --- src/modules/evas/engines/drm/evas_engine.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/modules/evas/engines/drm/evas_engine.h b/src/modules/evas/engines/drm/evas_engine.h index 8eec6fd..0487ad6 100644 --- a/src/modules/evas/engines/drm/evas_engine.h +++ b/src/modules/evas/engines/drm/evas_engine.h @@ -45,7 +45,7 @@ extern int _evas_engine_drm_log_dom; # define CRI(...) EINA_LOG_DOM_CRIT(_evas_engine_drm_log_dom, __VA_ARGS__) /* define a maximum number of 'buffers' (double-buff, triple-buff, etc) */ -# define NUM_BUFFERS 3 +# define NUM_BUFFERS 2 typedef struct _Buffer Buffer; typedef struct _Plane Plane; @@ -73,6 +73,7 @@ struct _Buffer int stride, size; int handle; unsigned int fb; + void *data; // used for software framebuffers # ifdef HAVE_DRM_HW_ACCEL @@ -102,25 +103,23 @@ struct _Outbuf int w, h; unsigned int rotation, depth; Eina_Bool destination_alpha : 1; + Eina_Bool vsync : 1; struct { - RGBA_Image *onebuf; - Eina_Array onebuf_regions; - int fd; - unsigned int conn, crtc; + unsigned int conn, crtc, fb; - Buffer buffer[NUM_BUFFERS], *sent; + Buffer buffer[NUM_BUFFERS]; int curr, num; 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_List *planes; @@ -136,6 +135,7 @@ void evas_outbuf_reconfigure(Evas_Engine_Info_Drm *info, Outbuf *ob, int w, int int evas_outbuf_buffer_state_get(Outbuf *ob); RGBA_Image *evas_outbuf_update_region_new(Outbuf *ob, int x, int y, int w, int h, int *cx, int *cy, int *cw, int *ch); void evas_outbuf_update_region_push(Outbuf *ob, RGBA_Image *update, int x, int y, int w, int h); +void evas_outbuf_update_region_free(Outbuf *ob, RGBA_Image *update); void evas_outbuf_flush(Outbuf *ob); Eina_Bool evas_drm_init(Evas_Engine_Info_Drm *info, int card); @@ -145,6 +145,6 @@ Eina_Bool evas_drm_outbuf_setup(Outbuf *ob); void evas_drm_outbuf_framebuffer_set(Outbuf *ob, Buffer *buffer); Eina_Bool evas_drm_framebuffer_create(int fd, Buffer *buffer, int depth); void evas_drm_framebuffer_destroy(int fd, Buffer *buffer); -Eina_Bool evas_drm_framebuffer_send(Outbuf *ob, Buffer *buffer, Eina_Rectangle *rects, unsigned int count); +Eina_Bool evas_drm_framebuffer_send(Outbuf *ob, Buffer *buffer); #endif --
