Re: [E-devel] Terminology Configuration Enhancement

2014-04-01 Thread The Rasterman
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.

2014-04-01 Thread Cedric BAIL
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

2014-04-01 Thread Jean-Philippe ANDRÉ
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

2014-04-01 Thread Jean-Philippe ANDRÉ
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

2014-04-01 Thread Jean-Philippe ANDRÉ
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.

2014-04-01 Thread Cedric BAIL
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

2014-04-01 Thread Daniel Zaoui
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

2014-04-01 Thread Jean-Philippe ANDRÉ
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.

2014-04-01 Thread Cedric BAIL
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

2014-04-01 Thread Cedric BAIL
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

2014-04-01 Thread Alex-P. Natsios
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

2014-04-01 Thread Jason Cook
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

2014-04-01 Thread Daniel Juyung Seo
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

2014-04-01 Thread Tom Hacohen
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

2014-04-01 Thread Daniel Zaoui
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

2014-04-01 Thread Stefan Schmidt
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

2014-04-01 Thread Stefan Schmidt
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

2014-04-01 Thread Yossi Kantor
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.

2014-04-01 Thread Daniel Zaoui
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

2014-04-01 Thread Yossi Kantor
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

2014-04-01 Thread Daniel Zaoui
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

2014-04-01 Thread Stefan Schmidt
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++.

2014-04-01 Thread Tom Hacohen
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.

2014-04-01 Thread Tom Hacohen
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.

2014-04-01 Thread Tom Hacohen
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

2014-04-01 Thread Tom Hacohen
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

2014-04-01 Thread Daniel Zaoui
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

2014-04-01 Thread Jaeun Choi
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

2014-04-01 Thread Stefan Schmidt
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.

2014-04-01 Thread Tom Hacohen
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.

2014-04-01 Thread Cedric BAIL
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.

2014-04-01 Thread Cedric BAIL
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.

2014-04-01 Thread Cedric BAIL
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

2014-04-01 Thread wonguk . jeong
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.

2014-04-01 Thread Cedric BAIL
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.

2014-04-01 Thread Cedric BAIL
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.

2014-04-01 Thread Cedric BAIL
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.

2014-04-01 Thread Cedric BAIL
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.

2014-04-01 Thread Cedric BAIL
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.

2014-04-01 Thread Cedric BAIL
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

2014-04-01 Thread Cedric BAIL
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.

2014-04-01 Thread Cedric BAIL
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.

2014-04-01 Thread Cedric BAIL
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.

2014-04-01 Thread Cedric BAIL
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.

2014-04-01 Thread Cedric BAIL
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.

2014-04-01 Thread Cedric BAIL
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.

2014-04-01 Thread Cedric BAIL
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.

2014-04-01 Thread Cedric BAIL
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.

2014-04-01 Thread Cedric BAIL
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.

2014-04-01 Thread Cedric BAIL
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.

2014-04-01 Thread Cedric BAIL
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++.

2014-04-01 Thread Felipe Magno de Almeida
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.

2014-04-01 Thread Cedric BAIL
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.

2014-04-01 Thread Cedric BAIL
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.

2014-04-01 Thread Cedric BAIL
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.

2014-04-01 Thread Cedric BAIL
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).

2014-04-01 Thread Vorobiov Vitalii
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.

2014-04-01 Thread Cedric BAIL
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)

2014-04-01 Thread Vorobiov Vitalii
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

2014-04-01 Thread Enlightenment Git
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

2014-04-01 Thread Enlightenment Git
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.

2014-04-01 Thread Amitesh Singh
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.

2014-04-01 Thread Amitesh Singh
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.

2014-04-01 Thread Amitesh Singh
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.

2014-04-01 Thread Amitesh Singh
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

2014-04-01 Thread wonguk . jeong
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

2014-04-01 Thread Carsten Haitzler
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

2014-04-01 Thread Andrew Williams
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.

2014-04-01 Thread Tom Hacohen
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?

2014-04-01 Thread Stefan Schmidt
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"

2014-04-01 Thread Tom Hacohen
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

2014-04-01 Thread Carsten Haitzler
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"

2014-04-01 Thread Jérémy Zurcher
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.

2014-04-01 Thread ChunEon Park
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);

--