forked from enlightenment/efl
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:
parent
dc0d88df9c
commit
8be4940bb3
|
@ -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,
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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);
|
||||||
|
|
Loading…
Reference in New Issue