Re: [E-devel] Terminology Configuration Enhancement
On Wed, 2 Apr 2014 00:21:26 +0300 "Alex-P. Natsios" said: > On Wed, Apr 2, 2014 at 12:11 AM, Jason Cook > wrote: > > Hi all, > > > > I have added a configuration option to terminology that allows the > > user to turn off the 'Active Links' functionality, meaning that paths > > and URLs won't start blinking when beneath the mouse cursor, nor will > > they be active if clicked. Does the community consider this > > configuration option valuable enough for inclusion into the source? If > > so, I'd be happy to send a patch. > > > > Thanks to everyone for all their work on Enlightenment - it is an > > absolute joy to use and becoming more so with each new version. > > > > -J > > > > I like the default behavior but i can understand there are times it > can be really annoying. > If i were you i would already send it through phab so we can have a > proper discussion over it. > Make sure to add billiob as a reviewer, even if it ends up not getting > accepted having it on phab with a proper discussion underneath is > better imho (esp if you need to make changes or rework it). yup. phab. we have a whole code review/submission thing. -- - Codito, ergo sum - "I code, therefore I am" -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/efl] master 01/01: emotion: do not segv when no module are found.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=9b53044b6f0d2ad963caa449f38975db40ddd342 commit 9b53044b6f0d2ad963caa449f38975db40ddd342 Author: Cedric BAIL Date: Wed Apr 2 15:18:46 2014 +0900 emotion: do not segv when no module are found. --- src/lib/emotion/emotion_modules.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/emotion/emotion_modules.c b/src/lib/emotion/emotion_modules.c index 6a362a2..d10520d 100644 --- a/src/lib/emotion/emotion_modules.c +++ b/src/lib/emotion/emotion_modules.c @@ -291,7 +291,7 @@ _find_mod(const char *name) unsigned int i; int inlen; - if (!name) return NULL; + if (!name || !_emotion_modules) return NULL; inlen = strlen(name); EINA_ARRAY_ITER_NEXT(_emotion_modules, i, m, iterator) { --
[EGIT] [core/efl] master 02/03: Evas benchmark: Add .tgv extension to saved files
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=dcca05721399447572738594dd165cf3b54eeb57 commit dcca05721399447572738594dd165cf3b54eeb57 Author: Jean-Philippe Andre Date: Wed Apr 2 12:17:27 2014 +0900 Evas benchmark: Add .tgv extension to saved files This will make the saver actually do something, instead of just skipping the save as no extension = unknown format :) --- src/benchmarks/evas/evas_bench_saver.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/benchmarks/evas/evas_bench_saver.c b/src/benchmarks/evas/evas_bench_saver.c index c278b84..51f661a 100644 --- a/src/benchmarks/evas/evas_bench_saver.c +++ b/src/benchmarks/evas/evas_bench_saver.c @@ -52,7 +52,7 @@ evas_bench_saver_tgv(int request) int i; source = _test_image_get("mars_rover_panorama_half-size.jpg"); - eina_file_mkstemp("evas_saver_benchXX", &dest); + eina_file_mkstemp("evas_saver_benchXX.tgv", &dest); o = evas_object_image_add(e); evas_object_image_file_set(o, source, NULL); --
[EGIT] [core/efl] master 03/03: Eina: Fix mistake in a previous patch
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=e50bcc937ca8bb99efcaf87129ff9b21a4d8aae1 commit e50bcc937ca8bb99efcaf87129ff9b21a4d8aae1 Author: Jean-Philippe Andre Date: Wed Apr 2 12:43:58 2014 +0900 Eina: Fix mistake in a previous patch Suffix length was not computed properly. Also, the change on eina_mkstemps was a @feature: add file extension support when creating temporary files --- src/lib/eina/eina_file_common.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/eina/eina_file_common.c b/src/lib/eina/eina_file_common.c index a62a2ec..7d42b63 100644 --- a/src/lib/eina/eina_file_common.c +++ b/src/lib/eina/eina_file_common.c @@ -919,9 +919,9 @@ eina_file_mkstemp(const char *templatename, Eina_Tmpstr **path) * http://man7.org/linux/man-pages/man3/mkstemp.3.html#NOTES */ old_umask = umask(S_IRWXG|S_IRWXO); - if ((XX = strstr(templatename, "XX.")) != NULL) + if ((XX = strstr(buffer, "XX.")) != NULL) { -int suffixlen = templatename + len - XX - 6; +int suffixlen = buffer + len - XX - 6; fd = mkstemps(buffer, suffixlen); } else --
[EGIT] [core/efl] master 01/03: Evas filters: Add template optimizable files for box blur
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=634034af4615234fc017f71a2d7c67b1b1745800 commit 634034af4615234fc017f71a2d7c67b1b1745800 Author: Jean-Philippe Andre Date: Tue Mar 25 16:54:57 2014 +0900 Evas filters: Add template optimizable files for box blur The new files (i386, sse3 and neon) are basically empty and fallback to the C version. This is just to pave the way for full low-level optimization... if someone has the time and skills to do it :) Add both Alpha and RGBA template files. --- src/Makefile_Evas.am| 9 +- src/lib/evas/filters/blur/blur_box_alpha_i386.c | 25 + src/lib/evas/filters/blur/blur_box_alpha_neon.c | 25 + src/lib/evas/filters/blur/blur_box_alpha_sse3.c | 25 + src/lib/evas/filters/blur/blur_box_rgba_.c | 4 +- src/lib/evas/filters/blur/blur_box_rgba_i386.c | 25 + src/lib/evas/filters/blur/blur_box_rgba_neon.c | 25 + src/lib/evas/filters/blur/blur_box_rgba_sse3.c | 25 + src/lib/evas/filters/evas_filter_blur.c | 118 +++- 9 files changed, 276 insertions(+), 5 deletions(-) diff --git a/src/Makefile_Evas.am b/src/Makefile_Evas.am index 540d08d..34d3315 100644 --- a/src/Makefile_Evas.am +++ b/src/Makefile_Evas.am @@ -496,7 +496,14 @@ EXTRA_DIST += \ lib/evas/filters/blur/blur_gaussian_alpha_.c \ lib/evas/filters/blur/blur_gaussian_rgba_.c \ lib/evas/filters/blur/blur_box_alpha_.c \ -lib/evas/filters/blur/blur_box_rgba_.c +lib/evas/filters/blur/blur_box_alpha_i386.c \ +lib/evas/filters/blur/blur_box_alpha_sse3.c \ +lib/evas/filters/blur/blur_box_alpha_neon.c \ +lib/evas/filters/blur/blur_box_rgba_.c \ +lib/evas/filters/blur/blur_box_rgba_i386.c \ +lib/evas/filters/blur/blur_box_rgba_sse3.c \ +lib/evas/filters/blur/blur_box_rgba_neon.c + ### Engines diff --git a/src/lib/evas/filters/blur/blur_box_alpha_i386.c b/src/lib/evas/filters/blur/blur_box_alpha_i386.c new file mode 100644 index 000..1664431 --- /dev/null +++ b/src/lib/evas/filters/blur/blur_box_alpha_i386.c @@ -0,0 +1,25 @@ +#ifdef BUILD_MMX + +static inline void +_box_blur_alpha_horiz_step_mmx(const DATA8* restrict const srcdata, + DATA8* restrict const dstdata, + const int* restrict const radii, + const int len, + const int loops) +{ + // TODO: implement optimized code here and remove the following line: + _box_blur_alpha_horiz_step(srcdata, dstdata, radii, len, loops); +} + +static inline void +_box_blur_alpha_vert_step_mmx(const DATA8* restrict const srcdata, + DATA8* restrict const dstdata, + const int* restrict const radii, + const int len, + const int loops) +{ + // TODO: implement optimized code here and remove the following line: + _box_blur_alpha_vert_step(srcdata, dstdata, radii, len, loops); +} + +#endif diff --git a/src/lib/evas/filters/blur/blur_box_alpha_neon.c b/src/lib/evas/filters/blur/blur_box_alpha_neon.c new file mode 100644 index 000..b8d9524 --- /dev/null +++ b/src/lib/evas/filters/blur/blur_box_alpha_neon.c @@ -0,0 +1,25 @@ +#ifdef BUILD_NEON + +static inline void +_box_blur_alpha_horiz_step_neon(const DATA8* restrict const srcdata, +DATA8* restrict const dstdata, +const int* restrict const radii, +const int len, +const int loops) +{ + // TODO: implement optimized code here and remove the following line: + _box_blur_alpha_horiz_step(srcdata, dstdata, radii, len, loops); +} + +static inline void +_box_blur_alpha_vert_step_neon(const DATA8* restrict const srcdata, + DATA8* restrict const dstdata, + const int* restrict const radii, + const int len, + const int loops) +{ + // TODO: implement optimized code here and remove the following line: + _box_blur_alpha_vert_step(srcdata, dstdata, radii, len, loops); +} + +#endif diff --git a/src/lib/evas/filters/blur/blur_box_alpha_sse3.c b/src/lib/evas/filters/blur/blur_box_alpha_sse3.c new file mode 100644 index 000..17a19f1 --- /dev/null +++ b/src/lib/evas/filters/blur/blur_box_alpha_sse3.c @@ -0,0 +1,25 @@ +#ifdef BUILD_SSE3 + +static inline void +_box_blur_alpha_horiz_step_sse3(const DATA8* restrict const srcdata, +DATA8* restrict const dstdata, +const int* restrict const radii, +const int len, +const int loops) +{ + // TODO: implement optimized code here and remove the following line: + _box_blur_alpha_horiz_step(srcdata, dstdata, radii, le
[EGIT] [core/efl] master 01/01: evas: fix use of unitialized data in eet loader.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=4c390fb984a71d2578a5ea676704d7ea6de9f173 commit 4c390fb984a71d2578a5ea676704d7ea6de9f173 Author: Cedric BAIL Date: Wed Apr 2 14:21:59 2014 +0900 evas: fix use of unitialized data in eet loader. should fix T1144. --- src/modules/evas/loaders/eet/evas_image_load_eet.c | 17 ++--- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/modules/evas/loaders/eet/evas_image_load_eet.c b/src/modules/evas/loaders/eet/evas_image_load_eet.c index 1b518b3..6fe6299 100644 --- a/src/modules/evas/loaders/eet/evas_image_load_eet.c +++ b/src/modules/evas/loaders/eet/evas_image_load_eet.c @@ -77,7 +77,7 @@ evas_image_load_file_head_eet(void *loader_data, Evas_Loader_Internal *loader = loader_data; int a, compression, quality; Eet_Image_Encoding lossy; - const Eet_Colorspace *cspaces; + const Eet_Colorspace *cspaces = NULL; int ok; ok = eet_data_image_header_read(loader->ef, loader->key, @@ -91,12 +91,15 @@ evas_image_load_file_head_eet(void *loader_data, { unsigned int i; -for (i = 0; cspaces[i] != EET_COLORSPACE_ARGB; i++) - if (cspaces[i] == EET_COLORSPACE_ETC1) -{ - prop->cspaces = cspaces_etc1; - break; -} + if (cspaces != NULL) + { + for (i = 0; cspaces[i] != EET_COLORSPACE_ARGB; i++) + if (cspaces[i] == EET_COLORSPACE_ETC1) + { + prop->cspaces = cspaces_etc1; + break; + } + } } prop->alpha = !!a; --
Re: [E-devel] [EGIT] [core/elementary] master 01/01: calendar, colorselector, diskselector: fix build warnings
Hey D1, don't push on me warnings that are not mine! And be nice with me, you will have to support me all the next week...:-! On 04/01/2014 06:14 PM, Daniel Juyung Seo wrote: > Yo D3, fix the warnings before you push next time :) > Thanks. > > Daniel Juyung Seo (SeoZ) > > > On Tue, Apr 1, 2014 at 10:25 PM, Daniel Zaoui wrote: > >> Thank you, miss! You can rest now ;-) >> >> On 04/01/2014 04:21 PM, Jaeun Choi wrote: >>> seoz pushed a commit to branch master. >>> >>> >> http://git.enlightenment.org/core/elementary.git/commit/?id=53ccaffb63aefc544199961e962c26aa9a9cb6fd >>> commit 53ccaffb63aefc544199961e962c26aa9a9cb6fd >>> Author: Jaeun Choi >>> Date: Tue Apr 1 22:20:58 2014 +0900 >>> >>> calendar, colorselector, diskselector: fix build warnings >>> >>> Summary: This patch fixed build warnings in calendar, colorselector >> and diskselector. >>> Test Plan: make >>> >>> Reviewers: Hermet >>> >>> Differential Revision: https://phab.enlightenment.org/D685 >>> --- >>>src/lib/elm_calendar.c | 4 ++-- >>>src/lib/elm_colorselector.c | 6 +- >>>src/lib/elm_diskselector.c | 2 +- >>>3 files changed, 4 insertions(+), 8 deletions(-) >> >> >> >> -- >> ___ >> enlightenment-devel mailing list >> enlightenment-devel@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel >> > -- > ___ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > -- ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/efl] master 01/01: Evil: Add support for mkstemps
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=5926aadd9e0ab50a4d043a51661f2d9e83af7cba commit 5926aadd9e0ab50a4d043a51661f2d9e83af7cba Author: Jean-Philippe Andre Date: Tue Apr 1 17:55:09 2014 +0900 Evil: Add support for mkstemps This adds filename suffix support for temporary files on Windows. --- src/bin/evil/evil_test_mkstemp.c | 43 - src/lib/evil/evil_stdlib.c | 46 +++- src/lib/evil/evil_stdlib.h | 27 --- 3 files changed, 87 insertions(+), 29 deletions(-) diff --git a/src/bin/evil/evil_test_mkstemp.c b/src/bin/evil/evil_test_mkstemp.c index a716b72..427dc01 100644 --- a/src/bin/evil/evil_test_mkstemp.c +++ b/src/bin/evil/evil_test_mkstemp.c @@ -36,18 +36,59 @@ test_mkstemp_test(void) } static int +test_mkstemps_test(void) +{ + char _template[PATH_MAX]; +#ifdef _WIN32_WCE + char cwd[PATH_MAX]; +#endif + int fd; + +#ifdef _WIN32_WCE + if (!getcwd(cwd, PATH_MAX)) + return 0; + _snprintf(_template, PATH_MAX, "%s\\%s", cwd, "file_XX.ext"); +#else + _snprintf(_template, PATH_MAX, "%s", "file_XX.ext"); +#endif + + fd = mkstemps(_template, 4); + + if (fd < 0) + return 0; + + return 1; +} + +static int test_mkstemp_run(suite *s) { int res; + (void) s; res = test_mkstemp_test(); return res; } +static int +test_mkstemps_run(suite *s) +{ + int res; + (void) s; + + res = test_mkstemps_test(); + + return res; +} + int test_mkstemp(suite *s) { + int res; - return test_mkstemp_run(s); + res = test_mkstemp_run(s); + res &= test_mkstemps_run(s); + + return res; } diff --git a/src/lib/evil/evil_stdlib.c b/src/lib/evil/evil_stdlib.c index ae9c382..5d170e1 100644 --- a/src/lib/evil/evil_stdlib.c +++ b/src/lib/evil/evil_stdlib.c @@ -269,17 +269,18 @@ unsetenv(const char *name) * */ static int -_mkstemp_init(char *__template, char **suffix, size_t *length, DWORD *val) +_mkstemp_init(char *__template, char **suffix, size_t *length, DWORD *val, + size_t suffixlen) { *length = strlen(__template); - if ((*length < 6) || - (strncmp (__template + *length - 6, "XX", 6))) + if ((*length < (6 + suffixlen)) + || (strncmp(__template + *length - 6 - suffixlen, "XX", 6) != 0)) { errno = EINVAL; return 0; } - *suffix = __template + *length - 6; + *suffix = __template + *length - 6 - suffixlen; *val = GetTickCount(); *val += GetCurrentProcessId(); @@ -322,27 +323,27 @@ mkdtemp(char *__template) if (!__template) { errno = EINVAL; - return NULL; +return NULL; } - if (!_mkstemp_init(__template, &suffix, &length, &val)) + if (!_mkstemp_init(__template, &suffix, &length, &val, 0)) return NULL; for (i = 0; i < 32768; i++) { val = _mkstemp(suffix, val); - if (mkdir(__template)) - return __template; - - if (errno == EFAULT || - errno == ENOSPC || - errno == ENOMEM || - errno == ENOENT || - errno == ENOTDIR || - errno == EPERM || - errno == EROFS) - return NULL; +if (mkdir(__template)) + return __template; + +if (errno == EFAULT || +errno == ENOSPC || +errno == ENOMEM || +errno == ENOENT || +errno == ENOTDIR || +errno == EPERM || +errno == EROFS) + return NULL; } errno = EEXIST; @@ -350,17 +351,17 @@ mkdtemp(char *__template) } int -mkstemp(char *__template) +mkstemps(char *__template, int suffixlen) { char *suffix; DWORD val; size_t length; inti; - if (!__template) + if (!__template || (suffixlen < 0)) return 0; - if (!_mkstemp_init(__template, &suffix, &length, &val)) + if (!_mkstemp_init(__template, &suffix, &length, &val, (size_t) suffixlen)) return -1; for (i = 0; i < 32768; i++) @@ -397,6 +398,11 @@ mkstemp(char *__template) return -1; } +int +mkstemp(char *__template) +{ + return mkstemps(__template, 0); +} char * realpath(const char *file_name, char *resolved_name) diff --git a/src/lib/evil/evil_stdlib.h b/src/lib/evil/evil_stdlib.h index 52318dc..a20b18e 100644 --- a/src/lib/evil/evil_stdlib.h +++ b/src/lib/evil/evil_stdlib.h @@ -128,7 +128,7 @@ EAPI int unsetenv(const char *name); */ /** - * @brief Make temporay unique file name. + * @brief Create a unique temporary file name. * * @param __template Template of the file to create. * @return A file descriptor on success, -1 otherwise. @@ -137,14 +137,14 @@ EAPI int unsetenv(const char *name); * to create a file name. This file is guaranted not to exist at the * time invocation and is suitable for use by the function. * - * The @p template parameter can be any file
[EGIT] [core/efl] master 01/02: rg_etc: fix typo in debug code.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=4053911ef333e4c1d23842a6b808dec01cc2d4f5 commit 4053911ef333e4c1d23842a6b808dec01cc2d4f5 Author: Cedric BAIL Date: Wed Apr 2 10:31:06 2014 +0900 rg_etc: fix typo in debug code. --- src/static_libs/rg_etc/rg_etc1.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/static_libs/rg_etc/rg_etc1.c b/src/static_libs/rg_etc/rg_etc1.c index af50b6f..b3f3f21 100644 --- a/src/static_libs/rg_etc/rg_etc1.c +++ b/src/static_libs/rg_etc/rg_etc1.c @@ -1725,7 +1725,7 @@ rg_etc1_optimizer_compute(rg_etc1_optimizer *optimizer) uint i; const uint8* pSelectors = optimizer->m_best_solution.m_selectors; - rg_etc1_solution_coordinates_block_colors_get(optimizer->m_best_solution., block_colors); + rg_etc1_solution_coordinates_block_colors_get(optimizer->m_best_solution, block_colors); pSrc_pixels = optimizer->m_pParams->m_pSrc_pixels; for (i = 0; i < n; i++) actual_error += rg_etc1_color_quad_u8_rgb_squared_distance(pSrc_pixels[i], block_colors[pSelectors[i]]); --
[EGIT] [core/efl] master 02/02: autotools: better fix for rewriting content of src/Makefile
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=2c4ae3fe6f9bb40a6c941d6fef70ee0eea225c73 commit 2c4ae3fe6f9bb40a6c941d6fef70ee0eea225c73 Author: Cedric BAIL Date: Wed Apr 2 10:31:34 2014 +0900 autotools: better fix for rewriting content of src/Makefile --- configure.ac | 7 +-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index f24400b..409e48e 100644 --- a/configure.ac +++ b/configure.ac @@ -4188,9 +4188,12 @@ AC_OUTPUT Work around bug in automake check macro ## yes it is hugly, but no choice here for now. -sed -i "s/am__is_gnu_make = test -n '\$(MAKEFILE_LIST)' && test -n '\$(MAKELEVEL)'/ifdef MAKEFILE_LIST\nifdef MAKELEVEL\nam__is_gnu_make = true\nelse\nam__is_gnu_make = false\nendif\nelse\nam__is_gnu_make = false\nendif/" src/Makefile - +$SED -i "s/am__is_gnu_make = test -n '\$(MAKEFILE_LIST)' && test -n '\$(MAKELEVEL)'/ifdef MAKEFILE_LIST\nifdef MAKELEVEL\nam__is_gnu_make = true\nelse\nam__is_gnu_make = false\nendif\nelse\nam__is_gnu_make = false\nendif/" src/Makefile +if test -f $srcdir/config.status; then + TO="$SED -i \"s/am__is_gnu_make = test -n '\$(MAKEFILE_LIST)' \&\& test -n '\$(MAKELEVEL)'/ifdef MAKEFILE_LIST\\\nifdef MAKELEVEL\\\nam__is_gnu_make = true\\\nelse\\\nam__is_gnu_make = false\\\nendif\\\nelse\\\nam__is_gnu_make = false\\\nendif/\" src/Makefile\nas_fn_exit 0" + $SED -i "s|as_fn_exit 0|$TO|" $srcdir/config.status +fi Info --
Re: [E-devel] Terminology Configuration Enhancement
On Wed, Apr 2, 2014 at 12:11 AM, Jason Cook wrote: > Hi all, > > I have added a configuration option to terminology that allows the > user to turn off the 'Active Links' functionality, meaning that paths > and URLs won't start blinking when beneath the mouse cursor, nor will > they be active if clicked. Does the community consider this > configuration option valuable enough for inclusion into the source? If > so, I'd be happy to send a patch. > > Thanks to everyone for all their work on Enlightenment - it is an > absolute joy to use and becoming more so with each new version. > > -J > I like the default behavior but i can understand there are times it can be really annoying. If i were you i would already send it through phab so we can have a proper discussion over it. Make sure to add billiob as a reviewer, even if it ends up not getting accepted having it on phab with a proper discussion underneath is better imho (esp if you need to make changes or rework it). -- Regards, Alex-P. Natsios (a.k.a Drakevr) -- ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[E-devel] Terminology Configuration Enhancement
Hi all, I have added a configuration option to terminology that allows the user to turn off the 'Active Links' functionality, meaning that paths and URLs won't start blinking when beneath the mouse cursor, nor will they be active if clicked. Does the community consider this configuration option valuable enough for inclusion into the source? If so, I'd be happy to send a patch. Thanks to everyone for all their work on Enlightenment - it is an absolute joy to use and becoming more so with each new version. -J -- ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/elementary] master 01/01: calendar, colorselector, diskselector: fix build warnings
Yo D3, fix the warnings before you push next time :) Thanks. Daniel Juyung Seo (SeoZ) On Tue, Apr 1, 2014 at 10:25 PM, Daniel Zaoui wrote: > Thank you, miss! You can rest now ;-) > > On 04/01/2014 04:21 PM, Jaeun Choi wrote: > > seoz pushed a commit to branch master. > > > > > http://git.enlightenment.org/core/elementary.git/commit/?id=53ccaffb63aefc544199961e962c26aa9a9cb6fd > > > > commit 53ccaffb63aefc544199961e962c26aa9a9cb6fd > > Author: Jaeun Choi > > Date: Tue Apr 1 22:20:58 2014 +0900 > > > > calendar, colorselector, diskselector: fix build warnings > > > > Summary: This patch fixed build warnings in calendar, colorselector > and diskselector. > > > > Test Plan: make > > > > Reviewers: Hermet > > > > Differential Revision: https://phab.enlightenment.org/D685 > > --- > > src/lib/elm_calendar.c | 4 ++-- > > src/lib/elm_colorselector.c | 6 +- > > src/lib/elm_diskselector.c | 2 +- > > 3 files changed, 4 insertions(+), 8 deletions(-) > > > > > -- > ___ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > -- ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[E-devel] Migration to Eo2
Hey, We are finally getting to the final stretch of switching to Eo2. I'm currently working on switching, which is not meant to be too hard thanks to Eolian and a lot of good work by Jeremy Zurcher. I'd prefer people not to commit anything to anything under lib/eo tests/eo until that merge is complete. At least not without contacting me first, as that would be hellish to merge (I'm essentially removing everything that's there), and will increase the chance of me missing things. I'll keep the list posted once there's something worth mentioning. -- Tom. -- ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] EFL and Elementary technology preview for 1.10
On 04/01/2014 04:47 PM, Stefan Schmidt wrote: > Hello. > > On Tue, 2014-04-01 at 16:40, Daniel Zaoui wrote: >> Hi Stefan, >> >> Please, can you add Eolian (EO object parser and C code generator) as a >> new feature? >> I didn't set the @feature tag. > Which is waht you should do. :) Spank Tom to not have told me to do that :-) > > I added it manually for Elementary will change the blog entry to also > list it for EFL. I would be glad if you could write up a blurb about > it for the final 1.10 announcement in some weeks. Just a short summary > would be good. I will think about it ... > > regards > Stefan Schmidt > > -- > ___ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > -- ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/enlightenment] master 01/01: po: Remove files for disabled wallpaper2 module to fix make distcheck
stefan pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=f4624d940a201fd6573afe0c3a0989eded0af109 commit f4624d940a201fd6573afe0c3a0989eded0af109 Author: Stefan Schmidt Date: Tue Apr 1 15:52:50 2014 +0200 po: Remove files for disabled wallpaper2 module to fix make distcheck The wallpaper2 module got disabled by not includng its makefile anymore which confused gettext as it still had two files listed for it. --- po/POTFILES.in | 2 -- 1 file changed, 2 deletions(-) diff --git a/po/POTFILES.in b/po/POTFILES.in index e784215..5881d81 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -197,8 +197,6 @@ src/modules/conf_theme/e_int_config_transitions.c src/modules/conf_theme/e_int_config_wallpaper.c src/modules/conf_theme/e_int_config_xsettings.c src/modules/conf_theme/e_mod_main.c -src/modules/conf_wallpaper2/e_int_config_wallpaper.c -src/modules/conf_wallpaper2/e_mod_main.c src/modules/conf_window_manipulation/e_int_config_clientlist.c src/modules/conf_window_manipulation/e_int_config_focus.c src/modules/conf_window_manipulation/e_int_config_window_display.c --
Re: [E-devel] EFL and Elementary technology preview for 1.10
Hello. On Tue, 2014-04-01 at 16:40, Daniel Zaoui wrote: > Hi Stefan, > > Please, can you add Eolian (EO object parser and C code generator) as a > new feature? > I didn't set the @feature tag. Which is waht you should do. :) I added it manually for Elementary will change the blog entry to also list it for EFL. I would be glad if you could write up a blurb about it for the final 1.10 announcement in some weeks. Just a short summary would be good. regards Stefan Schmidt -- ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/efl] master 02/03: Eolian: Legacy generator - dont generate @param[out] ret if return value is specified
jackdanielz pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=dfaa1d572208cc879e65b07663c30f1d9eaddd23 commit dfaa1d572208cc879e65b07663c30f1d9eaddd23 Author: Yossi Kantor Date: Mon Mar 31 09:28:13 2014 +0300 Eolian: Legacy generator - dont generate @param[out] ret if return value is specified --- src/bin/eolian/legacy_generator.c | 8 1 file changed, 8 deletions(-) diff --git a/src/bin/eolian/legacy_generator.c b/src/bin/eolian/legacy_generator.c index 2a3ca70..bfd756a 100644 --- a/src/bin/eolian/legacy_generator.c +++ b/src/bin/eolian/legacy_generator.c @@ -40,10 +40,8 @@ _eapi_decl_func_generate(const char *classname, Eolian_Function funcid, Eolian_F const char *func_lpref = NULL; Eina_Bool var_as_ret = EINA_FALSE; Eina_Bool add_star = EINA_FALSE; - Eina_Bool ret_is_void = EINA_FALSE; rettype = eolian_function_return_type_get(funcid, ftype); - if (rettype && !strcmp(rettype, "void")) ret_is_void = EINA_TRUE; if (ftype == GET) { suffix = "_get"; @@ -159,12 +157,6 @@ _eapi_decl_func_generate(const char *classname, Eolian_Function funcid, Eolian_F } if (flags) eina_strbuf_append_printf(flags, ")"); - if (rettype && !ret_is_void) - { -const char *pdesc = eolian_function_return_comment_get(funcid, ftype); -eina_strbuf_append_printf(descparam, " * @param[out] ret %s\n", pdesc?pdesc:"No description supplied."); - } - eina_strbuf_replace_all(fbody, "@#params", eina_strbuf_string_get(fparam)); eina_strbuf_replace_all(fbody, "@#list_desc_param", eina_strbuf_string_get(descparam)); eina_strbuf_reset(fparam); --
[EGIT] [core/efl] master 03/03: Eolian: Proper use of legacy prefix in legacy function definition.
jackdanielz pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=9780b403ee14273ef27434b1e3163b15478dde48 commit 9780b403ee14273ef27434b1e3163b15478dde48 Author: Daniel Zaoui Date: Tue Apr 1 16:12:38 2014 +0300 Eolian: Proper use of legacy prefix in legacy function definition. --- src/bin/eolian/legacy_generator.c | 22 +++--- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/bin/eolian/legacy_generator.c b/src/bin/eolian/legacy_generator.c index bfd756a..2ac85df 100644 --- a/src/bin/eolian/legacy_generator.c +++ b/src/bin/eolian/legacy_generator.c @@ -40,6 +40,7 @@ _eapi_decl_func_generate(const char *classname, Eolian_Function funcid, Eolian_F const char *func_lpref = NULL; Eina_Bool var_as_ret = EINA_FALSE; Eina_Bool add_star = EINA_FALSE; + char tmpstr[0xFF]; rettype = eolian_function_return_type_get(funcid, ftype); if (ftype == GET) @@ -66,19 +67,26 @@ _eapi_decl_func_generate(const char *classname, Eolian_Function funcid, Eolian_F } func_lpref = (func_lpref) ? func_lpref : eolian_function_data_get(funcid, EOLIAN_LEGACY); - func_lpref = (func_lpref) ? func_lpref : eolian_class_legacy_prefix_get(classname); - - if (!func_lpref) func_lpref = classname; + if (func_lpref && !strcmp(func_lpref, "null")) return; Eina_Strbuf *fbody = eina_strbuf_new(); Eina_Strbuf *fparam = eina_strbuf_new(); Eina_Strbuf *descparam = eina_strbuf_new(); - char tmpstr[0xFF]; - sprintf (tmpstr, "%s%s", eolian_function_name_get(funcid), suffix); - _template_fill(fbody, tmpl_eapi_funcdef, func_lpref, tmpstr, EINA_FALSE); - sprintf (tmpstr, "comment%s", suffix); + if (func_lpref) + { +_template_fill(fbody, tmpl_eapi_funcdef, "@#class", "@#func", EINA_FALSE); +eina_strbuf_replace_all (fbody, "@#class_@#func", func_lpref); + } + else + { +func_lpref = (func_lpref) ? func_lpref : eolian_class_legacy_prefix_get(classname); +if (!func_lpref) func_lpref = classname; +sprintf (tmpstr, "%s%s", eolian_function_name_get(funcid), suffix); +_template_fill(fbody, tmpl_eapi_funcdef, func_lpref, tmpstr, EINA_FALSE); + } + sprintf (tmpstr, "comment%s", suffix); const char *desc = eolian_function_description_get(funcid, tmpstr); Eina_Strbuf *linedesc = eina_strbuf_new(); eina_strbuf_append(linedesc, desc ? desc : "No description supplied."); --
[EGIT] [core/efl] master 01/03: Eolian: No need for --eo version when generating legacy header
jackdanielz pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=5c6a6b586a0187f5409a31e2b15028b4230a8fa0 commit 5c6a6b586a0187f5409a31e2b15028b4230a8fa0 Author: Yossi Kantor Date: Sun Mar 30 16:13:23 2014 +0300 Eolian: No need for --eo version when generating legacy header --- src/bin/eolian/main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/eolian/main.c b/src/bin/eolian/main.c index 3a989fd..2534e94 100644 --- a/src/bin/eolian/main.c +++ b/src/bin/eolian/main.c @@ -293,7 +293,7 @@ int main(int argc, char **argv) } } - if (!eo_version) + if (!eo_version && !(gen_opt==H_GEN && legacy_support)) { ERR("No eo version specified (use --eo1 or --eo2). Aborting eo generation.\n"); goto end; --
Re: [E-devel] EFL and Elementary technology preview for 1.10
Hi Stefan, Please, can you add Eolian (EO object parser and C code generator) as a new feature? I didn't set the @feature tag. Thank you JackDanielZ On 04/01/2014 04:31 PM, Stefan Schmidt wrote: > Hello. > > On Tue, 2014-04-01 at 14:27, Tom Hacohen wrote: >> On 01/04/14 13:53, Stefan Schmidt wrote: >>> We have finished our first round of merge and stabilization phase and are >>> now in the second and last cycle for 1.10. This could be a good time to put >>> together what we have so far for packagers to test. Please provide feedback >>> of this is useful for you or if you are fine with waiting for the first >>> alpha release which would happen right after the second merge window closes. >>> >>> This should not be considered a full release but more a current snapshot of >>> what will await you for 1.10 >>> >>> New features for EFL would include: >>> * eina: add eina_inarray_resize @feature. >>> * eina: add eina_accessor_clone and update all Eina_Accessor to take >>> advantage of it. >>> * eina: add a C++ bindings to Eina @feature. >>> * @feature - Apply NEON intrisics improvement to rotation >>> * Evas textblock: Implemented mid-contextualization formatting. >>> * evas-drm: Add evas_drm to build order for Evas drm engine >>> * evas-drm: Add Evas Drm Engine (software only currently) >>> * evas-drm: Add option to enable drm hardware acceleration >>> * evas-drm: Start on hardware-accel support for drm >>> * evas-drm: Triple buffer by default. >>> * evas-drm: Fix opening of drm card >>> * evas-drm: Start on hardware Plane support * evas-drm: Add >>> vsync/non-vsync support to evas_drm code >>> * evas-drm: Ddd support for setting vsync with env variable. >>> * edje: @feature to include license in edje file. (T1027) >>> * edje: add support of last input entered in password mode to be >>> always visible in entry. >>> * eio: make it possible to limit the amount of memory used by threads. >>> * eina: make Eina_Error thread safe. >>> * edje: add AUTHORS and more than one license file to Edje. >>> * ecore-drm: Add Ecore_Drm code >>> * ecore-drm: Add configure.ac autofoo for ecore-drm >>> * Eet: Added vieet a tool to edit eet files. >>> * eina-cxx: Added eina_log support for C++, using IOStreams syntax >>> * ecore-drm: Add API function to return the vt fd >>> * ecore-drm: Add dependency on xkbcommon >>> * ecore-drm: Add code pass along key events to ecore_event >>> * ecore-drm: Set the window of the Ecore_Event_Key structure >>> * ecore-drm: Add code to handle modifiers in a key event >>> * ecore-drm: Add code to handle mouse input >>> * ecore-drm: Add code to handle modifiers in a key event >>> * ecore-drm: Add code to handle mouse input >>> * evas/font: Added evas_font_path_global_* APIs. >>> * Eo: Made eo id for classes a bit more secure. >>> * ecore-drm: Add API function to return the drm device name >>> * ecore-evas-drm: Add support for resize and move callbacks >>> * ecore-evas-drm: Add support for setting focus_in & focus_out >>> callbacks >>> * ecore-evas-drm: Add support for setting the mouse in & mouse out >>> callbacks of the ecore_evas >>> * ecore-evas-drm: Add support for ecore_evas_move function >>> * ecore-evas-drm: Add support for ecore_evas_move_resize >>> * ecore-evas-drm: Add support for rotation set >>> * ecore-evas-drm: Add support for setting the title of the ecore_evas >>> * ecore-evas-drm: Add support for ecore_evas_name_class_set >>> * ecore-evas-drm: Add support for setting size hints >>> * ecore-evas-drm: Add support for ecore_evas_object_cursor_set >>> * ecore-evas-drm: Add support for ecore_evas_layer_set >>> * ecore-evas-drm: Add support for ecore_evas_iconified_set >>> * ecore-evas-drm: Add support for ecore_evas_borderless_set >>> * ecore-evas-drm: Add support for maximized, fullscreen, withdrawn, >>> and ignore_events settings >>> * ecore-evas-drm: Add support for alpha & transparent setting >>> * ecore-evas-drm: Add support for setting aspect of ecore_evas >>> * edje_cc now supports program.targets keyword for adding N targets in >>> one line >>> * edje_cc now supports group.remove for removing parts from inherited >>> groups >>> * edje_cc now supports part.inherit for copying attributes of parts >>> within a group more easily >>> * eeze_udev gets more helper functions >>> * edje_cc now supports program.sequence for more easily chaining >>> programs together >>> * edje_cc can now use group.program_remove to remove inherited programs >>> * edje_edit: function that will return the source code of the loaded >>> edje edit object. >>> >>> New features for Elementary so far: >>> * popup: implemented widget item focus feauture. >>> * list: implemented widget item focus feature. >>>
Re: [E-devel] EFL and Elementary technology preview for 1.10
Hello. On Tue, 2014-04-01 at 14:27, Tom Hacohen wrote: > On 01/04/14 13:53, Stefan Schmidt wrote: > > We have finished our first round of merge and stabilization phase and are > > now in the second and last cycle for 1.10. This could be a good time to put > > together what we have so far for packagers to test. Please provide feedback > > of this is useful for you or if you are fine with waiting for the first > > alpha release which would happen right after the second merge window closes. > > > > This should not be considered a full release but more a current snapshot of > > what will await you for 1.10 > > > > New features for EFL would include: > > * eina: add eina_inarray_resize @feature. > > * eina: add eina_accessor_clone and update all Eina_Accessor to take > > advantage of it. > > * eina: add a C++ bindings to Eina @feature. > > * @feature - Apply NEON intrisics improvement to rotation > > * Evas textblock: Implemented mid-contextualization formatting. > > * evas-drm: Add evas_drm to build order for Evas drm engine > > * evas-drm: Add Evas Drm Engine (software only currently) > > * evas-drm: Add option to enable drm hardware acceleration > > * evas-drm: Start on hardware-accel support for drm > > * evas-drm: Triple buffer by default. > > * evas-drm: Fix opening of drm card > > * evas-drm: Start on hardware Plane support * evas-drm: Add > > vsync/non-vsync support to evas_drm code > > * evas-drm: Ddd support for setting vsync with env variable. > > * edje: @feature to include license in edje file. (T1027) > > * edje: add support of last input entered in password mode to be always > > visible in entry. > > * eio: make it possible to limit the amount of memory used by threads. > > * eina: make Eina_Error thread safe. > > * edje: add AUTHORS and more than one license file to Edje. > > * ecore-drm: Add Ecore_Drm code > > * ecore-drm: Add configure.ac autofoo for ecore-drm > > * Eet: Added vieet a tool to edit eet files. > > * eina-cxx: Added eina_log support for C++, using IOStreams syntax > > * ecore-drm: Add API function to return the vt fd > > * ecore-drm: Add dependency on xkbcommon > > * ecore-drm: Add code pass along key events to ecore_event > > * ecore-drm: Set the window of the Ecore_Event_Key structure > > * ecore-drm: Add code to handle modifiers in a key event > > * ecore-drm: Add code to handle mouse input > > * ecore-drm: Add code to handle modifiers in a key event > > * ecore-drm: Add code to handle mouse input > > * evas/font: Added evas_font_path_global_* APIs. > > * Eo: Made eo id for classes a bit more secure. > > * ecore-drm: Add API function to return the drm device name > > * ecore-evas-drm: Add support for resize and move callbacks > > * ecore-evas-drm: Add support for setting focus_in & focus_out callbacks > > * ecore-evas-drm: Add support for setting the mouse in & mouse out > > callbacks of the ecore_evas > > * ecore-evas-drm: Add support for ecore_evas_move function > > * ecore-evas-drm: Add support for ecore_evas_move_resize > > * ecore-evas-drm: Add support for rotation set > > * ecore-evas-drm: Add support for setting the title of the ecore_evas > > * ecore-evas-drm: Add support for ecore_evas_name_class_set > > * ecore-evas-drm: Add support for setting size hints > > * ecore-evas-drm: Add support for ecore_evas_object_cursor_set > > * ecore-evas-drm: Add support for ecore_evas_layer_set > > * ecore-evas-drm: Add support for ecore_evas_iconified_set > > * ecore-evas-drm: Add support for ecore_evas_borderless_set > > * ecore-evas-drm: Add support for maximized, fullscreen, withdrawn, and > > ignore_events settings > > * ecore-evas-drm: Add support for alpha & transparent setting > > * ecore-evas-drm: Add support for setting aspect of ecore_evas > > * edje_cc now supports program.targets keyword for adding N targets in > > one line > > * edje_cc now supports group.remove for removing parts from inherited > > groups > > * edje_cc now supports part.inherit for copying attributes of parts > > within a group more easily > > * eeze_udev gets more helper functions > > * edje_cc now supports program.sequence for more easily chaining > > programs together > > * edje_cc can now use group.program_remove to remove inherited programs > > * edje_edit: function that will return the source code of the loaded > > edje edit object. > > > > New features for Elementary so far: > > * popup: implemented widget item focus feauture. > > * list: implemented widget item focus feature. > > * list: Added descriptions for the newly introduced > > item,focused/item,unfocused smart callbacks. > > * popup: Added descriptions for the newly introduced > > item,focused/item,unfocused smart callbacks. > > * hoversel: Added "item,focused" and "item,unfoc
Re: [E-devel] [EGIT] [core/efl] master 02/32: eet-cxx: add implementation for eet C++.
Shitload of warnings here as well. On 01/04/14 14:01, Felipe Magno de Almeida wrote: > cedric pushed a commit to branch master. > > http://git.enlightenment.org/core/efl.git/commit/?id=ab3eb4b2d350d017eab6683202663244e11aa518 > > commit ab3eb4b2d350d017eab6683202663244e11aa518 > Author: Felipe Magno de Almeida > Date: Tue Apr 1 19:08:07 2014 +0900 > > eet-cxx: add implementation for eet C++. > > Usage example: > >struct type >{ > int foo; > float bar; >}; > >type t0; > >auto descriptor = make_descriptor("type", &type::ofo, &type::bar); > >eet_data_write(file, descriptor.native_handle(), "type", &t0, false); > >std::unique_ptr p = read_by_ptr(file, "type", descriptor); >type t = read(file, "type", descriptor); > > @feature > > Reviewers: cedric, smohanty > > Reviewed By: cedric > > CC: savio, cedric > > Differential Revision: https://phab.enlightenment.org/D659 > > Signed-off-by: Cedric BAIL > --- > configure.ac | 1 + > pc/.gitignore | 1 + > pc/eet-cxx.pc.in | 12 ++ > src/Makefile.am | 1 + > src/Makefile_Eet_Cxx.am | 42 + > src/bindings/eet_cxx/Eet.hh | 214 > src/bindings/eet_cxx/eet_composite.hh | 49 ++ > src/bindings/eet_cxx/eet_fold.hh | 32 > src/bindings/eet_cxx/eet_register.hh | 132 +++ > src/bindings/eet_cxx/eet_tuple.hh | 39 + > src/bindings/eet_cxx/eet_type.hh | 78 + > src/lib/eet/Eet.h | 37 + > src/lib/eet/eet_data.c| 38 + > src/tests/eet_cxx/eet_cxx_suite.cc| 104 > src/tests/eet_cxx/eet_cxx_test_descriptors.cc | 231 > ++ > 15 files changed, 1011 insertions(+) > > diff --git a/configure.ac b/configure.ac > index 4001d29..3642b96 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -4100,6 +4100,7 @@ pc/escape.pc > pc/eina.pc > pc/eina-cxx.pc > pc/eet.pc > +pc/eet-cxx.pc > pc/eo.pc > pc/eolian.pc > pc/evas-fb.pc > diff --git a/pc/.gitignore b/pc/.gitignore > index 658f6cf..ae42f58 100644 > --- a/pc/.gitignore > +++ b/pc/.gitignore > @@ -26,6 +26,7 @@ > /efreet.pc > /eina.pc > /eina-cxx.pc > +/eet-cxx.pc > /eio.pc > /eldbus.pc > /embryo.pc > diff --git a/pc/eet-cxx.pc.in b/pc/eet-cxx.pc.in > new file mode 100644 > index 000..2412c48 > --- /dev/null > +++ b/pc/eet-cxx.pc.in > @@ -0,0 +1,12 @@ > +prefix=@prefix@ > +exec_prefix=@exec_prefix@ > +libdir=@libdir@ > +includedir=@includedir@ > + > +Name: Eet C++ > +Description: C++ API for the eet library > +Version: @VERSION@ > +Requires.private: @requirements_pc_eet@ > +Libs: -L${libdir} -leet > +Libs.private: @requirements_libs_eet@ > +Cflags: -I${includedir}/efl-@VMAJ@ -I${includedir}/eet-@VMAJ@ > -I${includedir}/efl-@VMAJ@ -I${includedir}/eet_cxx-@VMAJ@ > -I${includedir}/eet_cxx-@VMAJ@/eet_cxx > diff --git a/src/Makefile.am b/src/Makefile.am > index e277678..f9c2497 100644 > --- a/src/Makefile.am > +++ b/src/Makefile.am > @@ -32,6 +32,7 @@ include Makefile_Escape.am > include Makefile_Eina.am > include Makefile_Eo.am > include Makefile_Eet.am > +include Makefile_Eet_Cxx.am > include Makefile_Eolian.am > include Makefile_Evas.am > include Makefile_Ecore.am > diff --git a/src/Makefile_Eet_Cxx.am b/src/Makefile_Eet_Cxx.am > new file mode 100644 > index 000..b2381aa > --- /dev/null > +++ b/src/Makefile_Eet_Cxx.am > @@ -0,0 +1,42 @@ > + > +### Library > + > +installed_eetcxxmainheadersdir = $(includedir)/eet_cxx-@VMAJ@ > +dist_installed_eetcxxmainheaders_DATA = bindings/eet_cxx/Eet.hh > + > +installed_eetcxxheadersdir = $(includedir)/eet_cxx-@VMAJ@/eet_cxx > +dist_installed_eetcxxheaders_DATA = \ > +bindings/eet_cxx/eet_composite.hh \ > +bindings/eet_cxx/eet_fold.hh \ > +bindings/eet_cxx/eet_register.hh \ > +bindings/eet_cxx/eet_tuple.hh \ > +bindings/eet_cxx/eet_type.hh > + > +### Unit tests > + > +if EFL_ENABLE_TESTS > +if HAVE_CXX11 > + > +check_PROGRAMS += tests/eet_cxx/eet_cxx_suite > +TESTS += tests/eet_cxx/eet_cxx_suite > + > +tests_eet_cxx_eet_cxx_suite_SOURCES = \ > +tests/eet_cxx/eet_cxx_suite.cc \ > +tests/eet_cxx/eet_cxx_test_descriptors.cc > + > +tests_eet_cxx_eet_cxx_suite_CPPFLAGS = \ > +-I$(top_builddir)/src/lib/efl \ > +-I$(top_builddir)/src/bindings/eina_cxx \ > +-I$(top_builddir)/src/bindings/eet_cxx \ > +-I$(top_srcdir)/src/bindings/eina_cxx \ > +-I$(top_srcdir)/src/bindings/eet_cxx \ > +-DTESTS_WD=\"`pwd`\" \ > +-DTESTS_SRC_DIR=\"$(top_srcdir)/src/tests/eet_cxx\" \ > +-DTESTS_BUILD_DIR=\"$(top_builddir)/src/tests/eet_cxx\" \ > +@CHECK_CFLAGS@ \ > +@EET_CFLAGS@ > +tests_eet_cxx_eet_cxx_suite_LDADD = @CHECK_LIBS@ @USE_EET_LIBS@ > +tes
[EGIT] [core/efl] master 01/01: Eo: all classes are allowed in extension list.
tasn pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=8955c514c78fad4022ceeea69370ff3c655b4102 commit 8955c514c78fad4022ceeea69370ff3c655b4102 Author: Tom Hacohen Date: Tue Apr 1 14:21:48 2014 +0100 Eo: all classes are allowed in extension list. All classes are allowed, because all classes can be used as interfaces in order to override behaviour. This is especially needed for mixins and broke the eo2 tests. --- src/lib/eo/eo.c | 4 1 file changed, 4 deletions(-) diff --git a/src/lib/eo/eo.c b/src/lib/eo/eo.c index 17b453c..7842aa8 100644 --- a/src/lib/eo/eo.c +++ b/src/lib/eo/eo.c @@ -832,10 +832,6 @@ eo_class_new(const Eo_Class_Description *desc, const Eo_Class *parent_id, ...) switch (extn->desc->type) { case EO_CLASS_TYPE_REGULAR_NO_INSTANT: - ERR("Regular non-instantiable classes ('%s') aren't allowed in class ('%s') extension list", - extn->desc->name, desc->name); - va_end(p_list); - return NULL; case EO_CLASS_TYPE_REGULAR: case EO_CLASS_TYPE_INTERFACE: case EO_CLASS_TYPE_MIXIN: --
Re: [E-devel] [EGIT] [core/efl] master 09/32: evas: add a tgv loader.
You introduced a shitload of warnings. -g3 -O0 -Wall -Wextra -Wshadow -Wno-type-limits -Wpointer-arith -fvisibility=hidden On 01/04/14 14:01, Cedric BAIL wrote: > cedric pushed a commit to branch master. > > http://git.enlightenment.org/core/efl.git/commit/?id=961ecab040669ad2b181ece230e467ae708be8f8 > > commit 961ecab040669ad2b181ece230e467ae708be8f8 > Author: Cedric BAIL > Date: Tue Mar 11 19:08:40 2014 +0900 > > evas: add a tgv loader. > > The TGV file format is specifically created for Evas. It is designed to > allow > region decompression and parallele decompression with a fast path for > GPU that > do handle ETC1 compression. Plan for adding other compression method > will come > later. > --- > configure.ac | 2 + > m4/evas_check_loader.m4| 16 + > src/Makefile_Evas.am | 52 +++ > src/lib/evas/common/evas_image_load.c | 3 + > src/lib/evas/file/evas_module.c| 4 + > src/modules/evas/loaders/tgv/evas_image_load_tgv.c | 359 > + > 6 files changed, 436 insertions(+) > > diff --git a/configure.ac b/configure.ac > index 3642b96..a848345 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -1419,6 +1419,7 @@ ARG_ENABLE_EVAS_IMAGE_LOADER(Tiff, yes) > ARG_ENABLE_EVAS_IMAGE_LOADER(WBMP, static) > ARG_ENABLE_EVAS_IMAGE_LOADER(WEBP, no) > ARG_ENABLE_EVAS_IMAGE_LOADER(XPM, static) > +ARG_ENABLE_EVAS_IMAGE_LOADER(TGV, static) > > ### Default values > > @@ -1700,6 +1701,7 @@ EVAS_CHECK_IMAGE_LOADER([Tiff], > [${want_evas_image_loader_tiff}]) > EVAS_CHECK_IMAGE_LOADER([WBMP],[${want_evas_image_loader_wbmp}]) > EVAS_CHECK_IMAGE_LOADER([WEBP],[${want_evas_image_loader_webp}]) > EVAS_CHECK_IMAGE_LOADER([XPM], [${want_evas_image_loader_xpm}]) > +EVAS_CHECK_IMAGE_LOADER([TGV], [${want_evas_image_loader_tgv}]) > > dnl Windows has no sigsetjmp function, nor equivalent. > dnl So we disable the jpeg saver. > diff --git a/m4/evas_check_loader.m4 b/m4/evas_check_loader.m4 > index b34c28f..07d9cdd 100644 > --- a/m4/evas_check_loader.m4 > +++ b/m4/evas_check_loader.m4 > @@ -341,6 +341,22 @@ AS_IF([test "x${have_dep}" = "xyes"], [$3], [$4]) > > ]) > > +dnl use: EVAS_CHECK_LOADER_DEP_TGV(loader, want_static[, ACTION-IF-FOUND[, > ACTION-IF-NOT-FOUND]]) > + > +AC_DEFUN([EVAS_CHECK_LOADER_DEP_TGV], > +[ > + > +have_dep="yes" > +evas_image_loader_[]$1[]_cflags="" > +evas_image_loader_[]$1[]_libs="" > + > +AC_SUBST([evas_image_loader_$1_cflags]) > +AC_SUBST([evas_image_loader_$1_libs]) > + > +AS_IF([test "x${have_dep}" = "xyes"], [$3], [$4]) > + > +]) > + > dnl use: EVAS_CHECK_LOADER_DEP_SVG(loader, want_static[, ACTION-IF-FOUND[, > ACTION-IF-NOT-FOUND]]) > > AC_DEFUN([EVAS_CHECK_LOADER_DEP_SVG], > diff --git a/src/Makefile_Evas.am b/src/Makefile_Evas.am > index 6132592..5f07710 100644 > --- a/src/Makefile_Evas.am > +++ b/src/Makefile_Evas.am > @@ -1712,6 +1712,58 @@ modules_evas_loaders_xpm_module_la_LIBTOOLFLAGS = > --tag=disable-static > endif > endif > > +if BUILD_LOADER_TGV > +if EVAS_STATIC_BUILD_TGV > +lib_evas_libevas_la_SOURCES += \ > +modules/evas/loaders/tgv/evas_image_load_tgv.c \ > +static_libs/rg_etc/rg_etc1.c \ > +static_libs/rg_etc/rg_etc1.h \ > +static_libs/lz4/lz4.c \ > +static_libs/lz4/lz4.h > +lib_evas_libevas_la_CPPFLAGS += \ > +-I$(top_srcdir)/src/static_libs/lz4 \ > +-I$(top_srcdir)/src/static_libs/rg_etc \ > +@evas_image_loader_tgv_cflags@ > +lib_evas_libevas_la_LIBADD += @evas_image_loader_tgv_libs@ > +if EVAS_CSERVE2 > +bin_evas_evas_cserve2_slave_SOURCES += \ > +modules/evas/loaders/tgv/evas_image_load_tgv.c \ > +static_libs/rg_etc/rg_etc1.c \ > +static_libs/rg_etc/rg_etc1.h \ > +static_libs/lz4/lz4.c \ > +static_libs/lz4/lz4.h > +bin_evas_evas_cserve2_slave_CPPFLAGS += \ > +-I$(top_builddir)/src/lib/efl \ > +-I$(top_srcdir)/src/static_libs/lz4 \ > +-I$(top_srcdir)/src/static_libs/rg_etc \ > +-I$(top_srcdir)/src/lib/evas/ \ > +@evas_image_loader_tgv_cflags@ > +bin_evas_evas_cserve2_slave_LDADD += @evas_image_loader_tgv_libs@ > +endif > +else > +loadertgvpkgdir = $(libdir)/evas/modules/loaders/tgv/$(MODULE_ARCH) > +loadertgvpkg_LTLIBRARIES = modules/evas/loaders/tgv/module.la > +modules_evas_loaders_tgv_module_la_SOURCES = \ > +modules/evas/loaders/tgv/evas_image_load_tgv.c \ > +static_libs/rg_etc/rg_etc1.c \ > +static_libs/rg_etc/rg_etc1.h \ > +static_libs/lz4/lz4.c \ > +static_libs/lz4/lz4.h > +modules_evas_loaders_tgv_module_la_CPPFLAGS = \ > +-I$(top_builddir)/src/lib/efl \ > +-I$(top_srcdir)/src/static_libs/lz4 \ > +-I$(top_srcdir)/src/static_libs/rg_etc \ > +-I$(top_srcdir)/src/lib/evas/ \ > +@EVAS_CFLAGS@ \ > +@evas_image_loader_tgv_cflags@ > +modules_evas_loaders_tgv_module_la_LIBADD = \ > +@USE_EVAS_LIBS@ \ > +@evas_image_loader_tgv_libs@ > +modules_evas_loaders_tgv_module_la_DEPENDENCIES = @USE_EVAS_INTERNAL_LIBS@ > +modules_evas_loaders_tgv_module_l
Re: [E-devel] EFL and Elementary technology preview for 1.10
On 01/04/14 13:53, Stefan Schmidt wrote: > We have finished our first round of merge and stabilization phase and are now > in the second and last cycle for 1.10. This could be a good time to put > together what we have so far for packagers to test. Please provide feedback > of this is useful for you or if you are fine with waiting for the first alpha > release which would happen right after the second merge window closes. > > This should not be considered a full release but more a current snapshot of > what will await you for 1.10 > > New features for EFL would include: > * eina: add eina_inarray_resize @feature. > * eina: add eina_accessor_clone and update all Eina_Accessor to take > advantage of it. > * eina: add a C++ bindings to Eina @feature. > * @feature - Apply NEON intrisics improvement to rotation > * Evas textblock: Implemented mid-contextualization formatting. > * evas-drm: Add evas_drm to build order for Evas drm engine > * evas-drm: Add Evas Drm Engine (software only currently) > * evas-drm: Add option to enable drm hardware acceleration > * evas-drm: Start on hardware-accel support for drm > * evas-drm: Triple buffer by default. > * evas-drm: Fix opening of drm card > * evas-drm: Start on hardware Plane support * evas-drm: Add > vsync/non-vsync support to evas_drm code > * evas-drm: Ddd support for setting vsync with env variable. > * edje: @feature to include license in edje file. (T1027) > * edje: add support of last input entered in password mode to be always > visible in entry. > * eio: make it possible to limit the amount of memory used by threads. > * eina: make Eina_Error thread safe. > * edje: add AUTHORS and more than one license file to Edje. > * ecore-drm: Add Ecore_Drm code > * ecore-drm: Add configure.ac autofoo for ecore-drm > * Eet: Added vieet a tool to edit eet files. > * eina-cxx: Added eina_log support for C++, using IOStreams syntax > * ecore-drm: Add API function to return the vt fd > * ecore-drm: Add dependency on xkbcommon > * ecore-drm: Add code pass along key events to ecore_event > * ecore-drm: Set the window of the Ecore_Event_Key structure > * ecore-drm: Add code to handle modifiers in a key event > * ecore-drm: Add code to handle mouse input > * ecore-drm: Add code to handle modifiers in a key event > * ecore-drm: Add code to handle mouse input > * evas/font: Added evas_font_path_global_* APIs. > * Eo: Made eo id for classes a bit more secure. > * ecore-drm: Add API function to return the drm device name > * ecore-evas-drm: Add support for resize and move callbacks > * ecore-evas-drm: Add support for setting focus_in & focus_out callbacks > * ecore-evas-drm: Add support for setting the mouse in & mouse out > callbacks of the ecore_evas > * ecore-evas-drm: Add support for ecore_evas_move function > * ecore-evas-drm: Add support for ecore_evas_move_resize > * ecore-evas-drm: Add support for rotation set > * ecore-evas-drm: Add support for setting the title of the ecore_evas > * ecore-evas-drm: Add support for ecore_evas_name_class_set > * ecore-evas-drm: Add support for setting size hints > * ecore-evas-drm: Add support for ecore_evas_object_cursor_set > * ecore-evas-drm: Add support for ecore_evas_layer_set > * ecore-evas-drm: Add support for ecore_evas_iconified_set > * ecore-evas-drm: Add support for ecore_evas_borderless_set > * ecore-evas-drm: Add support for maximized, fullscreen, withdrawn, and > ignore_events settings > * ecore-evas-drm: Add support for alpha & transparent setting > * ecore-evas-drm: Add support for setting aspect of ecore_evas > * edje_cc now supports program.targets keyword for adding N targets in > one line > * edje_cc now supports group.remove for removing parts from inherited > groups > * edje_cc now supports part.inherit for copying attributes of parts > within a group more easily > * eeze_udev gets more helper functions > * edje_cc now supports program.sequence for more easily chaining programs > together > * edje_cc can now use group.program_remove to remove inherited programs > * edje_edit: function that will return the source code of the loaded edje > edit object. > > New features for Elementary so far: > * popup: implemented widget item focus feauture. > * list: implemented widget item focus feature. > * list: Added descriptions for the newly introduced > item,focused/item,unfocused smart callbacks. > * popup: Added descriptions for the newly introduced > item,focused/item,unfocused smart callbacks. > * hoversel: Added "item,focused" and "item,unfocused" smart events for > widget items. > * win - add accel preference option to elm windows > * focus: Added focus highlight clip disable feature. (T1056) > * focus: Added optional focus feature - focus movement by
Re: [E-devel] [EGIT] [core/elementary] master 01/01: calendar, colorselector, diskselector: fix build warnings
Thank you, miss! You can rest now ;-) On 04/01/2014 04:21 PM, Jaeun Choi wrote: > seoz pushed a commit to branch master. > > http://git.enlightenment.org/core/elementary.git/commit/?id=53ccaffb63aefc544199961e962c26aa9a9cb6fd > > commit 53ccaffb63aefc544199961e962c26aa9a9cb6fd > Author: Jaeun Choi > Date: Tue Apr 1 22:20:58 2014 +0900 > > calendar, colorselector, diskselector: fix build warnings > > Summary: This patch fixed build warnings in calendar, colorselector and > diskselector. > > Test Plan: make > > Reviewers: Hermet > > Differential Revision: https://phab.enlightenment.org/D685 > --- > src/lib/elm_calendar.c | 4 ++-- > src/lib/elm_colorselector.c | 6 +- > src/lib/elm_diskselector.c | 2 +- > 3 files changed, 4 insertions(+), 8 deletions(-) > > diff --git a/src/lib/elm_calendar.c b/src/lib/elm_calendar.c > index deccb47..b22cc94 100644 > --- a/src/lib/elm_calendar.c > +++ b/src/lib/elm_calendar.c > @@ -858,7 +858,7 @@ static Eina_Bool > _key_action_move(Evas_Object *obj, const char *params) > { > ELM_CALENDAR_DATA_GET(obj, sd); > - char *dir = params; > + const char *dir = params; > > if (!strcmp(dir, "prior")) >{ > @@ -908,7 +908,7 @@ _key_action_move(Evas_Object *obj, const char *params) > } > > EOLIAN static Eina_Bool > -_elm_calendar_elm_widget_event(Eo *obj, Elm_Calendar_Data *sd, Evas_Object > *src, Evas_Callback_Type type, void *event_info) > +_elm_calendar_elm_widget_event(Eo *obj, Elm_Calendar_Data *sd EINA_UNUSED, > Evas_Object *src, Evas_Callback_Type type, void *event_info) > { > (void) src; > Evas_Event_Key_Down *ev = event_info; > diff --git a/src/lib/elm_colorselector.c b/src/lib/elm_colorselector.c > index d908a79..e94d86e 100644 > --- a/src/lib/elm_colorselector.c > +++ b/src/lib/elm_colorselector.c > @@ -1670,7 +1670,7 @@ _key_action_move(Evas_Object *obj, const char *params) > Eina_List *cl = NULL; > Elm_Color_Item *item = NULL; > char colorbar_s[128]; > - char *dir = params; > + const char *dir = params; > > if (!strcmp(dir, "left")) >{ > @@ -1764,10 +1764,6 @@ EOLIAN static Eina_Bool > _elm_colorselector_elm_widget_event(Eo *obj, Elm_Colorselector_Data *sd, > Evas_Object *src, Evas_Callback_Type type, void *event_info) > { > Evas_Event_Key_Down *ev = event_info; > - Eina_List *cl = NULL; > - Elm_Color_Item *item = NULL; > - char colorbar_s[128]; > - > (void) src; > > if (elm_widget_disabled_get(obj)) return EINA_FALSE; > diff --git a/src/lib/elm_diskselector.c b/src/lib/elm_diskselector.c > index 2193cfb..4c24bf5 100644 > --- a/src/lib/elm_diskselector.c > +++ b/src/lib/elm_diskselector.c > @@ -931,7 +931,7 @@ _key_action_move(Evas_Object *obj, const char *params) > ELM_DISKSELECTOR_DATA_GET(obj, sd); > Elm_Diskselector_Item *it = NULL; > Eina_List *l = NULL; > - char *dir = params; > + const char *dir = params; > > if (!strcmp(dir, "prev")) >{ > -- ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/elementary] master 01/01: calendar, colorselector, diskselector: fix build warnings
seoz pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=53ccaffb63aefc544199961e962c26aa9a9cb6fd commit 53ccaffb63aefc544199961e962c26aa9a9cb6fd Author: Jaeun Choi Date: Tue Apr 1 22:20:58 2014 +0900 calendar, colorselector, diskselector: fix build warnings Summary: This patch fixed build warnings in calendar, colorselector and diskselector. Test Plan: make Reviewers: Hermet Differential Revision: https://phab.enlightenment.org/D685 --- src/lib/elm_calendar.c | 4 ++-- src/lib/elm_colorselector.c | 6 +- src/lib/elm_diskselector.c | 2 +- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/src/lib/elm_calendar.c b/src/lib/elm_calendar.c index deccb47..b22cc94 100644 --- a/src/lib/elm_calendar.c +++ b/src/lib/elm_calendar.c @@ -858,7 +858,7 @@ static Eina_Bool _key_action_move(Evas_Object *obj, const char *params) { ELM_CALENDAR_DATA_GET(obj, sd); - char *dir = params; + const char *dir = params; if (!strcmp(dir, "prior")) { @@ -908,7 +908,7 @@ _key_action_move(Evas_Object *obj, const char *params) } EOLIAN static Eina_Bool -_elm_calendar_elm_widget_event(Eo *obj, Elm_Calendar_Data *sd, Evas_Object *src, Evas_Callback_Type type, void *event_info) +_elm_calendar_elm_widget_event(Eo *obj, Elm_Calendar_Data *sd EINA_UNUSED, Evas_Object *src, Evas_Callback_Type type, void *event_info) { (void) src; Evas_Event_Key_Down *ev = event_info; diff --git a/src/lib/elm_colorselector.c b/src/lib/elm_colorselector.c index d908a79..e94d86e 100644 --- a/src/lib/elm_colorselector.c +++ b/src/lib/elm_colorselector.c @@ -1670,7 +1670,7 @@ _key_action_move(Evas_Object *obj, const char *params) Eina_List *cl = NULL; Elm_Color_Item *item = NULL; char colorbar_s[128]; - char *dir = params; + const char *dir = params; if (!strcmp(dir, "left")) { @@ -1764,10 +1764,6 @@ EOLIAN static Eina_Bool _elm_colorselector_elm_widget_event(Eo *obj, Elm_Colorselector_Data *sd, Evas_Object *src, Evas_Callback_Type type, void *event_info) { Evas_Event_Key_Down *ev = event_info; - Eina_List *cl = NULL; - Elm_Color_Item *item = NULL; - char colorbar_s[128]; - (void) src; if (elm_widget_disabled_get(obj)) return EINA_FALSE; diff --git a/src/lib/elm_diskselector.c b/src/lib/elm_diskselector.c index 2193cfb..4c24bf5 100644 --- a/src/lib/elm_diskselector.c +++ b/src/lib/elm_diskselector.c @@ -931,7 +931,7 @@ _key_action_move(Evas_Object *obj, const char *params) ELM_DISKSELECTOR_DATA_GET(obj, sd); Elm_Diskselector_Item *it = NULL; Eina_List *l = NULL; - char *dir = params; + const char *dir = params; if (!strcmp(dir, "prev")) { --
[E-devel] EFL and Elementary technology preview for 1.10
We have finished our first round of merge and stabilization phase and are now in the second and last cycle for 1.10. This could be a good time to put together what we have so far for packagers to test. Please provide feedback of this is useful for you or if you are fine with waiting for the first alpha release which would happen right after the second merge window closes. This should not be considered a full release but more a current snapshot of what will await you for 1.10 New features for EFL would include: * eina: add eina_inarray_resize @feature. * eina: add eina_accessor_clone and update all Eina_Accessor to take advantage of it. * eina: add a C++ bindings to Eina @feature. * @feature - Apply NEON intrisics improvement to rotation * Evas textblock: Implemented mid-contextualization formatting. * evas-drm: Add evas_drm to build order for Evas drm engine * evas-drm: Add Evas Drm Engine (software only currently) * evas-drm: Add option to enable drm hardware acceleration * evas-drm: Start on hardware-accel support for drm * evas-drm: Triple buffer by default. * evas-drm: Fix opening of drm card * evas-drm: Start on hardware Plane support * evas-drm: Add vsync/non-vsync support to evas_drm code * evas-drm: Ddd support for setting vsync with env variable. * edje: @feature to include license in edje file. (T1027) * edje: add support of last input entered in password mode to be always visible in entry. * eio: make it possible to limit the amount of memory used by threads. * eina: make Eina_Error thread safe. * edje: add AUTHORS and more than one license file to Edje. * ecore-drm: Add Ecore_Drm code * ecore-drm: Add configure.ac autofoo for ecore-drm * Eet: Added vieet a tool to edit eet files. * eina-cxx: Added eina_log support for C++, using IOStreams syntax * ecore-drm: Add API function to return the vt fd * ecore-drm: Add dependency on xkbcommon * ecore-drm: Add code pass along key events to ecore_event * ecore-drm: Set the window of the Ecore_Event_Key structure * ecore-drm: Add code to handle modifiers in a key event * ecore-drm: Add code to handle mouse input * ecore-drm: Add code to handle modifiers in a key event * ecore-drm: Add code to handle mouse input * evas/font: Added evas_font_path_global_* APIs. * Eo: Made eo id for classes a bit more secure. * ecore-drm: Add API function to return the drm device name * ecore-evas-drm: Add support for resize and move callbacks * ecore-evas-drm: Add support for setting focus_in & focus_out callbacks * ecore-evas-drm: Add support for setting the mouse in & mouse out callbacks of the ecore_evas * ecore-evas-drm: Add support for ecore_evas_move function * ecore-evas-drm: Add support for ecore_evas_move_resize * ecore-evas-drm: Add support for rotation set * ecore-evas-drm: Add support for setting the title of the ecore_evas * ecore-evas-drm: Add support for ecore_evas_name_class_set * ecore-evas-drm: Add support for setting size hints * ecore-evas-drm: Add support for ecore_evas_object_cursor_set * ecore-evas-drm: Add support for ecore_evas_layer_set * ecore-evas-drm: Add support for ecore_evas_iconified_set * ecore-evas-drm: Add support for ecore_evas_borderless_set * ecore-evas-drm: Add support for maximized, fullscreen, withdrawn, and ignore_events settings * ecore-evas-drm: Add support for alpha & transparent setting * ecore-evas-drm: Add support for setting aspect of ecore_evas * edje_cc now supports program.targets keyword for adding N targets in one line * edje_cc now supports group.remove for removing parts from inherited groups * edje_cc now supports part.inherit for copying attributes of parts within a group more easily * eeze_udev gets more helper functions * edje_cc now supports program.sequence for more easily chaining programs together * edje_cc can now use group.program_remove to remove inherited programs * edje_edit: function that will return the source code of the loaded edje edit object. New features for Elementary so far: * popup: implemented widget item focus feauture. * list: implemented widget item focus feature. * list: Added descriptions for the newly introduced item,focused/item,unfocused smart callbacks. * popup: Added descriptions for the newly introduced item,focused/item,unfocused smart callbacks. * hoversel: Added "item,focused" and "item,unfocused" smart events for widget items. * win - add accel preference option to elm windows * focus: Added focus highlight clip disable feature. (T1056) * focus: Added optional focus feature - focus movement by mouse_in. * toolbar: implemented widget item focus feature. * Eolian integration Download http://download.enlightenment.org/rel/libs/efl/efl-1.10.0-tech-preview.tar.gz 4b22504e9eadb1079ebc774c0d95717b262c585c64ab3a78a6840b1dfb059387 http://download.enlightenment.org/rel/l
Re: [E-devel] [EGIT] [core/efl] master 10/32: evas: add TGV saver module.
modules/evas/savers/tgv/.libs/lib_evas_libevas_la-evas_image_save_tgv.o:(.data.rel.__eina_module_init+0x0): multiple definition of `__eina_module_init' modules/evas/loaders/tgv/.libs/lib_evas_libevas_la-evas_image_load_tgv.o:(.data.rel.__eina_module_init+0x0): first defined here On 01/04/14 14:01, Cedric BAIL wrote: > cedric pushed a commit to branch master. > > http://git.enlightenment.org/core/efl.git/commit/?id=0609779f1701b04c51032e62e284fee66db0bb14 > > commit 0609779f1701b04c51032e62e284fee66db0bb14 > Author: Cedric BAIL > Date: Wed Mar 12 16:32:17 2014 +0900 > > evas: add TGV saver module. > --- > src/Makefile_Evas.am | 23 +++ > src/lib/evas/common/evas_image_save.c | 2 + > src/lib/evas/file/evas_module.c | 4 + > src/modules/evas/savers/tgv/evas_image_save_tgv.c | 186 > ++ > 4 files changed, 215 insertions(+) > > diff --git a/src/Makefile_Evas.am b/src/Makefile_Evas.am > index 5f07710..18ac68f 100644 > --- a/src/Makefile_Evas.am > +++ b/src/Makefile_Evas.am > @@ -1716,6 +1716,7 @@ if BUILD_LOADER_TGV > if EVAS_STATIC_BUILD_TGV > lib_evas_libevas_la_SOURCES += \ > modules/evas/loaders/tgv/evas_image_load_tgv.c \ > +modules/evas/savers/tgv/evas_image_save_tgv.c \ > static_libs/rg_etc/rg_etc1.c \ > static_libs/rg_etc/rg_etc1.h \ > static_libs/lz4/lz4.c \ > @@ -1762,6 +1763,28 @@ modules_evas_loaders_tgv_module_la_LIBADD = \ > modules_evas_loaders_tgv_module_la_DEPENDENCIES = @USE_EVAS_INTERNAL_LIBS@ > modules_evas_loaders_tgv_module_la_LDFLAGS = -module @EFL_LTMODULE_FLAGS@ > modules_evas_loaders_tgv_module_la_LIBTOOLFLAGS = --tag=disable-static > + > +savertgvpkgdir = $(libdir)/evas/modules/savers/tgv/$(MODULE_ARCH) > +savertgvpkg_LTLIBRARIES = modules/evas/savers/tgv/module.la > +modules_evas_savers_tgv_module_la_SOURCES = \ > +modules/evas/savers/tgv/evas_image_load_tgv.c \ > +static_libs/rg_etc/rg_etc1.c \ > +static_libs/rg_etc/rg_etc1.h \ > +static_libs/lz4/lz4.c \ > +static_libs/lz4/lz4.h > +modules_evas_savers_tgv_module_la_CPPFLAGS = \ > +-I$(top_builddir)/src/lib/efl \ > +-I$(top_srcdir)/src/static_libs/lz4 \ > +-I$(top_srcdir)/src/static_libs/rg_etc \ > +-I$(top_srcdir)/src/lib/evas/ \ > +@EVAS_CFLAGS@ \ > +@evas_image_saver_tgv_cflags@ > +modules_evas_savers_tgv_module_la_LIBADD = \ > +@USE_EVAS_LIBS@ \ > +@evas_image_saver_tgv_libs@ > +modules_evas_savers_tgv_module_la_DEPENDENCIES = @USE_EVAS_INTERNAL_LIBS@ > +modules_evas_savers_tgv_module_la_LDFLAGS = -module @EFL_LTMODULE_FLAGS@ > +modules_evas_savers_tgv_module_la_LIBTOOLFLAGS = --tag=disable-static > endif > endif > > diff --git a/src/lib/evas/common/evas_image_save.c > b/src/lib/evas/common/evas_image_save.c > index 1de5e6d..0d1cdc5 100644 > --- a/src/lib/evas/common/evas_image_save.c > +++ b/src/lib/evas/common/evas_image_save.c > @@ -30,6 +30,8 @@ evas_common_save_image_to_file(RGBA_Image *im, const char > *file, const char *key > saver = "eet"; > if (!strcasecmp(p, "webp")) > saver = "webp"; > +if (!strcasecmp(p, "tgv")) > + saver = "tgv"; >} > > if (saver) > diff --git a/src/lib/evas/file/evas_module.c b/src/lib/evas/file/evas_module.c > index 6cb5dc6..77fec09 100644 > --- a/src/lib/evas/file/evas_module.c > +++ b/src/lib/evas/file/evas_module.c > @@ -149,6 +149,7 @@ EVAS_EINA_STATIC_MODULE_DEFINE(image_saver, jpeg); > EVAS_EINA_STATIC_MODULE_DEFINE(image_saver, png); > EVAS_EINA_STATIC_MODULE_DEFINE(image_saver, tiff); > EVAS_EINA_STATIC_MODULE_DEFINE(image_saver, webp); > +EVAS_EINA_STATIC_MODULE_DEFINE(image_saver, tgv); > #endif > > static const struct { > @@ -253,6 +254,9 @@ static const struct { > #ifdef EVAS_STATIC_BUILD_WEBP > EVAS_EINA_STATIC_MODULE_USE(image_saver, webp), > #endif > +#ifdef EVAS_STATIC_BUILD_TGV > + EVAS_EINA_STATIC_MODULE_USE(image_saver, tgv), > +#endif > #endif > { NULL, NULL } > }; > diff --git a/src/modules/evas/savers/tgv/evas_image_save_tgv.c > b/src/modules/evas/savers/tgv/evas_image_save_tgv.c > new file mode 100644 > index 000..5ccbed4 > --- /dev/null > +++ b/src/modules/evas/savers/tgv/evas_image_save_tgv.c > @@ -0,0 +1,186 @@ > +#include "evas_common_private.h" > +#include "evas_private.h" > + > +#ifdef HAVE_NETINET_IN_H > +# include > +#endif > + > +#ifdef _WIN32 > +# include > +#endif /* ifdef _WIN32 */ > + > +#include "lz4.h" > +#include "rg_etc1.h" > + > +static int > +evas_image_save_file_tgv(RGBA_Image *im, > + const char *file, const char *key EINA_UNUSED, > + int quality, int compress) > +{ > + rg_etc1_pack_params param; > + FILE *f; > + char *comp; > + char *buffer; > + uint32_t *data; > + uint32_t width, height; > + uint8_t header[8] = "TGV1"; > + unsigned int block; > + unsigned int x, y; > + unsigned int compress_length; > + unsigned int block_count; > + > + if (!im || !im->image.data |
[EGIT] [core/efl] master 23/32: evas: fix png loader to actually produce lower resolution content when asked.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=6988a38a7b67548c225a88ed3d9e1adcdadaa067 commit 6988a38a7b67548c225a88ed3d9e1adcdadaa067 Author: Cedric BAIL Date: Fri Mar 21 10:47:03 2014 +0900 evas: fix png loader to actually produce lower resolution content when asked. --- src/modules/evas/loaders/png/evas_image_load_png.c | 46 +- 1 file changed, 28 insertions(+), 18 deletions(-) diff --git a/src/modules/evas/loaders/png/evas_image_load_png.c b/src/modules/evas/loaders/png/evas_image_load_png.c index f243a0d..d2e84c3 100644 --- a/src/modules/evas/loaders/png/evas_image_load_png.c +++ b/src/modules/evas/loaders/png/evas_image_load_png.c @@ -210,7 +210,6 @@ evas_image_load_file_data_png(void *loader_data, Eina_File *f; unsigned char *surface; - unsigned char **lines; unsigned char *tmp_line; png_structp png_ptr = NULL; png_infop info_ptr = NULL; @@ -293,7 +292,12 @@ evas_image_load_file_data_png(void *loader_data, } surface = pixels; - if (png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)) hasa = 1; + if (png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)) + { +/* expand transparency entry -> alpha channel if present */ +png_set_tRNS_to_alpha(png_ptr); +hasa = 1; + } if (color_type == PNG_COLOR_TYPE_RGB_ALPHA) hasa = 1; if (color_type == PNG_COLOR_TYPE_GRAY_ALPHA) hasa = 1; if (hasa) prop->alpha = 1; @@ -309,9 +313,6 @@ evas_image_load_file_data_png(void *loader_data, png_set_gray_to_rgb(png_ptr); if (bit_depth < 8) png_set_expand_gray_1_2_4_to_8(png_ptr); } - /* expand transparency entry -> alpha channel if present */ - if (png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)) - png_set_tRNS_to_alpha(png_ptr); /* reduce 16bit color -> 8bit color if necessary */ if (bit_depth > 8) png_set_strip_16(png_ptr); /* pack all pixels to byte boundaries */ @@ -319,30 +320,39 @@ evas_image_load_file_data_png(void *loader_data, w = w32; h = h32; - /* we want ARGB */ -#ifdef WORDS_BIGENDIAN - png_set_swap_alpha(png_ptr); - if (!hasa) png_set_filler(png_ptr, 0xff, PNG_FILLER_BEFORE); -#else - png_set_bgr(png_ptr); - if (!hasa) png_set_filler(png_ptr, 0xff, PNG_FILLER_AFTER); -#endif switch (prop->cspace) { - case EVAS_COLORSPACE_ARGB: pack_offset = sizeof(DATA32); break; + case EVAS_COLORSPACE_ARGB: + /* we want ARGB */ +#ifdef WORDS_BIGENDIAN + png_set_swap_alpha(png_ptr); + if (!hasa) png_set_filler(png_ptr, 0xff, PNG_FILLER_BEFORE); +#else + png_set_bgr(png_ptr); + if (!hasa) png_set_filler(png_ptr, 0xff, PNG_FILLER_AFTER); +#endif + pack_offset = sizeof(DATA32); + break; + case EVAS_COLORSPACE_AGRY88: + /* we want AGRY */ +#ifdef WORDS_BIGENDIAN + png_set_swap_alpha(png_ptr); + if (!hasa) png_set_filler(png_ptr, 0xff, PNG_FILLER_BEFORE); +#else + if (!hasa) png_set_filler(png_ptr, 0xff, PNG_FILLER_AFTER); +#endif + pack_offset = sizeof(DATA16); + break; case EVAS_COLORSPACE_GRY8: pack_offset = sizeof(DATA8); break; - case EVAS_COLORSPACE_AGRY88: pack_offset = sizeof(DATA16); break; default: abort(); } /* we read image line by line if scale down was set */ if (scale_ratio == 1) { -lines = (unsigned char **) alloca(h * sizeof(unsigned char *)); for (i = 0; i < h; i++) - lines[i] = surface + (i * w * pack_offset); -png_read_image(png_ptr, lines); + png_read_row(png_ptr, surface + (i * w * pack_offset), NULL); png_read_end(png_ptr, info_ptr); } else --
[EGIT] [core/efl] master 24/32: evas: don't forget that we can allocate AGRY8 now.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=516ee8c99e1bba881a327fcfb4c3448c174d5482 commit 516ee8c99e1bba881a327fcfb4c3448c174d5482 Author: Cedric BAIL Date: Fri Mar 21 10:48:04 2014 +0900 evas: don't forget that we can allocate AGRY8 now. --- src/lib/evas/common/evas_image_main.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib/evas/common/evas_image_main.c b/src/lib/evas/common/evas_image_main.c index 5ac91cc..f4302b1 100644 --- a/src/lib/evas/common/evas_image_main.c +++ b/src/lib/evas/common/evas_image_main.c @@ -124,6 +124,7 @@ _evas_common_rgba_image_surface_size(unsigned int w, unsigned int h, Evas_Colors switch (cspace) { case EVAS_COLORSPACE_GRY8: siz = w * h * sizeof(DATA8); break; + case EVAS_COLORSPACE_AGRY88: siz = w * h * sizeof(DATA16); break; case EVAS_COLORSPACE_ARGB: siz = w * h * sizeof(DATA32); break; case EVAS_COLORSPACE_ETC1: // Need to round width and height independently --
[EGIT] [core/efl] master 08/32: rg_etc: fix warning and remove assert.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=4eb983614cf4d251426e2020ff17c3de403fa848 commit 4eb983614cf4d251426e2020ff17c3de403fa848 Author: Cedric BAIL Date: Tue Mar 11 19:08:17 2014 +0900 rg_etc: fix warning and remove assert. --- src/static_libs/rg_etc/rg_etc1.c | 169 ++- 1 file changed, 94 insertions(+), 75 deletions(-) diff --git a/src/static_libs/rg_etc/rg_etc1.c b/src/static_libs/rg_etc/rg_etc1.c index 0550d40..af50b6f 100644 --- a/src/static_libs/rg_etc/rg_etc1.c +++ b/src/static_libs/rg_etc/rg_etc1.c @@ -12,9 +12,10 @@ #include #include -#include #include +#include "Eina.h" + #include "rg_etc1.h" #if defined(_DEBUG) || defined(DEBUG) @@ -28,10 +29,6 @@ typedef unsigned int uint; typedef unsigned int uint32; typedef unsigned char DATA8; -#define false 0 -#define true 1 -#define RG_ETC1_ASSERT assert - #define MIN(A, B) ((A < B) ? A : B) #define MAX(A, B) ((A > B) ? A : B) #define CLAMP(Value, Low, High) ((Value < Low) ? Low : ((Value > High) ? High : Value)) @@ -126,9 +123,6 @@ enum RG_Etc_Constants #define RG_VAL(p) ((DATA16 *)(p)[1]) #endif -//#define ARGB_JOIN(a,r,g,b) \ -// (((a) << 24) + ((r) << 16) + ((g) << 8) + (b)) - #define ARGB_JOIN(a,r,g,b) \ (((a) << 24) + ((b) << 16) + ((g) << 8) + (r)) static unsigned char rg_etc_quant5_tab[256 + 16]; @@ -579,7 +573,7 @@ rg_etc1_color_quad_clamp(unsigned int color, unsigned int low, unsigned high) unsigned int i; for (i = 0; i < 4; i++) - c[i] = clamp(c[i], l[i], h[i]); + c[i] = CLAMP(c[i], l[i], h[i]); return color; } @@ -591,7 +585,7 @@ rg_etc1_color_quad_component_clamp(unsigned int color, unsigned int low, unsigne unsigned int i; for (i = 0; i < 4; i++) - c[i] = clamp(c[i], low, high); + c[i] = CLAMP(c[i], low, high); return color; } @@ -659,7 +653,7 @@ rg_etc1_color_quad_add(unsigned int color1, unsigned int color2) unsigned short t; t = c1[i] + c2[i]; -c1[i] = (unsigned char) (CLAMP(t, 0, 255)); +c1[i] = (unsigned char) (MIN(t, 255)); } return color1; @@ -769,7 +763,7 @@ rg_etc1_block_diff_bit_set(unsigned char bytes[8], unsigned char diff) static inline void rg_etc1_block_clear(unsigned char bytes[8]) { - memset(bytes, 0, sizeof (bytes)); + memset(bytes, 0, sizeof (unsigned char) * 8); } // Returns intensity modifier table (0-7) used by subblock subblock_id. @@ -778,7 +772,7 @@ static inline unsigned char rg_etc1_block_inten_table_get(const unsigned char bytes[8], unsigned char subblock_id) { const unsigned char offset = subblock_id ? 2 : 5; - assert(subblock_id < 2); + if (!(subblock_id < 2)) return 0; // ERROR CASE NO ASSERT IN EVAS CODE return (bytes[3] >> offset) & 7; } @@ -787,8 +781,8 @@ static inline void rg_etc1_block_inten_table_set(unsigned char bytes[8], unsigned char subblock_id, unsigned char t) { const unsigned char offset = subblock_id ? 2 : 5; - assert(subblock_id < 2); - assert(t < 8); + // ERROR CASE NO ASSERT IN EVAS CODE + if (!(subblock_id < 2) || !(t < 8)) return ; bytes[3] &= ~(7 << offset); bytes[3] |= (t << offset); } @@ -797,7 +791,8 @@ rg_etc1_block_inten_table_set(unsigned char bytes[8], unsigned char subblock_id, static inline unsigned char rg_etc1_block_selector_get(const unsigned char bytes[8], unsigned char x, unsigned char y) { - assert((x | y) < 4); + // ERROR CASE NO ASSERT IN EVAS CODE + if (!((x | y) < 4)) return 0; const unsigned char bit_index = x * 4 + y; const unsigned char byte_bit_offset = bit_index & 7; @@ -813,7 +808,8 @@ rg_etc1_block_selector_get(const unsigned char bytes[8], unsigned char x, unsign static inline void rg_etc1_block_selector_set(unsigned char bytes[8], unsigned char x, unsigned char y, unsigned char val) { - assert((x | y) < 4); + // ERROR CASE NO ASSERT IN EVAS CODE + if (!((x | y) < 4)) return ; const unsigned char bit_index = x * 4 + y; @@ -968,9 +964,10 @@ rg_etc1_block_color5_unpack(unsigned short packed_color5, unsigned char scaled, static inline unsigned int rg_etc1_block_delta3_pack(char r, char g, char b) { - assert((r >= cETC1ColorDeltaMin) && (r <= cETC1ColorDeltaMax)); - assert((g >= cETC1ColorDeltaMin) && (g <= cETC1ColorDeltaMax)); - assert((b >= cETC1ColorDeltaMin) && (b <= cETC1ColorDeltaMax)); + // ERROR CASE NO ASSERT IN EVAS CODE + if (!((r >= cETC1ColorDeltaMin) && (r <= cETC1ColorDeltaMax))) return 0; + if (!((g >= cETC1ColorDeltaMin) && (g <= cETC1ColorDeltaMax))) return 0; + if (!((b >= cETC1ColorDeltaMin) && (b <= cETC1ColorDeltaMax))) return 0; if (r < 0) r += 8; if (g < 0) g += 8; @@ -1042,7 +1039,7 @@ rg_etc1_block_color4_unpack(unsigned short packed_color4, unsigned char scaled, rg_etc1_block_color4_component_unpack(&r, &g, &b, packed_color4, scaled); - return
[EGIT] [core/efl] master 01/32: emotion: fix memory leak
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=b218c13fb798edaccb7bc8cfdf9ac3905e2d86a7 commit b218c13fb798edaccb7bc8cfdf9ac3905e2d86a7 Author: wonguk.jeong Date: Tue Apr 1 18:59:16 2014 +0900 emotion: fix memory leak engine instance handle was not free'd in emotion_engine_instance_del() @fix Reviewers: raster, cedric CC: seoz, cedric Differential Revision: https://phab.enlightenment.org/D672 Signed-off-by: Cedric BAIL --- src/lib/emotion/emotion_modules.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib/emotion/emotion_modules.c b/src/lib/emotion/emotion_modules.c index afbf941..6a362a2 100644 --- a/src/lib/emotion/emotion_modules.c +++ b/src/lib/emotion/emotion_modules.c @@ -409,6 +409,7 @@ emotion_engine_instance_del(Emotion_Engine_Instance *inst) { EINA_SAFETY_ON_NULL_RETURN(inst); inst->api->del(inst->data); + free(inst); } Eina_Bool --
[EGIT] [core/efl] master 10/32: evas: add TGV saver module.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=0609779f1701b04c51032e62e284fee66db0bb14 commit 0609779f1701b04c51032e62e284fee66db0bb14 Author: Cedric BAIL Date: Wed Mar 12 16:32:17 2014 +0900 evas: add TGV saver module. --- src/Makefile_Evas.am | 23 +++ src/lib/evas/common/evas_image_save.c | 2 + src/lib/evas/file/evas_module.c | 4 + src/modules/evas/savers/tgv/evas_image_save_tgv.c | 186 ++ 4 files changed, 215 insertions(+) diff --git a/src/Makefile_Evas.am b/src/Makefile_Evas.am index 5f07710..18ac68f 100644 --- a/src/Makefile_Evas.am +++ b/src/Makefile_Evas.am @@ -1716,6 +1716,7 @@ if BUILD_LOADER_TGV if EVAS_STATIC_BUILD_TGV lib_evas_libevas_la_SOURCES += \ modules/evas/loaders/tgv/evas_image_load_tgv.c \ +modules/evas/savers/tgv/evas_image_save_tgv.c \ static_libs/rg_etc/rg_etc1.c \ static_libs/rg_etc/rg_etc1.h \ static_libs/lz4/lz4.c \ @@ -1762,6 +1763,28 @@ modules_evas_loaders_tgv_module_la_LIBADD = \ modules_evas_loaders_tgv_module_la_DEPENDENCIES = @USE_EVAS_INTERNAL_LIBS@ modules_evas_loaders_tgv_module_la_LDFLAGS = -module @EFL_LTMODULE_FLAGS@ modules_evas_loaders_tgv_module_la_LIBTOOLFLAGS = --tag=disable-static + +savertgvpkgdir = $(libdir)/evas/modules/savers/tgv/$(MODULE_ARCH) +savertgvpkg_LTLIBRARIES = modules/evas/savers/tgv/module.la +modules_evas_savers_tgv_module_la_SOURCES = \ +modules/evas/savers/tgv/evas_image_load_tgv.c \ +static_libs/rg_etc/rg_etc1.c \ +static_libs/rg_etc/rg_etc1.h \ +static_libs/lz4/lz4.c \ +static_libs/lz4/lz4.h +modules_evas_savers_tgv_module_la_CPPFLAGS = \ +-I$(top_builddir)/src/lib/efl \ +-I$(top_srcdir)/src/static_libs/lz4 \ +-I$(top_srcdir)/src/static_libs/rg_etc \ +-I$(top_srcdir)/src/lib/evas/ \ +@EVAS_CFLAGS@ \ +@evas_image_saver_tgv_cflags@ +modules_evas_savers_tgv_module_la_LIBADD = \ +@USE_EVAS_LIBS@ \ +@evas_image_saver_tgv_libs@ +modules_evas_savers_tgv_module_la_DEPENDENCIES = @USE_EVAS_INTERNAL_LIBS@ +modules_evas_savers_tgv_module_la_LDFLAGS = -module @EFL_LTMODULE_FLAGS@ +modules_evas_savers_tgv_module_la_LIBTOOLFLAGS = --tag=disable-static endif endif diff --git a/src/lib/evas/common/evas_image_save.c b/src/lib/evas/common/evas_image_save.c index 1de5e6d..0d1cdc5 100644 --- a/src/lib/evas/common/evas_image_save.c +++ b/src/lib/evas/common/evas_image_save.c @@ -30,6 +30,8 @@ evas_common_save_image_to_file(RGBA_Image *im, const char *file, const char *key saver = "eet"; if (!strcasecmp(p, "webp")) saver = "webp"; +if (!strcasecmp(p, "tgv")) + saver = "tgv"; } if (saver) diff --git a/src/lib/evas/file/evas_module.c b/src/lib/evas/file/evas_module.c index 6cb5dc6..77fec09 100644 --- a/src/lib/evas/file/evas_module.c +++ b/src/lib/evas/file/evas_module.c @@ -149,6 +149,7 @@ EVAS_EINA_STATIC_MODULE_DEFINE(image_saver, jpeg); EVAS_EINA_STATIC_MODULE_DEFINE(image_saver, png); EVAS_EINA_STATIC_MODULE_DEFINE(image_saver, tiff); EVAS_EINA_STATIC_MODULE_DEFINE(image_saver, webp); +EVAS_EINA_STATIC_MODULE_DEFINE(image_saver, tgv); #endif static const struct { @@ -253,6 +254,9 @@ static const struct { #ifdef EVAS_STATIC_BUILD_WEBP EVAS_EINA_STATIC_MODULE_USE(image_saver, webp), #endif +#ifdef EVAS_STATIC_BUILD_TGV + EVAS_EINA_STATIC_MODULE_USE(image_saver, tgv), +#endif #endif { NULL, NULL } }; diff --git a/src/modules/evas/savers/tgv/evas_image_save_tgv.c b/src/modules/evas/savers/tgv/evas_image_save_tgv.c new file mode 100644 index 000..5ccbed4 --- /dev/null +++ b/src/modules/evas/savers/tgv/evas_image_save_tgv.c @@ -0,0 +1,186 @@ +#include "evas_common_private.h" +#include "evas_private.h" + +#ifdef HAVE_NETINET_IN_H +# include +#endif + +#ifdef _WIN32 +# include +#endif /* ifdef _WIN32 */ + +#include "lz4.h" +#include "rg_etc1.h" + +static int +evas_image_save_file_tgv(RGBA_Image *im, + const char *file, const char *key EINA_UNUSED, + int quality, int compress) +{ + rg_etc1_pack_params param; + FILE *f; + char *comp; + char *buffer; + uint32_t *data; + uint32_t width, height; + uint8_t header[8] = "TGV1"; + unsigned int block; + unsigned int x, y; + unsigned int compress_length; + unsigned int block_count; + + if (!im || !im->image.data || !file) + return 0; + + // Surface with alpha are not supported + if (im->cache_entry.flags.alpha) + return 0; + + data = im->image.data; + width = htonl(im->cache_entry.w); + height = htonl(im->cache_entry.h); + + param.m_dithering = 1; + if (quality > 70) + { +param.m_quality = rg_etc1_high_quality; +block = 7; + } + else if (quality < 30) + { +param.m_quality = rg_etc1_medium_quality; +block = 6; + } + else + { +param.m_quality = rg_etc1_low_quality; +block = 5; + } + + header[4] = (block << 4) | block;
[EGIT] [core/efl] master 21/32: evas: add png support for other color space output.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=641576f7f86a7c32764dac5690b901277c338b92 commit 641576f7f86a7c32764dac5690b901277c338b92 Author: Cedric BAIL Date: Wed Mar 19 12:20:07 2014 +0900 evas: add png support for other color space output. --- src/lib/evas/Evas_Loader.h | 1 + src/modules/evas/loaders/png/evas_image_load_png.c | 52 +- 2 files changed, 43 insertions(+), 10 deletions(-) diff --git a/src/lib/evas/Evas_Loader.h b/src/lib/evas/Evas_Loader.h index 209af13..499a916 100644 --- a/src/lib/evas/Evas_Loader.h +++ b/src/lib/evas/Evas_Loader.h @@ -161,6 +161,7 @@ typedef enum _Evas_Colorspace EVAS_COLORSPACE_YCBCR422601_PL, /**< YCbCr 4:2:2, ITU.BT-601 specifications. The data pointed to is just an array of row pointer, pointing to line of Y,Cb,Y,Cr bytes */ EVAS_COLORSPACE_YCBCR420NV12601_PL, /**< YCbCr 4:2:0, ITU.BT-601 specification. The data pointed to is just an array of row pointer, pointing to the Y rows, then the Cb,Cr rows. */ EVAS_COLORSPACE_YCBCR420TM12601_PL, /**< YCbCr 4:2:0, ITU.BT-601 specification. The data pointed to is just an array of tiled row pointer, pointing to the Y rows, then the Cb,Cr rows. */ + EVAS_COLORSPACE_AGRY88, /**< AY 8bits Alpha and 8bits Grey, accessed 1 16bits at a time */ EVAS_COLORSPACE_ETC1, /**< OpenGL ETC1 encoding of RGB texture @since 1.10 */ } Evas_Colorspace; /**< Colorspaces for pixel data supported by Evas */ diff --git a/src/modules/evas/loaders/png/evas_image_load_png.c b/src/modules/evas/loaders/png/evas_image_load_png.c index fb19ac2..f243a0d 100644 --- a/src/modules/evas/loaders/png/evas_image_load_png.c +++ b/src/modules/evas/loaders/png/evas_image_load_png.c @@ -30,6 +30,16 @@ struct _Evas_Loader_Internal Evas_Image_Load_Opts *opts; }; +static const Evas_Colorspace cspace_grey[2] = { + EVAS_COLORSPACE_GRY8, + EVAS_COLORSPACE_ARGB +}; + +static const Evas_Colorspace cspace_grey_alpha[2] = { + EVAS_COLORSPACE_AGRY88, + EVAS_COLORSPACE_ARGB +}; + static void _evas_image_png_read(png_structp png_ptr, png_bytep out, png_size_t count) { @@ -162,8 +172,19 @@ evas_image_load_file_head_png(void *loader_data, prop->h = (int) h32; } if (png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS)) hasa = 1; - if (color_type == PNG_COLOR_TYPE_RGB_ALPHA) hasa = 1; - if (color_type == PNG_COLOR_TYPE_GRAY_ALPHA) hasa = 1; + switch (color_type) + { + case PNG_COLOR_TYPE_RGB_ALPHA: + hasa = 1; + break; + case PNG_COLOR_TYPE_GRAY_ALPHA: + hasa = 1; + prop->cspaces = cspace_grey_alpha; + break; + case PNG_COLOR_TYPE_GRAY: + prop->cspaces = cspace_grey; + break; + } if (hasa) prop->alpha = 1; *error = EVAS_LOAD_ERROR_NONE; @@ -191,11 +212,11 @@ evas_image_load_file_data_png(void *loader_data, unsigned char *surface; unsigned char **lines; unsigned char *tmp_line; - DATA32 *src_ptr, *dst_ptr; png_structp png_ptr = NULL; png_infop info_ptr = NULL; Evas_PNG_Info epi; png_uint_32 w32, h32; + unsigned int pack_offset; int w, h; int bit_depth, color_type, interlace_type; char hasa; @@ -284,7 +305,8 @@ evas_image_load_file_data_png(void *loader_data, if ((color_type == PNG_COLOR_TYPE_GRAY) || (color_type == PNG_COLOR_TYPE_GRAY_ALPHA)) { - png_set_gray_to_rgb(png_ptr); +if (prop->cspace == EVAS_COLORSPACE_ARGB) + png_set_gray_to_rgb(png_ptr); if (bit_depth < 8) png_set_expand_gray_1_2_4_to_8(png_ptr); } /* expand transparency entry -> alpha channel if present */ @@ -306,28 +328,38 @@ evas_image_load_file_data_png(void *loader_data, if (!hasa) png_set_filler(png_ptr, 0xff, PNG_FILLER_AFTER); #endif + switch (prop->cspace) + { + case EVAS_COLORSPACE_ARGB: pack_offset = sizeof(DATA32); break; + case EVAS_COLORSPACE_GRY8: pack_offset = sizeof(DATA8); break; + case EVAS_COLORSPACE_AGRY88: pack_offset = sizeof(DATA16); break; + default: abort(); + } + /* we read image line by line if scale down was set */ if (scale_ratio == 1) { lines = (unsigned char **) alloca(h * sizeof(unsigned char *)); for (i = 0; i < h; i++) - lines[i] = surface + (i * w * sizeof(DATA32)); + lines[i] = surface + (i * w * pack_offset); png_read_image(png_ptr, lines); png_read_end(png_ptr, info_ptr); } else { -tmp_line = (unsigned char *) alloca(image_w * sizeof(DATA32)); -dst_ptr = (DATA32 *)surface; +unsigned char *src_ptr, *dst_ptr; + +tmp_line = (unsigned char *) alloca(image_w * pack_offset); +dst_ptr = surface; for (i = 0; i < h; i++) { png_read_row(png_ptr, tmp_line, NULL); - src_ptr = (DATA32 *)tmp_line; + src_ptr =
[EGIT] [core/efl] master 15/32: evas: remove RGBA_IMAGE_ALPHA_ONLY flags and use EVAS_COLORSPACE_GRY8 instead.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=3699ec6883a509510dba9956d250b740a8ac08db commit 3699ec6883a509510dba9956d250b740a8ac08db Author: Cedric BAIL Date: Mon Mar 17 15:19:47 2014 +0900 evas: remove RGBA_IMAGE_ALPHA_ONLY flags and use EVAS_COLORSPACE_GRY8 instead. --- src/lib/evas/common/evas_image_load.c | 1 - src/lib/evas/common/evas_image_main.c | 40 -- src/lib/evas/include/evas_common_private.h | 2 +- 3 files changed, 23 insertions(+), 20 deletions(-) diff --git a/src/lib/evas/common/evas_image_load.c b/src/lib/evas/common/evas_image_load.c index 133f739..dc72986 100644 --- a/src/lib/evas/common/evas_image_load.c +++ b/src/lib/evas/common/evas_image_load.c @@ -402,7 +402,6 @@ evas_common_load_rgba_image_data_from_file(Image_Entry *ie) if (!ie->info.module) return EVAS_LOAD_ERROR_GENERIC; // printf("load data [%p] %s %s\n", ie, ie->file, ie->key); - evas_image_load_func = ie->info.loader; evas_module_use(ie->info.module); diff --git a/src/lib/evas/common/evas_image_main.c b/src/lib/evas/common/evas_image_main.c index 5e1c8ae..47a424f 100644 --- a/src/lib/evas/common/evas_image_main.c +++ b/src/lib/evas/common/evas_image_main.c @@ -110,7 +110,7 @@ static const Evas_Cache2_Image_Func _evas_common_image_func2 = #endif static inline size_t -_evas_common_rgba_image_surface_size(unsigned int w, unsigned int h, Eina_Bool alpha_only) +_evas_common_rgba_image_surface_size(unsigned int w, unsigned int h, Evas_Colorspace cspace) { #define PAGE_SIZE (4 * 1024) #define HUGE_PAGE_SIZE (2 * 1024 * 1024) @@ -121,10 +121,13 @@ _evas_common_rgba_image_surface_size(unsigned int w, unsigned int h, Eina_Bool a #endif size_t siz; - if (alpha_only) - siz = w * h * sizeof(DATA8); - else - siz = w * h * sizeof(DATA32); + switch (cspace) + { + case EVAS_COLORSPACE_GRY8: siz = w * h * sizeof(DATA8); break; + case EVAS_COLORSPACE_ARGB: siz = w * h * sizeof(DATA32); break; + default: + return -1; + } if (siz < PAGE_SIZE) return siz; @@ -134,14 +137,14 @@ _evas_common_rgba_image_surface_size(unsigned int w, unsigned int h, Eina_Bool a } static void * -_evas_common_rgba_image_surface_mmap(unsigned int w, unsigned int h, Eina_Bool alpha_only) +_evas_common_rgba_image_surface_mmap(unsigned int w, unsigned int h, Evas_Colorspace cspace) { size_t siz; #if defined (HAVE_SYS_MMAN_H) && (!defined (_WIN32)) void *r = MAP_FAILED; #endif - siz = _evas_common_rgba_image_surface_size(w, h, alpha_only); + siz = _evas_common_rgba_image_surface_size(w, h, cspace); #if defined (HAVE_SYS_MMAN_H) && (!defined (_WIN32)) #ifndef MAP_HUGETLB @@ -165,12 +168,12 @@ _evas_common_rgba_image_surface_mmap(unsigned int w, unsigned int h, Eina_Bool a } static void -_evas_common_rgba_image_surface_munmap(void *data, unsigned int w, unsigned int h, Eina_Bool alpha_only) +_evas_common_rgba_image_surface_munmap(void *data, unsigned int w, unsigned int h, Evas_Colorspace cspace) { #if defined (HAVE_SYS_MMAN_H) && (!defined (_WIN32)) size_t siz; - siz = _evas_common_rgba_image_surface_size(w, h, alpha_only); + siz = _evas_common_rgba_image_surface_size(w, h, cspace); if (siz < PAGE_SIZE) free(data); else @@ -373,7 +376,7 @@ evas_common_rgba_image_unload(Image_Entry *ie) { _evas_common_rgba_image_surface_munmap(im->image.data, ie->allocated.w, ie->allocated.h, - (im->flags & RGBA_IMAGE_ALPHA_ONLY)); + ie->space); #ifdef SURFDBG surfs = eina_list_remove(surfs, ie); #endif @@ -445,21 +448,21 @@ _evas_common_rgba_image_surface_alloc(Image_Entry *ie, unsigned int w, unsigned { _evas_common_rgba_image_surface_munmap(im->image.data, ie->allocated.w, ie->allocated.h, - (im->flags & RGBA_IMAGE_ALPHA_ONLY)); + ie->space); #ifdef SURFDBG surfs = eina_list_remove(surfs, ie); -#endif +#endif } - im->image.data = _evas_common_rgba_image_surface_mmap(w, h, (im->flags & RGBA_IMAGE_ALPHA_ONLY)); + im->image.data = _evas_common_rgba_image_surface_mmap(w, h, ie->space); if (!im->image.data) return -1; ie->allocated.w = w; ie->allocated.h = h; #ifdef SURFDBG surfs = eina_list_append(surfs, ie); -#endif +#endif #ifdef HAVE_VALGRIND size_tsiz = 0; - siz = _evas_common_rgba_image_surface_size(w, h, (im->flags & RGBA_IMAGE_ALPHA_ONLY)); + siz = _evas_common_rgba_image_surface_size(w, h, ie->space); # ifdef VALGRIND_MAKE_READABLE VALGRIND_MAKE_READABLE(im->image.data, siz); # else @@ -508,7 +511,7 @@ _evas_common_rg
[EGIT] [core/efl] master 18/32: evas: let TGV loader choose which encoding it want.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=e47dbc02ea75f5976aa08c137c2cd92491c5dc8f commit e47dbc02ea75f5976aa08c137c2cd92491c5dc8f Author: Cedric BAIL Date: Mon Mar 17 19:28:22 2014 +0900 evas: let TGV loader choose which encoding it want. If region is specified we will not allow ETC1 colorspace as it would basically break at the frontier as we would be unable to generate a duplicate of the border as GPU require if you want nice and correct rendering. So no region and ETC1 output at the same time. --- src/modules/evas/loaders/tgv/evas_image_load_tgv.c | 53 -- 1 file changed, 40 insertions(+), 13 deletions(-) diff --git a/src/modules/evas/loaders/tgv/evas_image_load_tgv.c b/src/modules/evas/loaders/tgv/evas_image_load_tgv.c index 308d0b6..36a2fdf 100644 --- a/src/modules/evas/loaders/tgv/evas_image_load_tgv.c +++ b/src/modules/evas/loaders/tgv/evas_image_load_tgv.c @@ -58,6 +58,10 @@ struct _Evas_Loader_Internal Eina_Bool compress; }; +static const Evas_Colorspace cspaces[2] = { + EVAS_COLORSPACE_ETC1, + EVAS_COLORSPACE_ARGB +}; static void * evas_image_load_file_open_tgv(Eina_File *f, Eina_Stringshare *key EINA_UNUSED, @@ -162,6 +166,7 @@ evas_image_load_file_head_tgv(void *loader_data, { loader->region.w = loader->size.width; loader->region.h = loader->size.height; +prop->cspaces = cspaces; // ETC1 colorspace doesn't work with region } else { @@ -218,6 +223,7 @@ evas_image_load_file_data_tgv(void *loader_data, unsigned int length, offset; unsigned int x, y; unsigned int block_count; + unsigned int etc1_width = 0; Eina_Bool r = EINA_FALSE; length = eina_file_size_get(loader->f); @@ -233,6 +239,15 @@ evas_image_load_file_data_tgv(void *loader_data, loader->region.x, loader->region.y, prop->w, prop->h); + if (prop->cspace == EVAS_COLORSPACE_ETC1) + { +if (master.x % 4 || +master.y % 4) + abort(); + +etc1_width = (prop->w / 4 + (prop->w % 4 ? 1 : 0)) * 8; + } + // Allocate space for each ETC1 block (64bytes per 4 * 4 pixels group) block_count = loader->block.width * loader->block.height / (4 * 4); if (loader->compress) @@ -291,20 +306,32 @@ evas_image_load_file_data_tgv(void *loader_data, if (!eina_rectangle_intersection(¤t_etc, ¤t)) continue ; - if (!rg_etc1_unpack_block(it, temporary, 0)) - { - fprintf(stderr, "HOUSTON WE HAVE A PROBLEM ! Block starting at {%i, %i} is corrupted !\n", x + j, y + i); - continue ; - } - - offset_x = current_etc.x - x - j; - offset_y = current_etc.y - y - i; - for (k = 0; k < current_etc.h; k++) + switch (prop->cspace) { - memcpy(&p[current_etc.x + -(current_etc.y + k) * loader->region.w], - &temporary[offset_x + (offset_y + k) * 4], - current_etc.w * sizeof (unsigned int)); +case EVAS_COLORSPACE_ARGB: + if (!rg_etc1_unpack_block(it, temporary, 0)) + { +fprintf(stderr, "HOUSTON WE HAVE A PROBLEM ! Block starting at {%i, %i} is corrupted !\n", x + j, y + i); +continue ; + } + + offset_x = current_etc.x - x - j; + offset_y = current_etc.y - y - i; + for (k = 0; k < current_etc.h; k++) + { +memcpy(&p[current_etc.x + + (current_etc.y + k) * master.w], + &temporary[offset_x + (offset_y + k) * 4], + current_etc.w * sizeof (unsigned int)); + } + break; +case EVAS_COLORSPACE_ETC1: + memcpy(&p[current_etc.x + + current_etc.y * etc1_width], + it, 8); + break; +default: + abort(); } } } --
[EGIT] [core/efl] master 22/32: evas: add support for GL_LUMINANCE_ALPHA and GL_LUMINANCE when loading image from disk.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=3684b749be064c6a51262c701f03f33290724ada commit 3684b749be064c6a51262c701f03f33290724ada Author: Cedric BAIL Date: Thu Mar 20 19:29:57 2014 +0900 evas: add support for GL_LUMINANCE_ALPHA and GL_LUMINANCE when loading image from disk. --- .../evas/engines/gl_common/evas_gl_common.h| 2 +- src/modules/evas/engines/gl_common/evas_gl_image.c | 48 +++--- .../evas/engines/gl_common/evas_gl_texture.c | 37 ++--- 3 files changed, 67 insertions(+), 20 deletions(-) diff --git a/src/modules/evas/engines/gl_common/evas_gl_common.h b/src/modules/evas/engines/gl_common/evas_gl_common.h index 70db622..12f1349 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_common.h +++ b/src/modules/evas/engines/gl_common/evas_gl_common.h @@ -405,7 +405,7 @@ struct _Evas_GL_Shared struct { Eina_List *whole; - Eina_List *atlas[33][3]; + Eina_List *atlas[33][5]; } tex; Eina_Hash *native_pm_hash; diff --git a/src/modules/evas/engines/gl_common/evas_gl_image.c b/src/modules/evas/engines/gl_common/evas_gl_image.c index daa9752..a89d79d 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_image.c +++ b/src/modules/evas/engines/gl_common/evas_gl_image.c @@ -122,11 +122,18 @@ evas_gl_common_image_unref(Evas_GL_Image *im) } } +static const Evas_Colorspace known_cspace[] = { + EVAS_COLORSPACE_GRY8, + EVAS_COLORSPACE_AGRY88, + EVAS_COLORSPACE_ARGB +}; + static Evas_GL_Image * _evas_gl_common_image(Evas_Engine_GL_Context *gc, RGBA_Image *im_im, Evas_Image_Load_Opts *lo, int *error) { Evas_GL_Image *im; Eina_List *l; + int cspace = EVAS_COLORSPACE_ARGB; /* i'd LOVe to do this, but we can't because we load to load header * to get image size to know if its too big or not! so this disallows @@ -168,17 +175,39 @@ _evas_gl_common_image(Evas_Engine_GL_Context *gc, RGBA_Image *im_im, Evas_Image_ *error = EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED; return NULL; } + if (im_im->cache_entry.cspaces) + { +unsigned int i; + +for (i = 0; im_im->cache_entry.cspaces[i] != EVAS_COLORSPACE_ARGB; i++) + { + unsigned int j; + + for (j = 0; + known_cspace[j] != EVAS_COLORSPACE_ARGB; + j++) + if (known_cspace[j] == im_im->cache_entry.cspaces[i]) + break; + + if (known_cspace[j] == im_im->cache_entry.cspaces[i]) + break; + } + +cspace = im_im->cache_entry.cspaces[i]; +im_im->cache_entry.space = cspace; + } + im->references = 1; im->im = im_im; im->gc = gc; im->cached = 1; - im->cs.space = EVAS_COLORSPACE_ARGB; + im->cs.space = cspace; im->alpha = im->im->cache_entry.flags.alpha; im->w = im->im->cache_entry.w; im->h = im->im->cache_entry.h; if (lo) im->load_opts = *lo; gc->shared->images = eina_list_prepend(gc->shared->images, im); - return im; + return im; } Evas_GL_Image * @@ -286,6 +315,8 @@ evas_gl_common_image_new_from_data(Evas_Engine_GL_Context *gc, unsigned int w, u switch (cspace) { case EVAS_COLORSPACE_ARGB: + case EVAS_COLORSPACE_GRY8: + case EVAS_COLORSPACE_AGRY88: break; case EVAS_COLORSPACE_YCBCR422P601_PL: case EVAS_COLORSPACE_YCBCR422P709_PL: @@ -329,6 +360,7 @@ evas_gl_common_image_new_from_copied_data(Evas_Engine_GL_Context *gc, unsigned i { case EVAS_COLORSPACE_ARGB: case EVAS_COLORSPACE_GRY8: + case EVAS_COLORSPACE_AGRY88: break; case EVAS_COLORSPACE_YCBCR422P601_PL: case EVAS_COLORSPACE_YCBCR422P709_PL: @@ -378,7 +410,9 @@ evas_gl_common_image_new(Evas_Engine_GL_Context *gc, unsigned int w, unsigned in switch (cspace) { case EVAS_COLORSPACE_ARGB: - break; + case EVAS_COLORSPACE_GRY8: + case EVAS_COLORSPACE_AGRY88: + break; case EVAS_COLORSPACE_YCBCR422P601_PL: case EVAS_COLORSPACE_YCBCR422P709_PL: case EVAS_COLORSPACE_YCBCR422601_PL: @@ -512,7 +546,9 @@ evas_gl_common_image_content_hint_set(Evas_GL_Image *im, int hint) if (!im->gc->shared->info.sec_image_map) return; if (!im->gc->shared->info.bgra) return; // does not handle yuv yet. - if (im->cs.space != EVAS_COLORSPACE_ARGB) return; + if (im->cs.space != EVAS_COLORSPACE_ARGB || + im->cs.space != EVAS_COLORSPACE_GRY8 || + im->cs.space != EVAS_COLORSPACE_AGRY88) return; if (im->content_hint == EVAS_IMAGE_CONTENT_HINT_DYNAMIC) { if (im->cs.data) @@ -567,7 +603,7 @@ evas_gl_common_image_content_hint_set(Evas_GL_Image *im, int hint) im->im = (RGBA_Image *)evas_cache_image_empty(evas_common_image_cache_get()); im->im->cache_entry.fl
[EGIT] [core/efl] master 20/32: autotools: let's be precise on how we do support ABI stability.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=afaf0129aef8ac913cd362927d432c5e0a2b4278 commit afaf0129aef8ac913cd362927d432c5e0a2b4278 Author: Cedric BAIL Date: Wed Mar 19 09:41:28 2014 +0900 autotools: let's be precise on how we do support ABI stability. NOTE: We do use enum in structure. There size can be changed by changing the parameter of the compiler, this obviously will break ABI. As long as you use the same compiler (and normally any future version of that compiler) with the same set of CFLAGS/CXXFLAGS, you will have ABI stability. --- README | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README b/README index e1f0d1e..de9586d 100644 --- a/README +++ b/README @@ -506,7 +506,10 @@ COMPILER FLAGS -- You can affect compilation optimization, debugging and other factors -by setting your CFLAGS environment variable (and CXXFLAGS) +by setting your CFLAGS environment variable (and CXXFLAGS). Be aware +that to ensure ABI stability you should use the exact same CFLAGS / +CXXFLAGS for all the build of EFL and any applications/libraries that +depend on them. Other recommendations: --
[EGIT] [core/efl] master 32/32: autotools: fix to many argument on shell script during make check
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=5009030d41fb0c1584aae98414451e73778d671f commit 5009030d41fb0c1584aae98414451e73778d671f Author: Cedric BAIL Date: Tue Apr 1 21:58:36 2014 +0900 autotools: fix to many argument on shell script during make check The autogenerated check macro by autotools lead to a huge number of file being added on the command line of a script, when the only things it does is to test for the definition of those strings. Hoping this is going to fix the problem. If that doesn't we will need to write our own CHECK macro here. --- configure.ac | 6 ++ 1 file changed, 6 insertions(+) diff --git a/configure.ac b/configure.ac index 82418f3..f24400b 100644 --- a/configure.ac +++ b/configure.ac @@ -284,6 +284,7 @@ AC_PROG_OBJC AC_LANG(C) AC_PROG_CC_C99 AM_PROG_CC_C_O +AC_PROG_SED AM_CONDITIONAL([BUILD_EFL_NATIVE], [test "x${cross_compiling}" = "xno"]) @@ -4185,6 +4186,11 @@ cmakeconfig/EmotionConfigVersion.cmake:cmakeconfig/EFLConfigVersion.cmake.in AC_OUTPUT + Work around bug in automake check macro +## yes it is hugly, but no choice here for now. +sed -i "s/am__is_gnu_make = test -n '\$(MAKEFILE_LIST)' && test -n '\$(MAKELEVEL)'/ifdef MAKEFILE_LIST\nifdef MAKELEVEL\nam__is_gnu_make = true\nelse\nam__is_gnu_make = false\nendif\nelse\nam__is_gnu_make = false\nendif/" src/Makefile + + Info --
[EGIT] [core/efl] master 29/32: evas: add ETC1 texture format support to Evas.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=854dd1447548965af8faa4e6d18ab9bce3ac commit 854dd1447548965af8faa4e6d18ab9bce3ac Author: Cedric BAIL Date: Thu Mar 27 13:12:12 2014 +0900 evas: add ETC1 texture format support to Evas. --- .../evas/engines/gl_common/evas_gl_common.h| 14 +++- .../evas/engines/gl_common/evas_gl_context.c | 7 ++ src/modules/evas/engines/gl_common/evas_gl_image.c | 39 +-- .../evas/engines/gl_common/evas_gl_texture.c | 75 +++--- 4 files changed, 120 insertions(+), 15 deletions(-) diff --git a/src/modules/evas/engines/gl_common/evas_gl_common.h b/src/modules/evas/engines/gl_common/evas_gl_common.h index e5b4632..f35d9c9 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_common.h +++ b/src/modules/evas/engines/gl_common/evas_gl_common.h @@ -111,6 +111,10 @@ #ifndef GL_LUMINANCE16_ALPHA16 # define GL_LUMINANCE16_ALPHA16 0x8048 #endif +#ifndef GL_ETC1_RGB8_OES +# define GL_ETC1_RGB8_OES 0x8D64 +#endif + #ifndef GL_UNPACK_ROW_LENGTH # define GL_UNPACK_ROW_LENGTH 0x0cf2 @@ -358,6 +362,7 @@ struct _Evas_GL_Shared Eina_Bool sec_image_map : 1; Eina_Bool bin_program : 1; Eina_Bool unpack_row_length : 1; + Eina_Bool etc1 : 1; // tuning params - per gpu/cpu combo? #define MAX_CUTOUT 512 #define DEF_CUTOUT 512 @@ -839,7 +844,14 @@ extern void (*glsym_glProgramParameteri)(GLuint a, GLuint b, GLint d); extern void (*glsym_glReleaseShaderCompiler)(void); extern void *(*glsym_glMapBuffer)(GLenum a, GLenum b); extern GLboolean (*glsym_glUnmapBuffer) (GLenum a); - +extern void (*glsym_glCompressedTexImage2d) (GLenum target, + GLint level, + GLenum internalformat, + GLsizei width, + GLsizei height, + GLint border, + GLsizei imageSize, + const GLvoid * data); #ifdef GL_GLES extern void *(*secsym_eglCreateImage) (void *a, void *b, GLenum c, void *d, const int *e); extern unsigned int (*secsym_eglDestroyImage) (void *a, void *b); diff --git a/src/modules/evas/engines/gl_common/evas_gl_context.c b/src/modules/evas/engines/gl_common/evas_gl_context.c index cb02c6e..7bee00c 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_context.c +++ b/src/modules/evas/engines/gl_common/evas_gl_context.c @@ -30,6 +30,10 @@ GLboolean (*glsym_glUnmapBuffer) (GLenum a) = NULL; void (*glsym_glStartTiling) (GLuint a, GLuint b, GLuint c, GLuint d, GLuint e) = NULL; void (*glsym_glEndTiling)(GLuint a) = NULL; +void (*glsym_glCompressedTexImage2d) (GLenum target, GLint level, GLenum internalformat, +GLsizei width, GLsizei height, GLint border, GLsizei imageSize, +const GLvoid * data) = NULL; + #ifdef GL_GLES // just used for finding symbols :) typedef void (*_eng_fn) (void); @@ -211,6 +215,7 @@ gl_symbols(void) FINDSYM(secsym_eglGetImageAttribSEC, "eglGetImageAttribSEC", secsym_func_uint); #endif + FINDSYM(glsym_glCompressedTexImage2d, "glCompressedTexImage2D", glsym_func_void); } static void shader_array_flush(Evas_Engine_GL_Context *gc); @@ -623,6 +628,8 @@ evas_gl_common_context_new(void) (strstr((char *)ext, "GL_EXT_texture_format_BGRA"))) shared->info.bgra = 1; #endif + if (glsym_glCompressedTexImage2d && strstr((char *)ext, "OES_compressed_ETC1_RGB8_texture")) + shared->info.etc1 = 1; #ifdef GL_GLES // FIXME: there should be an extension name/string to check for // not just symbols in the lib diff --git a/src/modules/evas/engines/gl_common/evas_gl_image.c b/src/modules/evas/engines/gl_common/evas_gl_image.c index a89d79d..a74f45a 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_image.c +++ b/src/modules/evas/engines/gl_common/evas_gl_image.c @@ -128,6 +128,13 @@ static const Evas_Colorspace known_cspace[] = { EVAS_COLORSPACE_ARGB }; +static const Evas_Colorspace known_etc1_cspace[] = { + EVAS_COLORSPACE_ETC1, + EVAS_COLORSPACE_GRY8, + EVAS_COLORSPACE_AGRY88, + EVAS_COLORSPACE_ARGB +}; + static Evas_GL_Image * _evas_gl_common_image(Evas_Engine_GL_Context *gc, RGBA_Image *im_im, Evas_Image_Load_Opts *lo, int *error) { @@ -177,19 +184,25 @@ _evas_gl_common_image(Evas_Engine_GL_Context *gc, RGBA_Image *im_im, Evas_Image_ } if (im_im->cache_entry.cspaces) { +const Evas_Colorspace *cs
[EGIT] [core/efl] master 31/32: evas: make eet negociate it's colorspace with evas.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=36321b872e5063f9be9dc01df1ac710802356e05 commit 36321b872e5063f9be9dc01df1ac710802356e05 Author: Cedric BAIL Date: Fri Mar 28 17:51:44 2014 +0900 evas: make eet negociate it's colorspace with evas. --- src/modules/evas/loaders/eet/evas_image_load_eet.c | 36 +++--- 1 file changed, 32 insertions(+), 4 deletions(-) diff --git a/src/modules/evas/loaders/eet/evas_image_load_eet.c b/src/modules/evas/loaders/eet/evas_image_load_eet.c index 83d5c41..1b518b3 100644 --- a/src/modules/evas/loaders/eet/evas_image_load_eet.c +++ b/src/modules/evas/loaders/eet/evas_image_load_eet.c @@ -64,6 +64,11 @@ _evas_image_load_return_error(int err, int *error) return EINA_FALSE; } +static const Evas_Colorspace cspaces_etc1[2] = { + EVAS_COLORSPACE_ETC1, + EVAS_COLORSPACE_ARGB +}; + static Eina_Bool evas_image_load_file_head_eet(void *loader_data, Evas_Image_Property *prop, @@ -72,6 +77,7 @@ evas_image_load_file_head_eet(void *loader_data, Evas_Loader_Internal *loader = loader_data; int a, compression, quality; Eet_Image_Encoding lossy; + const Eet_Colorspace *cspaces; int ok; ok = eet_data_image_header_read(loader->ef, loader->key, @@ -81,6 +87,18 @@ evas_image_load_file_head_eet(void *loader_data, if (IMG_TOO_BIG(prop->w, prop->h)) return _evas_image_load_return_error(EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED, error); + if (eet_data_image_colorspace_get(loader->ef, loader->key, NULL, &cspaces)) + { +unsigned int i; + +for (i = 0; cspaces[i] != EET_COLORSPACE_ARGB; i++) + if (cspaces[i] == EET_COLORSPACE_ETC1) +{ + prop->cspaces = cspaces_etc1; + break; +} + } + prop->alpha = !!a; *error = EVAS_LOAD_ERROR_NONE; @@ -98,13 +116,23 @@ evas_image_load_file_data_eet(void *loader_data, Eet_Image_Encoding lossy; DATA32 *body, *p, *end; DATA32nas = 0; + Eet_Colorspace cspace; - ok = eet_data_image_read_to_surface(loader->ef, loader->key, 0, 0, - pixels, prop->w, prop->h, prop->w * 4, - &alpha, &compression, &quality, &lossy); + switch (prop->cspace) + { + case EVAS_COLORSPACE_ETC1: cspace = EET_COLORSPACE_ETC1; break; + case EVAS_COLORSPACE_ARGB: cspace = EVAS_COLORSPACE_ARGB; break; + default: + return _evas_image_load_return_error(EVAS_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED, error); + } + + ok = eet_data_image_read_to_cspace_surface_cipher(loader->ef, loader->key, NULL, 0, 0, + pixels, prop->w, prop->h, prop->w * 4, + cspace, + &alpha, &compression, &quality, &lossy); if (!ok) return _evas_image_load_return_error(EVAS_LOAD_ERROR_GENERIC, error); - + if (alpha) { prop->alpha = 1; --
[EGIT] [core/efl] master 28/32: evas: follow change 2fd69743f968aa7a184edf183384e5a359e79c8f in the saver.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=5140ef6bc499146a11ecb729ac129652f1d3f0ec commit 5140ef6bc499146a11ecb729ac129652f1d3f0ec Author: Cedric BAIL Date: Mon Mar 24 19:56:17 2014 +0900 evas: follow change 2fd69743f968aa7a184edf183384e5a359e79c8f in the saver. --- src/modules/evas/loaders/tgv/evas_image_load_tgv.c | 23 +++--- src/modules/evas/savers/tgv/evas_image_save_tgv.c | 19 ++ 2 files changed, 27 insertions(+), 15 deletions(-) diff --git a/src/modules/evas/loaders/tgv/evas_image_load_tgv.c b/src/modules/evas/loaders/tgv/evas_image_load_tgv.c index 36a2fdf..62df415 100644 --- a/src/modules/evas/loaders/tgv/evas_image_load_tgv.c +++ b/src/modules/evas/loaders/tgv/evas_image_load_tgv.c @@ -18,11 +18,14 @@ * The TGV file format is oriented around compression mecanism * that hardware are good at decompressing. We do still provide * a fully software implementation in case your hardware doesn't - * handle it. + * handle it. As OpenGL is pretty bad at handling border of + * texture, we do duplicate the first pixels of every border. * * This file format is designed to compress/decompress things * in block area. Giving opportunity to store really huge file - * and only decompress/compress them as we need. + * and only decompress/compress them as we need. Note that region + * only work with software decompression as we don't have a sane + * way to duplicate border to avoid artifact when scaling texture. * * The file format is as follow : * - char magic[4]: "TGV1" @@ -245,7 +248,13 @@ evas_image_load_file_data_tgv(void *loader_data, master.y % 4) abort(); -etc1_width = (prop->w / 4 + (prop->w % 4 ? 1 : 0)) * 8; +etc1_width = ((prop->w + 2) / 4 + ((prop->w + 2) % 4 ? 1 : 0)) * 8; + } + else if (prop->cspace == EVAS_COLORSPACE_ARGB) + { +// Offset to take duplicated pixels into account +master.x += 1; +master.y += 1; } // Allocate space for each ETC1 block (64bytes per 4 * 4 pixels group) @@ -255,8 +264,8 @@ evas_image_load_file_data_tgv(void *loader_data, else buffer = NULL; - for (y = 0; y < loader->size.height; y += loader->block.height) - for (x = 0; x < loader->size.width; x += loader->block.width) + for (y = 0; y < loader->size.height + 2; y += loader->block.height) + for (x = 0; x < loader->size.width + 2; x += loader->block.width) { Eina_Rectangle current; const char *data_start; @@ -319,8 +328,8 @@ evas_image_load_file_data_tgv(void *loader_data, offset_y = current_etc.y - y - i; for (k = 0; k < current_etc.h; k++) { -memcpy(&p[current_etc.x + - (current_etc.y + k) * master.w], +memcpy(&p[current_etc.x - 1 + + (current_etc.y - 1 + k) * master.w], &temporary[offset_x + (offset_y + k) * 4], current_etc.w * sizeof (unsigned int)); } diff --git a/src/modules/evas/savers/tgv/evas_image_save_tgv.c b/src/modules/evas/savers/tgv/evas_image_save_tgv.c index c344df0..fedba24 100644 --- a/src/modules/evas/savers/tgv/evas_image_save_tgv.c +++ b/src/modules/evas/savers/tgv/evas_image_save_tgv.c @@ -130,26 +130,29 @@ evas_image_save_file_tgv(RGBA_Image *im, if (lmax > 0) { -for (k = duplicate_h[0]; k < kmax; k++) - memcpy(&todo[k * 16 + duplicate_w[0] * 4], +for (k = 0; k < kmax; k++) + memcpy(&todo[(k + duplicate_h[0]) * 16 + duplicate_w[0] * 4], &data[(real_y + i + k) * im->cache_entry.w + real_x + j], 4 * lmax); } if (duplicate_h[0] && block_length > 0) // Duplicate first line - memcpy(&todo[0], &data[(real_y + i) * im->cache_entry.w + real_x + j], block_length); - if (duplicate_h[1] && block_length > 0 && kmax > 0) // Duplicate last line - memcpy(&todo[kmax * 16], &data[(real_y + i + kmax) * im->cache_entry.w + real_x + j], block_length); + memcpy(&todo[0], &data[(real_y + i) * im->cache_entry.w + real_x + j], block_length * 4); + if (duplicate_h[1] && block_length > 0 && kmax >= 0) // Duplicate last line + memcpy(&todo[kmax * 16], &data[(real_y + i + kmax) * im->cache_entry.w + real_x + j], block_length * 4); if (duplicate_w[0]) // Duplicate first row {
[EGIT] [core/efl] master 16/32: evas: remove dead code.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=dc75a1fcffa0f795c36a7495da7b51be90bf06fa commit dc75a1fcffa0f795c36a7495da7b51be90bf06fa Author: Cedric BAIL Date: Mon Mar 17 16:45:50 2014 +0900 evas: remove dead code. --- src/modules/evas/engines/gl_cocoa/evas_engine.c | 8 src/modules/evas/engines/gl_sdl/evas_engine.c | 8 src/modules/evas/engines/gl_x11/evas_engine.c | 8 3 files changed, 24 deletions(-) diff --git a/src/modules/evas/engines/gl_cocoa/evas_engine.c b/src/modules/evas/engines/gl_cocoa/evas_engine.c index 44d8e8e..d18df25 100644 --- a/src/modules/evas/engines/gl_cocoa/evas_engine.c +++ b/src/modules/evas/engines/gl_cocoa/evas_engine.c @@ -689,14 +689,6 @@ eng_image_size_set(void *data, void *image, int w, int h) im = evas_gl_common_image_new(re->win->gl_context, w, h, eng_image_alpha_get(data, image), eng_image_colorspace_get(data, image)); -/* - evas_common_load_image_data_from_file(im_old->im); - if (im_old->im->image->data) - { -evas_common_blit_rectangle(im_old->im, im->im, 0, 0, w, h, 0, 0); -evas_common_cpu_end_opt(); - } - */ evas_gl_common_image_free(im_old); } else diff --git a/src/modules/evas/engines/gl_sdl/evas_engine.c b/src/modules/evas/engines/gl_sdl/evas_engine.c index 89e6f99..dcbfb79 100644 --- a/src/modules/evas/engines/gl_sdl/evas_engine.c +++ b/src/modules/evas/engines/gl_sdl/evas_engine.c @@ -578,14 +578,6 @@ eng_image_size_set(void *data, void *image, int w, int h) im = evas_gl_common_image_new(re->gl_context, w, h, eng_image_alpha_get(data, image), eng_image_colorspace_get(data, image)); -/* - evas_common_load_image_data_from_file(im_old->im); - if (im_old->im->image->data) - { -evas_common_blit_rectangle(im_old->im, im->im, 0, 0, w, h, 0, 0); -evas_common_cpu_end_opt(); - } - */ evas_gl_common_image_free(im_old); } else diff --git a/src/modules/evas/engines/gl_x11/evas_engine.c b/src/modules/evas/engines/gl_x11/evas_engine.c index 97d8aab..17f8468 100644 --- a/src/modules/evas/engines/gl_x11/evas_engine.c +++ b/src/modules/evas/engines/gl_x11/evas_engine.c @@ -2725,14 +2725,6 @@ eng_image_size_set(void *data, void *image, int w, int h) im = evas_gl_common_image_new(re->win->gl_context, w, h, eng_image_alpha_get(data, image), eng_image_colorspace_get(data, image)); -/* - evas_common_load_image_data_from_file(im_old->im); - if (im_old->im->image->data) - { -evas_common_blit_rectangle(im_old->im, im->im, 0, 0, w, h, 0, 0); -evas_common_cpu_end_opt(); - } - */ evas_gl_common_image_free(im_old); } else --
[EGIT] [core/efl] master 12/32: evas: add infrastructure and basic tests for loading image.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=52a36461b8c47099cc9a59e9b4182d8ba79d349e commit 52a36461b8c47099cc9a59e9b4182d8ba79d349e Author: Cedric BAIL Date: Fri Mar 14 16:00:57 2014 +0900 evas: add infrastructure and basic tests for loading image. --- src/Makefile_Evas.am | 23 - src/tests/evas/evas_suite.c| 1 + src/tests/evas/evas_suite.h| 2 +- src/tests/evas/evas_test_image.c | 53 + src/tests/evas/images/HM7Y9233-50.tgv | Bin 0 -> 517937 bytes src/tests/evas/images/HM7Y9233.jpg | Bin 0 -> 399709 bytes src/tests/evas/images/Light-50.tgv | Bin 0 -> 983654 bytes src/tests/evas/images/Light.jpg| Bin 0 -> 387029 bytes src/tests/evas/images/Pic1-10.tgv | Bin 0 -> 37271 bytes src/tests/evas/images/Pic1-100.tgv | Bin 0 -> 36412 bytes src/tests/evas/images/Pic1-50.tgv | Bin 0 -> 39077 bytes src/tests/evas/images/Pic1.png | Bin 0 -> 78090 bytes src/tests/evas/images/Pic4-10.tgv | Bin 0 -> 38143 bytes src/tests/evas/images/Pic4-100.tgv | Bin 0 -> 37466 bytes src/tests/evas/images/Pic4-50.tgv | Bin 0 -> 39903 bytes src/tests/evas/images/Pic4.png | Bin 0 -> 70028 bytes src/tests/evas/images/Sunrise-100.tgv | Bin 0 -> 291551 bytes src/tests/evas/images/Temple-10.tgv| Bin 0 -> 969110 bytes src/tests/evas/images/Temple.jpg | Bin 0 -> 962849 bytes src/tests/evas/images/Temple3-10.tgv | Bin 0 -> 1013799 bytes src/tests/evas/images/Temple3.jpg | Bin 0 -> 681613 bytes src/tests/evas/images/Train-10.tgv | Bin 0 -> 885810 bytes src/tests/evas/images/Train.jpg| Bin 0 -> 326352 bytes .../evas/images/mars_rover_panorama_half-size.jpg | Bin 0 -> 3194420 bytes 24 files changed, 77 insertions(+), 2 deletions(-) diff --git a/src/Makefile_Evas.am b/src/Makefile_Evas.am index 18ac68f..540d08d 100644 --- a/src/Makefile_Evas.am +++ b/src/Makefile_Evas.am @@ -1804,6 +1804,7 @@ tests/evas/evas_test_text.c \ tests/evas/evas_test_callbacks.c \ tests/evas/evas_test_render_engines.c \ tests/evas/evas_test_filters.c \ +tests/evas/evas_test_image.c \ tests/evas/evas_tests_helpers.h \ tests/evas/evas_suite.h @@ -1819,4 +1820,24 @@ tests_evas_evas_suite_DEPENDENCIES = @USE_EVAS_INTERNAL_LIBS@ endif EXTRA_DIST += \ -tests/evas/TestFont.eet +tests/evas/TestFont.eet \ +HM7Y9233-50.tgv \ +HM7Y9233.jpg \ +Light-50.tgv \ +Light.jpg \ +Pic1-10.tgv \ +Pic1-100.tgv \ +Pic1-50.tgv \ +Pic1.png \ +Pic4-10.tgv \ +Pic4-100.tgv \ +Pic4-50.tgv \ +Pic4.png \ +Sunrise-100.tgv \ +Temple-10.tgv \ +Temple.jpg \ +Temple3-10.tgv \ +Temple3.jpg \ +Train-10.tgv \ +Train.jpg \ +mars_rover_panorama_half-size.jpg diff --git a/src/tests/evas/evas_suite.c b/src/tests/evas/evas_suite.c index a0ceee9..23657f5 100644 --- a/src/tests/evas/evas_suite.c +++ b/src/tests/evas/evas_suite.c @@ -25,6 +25,7 @@ static const Evas_Test_Case etc[] = { { "Callbacks", evas_test_callbacks }, { "Render Engines", evas_test_render_engines }, { "Filters", evas_test_filters }, + { "Images", evas_test_image_object }, { NULL, NULL } }; diff --git a/src/tests/evas/evas_suite.h b/src/tests/evas/evas_suite.h index c7b62f4..be9a75b 100644 --- a/src/tests/evas/evas_suite.h +++ b/src/tests/evas/evas_suite.h @@ -10,6 +10,6 @@ void evas_test_text(TCase *tc); void evas_test_callbacks(TCase *tc); void evas_test_render_engines(TCase *tc); void evas_test_filters(TCase *tc); - +void evas_test_image_object(TCase *tc); #endif /* _EVAS_SUITE_H */ diff --git a/src/tests/evas/evas_test_image.c b/src/tests/evas/evas_test_image.c new file mode 100644 index 000..c07ac26 --- /dev/null +++ b/src/tests/evas/evas_test_image.c @@ -0,0 +1,53 @@ +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include +#include + +#include "evas_suite.h" +#include "Evas.h" +#include "evas_tests_helpers.h" + +static const char * +_test_image_get(const char *name) +{ + static char filename[PATH_MAX]; + + snprintf(filename, PATH_MAX, TESTS_SRC_DIR"/images/%s", name); + + return filename; +} + +START_TEST(evas_object_image_loader) +{ + Evas *e = _setup_evas(); + Evas_Object *o; + Eina_Iterator *it; + const Eina_File_Direct_Info *file; + + o = evas_object_image_add(e); + + it = eina_file_direct_ls(TESTS_SRC_DIR"/images/"); + EINA_ITERATOR_FOREACH(it, file) + { +int w, h; + +evas_object_image_file_set(o, file->path, NULL); +fail_if(evas_object_image_load_error_get(o) != EVAS_LOAD_ERROR_NONE); +evas_object_image_size_get(o, &w, &h); +fail_if(w == 0 || h == 0); + } + eina_iterator_free(it); + + evas_object_del
[EGIT] [core/efl] master 30/32: eet: add negociation colorspace support to Eet.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=83af91c8b8fd8cc8674c1ab8f449c8dd2e309886 commit 83af91c8b8fd8cc8674c1ab8f449c8dd2e309886 Author: Cedric BAIL Date: Fri Mar 28 16:05:45 2014 +0900 eet: add negociation colorspace support to Eet. --- src/lib/eet/Eet.h | 146 +++- src/lib/eet/eet_image.c | 139 ++--- 2 files changed, 250 insertions(+), 35 deletions(-) diff --git a/src/lib/eet/Eet.h b/src/lib/eet/Eet.h index e3a01fc..50645a0 100644 --- a/src/lib/eet/Eet.h +++ b/src/lib/eet/Eet.h @@ -1163,6 +1163,7 @@ eet_data_image_read(Eet_File *ef, * @see eet_data_image_decode() * @see eet_data_image_decode_to_surface() * @see eet_data_image_read_to_surface_cipher() + * @see eet_data_image_decode_to_cspace_surface_cipher() * * @since 1.0.2 * @ingroup Eet_File_Image_Group @@ -1446,6 +1447,23 @@ eet_data_image_header_read_cipher(Eet_File *ef, Eet_Image_Encoding *lossy); /** + * Get the colorspace Eet can decode into of a given eet image ressource + * + * @param ef A valid eet file handle opened for reading. + * @param name Name of the entry. eg: "/base/file_i_want". + * @param cspaces Returned pointer by Eet to a list of possible decoding colorspace finished by @c EET_COLORSPACE_ARGB. If @c NULL, only EET_COLORSPACE_ARGB is supported. + * @return 1 on successful get, 0 otherwise. + * + * @since 1.10.0 + * @ingroup Eet_File_Image_Group + */ +EAPI int +eet_data_image_colorspace_get(Eet_File *ef, + const char *name, + const char *cipher_key, + const Eet_Colorspace **cspaces); + +/** * Read image data from the named key in the eet file using a cipher. * @param ef A valid eet file handle opened for reading. * @param name Name of the entry. eg: "/base/file_i_want". @@ -1513,7 +1531,8 @@ eet_data_image_read_cipher(Eet_File *ef, * @return 1 on success, 0 otherwise. * * This function reads an image from an eet file stored under the named - * key in the eet file and return a pointer to the decompressed pixel data. + * key in the eet file and store the decompressed pixel data in the provided + * surface with an @c EET_COLORSPACE_ARGB colorspace. * * The other parameters of the image (width, height etc.) are placed into * the values pointed to (they must be supplied). The pixel data is a linear @@ -1532,6 +1551,7 @@ eet_data_image_read_cipher(Eet_File *ef, * parameter values may not contain any sensible data. * * @see eet_data_image_read_to_surface() + * @see eet_data_image_decode_to_cspace_surface_cipher() * * @since 1.0.2 * @ingroup Eet_File_Image_Cipher_Group @@ -1551,6 +1571,130 @@ eet_data_image_read_to_surface_cipher(Eet_File *ef, int *quality, Eet_Image_Encoding *lossy); + +/** + * Read image data from the named key in the eet file using a cipher. + * @param ef A valid eet file handle opened for reading. + * @param name Name of the entry. eg: "/base/file_i_want". + * @param cipher_key The key to use as cipher. + * @param src_x The starting x coordinate from where to dump the stream. + * @param src_y The starting y coordinate from where to dump the stream. + * @param d A pointer to the pixel surface. + * @param w The expected width in pixels of the pixel surface to decode. + * @param h The expected height in pixels of the pixel surface to decode. + * @param row_stride The length of a pixels line in the destination surface. + * @param cspace The color space of the pixels bsurface. + * @param alpha A pointer to the int to hold the alpha flag. + * @param compress A pointer to the int to hold the compression amount. + * @param quality A pointer to the int to hold the quality amount. + * @param lossy A pointer to the int to hold the lossiness flag. + * @return 1 on success, 0 otherwise. + * + * This function reads an image from an eet file stored under the named + * key in the eet file and store the decompressed pixel data in the provided + * surface colorspace. + * + * The other parameters of the image (width, height etc.) are placed into + * the values pointed to (they must be supplied). The pixel data is a linear + * array of pixels starting from the top-left of the image scanning row by + * row from left to right. Each pixel is a 32bit value, with the high byte + * being the alpha channel, the next being red, then green, and the low byte + * being blue. The width and height are measured in pixels and will be + * greater than 0 when returned. The alpha flag is either 0 or 1. 0 denotes + * that the alpha channel is not used. 1 denotes that it is significant. + * Compress is filled with the compression value/amount the image was + * stored with. The quality value is filled with the quality encoding of + * the image file (
[EGIT] [core/efl] master 27/32: evas: change TGV internal encoding to account for GPU needs of duplicated border.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=2fd69743f968aa7a184edf183384e5a359e79c8f commit 2fd69743f968aa7a184edf183384e5a359e79c8f Author: Cedric BAIL Date: Mon Mar 24 19:55:45 2014 +0900 evas: change TGV internal encoding to account for GPU needs of duplicated border. With OpenGL, the border of a texture are not "well" defined. So interpolation at the border can result in weird/bad looking texture border. To avoid that we do duplicate the border in all direction at the time of the texture upload. But with ETC1 it is not possible as the border are grouped with 15 others pixels. It needs to be done at saving time. So internally we do have an image that would be of size width + 2 pixels and height + 2 pixels. --- src/modules/evas/savers/tgv/evas_image_save_tgv.c | 156 ++ 1 file changed, 99 insertions(+), 57 deletions(-) diff --git a/src/modules/evas/savers/tgv/evas_image_save_tgv.c b/src/modules/evas/savers/tgv/evas_image_save_tgv.c index 5ccbed4..c344df0 100644 --- a/src/modules/evas/savers/tgv/evas_image_save_tgv.c +++ b/src/modules/evas/savers/tgv/evas_image_save_tgv.c @@ -28,6 +28,7 @@ evas_image_save_file_tgv(RGBA_Image *im, unsigned int x, y; unsigned int compress_length; unsigned int block_count; + unsigned int real_x, real_y; if (!im || !im->image.data || !file) return 0; @@ -86,63 +87,104 @@ evas_image_save_file_tgv(RGBA_Image *im, } // Write block - for (y = 0; y < im->cache_entry.h; y += block) - for (x = 0; x < im->cache_entry.w; x += block) - { - unsigned int i, j; - int wlen; - char *offset = buffer; - - for (i = 0; i < block; i += 4) -for (j = 0; j < block; j += 4) - { - unsigned char todo[64] = { 0 }; - int k, kmax, lmax; - - kmax = y + i + 4 < im->cache_entry.h ? - 4 : im->cache_entry.h - y - i - 1; - lmax = x + j + 4 < im->cache_entry.w ? - 4 : im->cache_entry.w - x - j - 1; - - if (lmax > 0) - { - for (k = 0; k < kmax; k++) -memcpy(&todo[k * 16], - &data[(y + i + k) * im->cache_entry.w + x + j], - 4 * lmax); - } - - rg_etc1_pack_block(offset, (unsigned int*) todo, ¶m); - offset += 8; - } - - if (compress) -{ - wlen = LZ4_compress(buffer, comp, block_count * 8); -} - else -{ - comp = buffer; - wlen = block_count * 8; -} - - if (wlen > 0) -{ - unsigned int blen = wlen; - - while (blen) - { -unsigned char plen; - -plen = blen & 0x7F; -blen = blen >> 7; - -if (blen) plen = 0x80 | plen; -fwrite(&plen, 1, 1, f); - } - fwrite(comp, wlen, 1, f); -} - } + for (y = 0; y < im->cache_entry.h + 2; y += block) + { +real_y = y > 0 ? y - 1 : 0; + +for (x = 0; x < im->cache_entry.w + 2; x += block) + { + unsigned int i, j; + unsigned char duplicate_w[2], duplicate_h[2]; + int wlen; + char *offset = buffer; + + real_x = x > 0 ? x - 1 : 0; + + for (i = 0; i < block; i += 4) + { + unsigned char block_h; + int kmax; + + duplicate_h[0] = !!((real_y + i) == 0); + duplicate_h[1] = !!((real_y + i + (4 - duplicate_h[0])) >= im->cache_entry.h); + block_h = 4 - duplicate_h[0] - duplicate_h[1]; + + kmax = real_y + i + block_h < im->cache_entry.h ? +block_h : im->cache_entry.h - real_y - i - 1; + + for (j = 0; j < block; j += 4) +{ + unsigned char todo[64] = { 0 }; + unsigned char block_w; + int block_length; + int k, lmax; + + duplicate_w[0] = !!((real_x + j) == 0); + duplicate_w[1] = !!(((real_x + j + (4 - duplicate_w[0]))) >= im->cache_entry.w); + block_w = 4 - duplicate_w[0] - duplicate_w[1]; + + lmax = real_x + j + block_w < im->cache_entry.w ? + block_w : im->cache_entry.w - real_x - j - 1; + block_length = real_x + j + 4 < im->cache_entry.w ? + 4 : im->cache_entry.w - real_x - j - 1; + + if (lmax > 0) + { +
[EGIT] [core/efl] master 25/32: evas: handle premultiplying of AGRY88.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=eb7071078a2b958a78dc4e00392ee32cd55b940d commit eb7071078a2b958a78dc4e00392ee32cd55b940d Author: Cedric BAIL Date: Fri Mar 21 11:53:57 2014 +0900 evas: handle premultiplying of AGRY88. --- src/lib/evas/common/evas_convert_color.c | 20 src/lib/evas/common/evas_convert_color.h | 1 + src/lib/evas/common/evas_image_main.c| 10 +- 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/src/lib/evas/common/evas_convert_color.c b/src/lib/evas/common/evas_convert_color.c index 34bb978..3399443 100644 --- a/src/lib/evas/common/evas_convert_color.c +++ b/src/lib/evas/common/evas_convert_color.c @@ -1,6 +1,26 @@ #include "evas_common_private.h" #include "evas_convert_color.h" +EAPI DATA32 +evas_common_convert_ag_premul(DATA16 *data, unsigned int len) +{ + DATA16 *de = data + len; + DATA32 nas = 0; + + while (data < de) + { +DATA16 a = 1 + ((*data >> 8) & 0xff); + +*data = (*data & 0xff00) | + *data & 0xff) * a) >> 8) & 0xff); +data++; + +if ((a == 1) || (a == 256)) + nas++; + } + + return nas; +} EAPI DATA32 evas_common_convert_argb_premul(DATA32 *data, unsigned int len) diff --git a/src/lib/evas/common/evas_convert_color.h b/src/lib/evas/common/evas_convert_color.h index 0224879..c3c07a3 100644 --- a/src/lib/evas/common/evas_convert_color.h +++ b/src/lib/evas/common/evas_convert_color.h @@ -2,6 +2,7 @@ #define _EVAS_CONVERT_COLOR_H +EAPI DATA32 evas_common_convert_ag_premul (DATA16 *data, unsigned int len); EAPI DATA32 evas_common_convert_argb_premul(DATA32 *src, unsigned int len); EAPI void evas_common_convert_argb_unpremul(DATA32 *src, unsigned int len); EAPI void evas_common_convert_color_argb_premul(int a, int *r, int *g, int *b); diff --git a/src/lib/evas/common/evas_image_main.c b/src/lib/evas/common/evas_image_main.c index f4302b1..7770c90 100644 --- a/src/lib/evas/common/evas_image_main.c +++ b/src/lib/evas/common/evas_image_main.c @@ -998,7 +998,15 @@ evas_common_image_premul(Image_Entry *ie) if (!evas_cache_image_pixels(ie)) return; if (!ie->flags.alpha) return; - nas = evas_common_convert_argb_premul(evas_cache_image_pixels(ie), ie->w * ie->h); + switch (ie->space) + { + case EVAS_COLORSPACE_ARGB: + nas = evas_common_convert_argb_premul(evas_cache_image_pixels(ie), ie->w * ie->h); + break; + case EVAS_COLORSPACE_AGRY88: + nas = evas_common_convert_ag_premul((void*) evas_cache_image_pixels(ie), ie->w * ie->h); + default: return; + } if ((ALPHA_SPARSE_INV_FRACTION * nas) >= (ie->w * ie->h)) ie->flags.alpha_sparse = 1; } --
[EGIT] [core/efl] master 26/32: evas: support uploading AGRY88 and GRY8 directly to GPU.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=d1581f8ca9c0397669b3963e3781e694de4b44f6 commit d1581f8ca9c0397669b3963e3781e694de4b44f6 Author: Cedric BAIL Date: Fri Mar 21 11:54:27 2014 +0900 evas: support uploading AGRY88 and GRY8 directly to GPU. --- .../evas/engines/gl_common/evas_gl_common.h| 1 + .../evas/engines/gl_common/evas_gl_preload.c | 114 +- .../evas/engines/gl_common/evas_gl_texture.c | 248 - 3 files changed, 149 insertions(+), 214 deletions(-) diff --git a/src/modules/evas/engines/gl_common/evas_gl_common.h b/src/modules/evas/engines/gl_common/evas_gl_common.h index 12f1349..e5b4632 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_common.h +++ b/src/modules/evas/engines/gl_common/evas_gl_common.h @@ -781,6 +781,7 @@ Evas_GL_Texture *evas_gl_common_texture_native_new(Evas_Engine_GL_Context *gc, Evas_GL_Texture *evas_gl_common_texture_render_new(Evas_Engine_GL_Context *gc, unsigned int w, unsigned int h, int alpha); Evas_GL_Texture *evas_gl_common_texture_dynamic_new(Evas_Engine_GL_Context *gc, Evas_GL_Image *im); void evas_gl_common_texture_update(Evas_GL_Texture *tex, RGBA_Image *im); +void evas_gl_common_texture_upload(Evas_GL_Texture *tex, RGBA_Image *im, unsigned int bytes_count); void evas_gl_common_texture_free(Evas_GL_Texture *tex, Eina_Bool force); Evas_GL_Texture *evas_gl_common_texture_alpha_new(Evas_Engine_GL_Context *gc, DATA8 *pixels, unsigned int w, unsigned int h, int fh); void evas_gl_common_texture_alpha_update(Evas_GL_Texture *tex, DATA8 *pixels, unsigned int w, unsigned int h, int fh); diff --git a/src/modules/evas/engines/gl_common/evas_gl_preload.c b/src/modules/evas/engines/gl_common/evas_gl_preload.c index 1995232..d65c50c 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_preload.c +++ b/src/modules/evas/engines/gl_common/evas_gl_preload.c @@ -175,6 +175,7 @@ _evas_gl_preload_tile_async(void *data EINA_UNUSED, Eina_Thread t EINA_UNUSED) while (!async_loader_exit) { Evas_GL_Texture_Async_Preload *async; +unsigned int bytes_count; GLuint fmt; if (!async_loader_standby && async_loader_tex) @@ -190,6 +191,14 @@ _evas_gl_preload_tile_async(void *data EINA_UNUSED, Eina_Thread t EINA_UNUSED) async_loader_tex = eina_list_remove_list(async_loader_tex, async_loader_tex); if (!async) continue; +switch (async->im->cache_entry.space) + { + case EVAS_COLORSPACE_ARGB: bytes_count = 4; break; + case EVAS_COLORSPACE_GRY8: bytes_count = 1; break; + case EVAS_COLORSPACE_AGRY88: bytes_count = 2; break; + default: continue; + } + async_loader_running = EINA_TRUE; async_current = async; @@ -210,110 +219,7 @@ _evas_gl_preload_tile_async(void *data EINA_UNUSED, Eina_Thread t EINA_UNUSED) } // FIXME: loop until all subtile are uploaded or the image is about to be deleted - -// TEMPORARY CODE JUST TO SEE IF IT WORK -fmt = async->tex->pt->format; -glBindTexture(GL_TEXTURE_2D, async->tex->pt->texture); -GLERR(__FUNCTION__, __FILE__, __LINE__, ""); -if (async->unpack_row_length) - { - glPixelStorei(GL_UNPACK_ROW_LENGTH, 0); - GLERR(__FUNCTION__, __FILE__, __LINE__, ""); - } -glPixelStorei(GL_UNPACK_ALIGNMENT, 4); -GLERR(__FUNCTION__, __FILE__, __LINE__, ""); - -// +-+ -// +-+ -// -_tex_sub_2d(async->tex->gc, async->tex->x, async->tex->y, -async->im->cache_entry.w, async->im->cache_entry.h, -fmt, async->tex->pt->dataformat, -async->im->image.data); -// xxx -// xxx -// --- -_tex_sub_2d(async->tex->gc, async->tex->x, async->tex->y + async->im->cache_entry.h, -async->im->cache_entry.w, 1, -fmt, async->tex->pt->dataformat, -async->im->image.data + ((async->im->cache_entry.h - 1) * async->im->cache_entry.w)); -// xxx -// xxx -// o -_tex_sub_2d(async->tex->gc, async->tex->x - 1, async->tex->y + async->im->cache_entry.h, -1, 1, -fmt, async->tex->pt->dataformat, -async->im->image.data + ((async->im->cache_entry.h - 1) * async->im->cache_entry.w)); -// xxx -// xxx -// o -_tex_sub_2d(async->tex->gc, async->tex->x + async->im->cache_entry.w, async->tex->y + async->im->cache_entry.h, -1, 1, -fmt, async->tex->pt->dataformat, -async->im->image.data + ((async->im->cache_entry.h - 1) * async->im->cache_entry.w) + (async->im->cache_entry.w - 1)); -if (async->
[EGIT] [core/efl] master 17/32: evas: handle allocation of ETC1 color space image surface.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=cbf81fddd195000af7aff04382811ea447bfa1e1 commit cbf81fddd195000af7aff04382811ea447bfa1e1 Author: Cedric BAIL Date: Mon Mar 17 19:31:36 2014 +0900 evas: handle allocation of ETC1 color space image surface. --- src/lib/evas/common/evas_image_main.c | 6 ++ 1 file changed, 6 insertions(+) diff --git a/src/lib/evas/common/evas_image_main.c b/src/lib/evas/common/evas_image_main.c index 47a424f..5ac91cc 100644 --- a/src/lib/evas/common/evas_image_main.c +++ b/src/lib/evas/common/evas_image_main.c @@ -125,6 +125,12 @@ _evas_common_rgba_image_surface_size(unsigned int w, unsigned int h, Evas_Colors { case EVAS_COLORSPACE_GRY8: siz = w * h * sizeof(DATA8); break; case EVAS_COLORSPACE_ARGB: siz = w * h * sizeof(DATA32); break; + case EVAS_COLORSPACE_ETC1: + // Need to round width and height independently + w += 2; h += 2; // We do duplicate border in ETC1 to have better rendering on GPU. + siz = (w / 4 + (w % 4 ? 1 : 0)) * + (h / 4 + (h % 4 ? 1 : 0)) * 8; + break; default: return -1; } --
[EGIT] [core/efl] master 02/32: eet-cxx: add implementation for eet C++.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=ab3eb4b2d350d017eab6683202663244e11aa518 commit ab3eb4b2d350d017eab6683202663244e11aa518 Author: Felipe Magno de Almeida Date: Tue Apr 1 19:08:07 2014 +0900 eet-cxx: add implementation for eet C++. Usage example: struct type { int foo; float bar; }; type t0; auto descriptor = make_descriptor("type", &type::ofo, &type::bar); eet_data_write(file, descriptor.native_handle(), "type", &t0, false); std::unique_ptr p = read_by_ptr(file, "type", descriptor); type t = read(file, "type", descriptor); @feature Reviewers: cedric, smohanty Reviewed By: cedric CC: savio, cedric Differential Revision: https://phab.enlightenment.org/D659 Signed-off-by: Cedric BAIL --- configure.ac | 1 + pc/.gitignore | 1 + pc/eet-cxx.pc.in | 12 ++ src/Makefile.am | 1 + src/Makefile_Eet_Cxx.am | 42 + src/bindings/eet_cxx/Eet.hh | 214 src/bindings/eet_cxx/eet_composite.hh | 49 ++ src/bindings/eet_cxx/eet_fold.hh | 32 src/bindings/eet_cxx/eet_register.hh | 132 +++ src/bindings/eet_cxx/eet_tuple.hh | 39 + src/bindings/eet_cxx/eet_type.hh | 78 + src/lib/eet/Eet.h | 37 + src/lib/eet/eet_data.c| 38 + src/tests/eet_cxx/eet_cxx_suite.cc| 104 src/tests/eet_cxx/eet_cxx_test_descriptors.cc | 231 ++ 15 files changed, 1011 insertions(+) diff --git a/configure.ac b/configure.ac index 4001d29..3642b96 100644 --- a/configure.ac +++ b/configure.ac @@ -4100,6 +4100,7 @@ pc/escape.pc pc/eina.pc pc/eina-cxx.pc pc/eet.pc +pc/eet-cxx.pc pc/eo.pc pc/eolian.pc pc/evas-fb.pc diff --git a/pc/.gitignore b/pc/.gitignore index 658f6cf..ae42f58 100644 --- a/pc/.gitignore +++ b/pc/.gitignore @@ -26,6 +26,7 @@ /efreet.pc /eina.pc /eina-cxx.pc +/eet-cxx.pc /eio.pc /eldbus.pc /embryo.pc diff --git a/pc/eet-cxx.pc.in b/pc/eet-cxx.pc.in new file mode 100644 index 000..2412c48 --- /dev/null +++ b/pc/eet-cxx.pc.in @@ -0,0 +1,12 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: Eet C++ +Description: C++ API for the eet library +Version: @VERSION@ +Requires.private: @requirements_pc_eet@ +Libs: -L${libdir} -leet +Libs.private: @requirements_libs_eet@ +Cflags: -I${includedir}/efl-@VMAJ@ -I${includedir}/eet-@VMAJ@ -I${includedir}/efl-@VMAJ@ -I${includedir}/eet_cxx-@VMAJ@ -I${includedir}/eet_cxx-@VMAJ@/eet_cxx diff --git a/src/Makefile.am b/src/Makefile.am index e277678..f9c2497 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -32,6 +32,7 @@ include Makefile_Escape.am include Makefile_Eina.am include Makefile_Eo.am include Makefile_Eet.am +include Makefile_Eet_Cxx.am include Makefile_Eolian.am include Makefile_Evas.am include Makefile_Ecore.am diff --git a/src/Makefile_Eet_Cxx.am b/src/Makefile_Eet_Cxx.am new file mode 100644 index 000..b2381aa --- /dev/null +++ b/src/Makefile_Eet_Cxx.am @@ -0,0 +1,42 @@ + +### Library + +installed_eetcxxmainheadersdir = $(includedir)/eet_cxx-@VMAJ@ +dist_installed_eetcxxmainheaders_DATA = bindings/eet_cxx/Eet.hh + +installed_eetcxxheadersdir = $(includedir)/eet_cxx-@VMAJ@/eet_cxx +dist_installed_eetcxxheaders_DATA = \ +bindings/eet_cxx/eet_composite.hh \ +bindings/eet_cxx/eet_fold.hh \ +bindings/eet_cxx/eet_register.hh \ +bindings/eet_cxx/eet_tuple.hh \ +bindings/eet_cxx/eet_type.hh + +### Unit tests + +if EFL_ENABLE_TESTS +if HAVE_CXX11 + +check_PROGRAMS += tests/eet_cxx/eet_cxx_suite +TESTS += tests/eet_cxx/eet_cxx_suite + +tests_eet_cxx_eet_cxx_suite_SOURCES = \ +tests/eet_cxx/eet_cxx_suite.cc \ +tests/eet_cxx/eet_cxx_test_descriptors.cc + +tests_eet_cxx_eet_cxx_suite_CPPFLAGS = \ +-I$(top_builddir)/src/lib/efl \ +-I$(top_builddir)/src/bindings/eina_cxx \ +-I$(top_builddir)/src/bindings/eet_cxx \ +-I$(top_srcdir)/src/bindings/eina_cxx \ +-I$(top_srcdir)/src/bindings/eet_cxx \ +-DTESTS_WD=\"`pwd`\" \ +-DTESTS_SRC_DIR=\"$(top_srcdir)/src/tests/eet_cxx\" \ +-DTESTS_BUILD_DIR=\"$(top_builddir)/src/tests/eet_cxx\" \ +@CHECK_CFLAGS@ \ +@EET_CFLAGS@ +tests_eet_cxx_eet_cxx_suite_LDADD = @CHECK_LIBS@ @USE_EET_LIBS@ +tests_eet_cxx_eet_cxx_suite_DEPENDENCIES = @USE_EET_INTERNAL_LIBS@ + +endif +endif diff --git a/src/bindings/eet_cxx/Eet.hh b/src/bindings/eet_cxx/Eet.hh new file mode 100644 index 000..f725c68 --- /dev/null +++ b/src/bindings/eet_cxx/Eet.hh @@ -0,0 +1,214 @@ +#ifndef EET_HH_ +#define EET_HH_ + +#include + +#include +#include +#include + +#include +#include +#include + +#include
[EGIT] [core/efl] master 13/32: evas: add benchmark for TGV loader and saver.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=b56d7bba605d2bd156f438d6dd2da6818474bde3 commit b56d7bba605d2bd156f438d6dd2da6818474bde3 Author: Cedric BAIL Date: Fri Mar 14 18:38:30 2014 +0900 evas: add benchmark for TGV loader and saver. --- configure.ac| 1 + src/Makefile.am | 3 +- src/benchmarks/evas/.gitignore | 1 + src/benchmarks/evas/Makefile.am | 35 + src/benchmarks/evas/evas_bench.c| 54 +++ src/benchmarks/evas/evas_bench.h| 10 src/benchmarks/evas/evas_bench_loader.c | 92 + src/benchmarks/evas/evas_bench_saver.c | 74 ++ 8 files changed, 269 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index a848345..82418f3 100644 --- a/configure.ac +++ b/configure.ac @@ -4080,6 +4080,7 @@ doc/previews/Makefile src/Makefile src/benchmarks/eina/Makefile src/benchmarks/eo/Makefile +src/benchmarks/evas/Makefile src/examples/eina/Makefile src/examples/eina_cxx/Makefile src/examples/eet/Makefile diff --git a/src/Makefile.am b/src/Makefile.am index f9c2497..58270c7 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -73,7 +73,8 @@ include Makefile_Eina_Cxx.am BENCHMARK_SUBDIRS = \ benchmarks/eina \ -benchmarks/eo +benchmarks/eo \ +benchmarks/evas DIST_SUBDIRS += $(BENCHMARK_SUBDIRS) benchmark: all-am diff --git a/src/benchmarks/evas/.gitignore b/src/benchmarks/evas/.gitignore new file mode 100644 index 000..aee0b35 --- /dev/null +++ b/src/benchmarks/evas/.gitignore @@ -0,0 +1 @@ +/evas_bench diff --git a/src/benchmarks/evas/Makefile.am b/src/benchmarks/evas/Makefile.am new file mode 100644 index 000..31c9d72 --- /dev/null +++ b/src/benchmarks/evas/Makefile.am @@ -0,0 +1,35 @@ +MAINTAINERCLEANFILES = Makefile.in + +AM_CPPFLAGS = \ +-I$(top_builddir)/src/lib/efl \ +-I$(top_srcdir)/src/lib/eina \ +-I$(top_builddir)/src/lib/eina \ +-I$(top_srcdir)/src/modules/evas/engines/buffer \ +-DPACKAGE_BUILD_DIR=\"`pwd`/$(top_builddir)\" \ +-DTESTS_SRC_DIR=\"$(abs_top_srcdir)/src/tests/evas\" \ +@EVAS_CFLAGS@ + +EXTRA_PROGRAMS = evas_bench + +benchmark: evas_bench + +evas_bench_SOURCES = \ +evas_bench.c \ +evas_bench_loader.c \ +evas_bench_saver.c \ +evas_bench.h + +nodist_EXTRA_evas_bench_SOURCES = dummy.cc +evas_bench_LDADD = \ +$(top_builddir)/src/lib/evas/libevas.la \ +$(top_builddir)/src/lib/eina/libeina.la \ +@EVAS_LDFLAGS@ + +EXTRA_DIST = + +clean-local: + rm -rf *.gcno ..\#..\#src\#*.gcov *.gcda + +if ALWAYS_BUILD_EXAMPLES +noinst_PROGRAMS = $(EXTRA_PROGRAMS) +endif diff --git a/src/benchmarks/evas/evas_bench.c b/src/benchmarks/evas/evas_bench.c new file mode 100644 index 000..58b806e --- /dev/null +++ b/src/benchmarks/evas/evas_bench.c @@ -0,0 +1,54 @@ +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include +#include +#include + +#include "evas_bench.h" +#include "Eina.h" +#include "Evas.h" + +typedef struct _Evas_Benchmark_Case Evas_Benchmark_Case; +struct _Evas_Benchmark_Case +{ + const char *bench_case; + void (*build)(Eina_Benchmark *bench); + Eina_Bool run_by_default; +}; + +static const Evas_Benchmark_Case etc[] = { + { "Loader", evas_bench_loader, EINA_TRUE }, + { "Saver", evas_bench_saver, EINA_TRUE }, + { NULL, NULL, EINA_FALSE } +}; + +int +main(int argc, char **argv) +{ + Eina_Benchmark *test; + unsigned int i; + + evas_init(); + + for (i = 0; etc[i].bench_case; ++i) + { +if (argc == 2 && strcasecmp(etc[i].bench_case, argv[1])) + continue; + +test = eina_benchmark_new(etc[i].bench_case, "default"); +if (!test) + continue; + +etc[i].build(test); + +eina_benchmark_run(test); + +eina_benchmark_free(test); + } + + evas_shutdown(); + + return 0; +} diff --git a/src/benchmarks/evas/evas_bench.h b/src/benchmarks/evas/evas_bench.h new file mode 100644 index 000..cf57213 --- /dev/null +++ b/src/benchmarks/evas/evas_bench.h @@ -0,0 +1,10 @@ +#ifndef EVAS_BENCH_H_ +#define EVAS_BENCH_H_ + +#include "eina_benchmark.h" + +void evas_bench_loader(Eina_Benchmark *bench); +void evas_bench_saver(Eina_Benchmark *bench); + +#endif + diff --git a/src/benchmarks/evas/evas_bench_loader.c b/src/benchmarks/evas/evas_bench_loader.c new file mode 100644 index 000..77c1684 --- /dev/null +++ b/src/benchmarks/evas/evas_bench_loader.c @@ -0,0 +1,92 @@ +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include "Evas.h" +#include "Evas_Engine_Buffer.h" +#include "evas_bench.h" + +static const char * +_test_image_get(const char *name) +{ + static char filename[PATH_MAX]; + + snprintf(filename, PATH_MAX, TESTS_SRC_DIR"/images/%s", name); + + return filename; +} + +static Evas * +_setup_evas() +{ + Evas *evas; + Evas_Engine_Info_Buffer *einfo; + + evas = evas_new(); + + evas_output_method_set(evas, evas_render_method_loo
[EGIT] [core/efl] master 09/32: evas: add a tgv loader.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=961ecab040669ad2b181ece230e467ae708be8f8 commit 961ecab040669ad2b181ece230e467ae708be8f8 Author: Cedric BAIL Date: Tue Mar 11 19:08:40 2014 +0900 evas: add a tgv loader. The TGV file format is specifically created for Evas. It is designed to allow region decompression and parallele decompression with a fast path for GPU that do handle ETC1 compression. Plan for adding other compression method will come later. --- configure.ac | 2 + m4/evas_check_loader.m4| 16 + src/Makefile_Evas.am | 52 +++ src/lib/evas/common/evas_image_load.c | 3 + src/lib/evas/file/evas_module.c| 4 + src/modules/evas/loaders/tgv/evas_image_load_tgv.c | 359 + 6 files changed, 436 insertions(+) diff --git a/configure.ac b/configure.ac index 3642b96..a848345 100644 --- a/configure.ac +++ b/configure.ac @@ -1419,6 +1419,7 @@ ARG_ENABLE_EVAS_IMAGE_LOADER(Tiff, yes) ARG_ENABLE_EVAS_IMAGE_LOADER(WBMP, static) ARG_ENABLE_EVAS_IMAGE_LOADER(WEBP, no) ARG_ENABLE_EVAS_IMAGE_LOADER(XPM, static) +ARG_ENABLE_EVAS_IMAGE_LOADER(TGV, static) ### Default values @@ -1700,6 +1701,7 @@ EVAS_CHECK_IMAGE_LOADER([Tiff], [${want_evas_image_loader_tiff}]) EVAS_CHECK_IMAGE_LOADER([WBMP],[${want_evas_image_loader_wbmp}]) EVAS_CHECK_IMAGE_LOADER([WEBP],[${want_evas_image_loader_webp}]) EVAS_CHECK_IMAGE_LOADER([XPM], [${want_evas_image_loader_xpm}]) +EVAS_CHECK_IMAGE_LOADER([TGV], [${want_evas_image_loader_tgv}]) dnl Windows has no sigsetjmp function, nor equivalent. dnl So we disable the jpeg saver. diff --git a/m4/evas_check_loader.m4 b/m4/evas_check_loader.m4 index b34c28f..07d9cdd 100644 --- a/m4/evas_check_loader.m4 +++ b/m4/evas_check_loader.m4 @@ -341,6 +341,22 @@ AS_IF([test "x${have_dep}" = "xyes"], [$3], [$4]) ]) +dnl use: EVAS_CHECK_LOADER_DEP_TGV(loader, want_static[, ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) + +AC_DEFUN([EVAS_CHECK_LOADER_DEP_TGV], +[ + +have_dep="yes" +evas_image_loader_[]$1[]_cflags="" +evas_image_loader_[]$1[]_libs="" + +AC_SUBST([evas_image_loader_$1_cflags]) +AC_SUBST([evas_image_loader_$1_libs]) + +AS_IF([test "x${have_dep}" = "xyes"], [$3], [$4]) + +]) + dnl use: EVAS_CHECK_LOADER_DEP_SVG(loader, want_static[, ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) AC_DEFUN([EVAS_CHECK_LOADER_DEP_SVG], diff --git a/src/Makefile_Evas.am b/src/Makefile_Evas.am index 6132592..5f07710 100644 --- a/src/Makefile_Evas.am +++ b/src/Makefile_Evas.am @@ -1712,6 +1712,58 @@ modules_evas_loaders_xpm_module_la_LIBTOOLFLAGS = --tag=disable-static endif endif +if BUILD_LOADER_TGV +if EVAS_STATIC_BUILD_TGV +lib_evas_libevas_la_SOURCES += \ +modules/evas/loaders/tgv/evas_image_load_tgv.c \ +static_libs/rg_etc/rg_etc1.c \ +static_libs/rg_etc/rg_etc1.h \ +static_libs/lz4/lz4.c \ +static_libs/lz4/lz4.h +lib_evas_libevas_la_CPPFLAGS += \ +-I$(top_srcdir)/src/static_libs/lz4 \ +-I$(top_srcdir)/src/static_libs/rg_etc \ +@evas_image_loader_tgv_cflags@ +lib_evas_libevas_la_LIBADD += @evas_image_loader_tgv_libs@ +if EVAS_CSERVE2 +bin_evas_evas_cserve2_slave_SOURCES += \ +modules/evas/loaders/tgv/evas_image_load_tgv.c \ +static_libs/rg_etc/rg_etc1.c \ +static_libs/rg_etc/rg_etc1.h \ +static_libs/lz4/lz4.c \ +static_libs/lz4/lz4.h +bin_evas_evas_cserve2_slave_CPPFLAGS += \ +-I$(top_builddir)/src/lib/efl \ +-I$(top_srcdir)/src/static_libs/lz4 \ +-I$(top_srcdir)/src/static_libs/rg_etc \ +-I$(top_srcdir)/src/lib/evas/ \ +@evas_image_loader_tgv_cflags@ +bin_evas_evas_cserve2_slave_LDADD += @evas_image_loader_tgv_libs@ +endif +else +loadertgvpkgdir = $(libdir)/evas/modules/loaders/tgv/$(MODULE_ARCH) +loadertgvpkg_LTLIBRARIES = modules/evas/loaders/tgv/module.la +modules_evas_loaders_tgv_module_la_SOURCES = \ +modules/evas/loaders/tgv/evas_image_load_tgv.c \ +static_libs/rg_etc/rg_etc1.c \ +static_libs/rg_etc/rg_etc1.h \ +static_libs/lz4/lz4.c \ +static_libs/lz4/lz4.h +modules_evas_loaders_tgv_module_la_CPPFLAGS = \ +-I$(top_builddir)/src/lib/efl \ +-I$(top_srcdir)/src/static_libs/lz4 \ +-I$(top_srcdir)/src/static_libs/rg_etc \ +-I$(top_srcdir)/src/lib/evas/ \ +@EVAS_CFLAGS@ \ +@evas_image_loader_tgv_cflags@ +modules_evas_loaders_tgv_module_la_LIBADD = \ +@USE_EVAS_LIBS@ \ +@evas_image_loader_tgv_libs@ +modules_evas_loaders_tgv_module_la_DEPENDENCIES = @USE_EVAS_INTERNAL_LIBS@ +modules_evas_loaders_tgv_module_la_LDFLAGS = -module @EFL_LTMODULE_FLAGS@ +modules_evas_loaders_tgv_module_la_LIBTOOLFLAGS = --tag=disable-static +endif +endif ### Unit tests diff --git a/src/lib/evas/common/evas_image_load.c b/src/lib/evas/common/evas_image_load.c index 92c6402..52d3295 100644 --- a/src/lib/evas/common/evas_image_load.c +++ b/src/lib/evas/common/evas_image_load.c @@ -64,6 +64,9 @@ static const struct ext_loader_s loaders[] = MATCHING(".cur"
[EGIT] [core/efl] master 19/32: eet: add internal encoding to ETC1 as an alternate solution to Jpeg.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=b1e576081175835cfef1626b85c3bf99fc3d8d13 commit b1e576081175835cfef1626b85c3bf99fc3d8d13 Author: Cedric BAIL Date: Tue Mar 18 18:11:49 2014 +0900 eet: add internal encoding to ETC1 as an alternate solution to Jpeg. --- src/Makefile_Eet.am| 5 +- src/lib/eet/Eet.h | 51 ++- src/lib/eet/eet_image.c| 472 +++-- src/modules/evas/loaders/eet/evas_image_load_eet.c | 12 +- src/tests/eet/eet_suite.c | 4 +- 5 files changed, 479 insertions(+), 65 deletions(-) diff --git a/src/Makefile_Eet.am b/src/Makefile_Eet.am index b8540f5..a6055f1 100644 --- a/src/Makefile_Eet.am +++ b/src/Makefile_Eet.am @@ -20,10 +20,13 @@ lib/eet/eet_utils.c \ static_libs/lz4/lz4.c \ static_libs/lz4/lz4.h \ static_libs/lz4/lz4hc.c \ -static_libs/lz4/lz4hc.h +static_libs/lz4/lz4hc.h \ +static_libs/rg_etc/rg_etc1.c \ +static_libs/rg_etc/rg_etc1.h lib_eet_libeet_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/static_libs/lz4 \ +-I$(top_srcdir)/src/static_libs/rg_etc \ -DPACKAGE_BIN_DIR=\"$(bindir)\" \ -DPACKAGE_LIB_DIR=\"$(libdir)\" \ -DPACKAGE_DATA_DIR=\"$(datadir)/eet\" \ diff --git a/src/lib/eet/Eet.h b/src/lib/eet/Eet.h index 60e58d4..e3a01fc 100644 --- a/src/lib/eet/Eet.h +++ b/src/lib/eet/Eet.h @@ -469,6 +469,25 @@ typedef enum _Eet_File_Mode } Eet_File_Mode; /**< Modes that a file can be opened. */ /** + * @enum _Eet_Image_Encoding + * Specify lossy encoding for image + * @since 1.10 + */ +typedef enum _Eet_Image_Encoding +{ + EET_IMAGE_LOSSLESS = 0, + EET_IMAGE_JPEG = 1, + EET_IMAGE_ETC1 = 2 +} Eet_Image_Encoding; + +typedef enum _Eet_Colorspace +{ + EET_COLORSPACE_ARGB = 0, + /* The number between are reserved to preserve compatibility with evas */ + EET_COLORSPACE_ETC1 = 8 +} Eet_Colorspace; + +/** * @typedef Eet_File * Opaque handle that defines an Eet file (or memory). * @@ -1054,7 +1073,7 @@ eet_data_image_header_read(Eet_File *ef, int *alpha, int *compress, int *quality, - int *lossy); + Eet_Image_Encoding *lossy); /** * Read image data from the named key in the eet file. @@ -1099,7 +1118,7 @@ eet_data_image_read(Eet_File *ef, int *alpha, int *compress, int *quality, -int *lossy); +Eet_Image_Encoding *lossy); /** * Read image data from the named key in the eet file and store it in the given buffer. @@ -1160,7 +1179,7 @@ eet_data_image_read_to_surface(Eet_File *ef, int *alpha, int *compress, int *quality, - int *lossy); + Eet_Image_Encoding *lossy); /** * Write image data to the named key in an eet file. @@ -1208,7 +1227,7 @@ eet_data_image_write(Eet_File *ef, int alpha, int compress, int quality, - int lossy); + Eet_Image_Encoding lossy); /** * Decode Image data header only to get information. @@ -1243,7 +1262,7 @@ eet_data_image_header_decode(const void *data, int *alpha, int *compress, int *quality, - int *lossy); + Eet_Image_Encoding *lossy); /** * Decode Image data into pixel data. @@ -1283,7 +1302,7 @@ eet_data_image_decode(const void *data, int *alpha, int *compress, int *quality, - int *lossy); + Eet_Image_Encoding *lossy); /** * Decode Image data into pixel data and stores in the given buffer. @@ -1325,7 +1344,7 @@ eet_data_image_decode_to_surface(const void *data, int *alpha, int *compress, int *quality, - int *lossy); + Eet_Image_Encoding *lossy); /** * Encode image data for storage or transmission. @@ -1365,7 +1384,7 @@ eet_data_image_encode(const void *data, int alpha, int compress, int quality, - int lossy); + Eet_Image_Encoding lossy); /** * @defgroup Eet_File_Image_Cipher_Group Image Store and Load using a Cipher @@ -1424,7 +1443,7 @@ eet_data_image_header_read_cipher(Eet_File *ef, int *alpha, in
[EGIT] [core/efl] master 11/32: ecore_evas: add a tool that can convert file using Evas internal loaders and savers.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=a086a4f089138ddaf1f14602328def619e9df202 commit a086a4f089138ddaf1f14602328def619e9df202 Author: Cedric BAIL Date: Wed Mar 12 18:00:41 2014 +0900 ecore_evas: add a tool that can convert file using Evas internal loaders and savers. --- src/Makefile_Ecore_Evas.am | 9 +++ src/bin/ecore_evas/.gitignore | 1 + src/bin/ecore_evas/ecore_evas_convert.c | 115 3 files changed, 125 insertions(+) diff --git a/src/Makefile_Ecore_Evas.am b/src/Makefile_Ecore_Evas.am index d72cd86..6cd53a6 100644 --- a/src/Makefile_Ecore_Evas.am +++ b/src/Makefile_Ecore_Evas.am @@ -218,3 +218,12 @@ modules_ecore_evas_engines_drm_module_la_LDFLAGS = -module @EFL_LTMODULE_FLAGS@ modules_ecore_evas_engines_drm_module_la_LIBTOOLFLAGS = --tag=disable-static endif +### Binary + +bin_PROGRAMS += \ +bin/ecore_evas/ecore_evas_convert + +bin_ecore_evas_ecore_evas_convert_SOURCES = bin/ecore_evas/ecore_evas_convert.c +bin_ecore_evas_ecore_evas_convert_CPPFLAGS = -I$(top_builddir)/src/lib/efl @ECORE_EVAS_CFLAGS@ +bin_ecore_evas_ecore_evas_convert_LDADD = @USE_ECORE_EVAS_LIBS@ +bin_ecore_evas_ecore_evas_convert_DEPENDENCIES = @USE_ECORE_EVAS_INTERNAL_LIBS@ diff --git a/src/bin/ecore_evas/.gitignore b/src/bin/ecore_evas/.gitignore new file mode 100644 index 000..4d54b46 --- /dev/null +++ b/src/bin/ecore_evas/.gitignore @@ -0,0 +1 @@ +/ecore_evas_convert diff --git a/src/bin/ecore_evas/ecore_evas_convert.c b/src/bin/ecore_evas/ecore_evas_convert.c new file mode 100644 index 000..78c8d3c --- /dev/null +++ b/src/bin/ecore_evas/ecore_evas_convert.c @@ -0,0 +1,115 @@ +#ifdef HAVE_CONFIG_H +#include +#endif + +#ifdef HAVE_EVIL +# include +#endif + +#include +#include +#include +#include +#include + +#undef EINA_LOG_DOMAIN_DEFAULT +#define EINA_LOG_DOMAIN_DEFAULT _log_dom +static int _log_dom = -1; + +const Ecore_Getopt optdesc = { + "ecore_evas_convert", + "%prog [options] ", + PACKAGE_VERSION, + "(C) 2014 Enlightenment", + "BSD with advertisement clause", + "Simple application to convert image.", + 0, + { +ECORE_GETOPT_STORE_INT('q', "quality", "define encoding quality in percent."), +ECORE_GETOPT_STORE_TRUE('c', "compress", "define if data should be compressed."), +ECORE_GETOPT_LICENSE('L', "license"), +ECORE_GETOPT_COPYRIGHT('C', "copyright"), +ECORE_GETOPT_VERSION('V', "version"), +ECORE_GETOPT_HELP('h', "help"), +ECORE_GETOPT_SENTINEL + } +}; + +int +main(int argc, char *argv[]) +{ + char flags[128]; + Ecore_Evas *ee; + Evas *e; + Evas_Object *im; + int arg_index; + int quality = 100; + int r = -1; + Eina_Bool compress = 1; + Eina_Bool quit_option = EINA_FALSE; + + Ecore_Getopt_Value values[] = { + ECORE_GETOPT_VALUE_INT(quality), + ECORE_GETOPT_VALUE_BOOL(compress), + ECORE_GETOPT_VALUE_BOOL(quit_option), + ECORE_GETOPT_VALUE_BOOL(quit_option), + ECORE_GETOPT_VALUE_BOOL(quit_option), + ECORE_GETOPT_VALUE_BOOL(quit_option), + ECORE_GETOPT_VALUE_NONE + }; + + eina_init(); + _log_dom = eina_log_domain_register(argv[0], EINA_COLOR_CYAN); + + ecore_init(); + ecore_evas_init(); + + arg_index = ecore_getopt_parse(&optdesc, values, argc, argv); + if (quit_option) goto end; + + if (arg_index < 0) + { +EINA_LOG_ERR("Could not parse argument."); +goto end; + } + if (arg_index + 2 != argc) + { +EINA_LOG_ERR("File not correctly specified."); +goto end; + } + + ee = ecore_evas_buffer_new(1, 1); + e = ecore_evas_get(ee); + if (!e) + { +EINA_LOG_ERR("Impossible to create a canvas to do the conversion."); +goto end; + } + + snprintf(flags, sizeof (flags), "compress=%i quality=%i", compress, quality); + + im = evas_object_image_add(e); + evas_object_image_file_set(im, argv[arg_index], NULL); + + if (evas_object_image_load_error_get(im) != EVAS_LOAD_ERROR_NONE) + { +EINA_LOG_ERR("Could not open '%s'. Error was \"%s\".", + argv[arg_index], + evas_load_error_str(evas_object_image_load_error_get(im))); +goto end; + } + + if (!evas_object_image_save(im, argv[arg_index + 1], NULL, flags)) + { +EINA_LOG_ERR("Could not convert file to '%s'.", argv[arg_index + 1]); +goto end; + } + + r = 0; + + end: + ecore_evas_shutdown(); + ecore_shutdown(); + + return r; +} --
[EGIT] [core/efl] master 04/32: edje_edit: fix wrong generation of part's source code (effect field).
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=9f5ea9cdae92128e586f49778ce99db7a7214689 commit 9f5ea9cdae92128e586f49778ce99db7a7214689 Author: Vorobiov Vitalii Date: Tue Apr 1 19:11:27 2014 +0900 edje_edit: fix wrong generation of part's source code (effect field). There is a static array that is used for parsing the current effect (in Part's struction the effect type is represented by a number) from a number to text. But there is one type of effects (SHADOW) that has a number combined from two types. First four bits are always used for defining the effect's type, but if it is a SHADOW effect, then there is four more bits. They are representing the direction of the shadow in TEXT block. This patch fixes code regeneration after saving edje_edit object, so now it splits the number into two pieces, so we can fully regenerate type of effect. So, in this path: - added static array that represents shadow's direction. - part's source code generaton has been modified. Reviewers: seoz, raster, cedric Reviewed By: cedric CC: reutskiy.v.v, cedric Differential Revision: https://phab.enlightenment.org/D668 Signed-off-by: Cedric BAIL --- src/lib/edje/edje_edit.c | 19 +++ 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/lib/edje/edje_edit.c b/src/lib/edje/edje_edit.c index 3d260e1..db301f1 100644 --- a/src/lib/edje/edje_edit.c +++ b/src/lib/edje/edje_edit.c @@ -7058,7 +7058,8 @@ edje_edit_script_error_list_get(Evas_Object *obj) } static const char *types[] = {"NONE", "RECT", "TEXT", "IMAGE", "SWALLOW", "TEXTBLOCK", "GRADIENT", "GROUP", "BOX", "TABLE", "EXTERNAL", "PROXY", "SPACER"}; -static const char *effects[] = {"NONE", "PLAIN", "OUTLINE", "SOFT_OUTLINE", "SHADOW", "SOFT_SHADOW", "OUTLINE_SHADOW", "OUTLINE_SOFT_SHADOW ", "FAR_SHADOW ", "FAR_SOFT_SHADOW", "GLOW"}; +static const char *effects[] = {"NONE", "PLAIN", "OUTLINE", "SOFT_OUTLINE", "SHADOW", "SOFT_SHADOW", "OUTLINE_SHADOW", "OUTLINE_SOFT_SHADOW", "FAR_SHADOW", "FAR_SOFT_SHADOW", "GLOW"}; +static const char *shadow_direction[] = {"BOTTOM_RIGHT", "BOTTOM", "BOTTOM_LEFT", "LEFT", "TOP_LEFT", "TOP", "TOP_RIGHT", "RIGHT"}; static const char *prefers[] = {"NONE", "VERTICAL", "HORIZONTAL", "BOTH"}; static Eina_Bool @@ -7807,8 +7808,18 @@ _edje_generate_source_of_part(Evas_Object *obj, Edje_Part *ep, Eina_Strbuf *buf) edje_edit_string_free(str); } if (edje_edit_part_effect_get(obj, part)) - BUF_APPENDF(I4"effect: %s;\n", -effects[edje_edit_part_effect_get(obj, part)]); + { +int effect = edje_edit_part_effect_get(obj, part); +if (effect & EDJE_TEXT_EFFECT_MASK_SHADOW_DIRECTION) + { + BUF_APPENDF(I4"effect: %s %s;\n", + effects[effect & ~EDJE_TEXT_EFFECT_MASK_SHADOW_DIRECTION], + shadow_direction[effect >> 4]); + } +else + BUF_APPENDF(I4"effect: %s;\n", + effects[effect]); + } //Dragable if (edje_edit_part_drag_x_get(obj, part) || @@ -8526,4 +8537,4 @@ edje_edit_print_internal_status(Evas_Object *obj) */ } -#include "edje_edit.eo.c" \ No newline at end of file +#include "edje_edit.eo.c" --
[EGIT] [core/efl] master 14/32: evas: let loader specify there prefered color space.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=05239d8dd24da4ec296b356adfb12d76a9130f6d commit 05239d8dd24da4ec296b356adfb12d76a9130f6d Author: Cedric BAIL Date: Mon Mar 17 14:52:47 2014 +0900 evas: let loader specify there prefered color space. --- src/lib/evas/Evas_Common.h | 17 - src/lib/evas/Evas_Loader.h | 23 ++- src/lib/evas/cache/evas_cache.h| 2 +- src/lib/evas/cache/evas_cache_image.c | 2 +- src/lib/evas/common/evas_image_data.c | 2 +- src/lib/evas/common/evas_image_load.c | 3 +++ src/lib/evas/include/evas_common_private.h | 3 ++- 7 files changed, 30 insertions(+), 22 deletions(-) diff --git a/src/lib/evas/Evas_Common.h b/src/lib/evas/Evas_Common.h index 801846b..3012548 100644 --- a/src/lib/evas/Evas_Common.h +++ b/src/lib/evas/Evas_Common.h @@ -178,23 +178,6 @@ typedef enum _Evas_Font_Hinting_Flags } Evas_Font_Hinting_Flags; /**< Flags for Font Hinting */ /** - * Colorspaces for pixel data supported by Evas - * @ingroup Evas_Object_Image - */ -typedef enum _Evas_Colorspace -{ - EVAS_COLORSPACE_ARGB, /**< ARGB 32 bits per pixel, high-byte is Alpha, accessed 1 32bit word at a time */ - /* these are not currently supported - but planned for the future */ - EVAS_COLORSPACE_YCBCR422P601_PL, /**< YCbCr 4:2:2 Planar, ITU.BT-601 specifications. The data pointed to is just an array of row pointer, pointing to the Y rows, then the Cb, then Cr rows */ - EVAS_COLORSPACE_YCBCR422P709_PL, /**< YCbCr 4:2:2 Planar, ITU.BT-709 specifications. The data pointed to is just an array of row pointer, pointing to the Y rows, then the Cb, then Cr rows */ - EVAS_COLORSPACE_RGB565_A5P, /**< 16bit rgb565 + Alpha plane at end - 5 bits of the 8 being used per alpha byte */ - EVAS_COLORSPACE_GRY8, /**< 8bit grayscale */ - EVAS_COLORSPACE_YCBCR422601_PL, /**< YCbCr 4:2:2, ITU.BT-601 specifications. The data pointed to is just an array of row pointer, pointing to line of Y,Cb,Y,Cr bytes */ - EVAS_COLORSPACE_YCBCR420NV12601_PL, /**< YCbCr 4:2:0, ITU.BT-601 specification. The data pointed to is just an array of row pointer, pointing to the Y rows, then the Cb,Cr rows. */ - EVAS_COLORSPACE_YCBCR420TM12601_PL, /**< YCbCr 4:2:0, ITU.BT-601 specification. The data pointed to is just an array of tiled row pointer, pointing to the Y rows, then the Cb,Cr rows. */ -} Evas_Colorspace; /**< Colorspaces for pixel data supported by Evas */ - -/** * How to pack items into cells in a table. * @ingroup Evas_Object_Table * diff --git a/src/lib/evas/Evas_Loader.h b/src/lib/evas/Evas_Loader.h index c37bbaa..209af13 100644 --- a/src/lib/evas/Evas_Loader.h +++ b/src/lib/evas/Evas_Loader.h @@ -146,17 +146,38 @@ typedef enum _Evas_Image_Scale_Hint EVAS_IMAGE_SCALE_HINT_STATIC = 2 /**< Image is not being re-scaled over time, thus turning scaling cache @b on for its data */ } Evas_Image_Scale_Hint; /**< How an image's data is to be treated by Evas, with regard to scaling cache */ +/** + * Colorspaces for pixel data supported by Evas + * @ingroup Evas_Object_Image + */ +typedef enum _Evas_Colorspace +{ + EVAS_COLORSPACE_ARGB, /**< ARGB 32 bits per pixel, high-byte is Alpha, accessed 1 32bit word at a time */ + /* these are not currently supported - but planned for the future */ + EVAS_COLORSPACE_YCBCR422P601_PL, /**< YCbCr 4:2:2 Planar, ITU.BT-601 specifications. The data pointed to is just an array of row pointer, pointing to the Y rows, then the Cb, then Cr rows */ + EVAS_COLORSPACE_YCBCR422P709_PL, /**< YCbCr 4:2:2 Planar, ITU.BT-709 specifications. The data pointed to is just an array of row pointer, pointing to the Y rows, then the Cb, then Cr rows */ + EVAS_COLORSPACE_RGB565_A5P, /**< 16bit rgb565 + Alpha plane at end - 5 bits of the 8 being used per alpha byte */ + EVAS_COLORSPACE_GRY8, /**< 8bit grayscale */ + EVAS_COLORSPACE_YCBCR422601_PL, /**< YCbCr 4:2:2, ITU.BT-601 specifications. The data pointed to is just an array of row pointer, pointing to line of Y,Cb,Y,Cr bytes */ + EVAS_COLORSPACE_YCBCR420NV12601_PL, /**< YCbCr 4:2:0, ITU.BT-601 specification. The data pointed to is just an array of row pointer, pointing to the Y rows, then the Cb,Cr rows. */ + EVAS_COLORSPACE_YCBCR420TM12601_PL, /**< YCbCr 4:2:0, ITU.BT-601 specification. The data pointed to is just an array of tiled row pointer, pointing to the Y rows, then the Cb,Cr rows. */ + EVAS_COLORSPACE_ETC1, /**< OpenGL ETC1 encoding of RGB texture @since 1.10 */ +} Evas_Colorspace; /**< Colorspaces for pixel data supported by Evas */ + struct _Evas_Image_Property { unsigned int w; unsigned int h; - + unsigned char scale; Eina_Bool rotated; Eina_Bool alpha; Eina_Bool premul; Eina_Bool alpha_sparse; + + const Evas_Colorspace *cspaces; /**< Specify the color space handled by the loader
[EGIT] [core/efl] master 03/32: edje_cc: fix group inheriting with scripts. (group.script and .program.script)
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=85f8661f456df2460aa9a2715023388a82e43e3c commit 85f8661f456df2460aa9a2715023388a82e43e3c Author: Vorobiov Vitalii Date: Tue Apr 1 19:09:32 2014 +0900 edje_cc: fix group inheriting with scripts. (group.script and .program.script) After doing some edje_edit manipulations there was a problem that after edje_decc of changed EDJ file it wasnt able to compile again, because some of scripts weren't inherited. The problem was in Code and Code_Script structure. There is "shared" ("script") field and "original" field that contained a string with embryo script code. After inheriting whole group, "original" field wasn't copied, so it wasn't able to write the script into resulted EDJ file (look at edje_cc_out:1407). @fix Reviewers: cedric, seoz, raster Reviewed By: cedric CC: reutskiy.v.v, cedric Differential Revision: https://phab.enlightenment.org/D671 Signed-off-by: Cedric BAIL --- src/bin/edje/edje_cc_handlers.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/bin/edje/edje_cc_handlers.c b/src/bin/edje/edje_cc_handlers.c index 477f9fc..740c53f 100644 --- a/src/bin/edje/edje_cc_handlers.c +++ b/src/bin/edje/edje_cc_handlers.c @@ -2979,8 +2979,10 @@ st_collections_group_inherit(void) cp->l1 = cp2->l1; cp->l2 = cp2->l2; cp->script = STRDUP(cp2->script); +cp->original = STRDUP(cp2->original); cd->is_lua = cd2->is_lua; cd->shared = cd2->shared; +cd->original = cd2->original; cd->programs = eina_list_append(cd->programs, cp); data_queue_copied_anonymous_lookup(pc, &(cp2->id), &(cp->id)); } --
[EGIT] [core/elementary] annotated tag v1.10.0-tech-preview created
stefan pushed a change to annotated tag v1.10.0-tech-preview in repository core/elementary. at 0a7f837c0a (tag) tagging ea8d9c7241ebfa4398eabe039ec2fb9fec2b1f8b (commit) replaces v1.9.0 tagged by Stefan Schmidt on Mon Mar 31 14:11:53 2014 +0200 - Log - v1.10.0-tech-preview Amitesh Singh (10): popup: implemented widget item focus feauture. list: implemented widget item focus feature. popup: Added descriptions for the newly introduced item,focused/item,unfocused smart callbacks. hoversel: Added "item,focused" and "item,unfocused" smart events for widget items. list: Code refractoring of _item_focused_next() list: focus highlight is handled by item theme. test_list,test_gengrid,test_genlist: Added disabled items for better testing. toolbar: implemented widget item focus feature. genlist: removed printf from commit. b72db5c19 toolbar: Check disabled status of an item in nearest visible item. Anand (1): Entry test code: Added example to show the last character of entered password Andy Williams (2): naviframe: Fixing issue with over-generalisation of common code in change: Refactored item_push functionality in naviframe. panel: Update the panel test to layout over some content - a more realistic demonstration of the capabilities Bora Hwang (1): clear up the documentation of tooltip Boris Faure (1): update .mailmap Carsten Haitzler (41): put in missing macros - they didnt get picked up during cnflict merge fix theme - colorclass work. theme - if you include edc from the theme - include all the rest it needs. theme - add more standard colorclasses in e theme (so cc dialog works) theme - one more stage in using color classes - not all original cc's fix ctxpopup getting min size from content immediately on set entry - fix menu to not popup after every time mobile sel handles are clicked wtf? returning an _X_ window should not return a win32 window handle! warning-- if building without x for elm win - improve window engine choosing code to be simpler and support display win - add accel preference option to elm windows add @since (missing) make actual accel preference work without diplay system set oops. printf-- fix pulg/socket/inline to work again config - remove old engines not supported in evas anymore. theme - tasks - fix colorclass of selected text formatting - remove space between return and ; theme overlays - fix to prepend on overlay to be semantically consistent test - elm win states - add more printfs of events on a window add soem more cb's for testign win state warning-- fix scrollbar to be clickable even if vieport is tiny compared to content fix button color classes/colors after colorclass intro fix hoversel colorclasses warning-- warning-- format fixup. Revert "adding focus direction for gengrid" add test cb to listen to all signals on layout obj code cleanup - don't repeat profile loading code if possible fix segv in toolbar item focus (new feature) fix config to upgrade bindings from system config if not there elm win - fix tracking of current position to properly store it in win obj general "bugfix" via feature - add version numbering for elm theme fix my theme version fix to not version extns/overlays win - reduce code duplication and move accel prefernce into single func remove duplicate strcmp silence complaints getting top widget if object is not an elm widget win - fix reset to 0 0 geom when window resizes. should stay at cur pos fix documentation typo/spelling Cedric BAIL (2): themes: let's pack the license in it. themes: add AUTHORS Christopher Michael (2): elm: Add Drm Detection elm: Remove unused variables ChunEon Park (15): transit - elm_transit_del() allows null pass. entry - send selection,cleared signal if a selection is dismissed. config - don't allocate memory that will be never read. entry - fixed calc issue of the wrap none mode. entry - entry did word wrapping even the mode was ELM_WRAP_NONE. scroller content type is not always widget. Revert "elm_win: Unbreak the ABI break of window type." Revert "win: Add a API, elm_win_type_get." Revert "Revert "win: Add a API, elm_win_type_get."" win - removed unknown type. win - revert the revert. 1974aff066a10df59750a6d52fd993eb0ee3 toolbar - fixed to use elm apis for elm objects elementary - added missed @since Revert "key binding: define Elm_Action function as having a return type of Eina_Bool" spinner: crash issue on deletion fix Daniel Juyung Seo (98): list: Added descriptions
[EGIT] [core/efl] annotated tag v1.10.0-tech-preview created
stefan pushed a change to annotated tag v1.10.0-tech-preview in repository core/efl. at ff583f4fdd (tag) tagging c68ba351694df3c8901cfde3320098ca813d532b (commit) replaces v1.9.0 tagged by Stefan Schmidt on Mon Mar 31 14:10:39 2014 +0200 - Log - v1.10.0-tech-preview Alex-P. Natsios (1): evas: improve portability for BSD system. Amitesh Singh (1): edje: add support of last input entered in password mode to be always visible in entry. Anand (1): evas: Fixed warning for uninitialized variables Andy Williams (2): eina_log: Update domain colouring when color_disable_set is called Remove bad NEWS line Boris Faure (2): update .mailmap evas: @fix use the correct composite op on lines with pixman Carsten Haitzler (6): fix dbus service file complaint to work again. oops - remove debug echo drm - shut up warnings (not actual bugs) warnings-- fixes enlightenment working over non-shm paths. ecore-fb - fix mouse wheel to not be inverted Cedric BAIL (50): eina: fix Windows compilation due to a typo. eina_cxx: remove left over from when Boost was a dependency. eina_cxx: don't track generated example binary. eina_cxx: make sure it can build out of the source tree. eina_cxx: fix build on 32bits systems. eina_cxx: fix build with clang. eina_cxx: move Eina_CXX to a bindings subdirectory. eina_cxx: oops forgotten path. Revert "evas example: fix warning in compilation of evas-box.c." ecore: @fix race condition when using ecore_main_loop_thread_safe_call_sync. ecore_avahi: fix timeout to be relative from now. ecore_avahi: add an avahi browse example (that doesn't work yet). evas: add libdrm as a dependency. ecore_avahi: @fix timeout to avoid pitfall of forever frozen timer. ecore_avahi: remove useless printf. edje: @feature to include license in edje file. eio: improve log when monitoring files. eio: factorize code to have one place where data are pushed. eio: let's report the path we didn't found. edje: fix edje_watch to not pass the '\n' to eio_monitor. eio: remove warning. eio: make it possible to limit the amount of memory used by threads. edje: let's allow to reset escaped text to NULL. tests: remove warnings. ecore_evas: remove warning. eina: make Eina_Error thread safe. edje: add AUTHORS and more than one license file to Edje. evas: let's still compile when we have no hw accel for DRM. git: ignore generated file. eina: indent test to up to date standard. edje: do not leak in case of error. eio: check if we need to wake up thread when the memory limit is changed. edje: external is already used directly before, so checking it is unnecessary. evas: restore behavior of stack above and below when no rel is specified. evas: the while guarantee that obj will be NULL, so let's not access it. evas: let's not access a potential NULL object when looping on a corrupted object list. evas: protect against potential NULL access. evas: protect correctly for object layer not being set. evas: be consistent in our check for NULL layer. evas: track modifier in the limited range of unsigned long long. evas: simplify path logic and make backend code more robust. evas: let's check NULL for destination object to. evas: if the class is the wrong one, you should not do the check after accessing a NULL pointer. edje: check font change in edje text part cache infra. eio: let's not divide by 0. edje: let's be careful on the string content. evas: let's be to safe than sorry. edje: let's be more careful with string. evas: let's be more resistant even with things that should never happen. evas: cleaner fail handler. Christopher Michael (106): bugfix: Fix Wayland Shm engine destination calculation typo evas-drm: Add evas_drm to build order for Evas drm engine evas-drm: Add Evas Drm Engine (software only currently) evas-drm: Set Magic on the Ecore_Evas evas-drm: Add option to enable drm hardware acceleration evas-drm: Check for drm hw accel support in the drm engine evas-drm: Fix configure.ac typo for drm hw accel argument evas-drm: Fix up some m4 formatting evas-drm: Start on hardware-accel support for drm evas-drm: Triple buffer by default. evas-drm: Call framebuffer_set earlier in the process so that the screen gets evas-drm: Fix opening of drm card evas-drm: Rename drm hardware acceleration option evas-drm: Add support for checking what GL library to use for drm hardware acceleration evas-drm: Add Evas_Engine_Drm header to source files evas-drm: Add field to engine info for storin
[EGIT] [core/elementary] master 02/03: gengrid: Added focus movement on widget items by mouse in.
raster pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=bdcdd02c9c9891d41f15ce8d57001e10a028b968 commit bdcdd02c9c9891d41f15ce8d57001e10a028b968 Author: Amitesh Singh Date: Tue Apr 1 20:26:13 2014 +0900 gengrid: Added focus movement on widget items by mouse in. Summary: - Added a test case in "Gengrid Focus". @feature Test Plan: elementary_test->Gengrid Focus Reviewers: raster, cedric, woohyun Reviewed By: raster CC: seoz Differential Revision: https://phab.enlightenment.org/D664 --- src/bin/test_gengrid.c | 50 +- src/lib/elm_gengrid.c | 13 + 2 files changed, 62 insertions(+), 1 deletion(-) diff --git a/src/bin/test_gengrid.c b/src/bin/test_gengrid.c index b153767..4d5341a 100644 --- a/src/bin/test_gengrid.c +++ b/src/bin/test_gengrid.c @@ -1323,12 +1323,26 @@ _gengrid_focus_key_down_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, printf("\n=== Key Down : %s ===\n", ev->keyname); } +static void +test_gengrid_focus_focus_move_policy_changed(void *data EINA_UNUSED, + Evas_Object *obj, + void *event_info EINA_UNUSED) +{ + int val = elm_radio_value_get(obj); + + if (val == 0) + elm_config_focus_move_policy_set(ELM_FOCUS_MOVE_POLICY_CLICK); + else if (val == 1) + elm_config_focus_move_policy_set(ELM_FOCUS_MOVE_POLICY_IN); +} + void test_gengrid_focus(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { - Evas_Object *win, *bx, *bx_horiz, *gengrid, *btn, *fr, *lb; + Evas_Object *win, *bx, *bx_horiz, *gengrid, *btn, *fr, *lb, *bx_mv, *rdg, + *rd; Elm_Gengrid_Item_Class *ic; Item_Data *id; char buf[PATH_MAX]; @@ -1399,6 +1413,40 @@ test_gengrid_focus(void *data EINA_UNUSED, elm_box_pack_end(bx_horiz, btn); evas_object_show(btn); + //Focus movement policy + fr = elm_frame_add(bx); + elm_object_text_set(fr, "Focus Movement Policy"); + evas_object_size_hint_weight_set(fr, EVAS_HINT_EXPAND, 0.0); + evas_object_size_hint_align_set(fr, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_box_pack_end(bx, fr); + evas_object_show(fr); + + bx_mv = elm_box_add(fr); + elm_box_horizontal_set(bx_mv, EINA_TRUE); + elm_object_content_set(fr, bx_mv); + evas_object_show(bx_mv); + + rdg = rd = elm_radio_add(bx_mv); + elm_object_text_set(rd, "Focus Move by Click"); + elm_radio_state_value_set(rd, 0); + evas_object_size_hint_weight_set(rd, EVAS_HINT_EXPAND, 0.0); + evas_object_smart_callback_add(rd, "changed", + test_gengrid_focus_focus_move_policy_changed, + NULL); + elm_box_pack_end(bx_mv, rd); + evas_object_show(rd); + + rd = elm_radio_add(bx_mv); + elm_object_text_set(rd, "Focus Move by Mouse-In"); + elm_radio_group_add(rd, rdg); + elm_radio_state_value_set(rd, 1); + evas_object_size_hint_weight_set(rd, EVAS_HINT_EXPAND, 0.0); + evas_object_smart_callback_add(rd, "changed", + test_gengrid_focus_focus_move_policy_changed, + NULL); + elm_box_pack_end(bx_mv, rd); + evas_object_show(rd); + ic = elm_gengrid_item_class_new(); ic->item_style = "default"; ic->func.text_get = grid_text_get; diff --git a/src/lib/elm_gengrid.c b/src/lib/elm_gengrid.c index a362aa9..0f359f5 100644 --- a/src/lib/elm_gengrid.c +++ b/src/lib/elm_gengrid.c @@ -306,6 +306,17 @@ _item_unselect(Elm_Gen_Item *it) } static void +_item_mouse_in_cb(void *data, + Evas *evas EINA_UNUSED, + Evas_Object *obj EINA_UNUSED, + void *event_info EINA_UNUSED) +{ + if (!elm_object_item_disabled_get(data) && + (_elm_config->focus_move_policy == ELM_FOCUS_MOVE_POLICY_IN)) + elm_object_item_focus_set(data, EINA_TRUE); +} + +static void _item_mouse_move_cb(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj, @@ -872,6 +883,8 @@ _item_realize(Elm_Gen_Item *it) (VIEW(it), EVAS_CALLBACK_MOUSE_UP, _item_mouse_up_cb, it); evas_object_event_callback_add (VIEW(it), EVAS_CALLBACK_MOUSE_MOVE, _item_mouse_move_cb, it); +evas_object_event_callback_add + (VIEW(it), EVAS_CALLBACK_MOUSE_IN, _item_mouse_in_cb, it); _elm_gengrid_item_index_update(it); --
[EGIT] [core/elementary] master 03/03: toolbar: Added focus movement on widget items by mouse in.
raster pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=f9690b5e8f953342f1d623047d9b55f7cb06ce16 commit f9690b5e8f953342f1d623047d9b55f7cb06ce16 Author: Amitesh Singh Date: Tue Apr 1 20:26:33 2014 +0900 toolbar: Added focus movement on widget items by mouse in. Summary: - Added a test case in "Toolbar Focus". @feature Test Plan: elementary_test->Toolbar Focus Reviewers: raster, cedric, woohyun Reviewed By: raster CC: seoz Differential Revision: https://phab.enlightenment.org/D665 --- src/bin/test_toolbar.c | 49 - src/lib/elm_toolbar.c | 4 2 files changed, 52 insertions(+), 1 deletion(-) diff --git a/src/bin/test_toolbar.c b/src/bin/test_toolbar.c index 8ce562a..1487c17 100644 --- a/src/bin/test_toolbar.c +++ b/src/bin/test_toolbar.c @@ -1113,10 +1113,23 @@ _test_toolbar_focus_disable_item_btn_cb(void *data, Evas_Object *obj EINA_UNUSED elm_object_item_disabled_set(data, EINA_TRUE); } +static void +test_toolbar_focus_focus_move_policy_changed(void *data EINA_UNUSED, + Evas_Object *obj, + void *event_info EINA_UNUSED) +{ + int val = elm_radio_value_get(obj); + + if (val == 0) + elm_config_focus_move_policy_set(ELM_FOCUS_MOVE_POLICY_CLICK); + else if (val == 1) + elm_config_focus_move_policy_set(ELM_FOCUS_MOVE_POLICY_IN); +} + void test_toolbar_focus(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { - Evas_Object *win, *bx, *toolbar, *fr, *btn, *bx_opt, *chk; + Evas_Object *win, *bx, *toolbar, *fr, *btn, *bx_opt, *chk, *bx_mv, *rd, *rdg; Elm_Object_Item *tb_it, *it_0, *it_3; win = elm_win_util_standard_add("toolbar-focus", "Toolbar Focus"); @@ -1199,6 +1212,40 @@ test_toolbar_focus(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *e evas_object_smart_callback_add(chk, "changed", _test_toolbar_focus_focus_animate_check_changed, win); + // Focus movement policy + fr = elm_frame_add(bx); + elm_object_text_set(fr, "Focus Movement Policy"); + evas_object_size_hint_weight_set(fr, EVAS_HINT_EXPAND, 0.0); + evas_object_size_hint_align_set(fr, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_box_pack_end(bx, fr); + evas_object_show(fr); + + bx_mv = elm_box_add(fr); + elm_box_horizontal_set(bx_mv, EINA_TRUE); + elm_object_content_set(fr, bx_mv); + evas_object_show(bx_mv); + + rdg = rd = elm_radio_add(bx_mv); + elm_object_text_set(rd, "Focus Move by Click"); + elm_radio_state_value_set(rd, 0); + evas_object_size_hint_weight_set(rd, EVAS_HINT_EXPAND, 0.0); + evas_object_smart_callback_add(rd, "changed", + test_toolbar_focus_focus_move_policy_changed, + NULL); + elm_box_pack_end(bx_mv, rd); + evas_object_show(rd); + + rd = elm_radio_add(bx_mv); + elm_object_text_set(rd, "Focus Move by Mouse-In"); + elm_radio_group_add(rd, rdg); + elm_radio_state_value_set(rd, 1); + evas_object_size_hint_weight_set(rd, EVAS_HINT_EXPAND, 0.0); + evas_object_smart_callback_add(rd, "changed", + test_toolbar_focus_focus_move_policy_changed, + NULL); + elm_box_pack_end(bx_mv, rd); + evas_object_show(rd); + fr = elm_frame_add(bx); elm_object_text_set(fr, "Focus"); evas_object_size_hint_weight_set(fr, EVAS_HINT_EXPAND, 0.0); diff --git a/src/lib/elm_toolbar.c b/src/lib/elm_toolbar.c index ce90317..6c3fbc3 100644 --- a/src/lib/elm_toolbar.c +++ b/src/lib/elm_toolbar.c @@ -2090,6 +2090,10 @@ _mouse_in_cb(void *data, edje_object_signal_emit(VIEW(it), "elm,state,highlighted", "elm"); if (it->icon) elm_widget_signal_emit(it->icon, "elm,state,highlighted", "elm"); + + if (!elm_object_item_disabled_get(data) && + (_elm_config->focus_move_policy == ELM_FOCUS_MOVE_POLICY_IN)) + elm_object_item_focus_set(data, EINA_TRUE); } static void --
[EGIT] [core/elementary] master 01/03: genlist: Added focus movement on widget items by mouse in.
raster pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=a7b6e169e9bc03b01ded6317b04280e478224fcc commit a7b6e169e9bc03b01ded6317b04280e478224fcc Author: Amitesh Singh Date: Tue Apr 1 20:25:03 2014 +0900 genlist: Added focus movement on widget items by mouse in. Summary: @feature Test Plan: elementary_test->Genlist Focus Reviewers: raster, cedric, woohyun Reviewed By: raster CC: seoz Differential Revision: https://phab.enlightenment.org/D663 --- src/lib/elm_genlist.c | 15 +++ 1 file changed, 15 insertions(+) diff --git a/src/lib/elm_genlist.c b/src/lib/elm_genlist.c index 1784900..32b7d7b 100644 --- a/src/lib/elm_genlist.c +++ b/src/lib/elm_genlist.c @@ -3338,6 +3338,17 @@ _item_unselect(Elm_Gen_Item *it) } static void +_item_mouse_in_cb(void *data, + Evas *evas EINA_UNUSED, + Evas_Object *obj EINA_UNUSED, + void *event_info EINA_UNUSED) +{ + if (!elm_object_item_disabled_get(data) && + (_elm_config->focus_move_policy == ELM_FOCUS_MOVE_POLICY_IN)) + elm_object_item_focus_set(data, EINA_TRUE); +} + +static void _item_mouse_move_cb(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj, @@ -4463,6 +4474,8 @@ _item_mouse_callbacks_add(Elm_Gen_Item *it, (view, EVAS_CALLBACK_MULTI_UP, _item_multi_up_cb, it); evas_object_event_callback_add (view, EVAS_CALLBACK_MULTI_MOVE, _item_multi_move_cb, it); + evas_object_event_callback_add + (view, EVAS_CALLBACK_MOUSE_IN, _item_mouse_in_cb, it); } static void @@ -4481,6 +4494,8 @@ _item_mouse_callbacks_del(Elm_Gen_Item *it, (view, EVAS_CALLBACK_MULTI_UP, _item_multi_up_cb, it); evas_object_event_callback_del_full (view, EVAS_CALLBACK_MULTI_MOVE, _item_multi_move_cb, it); + evas_object_event_callback_del_full + (view, EVAS_CALLBACK_MOUSE_IN, _item_mouse_in_cb, it); } static Eina_Bool --
[EGIT] [core/elementary] master 01/01: list: Added focus movement on widget items by mouse in.
raster pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=523f811fd2c1b2ab7367b7464777fdd23b7cc2b2 commit 523f811fd2c1b2ab7367b7464777fdd23b7cc2b2 Author: Amitesh Singh Date: Tue Apr 1 20:22:47 2014 +0900 list: Added focus movement on widget items by mouse in. Summary: @feature Test Plan: elementary_test->List Focus Reviewers: raster, cedric, woohyun Reviewed By: raster CC: seoz Differential Revision: https://phab.enlightenment.org/D662 --- src/lib/elm_list.c | 16 1 file changed, 16 insertions(+) diff --git a/src/lib/elm_list.c b/src/lib/elm_list.c index 53a94fe..beca47d 100644 --- a/src/lib/elm_list.c +++ b/src/lib/elm_list.c @@ -55,6 +55,7 @@ static void _size_hints_changed_cb(void *, Evas *, Evas_Object *, void *); static void _mouse_up_cb(void *, Evas *, Evas_Object *, void *); static void _mouse_down_cb(void *, Evas *, Evas_Object *, void *); static void _mouse_move_cb(void *, Evas *, Evas_Object *, void *); +static void _mouse_in_cb(void *, Evas *, Evas_Object *, void *); static void _items_fix(Evas_Object *); static inline void @@ -66,6 +67,8 @@ _elm_list_item_free(Elm_List_Item *it) (VIEW(it), EVAS_CALLBACK_MOUSE_UP, _mouse_up_cb, it); evas_object_event_callback_del_full (VIEW(it), EVAS_CALLBACK_MOUSE_MOVE, _mouse_move_cb, it); + evas_object_event_callback_del_full + (VIEW(it), EVAS_CALLBACK_MOUSE_IN, _mouse_in_cb, it); if (it->icon) evas_object_event_callback_del_full @@ -1464,6 +1467,17 @@ _swipe_do(Elm_List_Item *it) } static void +_mouse_in_cb(void *data, + Evas *evas EINA_UNUSED, + Evas_Object *o EINA_UNUSED, + void *event_info EINA_UNUSED) +{ + if (!elm_object_item_disabled_get(data) && + (_elm_config->focus_move_policy == ELM_FOCUS_MOVE_POLICY_IN)) + elm_object_item_focus_set(data, EINA_TRUE); +} + +static void _mouse_move_cb(void *data, Evas *evas EINA_UNUSED, Evas_Object *o EINA_UNUSED, @@ -2070,6 +2084,8 @@ _item_new(Evas_Object *obj, (VIEW(it), EVAS_CALLBACK_MOUSE_UP, _mouse_up_cb, it); evas_object_event_callback_add (VIEW(it), EVAS_CALLBACK_MOUSE_MOVE, _mouse_move_cb, it); + evas_object_event_callback_add + (VIEW(it), EVAS_CALLBACK_MOUSE_IN, _mouse_in_cb, it); evas_object_size_hint_weight_set (VIEW(it), EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(VIEW(it), EVAS_HINT_FILL, EVAS_HINT_FILL); --
[EGIT] [core/elementary] master 01/01: cnp: check object type before getting window id
raster pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=4650338c076c31a6c913a0b5779b8e24e8d9e6fb commit 4650338c076c31a6c913a0b5779b8e24e8d9e6fb Author: wonguk.jeong Date: Tue Apr 1 19:54:09 2014 +0900 cnp: check object type before getting window id Summary: problem: 1) elementary_test -> entry -> close entry window 2) type mismatch warning is shown on console as below ERR<19427>:eo lib/eo/eo.c:342 _eo_dov_internal() in elm_win.eo.c:2067: Can't execute function Elm_Win:ELM_OBJ_WIN_SUB_ID_XWINDOW_GET (op 0x167) for class 'Elm_Entry'. Aborting. solution: check top object type before invoke elm_win_xwindow_get()/elm_wl_window_get(). if it's not a window, find window id by using ecore_evas APIs. Fixes T1141 Test Plan: elementary_test -> entry -> close entry window -> check console Reviewers: raster, seoz, uartie Reviewed By: raster CC: seoz Maniphest Tasks: T1141 Differential Revision: https://phab.enlightenment.org/D684 --- src/lib/elm_cnp.c | 6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/lib/elm_cnp.c b/src/lib/elm_cnp.c index 35af060..df107a4 100644 --- a/src/lib/elm_cnp.c +++ b/src/lib/elm_cnp.c @@ -1826,7 +1826,8 @@ _x11_elm_widget_xwin_get(const Evas_Object *obj) par = elm_widget_parent_widget_get(obj); if (par) top = elm_widget_top_get(par); } -if (top) xwin = elm_win_xwindow_get(top); +if (top && (eo_isa(top, ELM_OBJ_WIN_CLASS))) +xwin = elm_win_xwindow_get(top); } if (!xwin) { @@ -3423,7 +3424,8 @@ _wl_elm_widget_window_get(Evas_Object *obj) { top = elm_widget_top_get(obj); if (!top) top = elm_widget_top_get(elm_widget_parent_widget_get(obj)); -if (top) win = elm_win_wl_window_get(top); +if (top && (eo_isa(top, ELM_OBJ_WIN_CLASS))) +win = elm_win_wl_window_get(top); } if (!win) { --
[EGIT] [core/elementary] master 01/01: menu - fix bug that happens as a result of fixing window obj position
raster pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=985229794d3e6601e27df6f612dc89b10ea29838 commit 985229794d3e6601e27df6f612dc89b10ea29838 Author: Carsten Haitzler (Rasterman) Date: Tue Apr 1 19:52:18 2014 +0900 menu - fix bug that happens as a result of fixing window obj position similar fix to 59cfed147b50d5b5c644ec75d2c6eb34e8b84294 --- src/lib/elm_menu.c | 12 +++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/lib/elm_menu.c b/src/lib/elm_menu.c index 952255a..d13f442 100644 --- a/src/lib/elm_menu.c +++ b/src/lib/elm_menu.c @@ -103,7 +103,12 @@ _submenu_sizing_eval(Elm_Menu_Item *parent_it) evas_object_geometry_get(VIEW(parent_it), &x2, &y2, &w2, &h2); evas_object_geometry_get(parent_it->submenu.bx, &bx, &by, &bw, &bh); evas_object_geometry_get(sd->parent, &px, &py, &pw, &ph); - + if (eo_isa(sd->parent, ELM_OBJ_WIN_CLASS)) + { +px = 0; +py = 0; + } + if (sd->menu_bar && !parent_it->parent) { x_p = x2; @@ -160,6 +165,11 @@ _sizing_eval(Evas_Object *obj) evas_object_geometry_get(sd->location, NULL, NULL, &w_p, &h_p); evas_object_geometry_get(sd->parent, &x2, &y2, &w2, &h2); + if (eo_isa(sd->parent, ELM_OBJ_WIN_CLASS)) + { +x2 = 0; +y2 = 0; + } evas_object_geometry_get(sd->bx, NULL, NULL, &bw, &bh); x_p = sd->xloc; --
[E-devel] Working on Enlightenment IDE
Hi, So I thought it was about time I posted about the EDI project that I'm working on. In an attempt to learn EFL whilst reducing barriers to new devs I wanted to create an IDE for / using EFL. It currently looks like this: And i'm about to move into phase 2 - adding code aware features to what is currently a project based editor. You can see / contribute to the TODO list / plan here: https://phab.enlightenment.org/w/edi/. I'd be delighted to get feedback or event some contributors to move the project forwards. You can grab the code here: http://git.enlightenment.org/devs/ajwillia-ms/edi.git Cheers, Andy - Andy Williams blog: http://ajwillia.ms web:http://andywilliams.me -- ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/elementary] master 01/01: Theme: Fixed spelling mistake in a comment.
tasn pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=64453c49ee7c2246545d98269797cf27fe83c87f commit 64453c49ee7c2246545d98269797cf27fe83c87f Author: Tom Hacohen Date: Tue Apr 1 10:43:18 2014 +0100 Theme: Fixed spelling mistake in a comment. Reported by OnlyHuman. Fixes T1142. --- data/themes/default.edc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/themes/default.edc b/data/themes/default.edc index 157d52f..09a26c5 100644 --- a/data/themes/default.edc +++ b/data/themes/default.edc @@ -13,7 +13,7 @@ collections { // elm #include "edc/elm/bg.edc" #include "edc/elm/button.edc" -// XXX: mobile mode needs invbisible scrollers... make signals that do this +// XXX: mobile mode needs invisible scrollers... make signals that do this #include "edc/elm/scroller.edc" // XXX: mobile mode needs different entry setup #include "edc/elm/entry.edc" --
Re: [E-devel] Technology preview tarball or not?
Hello. On Mon, 2014-03-31 at 21:53, Cedric BAIL wrote: > On Mon, Mar 31, 2014 at 9:14 PM, Tom Hacohen wrote: > > On 31/03/14 13:06, Stefan Schmidt wrote: > >> On Mon, 2014-03-31 at 20:35, Cedric BAIL wrote: > >>> On Mon, Mar 31, 2014 at 5:34 PM, Stefan Schmidt > >>> wrote: > In 1.5h the first stabilization week is over which marks the end of > the first cycle in 1.10. > > People suggested to release a technology preview tarball at this > stage. I planned for it on 1.9 but did not do it in the end because I > see so much changes coming in the second merge window which makes me > wonder if such a tarball would show anything. > > Would you folks prefer to have one or not? > >>> > >>> I think it would be useful for packager especially now that we did > >>> introduce eolian in the build process. This should help them get ready > >>> and be sure that our tarball are ok for them when we do start the > >>> final release cycle. > >> > >> Hmm, so it would be more an early tarball release instead of a real > >> tech preview for users and developers. I wonder if packagers would > >> really pick it up for early testing. Its 7 weeks before the final > >> release not sure if they already think about packaging 1.10. > >> > >> We would need to make sure that such a package would really only be > >> used for testing of the packaging itself and not going into any > >> distribution channels. > >> > >> In the end we will only find out when going down this path I fear. I > >> have the revs from the last commits before the second merge window > >> opened and will tag it as well as creating tech preview tarballs later > >> today or tomorrow. > >> > >> regards > >> Stefan Schmidt > >> > > > > I think this is a waste of time because of what you said, it's 7 weeks > > away from the release. I believe it's better to just do an alpha before > > the final freeze, or a pre-alpha a week before that, and have this as > > the preview. We do an alpha as soon as the second merge window closes and the stabilization phase begins. Thats only three weeks before the relase though. I guess I will give it a try to find out if people really find it useful. > For most packager, 7 weeks is still short, at least that what I heard > from them. Most of them do there work on the side giving them time to > prepare is I think worth it. Doing the tarballs, uploading them and writing a short announce blurb is easy enough. I going to push thatout today. Depending on the feedback we get we can decide if we will do it again. regards Stefan Schmidt -- ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Hoversel is completely broken - take a look at elementary_test "hoversel"
On 01/04/14 06:02, Daniel Zaoui wrote: > On 04/01/2014 04:10 AM, Carsten Haitzler (The Rasterman) wrote: >> On Mon, 31 Mar 2014 16:31:05 +0100 Tom Hacohen >> said: >> >> oh crap. what broke that? it was working a week ago or so. >> > Works for me. What do you expect? The sels don't pop. -- Tom. -- ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/elementary] master 01/01: hover - fix bug that happens as a result of fixing window obj position
raster pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=59cfed147b50d5b5c644ec75d2c6eb34e8b84294 commit 59cfed147b50d5b5c644ec75d2c6eb34e8b84294 Author: Carsten Haitzler (Rasterman) Date: Tue Apr 1 17:29:36 2014 +0900 hover - fix bug that happens as a result of fixing window obj position to fix a window position bug, window had to track actual geometry and not alwasy be at 0,0. but this means hover, that is getting geometry of the win object sometimes to figure out hover coverage area, and thus now x, y are not 0, 0 anymore... --- src/lib/elm_hover.c | 20 ++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/lib/elm_hover.c b/src/lib/elm_hover.c index 2377c59..3972667 100644 --- a/src/lib/elm_hover.c +++ b/src/lib/elm_hover.c @@ -128,7 +128,15 @@ _elm_hover_left_space_calc(Elm_Hover_Data *sd, { Evas_Coord x = 0, y = 0, w = 0, h = 0, x2 = 0, y2 = 0, w2 = 0, h2 = 0; - if (sd->parent) evas_object_geometry_get(sd->parent, &x, &y, &w, &h); + if (sd->parent) + { +evas_object_geometry_get(sd->parent, &x, &y, &w, &h); +if (eo_isa(sd->parent, ELM_OBJ_WIN_CLASS)) + { + x = 0; + y = 0; + } + } if (sd->target) evas_object_geometry_get(sd->target, &x2, &y2, &w2, &h2); *spc_l = x2 - x; @@ -302,7 +310,15 @@ _elm_hover_elm_layout_sizing_eval(Eo *obj, Elm_Hover_Data *sd) if (sd->on_del) return; - if (sd->parent) evas_object_geometry_get(sd->parent, &x, &y, &w, &h); + if (sd->parent) + { +evas_object_geometry_get(sd->parent, &x, &y, &w, &h); +if (eo_isa(sd->parent, ELM_OBJ_WIN_CLASS)) + { + x = 0; + y = 0; + } + } evas_object_geometry_get(obj, &x2, &y2, &w2, &h2); if (elm_widget_mirrored_get(obj)) ofs_x = w - (x2 - x) - w2; --
Re: [E-devel] Hoversel is completely broken - take a look at elementary_test "hoversel"
there are some others ../src/lib/edje/edje.eo.c:2609: Can't execute functionEdje:EDJE_OBJ_SUB_ID_SIGNAL_EMIT (op 0x22f) for class 'Elm_Layout'. Aborting. (focus/unfocus) should be an Edje object, maybe the below does the trick, I don't have much time to look further into it @@ -951,7 +951,9 @@ _elc_naviframe_elm_layout_signal_emit(Eo *obj, Elc_Naviframe_Data *sd, const cha { if (!sd->stack) return; - eo_do_super(obj, MY_CLASS, elm_obj_layout_signal_emit(emission, source)); + Elm_Object_Item *it = elm_naviframe_top_item_get(obj); + if (!it) return; + eo_do(it, elm_obj_layout_signal_emit(emission, source)); } ./elm_win.eo.c:2149: Can't execute function Elm_Win:ELM_OBJ_WIN_SUB_ID_RESIZE_OBJECT_ADD (op 0x174) for class 'Elc_Naviframe'. Aborting. didn't look at it -- ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [tools/enventor] master 01/01: editor - fixed incorrect handle declare.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=cf0024b02f6d35232fd245eb3a1df215ba31bf48 commit cf0024b02f6d35232fd245eb3a1df215ba31bf48 Author: ChunEon Park Date: Tue Apr 1 16:05:08 2014 +0900 editor - fixed incorrect handle declare. --- src/bin/edc_editor.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/edc_editor.c b/src/bin/edc_editor.c index caa57a5..0b2af42 100644 --- a/src/bin/edc_editor.c +++ b/src/bin/edc_editor.c @@ -20,7 +20,7 @@ struct editor_s int cur_line; int line_max; - Ecore_Idler *syntax_color_timer; + Ecore_Timer *syntax_color_timer; void (*view_sync_cb)(void *data, Eina_Stringshare *part_name, Eina_Stringshare *group_name); --