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 */
|
||||
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);
|
||||
|
||||
/* engine function prototypes */
|
||||
|
@ -60,7 +60,7 @@ int _evas_engine_way_shm_log_dom = -1;
|
|||
|
||||
/* local functions */
|
||||
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;
|
||||
|
||||
|
@ -82,13 +82,10 @@ _output_engine_setup(int x, int y, int w, int h, unsigned int rotation, unsigned
|
|||
|
||||
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,
|
||||
wl_surface)))
|
||||
{
|
||||
re->ob->x = x;
|
||||
re->ob->y = y;
|
||||
|
||||
re->outbuf_free = evas_swapbuf_free;
|
||||
re->outbuf_reconfigure = evas_swapbuf_reconfigure;
|
||||
re->outbuf_update_region_new = evas_swapbuf_update_region_new;
|
||||
|
@ -238,8 +235,7 @@ eng_setup(Evas *eo_evas, void *einfo)
|
|||
}
|
||||
|
||||
if (!(re =
|
||||
_output_engine_setup(0, 0,
|
||||
epd->output.w, epd->output.h,
|
||||
_output_engine_setup(epd->output.w, epd->output.h,
|
||||
info->info.rotation, info->info.depth,
|
||||
info->info.destination_alpha,
|
||||
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 */
|
||||
if (re->ob) re->outbuf_free(re->ob);
|
||||
|
||||
if ((re->ob = evas_swapbuf_setup(0,
|
||||
0,
|
||||
epd->output.w, epd->output.h,
|
||||
if ((re->ob = evas_swapbuf_setup(epd->output.w, epd->output.h,
|
||||
info->info.rotation,
|
||||
info->info.depth,
|
||||
info->info.destination_alpha,
|
||||
|
|
|
@ -60,7 +60,7 @@ enum
|
|||
|
||||
struct _Outbuf
|
||||
{
|
||||
int x, y, w, h;
|
||||
int w, h;
|
||||
unsigned int rotation;
|
||||
Outbuf_Depth depth;
|
||||
int onebuf;
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
/* local function prototypes */
|
||||
|
||||
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;
|
||||
|
||||
|
@ -32,8 +32,6 @@ evas_swapbuf_setup(int x, int y, int w, int h, unsigned int rotation, Outbuf_Dep
|
|||
return NULL;
|
||||
|
||||
/* set some properties */
|
||||
ob->x = x;
|
||||
ob->y = y;
|
||||
ob->w = w;
|
||||
ob->h = h;
|
||||
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))
|
||||
{
|
||||
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);
|
||||
}
|
||||
else if ((ob->rotation == 90) || (ob->rotation == 270))
|
||||
{
|
||||
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);
|
||||
}
|
||||
|
||||
|
@ -103,8 +101,6 @@ evas_swapbuf_reconfigure(Outbuf *ob, int x, int y, int w, int h, unsigned int ro
|
|||
return;
|
||||
|
||||
/* set some properties */
|
||||
ob->x = x;
|
||||
ob->y = y;
|
||||
ob->w = w;
|
||||
ob->h = h;
|
||||
ob->rotation = rotation;
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
# 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_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);
|
||||
|
|
|
@ -28,7 +28,7 @@ struct _Wl_Buffer
|
|||
struct _Wl_Swapper
|
||||
{
|
||||
Wl_Buffer buff[3];
|
||||
int x, y, w, h, depth;
|
||||
int dx, dy, w, h, depth;
|
||||
int buff_cur, buff_num;
|
||||
struct wl_shm *shm;
|
||||
struct wl_surface *surface;
|
||||
|
@ -56,7 +56,7 @@ static const struct wl_buffer_listener _evas_swapper_buffer_listener =
|
|||
/* local variables */
|
||||
|
||||
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;
|
||||
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;
|
||||
|
||||
/* set some properties */
|
||||
ws->x = x;
|
||||
ws->y = y;
|
||||
ws->dx = dx;
|
||||
ws->dy = dy;
|
||||
ws->w = w;
|
||||
ws->h = h;
|
||||
ws->depth = depth;
|
||||
|
@ -419,9 +419,9 @@ _evas_swapper_buffer_put(Wl_Swapper *ws, Wl_Buffer *wb, Eina_Rectangle *rects, u
|
|||
/* surface attach */
|
||||
if (sent != wb->buffer)
|
||||
{
|
||||
wl_surface_attach(ws->surface, wb->buffer, ws->x, ws->y);
|
||||
ws->x = 0;
|
||||
ws->y = 0;
|
||||
wl_surface_attach(ws->surface, wb->buffer, ws->dx, ws->dy);
|
||||
ws->dx = 0;
|
||||
ws->dy = 0;
|
||||
sent = wb->buffer;
|
||||
}
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
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_free(Wl_Swapper *ws);
|
||||
void *evas_swapper_buffer_map(Wl_Swapper *ws);
|
||||
|
|
Loading…
Reference in New Issue