evas/wayland_shm: Remove x,y offsets from swapbuf related APIs.

These offsets can be calculated later during the resize operations.
This commit is contained in:
Rafael Antognolli 2013-02-19 09:56:39 -03:00
parent dc0d88df9c
commit 8be4940bb3
6 changed files with 19 additions and 29 deletions

View File

@ -34,7 +34,7 @@ struct _Render_Engine
}; };
/* local function prototypes */ /* local function prototypes */
static void *_output_engine_setup(int x, int y, int w, int h, unsigned int rotation, unsigned int depth, Eina_Bool destination_alpha, struct wl_shm *wl_shm, struct wl_surface *wl_surface, int try_swap); static void *_output_engine_setup(int w, int h, unsigned int rotation, unsigned int depth, Eina_Bool destination_alpha, struct wl_shm *wl_shm, struct wl_surface *wl_surface, int try_swap);
static Tilebuf_Rect *_merge_rects(Tilebuf *tb, Tilebuf_Rect *r1, Tilebuf_Rect *r2, Tilebuf_Rect *r3); static Tilebuf_Rect *_merge_rects(Tilebuf *tb, Tilebuf_Rect *r1, Tilebuf_Rect *r2, Tilebuf_Rect *r3);
/* engine function prototypes */ /* engine function prototypes */
@ -60,7 +60,7 @@ int _evas_engine_way_shm_log_dom = -1;
/* local functions */ /* local functions */
static void * static void *
_output_engine_setup(int x, int y, int w, int h, unsigned int rotation, unsigned int depth, Eina_Bool destination_alpha, struct wl_shm *wl_shm, struct wl_surface *wl_surface, int try_swap) _output_engine_setup(int w, int h, unsigned int rotation, unsigned int depth, Eina_Bool destination_alpha, struct wl_shm *wl_shm, struct wl_surface *wl_surface, int try_swap)
{ {
Render_Engine *re = NULL; Render_Engine *re = NULL;
@ -82,13 +82,10 @@ _output_engine_setup(int x, int y, int w, int h, unsigned int rotation, unsigned
if (try_swap) if (try_swap)
{ {
if ((re->ob = evas_swapbuf_setup(x, y, w, h, rotation, depth, if ((re->ob = evas_swapbuf_setup(w, h, rotation, depth,
destination_alpha, wl_shm, destination_alpha, wl_shm,
wl_surface))) wl_surface)))
{ {
re->ob->x = x;
re->ob->y = y;
re->outbuf_free = evas_swapbuf_free; re->outbuf_free = evas_swapbuf_free;
re->outbuf_reconfigure = evas_swapbuf_reconfigure; re->outbuf_reconfigure = evas_swapbuf_reconfigure;
re->outbuf_update_region_new = evas_swapbuf_update_region_new; re->outbuf_update_region_new = evas_swapbuf_update_region_new;
@ -238,8 +235,7 @@ eng_setup(Evas *eo_evas, void *einfo)
} }
if (!(re = if (!(re =
_output_engine_setup(0, 0, _output_engine_setup(epd->output.w, epd->output.h,
epd->output.w, epd->output.h,
info->info.rotation, info->info.depth, info->info.rotation, info->info.depth,
info->info.destination_alpha, info->info.destination_alpha,
info->info.wl_shm, info->info.wl_surface, info->info.wl_shm, info->info.wl_surface,
@ -257,9 +253,7 @@ eng_setup(Evas *eo_evas, void *einfo)
/* we have an existing render engine */ /* we have an existing render engine */
if (re->ob) re->outbuf_free(re->ob); if (re->ob) re->outbuf_free(re->ob);
if ((re->ob = evas_swapbuf_setup(0, if ((re->ob = evas_swapbuf_setup(epd->output.w, epd->output.h,
0,
epd->output.w, epd->output.h,
info->info.rotation, info->info.rotation,
info->info.depth, info->info.depth,
info->info.destination_alpha, info->info.destination_alpha,

View File

@ -60,7 +60,7 @@ enum
struct _Outbuf struct _Outbuf
{ {
int x, y, w, h; int w, h;
unsigned int rotation; unsigned int rotation;
Outbuf_Depth depth; Outbuf_Depth depth;
int onebuf; int onebuf;

View File

@ -21,7 +21,7 @@
/* local function prototypes */ /* local function prototypes */
Outbuf * Outbuf *
evas_swapbuf_setup(int x, int y, int w, int h, unsigned int rotation, Outbuf_Depth depth, Eina_Bool alpha, struct wl_shm *wl_shm, struct wl_surface *wl_surface) evas_swapbuf_setup(int w, int h, unsigned int rotation, Outbuf_Depth depth, Eina_Bool alpha, struct wl_shm *wl_shm, struct wl_surface *wl_surface)
{ {
Outbuf *ob = NULL; Outbuf *ob = NULL;
@ -32,8 +32,6 @@ evas_swapbuf_setup(int x, int y, int w, int h, unsigned int rotation, Outbuf_Dep
return NULL; return NULL;
/* set some properties */ /* set some properties */
ob->x = x;
ob->y = y;
ob->w = w; ob->w = w;
ob->h = h; ob->h = h;
ob->rotation = rotation; ob->rotation = rotation;
@ -45,13 +43,13 @@ evas_swapbuf_setup(int x, int y, int w, int h, unsigned int rotation, Outbuf_Dep
if ((ob->rotation == 0) || (ob->rotation == 180)) if ((ob->rotation == 0) || (ob->rotation == 180))
{ {
ob->priv.swapper = ob->priv.swapper =
evas_swapper_setup(x, y, w, h, depth, alpha, ob->priv.wl.shm, evas_swapper_setup(0, 0, w, h, depth, alpha, ob->priv.wl.shm,
ob->priv.wl.surface); ob->priv.wl.surface);
} }
else if ((ob->rotation == 90) || (ob->rotation == 270)) else if ((ob->rotation == 90) || (ob->rotation == 270))
{ {
ob->priv.swapper = ob->priv.swapper =
evas_swapper_setup(x, y, h, w, depth, alpha, ob->priv.wl.shm, evas_swapper_setup(0, 0, h, w, depth, alpha, ob->priv.wl.shm,
ob->priv.wl.surface); ob->priv.wl.surface);
} }
@ -103,8 +101,6 @@ evas_swapbuf_reconfigure(Outbuf *ob, int x, int y, int w, int h, unsigned int ro
return; return;
/* set some properties */ /* set some properties */
ob->x = x;
ob->y = y;
ob->w = w; ob->w = w;
ob->h = h; ob->h = h;
ob->rotation = rotation; ob->rotation = rotation;

View File

@ -3,7 +3,7 @@
# include "evas_engine.h" # include "evas_engine.h"
Outbuf *evas_swapbuf_setup(int x, int y, int w, int h, unsigned int rotation, Outbuf_Depth depth, Eina_Bool alpha, struct wl_shm *wl_shm, struct wl_surface *wl_surface); Outbuf *evas_swapbuf_setup(int w, int h, unsigned int rotation, Outbuf_Depth depth, Eina_Bool alpha, struct wl_shm *wl_shm, struct wl_surface *wl_surface);
void evas_swapbuf_free(Outbuf *ob); void evas_swapbuf_free(Outbuf *ob);
void evas_swapbuf_reconfigure(Outbuf *ob, int x, int y, int w, int h, unsigned int rotation, Outbuf_Depth depth, Eina_Bool alpha); void evas_swapbuf_reconfigure(Outbuf *ob, int x, int y, int w, int h, unsigned int rotation, Outbuf_Depth depth, Eina_Bool alpha);
RGBA_Image *evas_swapbuf_update_region_new(Outbuf *ob, int x, int y, int w, int h, int *cx, int *cy, int *cw, int *ch); RGBA_Image *evas_swapbuf_update_region_new(Outbuf *ob, int x, int y, int w, int h, int *cx, int *cy, int *cw, int *ch);

View File

@ -28,7 +28,7 @@ struct _Wl_Buffer
struct _Wl_Swapper struct _Wl_Swapper
{ {
Wl_Buffer buff[3]; Wl_Buffer buff[3];
int x, y, w, h, depth; int dx, dy, w, h, depth;
int buff_cur, buff_num; int buff_cur, buff_num;
struct wl_shm *shm; struct wl_shm *shm;
struct wl_surface *surface; struct wl_surface *surface;
@ -56,7 +56,7 @@ static const struct wl_buffer_listener _evas_swapper_buffer_listener =
/* local variables */ /* local variables */
Wl_Swapper * Wl_Swapper *
evas_swapper_setup(int x, int y, int w, int h, Outbuf_Depth depth, Eina_Bool alpha, struct wl_shm *shm, struct wl_surface *surface) evas_swapper_setup(int dx, int dy, int w, int h, Outbuf_Depth depth, Eina_Bool alpha, struct wl_shm *shm, struct wl_surface *surface)
{ {
Wl_Swapper *ws; Wl_Swapper *ws;
int i = 0; int i = 0;
@ -69,8 +69,8 @@ evas_swapper_setup(int x, int y, int w, int h, Outbuf_Depth depth, Eina_Bool alp
return NULL; return NULL;
/* set some properties */ /* set some properties */
ws->x = x; ws->dx = dx;
ws->y = y; ws->dy = dy;
ws->w = w; ws->w = w;
ws->h = h; ws->h = h;
ws->depth = depth; ws->depth = depth;
@ -419,9 +419,9 @@ _evas_swapper_buffer_put(Wl_Swapper *ws, Wl_Buffer *wb, Eina_Rectangle *rects, u
/* surface attach */ /* surface attach */
if (sent != wb->buffer) if (sent != wb->buffer)
{ {
wl_surface_attach(ws->surface, wb->buffer, ws->x, ws->y); wl_surface_attach(ws->surface, wb->buffer, ws->dx, ws->dy);
ws->x = 0; ws->dx = 0;
ws->y = 0; ws->dy = 0;
sent = wb->buffer; sent = wb->buffer;
} }

View File

@ -5,7 +5,7 @@
typedef struct _Wl_Swapper Wl_Swapper; typedef struct _Wl_Swapper Wl_Swapper;
Wl_Swapper *evas_swapper_setup(int x, int y, int w, int h, Outbuf_Depth depth, Eina_Bool alpha, struct wl_shm *shm, struct wl_surface *surface); Wl_Swapper *evas_swapper_setup(int dx, int dy, int w, int h, Outbuf_Depth depth, Eina_Bool alpha, struct wl_shm *shm, struct wl_surface *surface);
void evas_swapper_swap(Wl_Swapper *ws, Eina_Rectangle *rects, unsigned int count); void evas_swapper_swap(Wl_Swapper *ws, Eina_Rectangle *rects, unsigned int count);
void evas_swapper_free(Wl_Swapper *ws); void evas_swapper_free(Wl_Swapper *ws);
void *evas_swapper_buffer_map(Wl_Swapper *ws); void *evas_swapper_buffer_map(Wl_Swapper *ws);