diff options
Diffstat (limited to '')
6 files changed, 22 insertions, 15 deletions
diff --git a/libraries/evas/src/modules/engines/wayland_shm/Evas_Engine_Wayland_Shm.h b/libraries/evas/src/modules/engines/wayland_shm/Evas_Engine_Wayland_Shm.h index b34b2c1..2b5c2c7 100644 --- a/libraries/evas/src/modules/engines/wayland_shm/Evas_Engine_Wayland_Shm.h +++ b/libraries/evas/src/modules/engines/wayland_shm/Evas_Engine_Wayland_Shm.h | |||
@@ -11,7 +11,8 @@ struct _Evas_Engine_Info_Wayland_Shm | |||
11 | void *dest; | 11 | void *dest; |
12 | int rotation; | 12 | int rotation; |
13 | 13 | ||
14 | unsigned char debug : 1; | 14 | Eina_Bool destination_alpha : 1; |
15 | Eina_Bool debug : 1; | ||
15 | } info; | 16 | } info; |
16 | 17 | ||
17 | Evas_Engine_Render_Mode render_mode; | 18 | Evas_Engine_Render_Mode render_mode; |
diff --git a/libraries/evas/src/modules/engines/wayland_shm/Makefile.am b/libraries/evas/src/modules/engines/wayland_shm/Makefile.am index 455b82c..2a5901f 100644 --- a/libraries/evas/src/modules/engines/wayland_shm/Makefile.am +++ b/libraries/evas/src/modules/engines/wayland_shm/Makefile.am | |||
@@ -7,6 +7,7 @@ AM_CPPFLAGS = \ | |||
7 | -I$(top_srcdir)/src/lib/include \ | 7 | -I$(top_srcdir)/src/lib/include \ |
8 | -I$(top_srcdir)/src/modules/engines \ | 8 | -I$(top_srcdir)/src/modules/engines \ |
9 | @FREETYPE_CFLAGS@ \ | 9 | @FREETYPE_CFLAGS@ \ |
10 | @PIXMAN_CFLAGS@ \ | ||
10 | @EINA_CFLAGS@ \ | 11 | @EINA_CFLAGS@ \ |
11 | @evas_engine_wayland_shm_cflags@ | 12 | @evas_engine_wayland_shm_cflags@ |
12 | 13 | ||
@@ -16,7 +17,7 @@ WAYLAND_SHM_SOURCES = \ | |||
16 | evas_engine.c \ | 17 | evas_engine.c \ |
17 | evas_outbuf.c | 18 | evas_outbuf.c |
18 | 19 | ||
19 | WAYLAND_SHM_LIBADD = @FREETYPE_LIBS@ @EINA_LIBS@ @evas_engine_wayland_shm_libs@ | 20 | WAYLAND_SHM_LIBADD = @FREETYPE_LIBS@ @PIXMAN_LIBS@ @EINA_LIBS@ @evas_engine_wayland_shm_libs@ |
20 | 21 | ||
21 | includes_HEADERS = Evas_Engine_Wayland_Shm.h | 22 | includes_HEADERS = Evas_Engine_Wayland_Shm.h |
22 | includesdir = $(includedir)/evas-@VMAJ@ | 23 | includesdir = $(includedir)/evas-@VMAJ@ |
diff --git a/libraries/evas/src/modules/engines/wayland_shm/Makefile.in b/libraries/evas/src/modules/engines/wayland_shm/Makefile.in index 4d69209..e70210b 100644 --- a/libraries/evas/src/modules/engines/wayland_shm/Makefile.in +++ b/libraries/evas/src/modules/engines/wayland_shm/Makefile.in | |||
@@ -194,6 +194,8 @@ EVAS_SSE3_CFLAGS = @EVAS_SSE3_CFLAGS@ | |||
194 | EVIL_CFLAGS = @EVIL_CFLAGS@ | 194 | EVIL_CFLAGS = @EVIL_CFLAGS@ |
195 | EVIL_LIBS = @EVIL_LIBS@ | 195 | EVIL_LIBS = @EVIL_LIBS@ |
196 | EXEEXT = @EXEEXT@ | 196 | EXEEXT = @EXEEXT@ |
197 | EXOTIC_CFLAGS = @EXOTIC_CFLAGS@ | ||
198 | EXOTIC_LIBS = @EXOTIC_LIBS@ | ||
197 | FGREP = @FGREP@ | 199 | FGREP = @FGREP@ |
198 | FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@ | 200 | FONTCONFIG_CFLAGS = @FONTCONFIG_CFLAGS@ |
199 | FONTCONFIG_LIBS = @FONTCONFIG_LIBS@ | 201 | FONTCONFIG_LIBS = @FONTCONFIG_LIBS@ |
@@ -244,6 +246,8 @@ PATH_SEPARATOR = @PATH_SEPARATOR@ | |||
244 | PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ | 246 | PIXMAN_CFLAGS = @PIXMAN_CFLAGS@ |
245 | PIXMAN_LIBS = @PIXMAN_LIBS@ | 247 | PIXMAN_LIBS = @PIXMAN_LIBS@ |
246 | PKG_CONFIG = @PKG_CONFIG@ | 248 | PKG_CONFIG = @PKG_CONFIG@ |
249 | PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ | ||
250 | PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ | ||
247 | PNG_CFLAGS = @PNG_CFLAGS@ | 251 | PNG_CFLAGS = @PNG_CFLAGS@ |
248 | PNG_LIBS = @PNG_LIBS@ | 252 | PNG_LIBS = @PNG_LIBS@ |
249 | RANLIB = @RANLIB@ | 253 | RANLIB = @RANLIB@ |
@@ -262,8 +266,6 @@ VERSION = @VERSION@ | |||
262 | VMAJ = @VMAJ@ | 266 | VMAJ = @VMAJ@ |
263 | WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@ | 267 | WAYLAND_EGL_CFLAGS = @WAYLAND_EGL_CFLAGS@ |
264 | WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@ | 268 | WAYLAND_EGL_LIBS = @WAYLAND_EGL_LIBS@ |
265 | WIN32_CFLAGS = @WIN32_CFLAGS@ | ||
266 | WIN32_CPPFLAGS = @WIN32_CPPFLAGS@ | ||
267 | XCB_CFLAGS = @XCB_CFLAGS@ | 269 | XCB_CFLAGS = @XCB_CFLAGS@ |
268 | XCB_GL_CFLAGS = @XCB_GL_CFLAGS@ | 270 | XCB_GL_CFLAGS = @XCB_GL_CFLAGS@ |
269 | XCB_GL_LIBS = @XCB_GL_LIBS@ | 271 | XCB_GL_LIBS = @XCB_GL_LIBS@ |
@@ -337,8 +339,6 @@ evas_engine_software_ddraw_cflags = @evas_engine_software_ddraw_cflags@ | |||
337 | evas_engine_software_ddraw_libs = @evas_engine_software_ddraw_libs@ | 339 | evas_engine_software_ddraw_libs = @evas_engine_software_ddraw_libs@ |
338 | evas_engine_software_gdi_cflags = @evas_engine_software_gdi_cflags@ | 340 | evas_engine_software_gdi_cflags = @evas_engine_software_gdi_cflags@ |
339 | evas_engine_software_gdi_libs = @evas_engine_software_gdi_libs@ | 341 | evas_engine_software_gdi_libs = @evas_engine_software_gdi_libs@ |
340 | evas_engine_software_sdl_cflags = @evas_engine_software_sdl_cflags@ | ||
341 | evas_engine_software_sdl_libs = @evas_engine_software_sdl_libs@ | ||
342 | evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@ | 342 | evas_engine_software_xcb_cflags = @evas_engine_software_xcb_cflags@ |
343 | evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ | 343 | evas_engine_software_xcb_libs = @evas_engine_software_xcb_libs@ |
344 | evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ | 344 | evas_engine_software_xlib_cflags = @evas_engine_software_xlib_cflags@ |
@@ -428,6 +428,7 @@ AM_CPPFLAGS = \ | |||
428 | -I$(top_srcdir)/src/lib/include \ | 428 | -I$(top_srcdir)/src/lib/include \ |
429 | -I$(top_srcdir)/src/modules/engines \ | 429 | -I$(top_srcdir)/src/modules/engines \ |
430 | @FREETYPE_CFLAGS@ \ | 430 | @FREETYPE_CFLAGS@ \ |
431 | @PIXMAN_CFLAGS@ \ | ||
431 | @EINA_CFLAGS@ \ | 432 | @EINA_CFLAGS@ \ |
432 | @evas_engine_wayland_shm_cflags@ | 433 | @evas_engine_wayland_shm_cflags@ |
433 | 434 | ||
@@ -435,7 +436,7 @@ AM_CPPFLAGS = \ | |||
435 | @BUILD_ENGINE_WAYLAND_SHM_TRUE@evas_engine.c \ | 436 | @BUILD_ENGINE_WAYLAND_SHM_TRUE@evas_engine.c \ |
436 | @BUILD_ENGINE_WAYLAND_SHM_TRUE@evas_outbuf.c | 437 | @BUILD_ENGINE_WAYLAND_SHM_TRUE@evas_outbuf.c |
437 | 438 | ||
438 | @BUILD_ENGINE_WAYLAND_SHM_TRUE@WAYLAND_SHM_LIBADD = @FREETYPE_LIBS@ @EINA_LIBS@ @evas_engine_wayland_shm_libs@ | 439 | @BUILD_ENGINE_WAYLAND_SHM_TRUE@WAYLAND_SHM_LIBADD = @FREETYPE_LIBS@ @PIXMAN_LIBS@ @EINA_LIBS@ @evas_engine_wayland_shm_libs@ |
439 | @BUILD_ENGINE_WAYLAND_SHM_TRUE@includes_HEADERS = Evas_Engine_Wayland_Shm.h | 440 | @BUILD_ENGINE_WAYLAND_SHM_TRUE@includes_HEADERS = Evas_Engine_Wayland_Shm.h |
440 | @BUILD_ENGINE_WAYLAND_SHM_TRUE@includesdir = $(includedir)/evas-@VMAJ@ | 441 | @BUILD_ENGINE_WAYLAND_SHM_TRUE@includesdir = $(includedir)/evas-@VMAJ@ |
441 | @BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_FALSE@pkgdir = $(libdir)/evas/modules/engines/wayland_shm/$(MODULE_ARCH) | 442 | @BUILD_ENGINE_WAYLAND_SHM_TRUE@@EVAS_STATIC_BUILD_WAYLAND_SHM_FALSE@pkgdir = $(libdir)/evas/modules/engines/wayland_shm/$(MODULE_ARCH) |
diff --git a/libraries/evas/src/modules/engines/wayland_shm/evas_engine.c b/libraries/evas/src/modules/engines/wayland_shm/evas_engine.c index 7c55517..17b17bf 100644 --- a/libraries/evas/src/modules/engines/wayland_shm/evas_engine.c +++ b/libraries/evas/src/modules/engines/wayland_shm/evas_engine.c | |||
@@ -28,7 +28,7 @@ static Evas_Func func, pfunc; | |||
28 | int _evas_engine_way_shm_log_dom = -1; | 28 | int _evas_engine_way_shm_log_dom = -1; |
29 | 29 | ||
30 | /* local function prototypes */ | 30 | /* local function prototypes */ |
31 | static void *_output_setup(int w, int h, int rotation, void *dest); | 31 | static void *_output_setup(int w, int h, int rotation, Eina_Bool alpha, void *dest); |
32 | 32 | ||
33 | /* engine function prototypes */ | 33 | /* engine function prototypes */ |
34 | static void *eng_info(Evas *evas __UNUSED__); | 34 | static void *eng_info(Evas *evas __UNUSED__); |
@@ -48,7 +48,7 @@ static Eina_Bool eng_canvas_alpha_get(void *data, void *context __UNUSED__); | |||
48 | 48 | ||
49 | /* local functions */ | 49 | /* local functions */ |
50 | static void * | 50 | static void * |
51 | _output_setup(int w, int h, int rotation, void *dest) | 51 | _output_setup(int w, int h, int rotation, Eina_Bool alpha, void *dest) |
52 | { | 52 | { |
53 | Render_Engine *re = NULL; | 53 | Render_Engine *re = NULL; |
54 | 54 | ||
@@ -56,7 +56,7 @@ _output_setup(int w, int h, int rotation, void *dest) | |||
56 | 56 | ||
57 | if (!(re = calloc(1, sizeof(Render_Engine)))) return NULL; | 57 | if (!(re = calloc(1, sizeof(Render_Engine)))) return NULL; |
58 | 58 | ||
59 | if (!(re->ob = evas_outbuf_setup(w, h, rotation, dest))) | 59 | if (!(re->ob = evas_outbuf_setup(w, h, rotation, alpha, dest))) |
60 | { | 60 | { |
61 | free(re); | 61 | free(re); |
62 | return NULL; | 62 | return NULL; |
@@ -127,7 +127,8 @@ eng_setup(Evas *evas, void *info) | |||
127 | evas_common_tilebuf_init(); | 127 | evas_common_tilebuf_init(); |
128 | 128 | ||
129 | re = _output_setup(evas->output.w, evas->output.h, | 129 | re = _output_setup(evas->output.w, evas->output.h, |
130 | in->info.rotation, in->info.dest); | 130 | in->info.rotation, in->info.destination_alpha, |
131 | in->info.dest); | ||
131 | if (!re) return 0; | 132 | if (!re) return 0; |
132 | 133 | ||
133 | re->outbuf_free = evas_outbuf_free; | 134 | re->outbuf_free = evas_outbuf_free; |
@@ -141,7 +142,8 @@ eng_setup(Evas *evas, void *info) | |||
141 | if (!(re = evas->engine.data.output)) return 0; | 142 | if (!(re = evas->engine.data.output)) return 0; |
142 | if (re->ob) re->outbuf_free(re->ob); | 143 | if (re->ob) re->outbuf_free(re->ob); |
143 | re->ob = evas_outbuf_setup(evas->output.w, evas->output.h, | 144 | re->ob = evas_outbuf_setup(evas->output.w, evas->output.h, |
144 | in->info.rotation, in->info.dest); | 145 | in->info.rotation, |
146 | in->info.destination_alpha, in->info.dest); | ||
145 | if (re->tb) evas_common_tilebuf_free(re->tb); | 147 | if (re->tb) evas_common_tilebuf_free(re->tb); |
146 | if ((re->tb = evas_common_tilebuf_new(evas->output.w, evas->output.h))) | 148 | if ((re->tb = evas_common_tilebuf_new(evas->output.w, evas->output.h))) |
147 | evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE); | 149 | evas_common_tilebuf_set_tile_size(re->tb, TILESIZE, TILESIZE); |
diff --git a/libraries/evas/src/modules/engines/wayland_shm/evas_engine.h b/libraries/evas/src/modules/engines/wayland_shm/evas_engine.h index 878851a..1869d16 100644 --- a/libraries/evas/src/modules/engines/wayland_shm/evas_engine.h +++ b/libraries/evas/src/modules/engines/wayland_shm/evas_engine.h | |||
@@ -47,12 +47,13 @@ struct _Outbuf | |||
47 | { | 47 | { |
48 | void *dest; | 48 | void *dest; |
49 | RGBA_Image *buffer; | 49 | RGBA_Image *buffer; |
50 | Eina_Bool destination_alpha : 1; | ||
50 | } priv; | 51 | } priv; |
51 | }; | 52 | }; |
52 | 53 | ||
53 | void evas_outbuf_free(Outbuf *ob); | 54 | void evas_outbuf_free(Outbuf *ob); |
54 | void evas_outbuf_resize(Outbuf *ob, int w, int h); | 55 | void evas_outbuf_resize(Outbuf *ob, int w, int h); |
55 | Outbuf *evas_outbuf_setup(int w, int h, int rot, void *dest); | 56 | Outbuf *evas_outbuf_setup(int w, int h, int rot, Eina_Bool alpha, void *dest); |
56 | RGBA_Image *evas_outbuf_new_region_for_update(Outbuf *ob, int x, int y, int w, int h, int *cx, int *cy, int *cw, int *ch); | 57 | RGBA_Image *evas_outbuf_new_region_for_update(Outbuf *ob, int x, int y, int w, int h, int *cx, int *cy, int *cw, int *ch); |
57 | void evas_outbuf_push_updated_region(Outbuf *ob, RGBA_Image *update, int x __UNUSED__, int y, int w, int h); | 58 | void evas_outbuf_push_updated_region(Outbuf *ob, RGBA_Image *update, int x __UNUSED__, int y, int w, int h); |
58 | void evas_outbuf_free_region_for_update(Outbuf *ob, RGBA_Image *update); | 59 | void evas_outbuf_free_region_for_update(Outbuf *ob, RGBA_Image *update); |
diff --git a/libraries/evas/src/modules/engines/wayland_shm/evas_outbuf.c b/libraries/evas/src/modules/engines/wayland_shm/evas_outbuf.c index 490a978..4dee9a2 100644 --- a/libraries/evas/src/modules/engines/wayland_shm/evas_outbuf.c +++ b/libraries/evas/src/modules/engines/wayland_shm/evas_outbuf.c | |||
@@ -21,7 +21,7 @@ evas_outbuf_resize(Outbuf *ob, int w, int h) | |||
21 | } | 21 | } |
22 | 22 | ||
23 | Outbuf * | 23 | Outbuf * |
24 | evas_outbuf_setup(int w, int h, int rot, void *dest) | 24 | evas_outbuf_setup(int w, int h, int rot, Eina_Bool alpha, void *dest) |
25 | { | 25 | { |
26 | Outbuf *ob = NULL; | 26 | Outbuf *ob = NULL; |
27 | 27 | ||
@@ -31,6 +31,7 @@ evas_outbuf_setup(int w, int h, int rot, void *dest) | |||
31 | ob->h = h; | 31 | ob->h = h; |
32 | ob->rotation = rot; | 32 | ob->rotation = rot; |
33 | ob->priv.dest = dest; | 33 | ob->priv.dest = dest; |
34 | ob->priv.destination_alpha = alpha; | ||
34 | 35 | ||
35 | ob->priv.buffer = | 36 | ob->priv.buffer = |
36 | (RGBA_Image *)evas_cache_image_data(evas_common_image_cache_get(), | 37 | (RGBA_Image *)evas_cache_image_data(evas_common_image_cache_get(), |
@@ -56,7 +57,7 @@ evas_outbuf_new_region_for_update(Outbuf *ob, int x, int y, int w, int h, int *c | |||
56 | im = (RGBA_Image *)evas_cache_image_empty(evas_common_image_cache_get()); | 57 | im = (RGBA_Image *)evas_cache_image_empty(evas_common_image_cache_get()); |
57 | if (im) | 58 | if (im) |
58 | { | 59 | { |
59 | im->cache_entry.flags.alpha = 1; | 60 | im->cache_entry.flags.alpha = ob->priv.destination_alpha; |
60 | im = (RGBA_Image *)evas_cache_image_size_set(&im->cache_entry, w, h); | 61 | im = (RGBA_Image *)evas_cache_image_size_set(&im->cache_entry, w, h); |
61 | } | 62 | } |
62 | 63 | ||