summaryrefslogtreecommitdiff
path: root/src/lib/evas
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/evas')
-rw-r--r--src/lib/evas/Evas_GL.h22
-rw-r--r--src/lib/evas/canvas/evas_object_image.c2
-rw-r--r--src/lib/evas/canvas/evas_object_smart.c27
-rw-r--r--src/lib/evas/canvas/evas_object_textblock.c40
-rw-r--r--src/lib/evas/common/evas_image_load.c26
-rw-r--r--src/lib/evas/common/evas_text_utils.c15
6 files changed, 96 insertions, 36 deletions
diff --git a/src/lib/evas/Evas_GL.h b/src/lib/evas/Evas_GL.h
index 614fef9334..c740439d31 100644
--- a/src/lib/evas/Evas_GL.h
+++ b/src/lib/evas/Evas_GL.h
@@ -5117,8 +5117,9 @@ typedef unsigned long long EvasGLTime;
5117 * Version 4: [version 3] + GLES3.0 + GLES3.0 extensions 5117 * Version 4: [version 3] + GLES3.0 + GLES3.0 extensions
5118 * Version 5: [version 4] + GLES3.1 5118 * Version 5: [version 4] + GLES3.1
5119 * Version 6: [version 5] + GLES3.2 5119 * Version 6: [version 5] + GLES3.2
5120 * Version 7: [version 7] + query formats + modifiers
5120 */ 5121 */
5121#define EVAS_GL_API_VERSION 6 5122#define EVAS_GL_API_VERSION 7
5122 5123
5123/** 5124/**
5124 * @brief The Evas GL API 5125 * @brief The Evas GL API
@@ -6106,6 +6107,25 @@ EvasGLImage *img = glapi->evasglCreateImageForContext
6106 * new APIs here, please bump the struct version number (together with 6107 * new APIs here, please bump the struct version number (together with
6107 * the EFL version bump). 6108 * the EFL version bump).
6108 */ 6109 */
6110
6111 /**
6112 * @name Evas GL Wayland functions
6113 *
6114 * Evas_GL_API version 7 or higher.
6115 *
6116 * @since 1.26
6117 * @{ */
6118 /**
6119 * @anchor evasglQueryDmaBufFormats
6120 * @brief Direct map to eglQueryDmaBufFormatsEXT
6121 */
6122 Eina_Bool (*evasglQueryDmaBufFormats) (Evas_GL *evas_gl, int max_formats, int *formats, int *num_formats);
6123 /**
6124 * @anchor evasglQueryDmaBufModifiers
6125 * @brief RDirect map to eglQueryDmaBufModifiersEXT
6126 */
6127 Eina_Bool (*evasglQueryDmaBufModifiers) (Evas_GL *evas_gl, int format, int max_modifiers, uint64_t *modifiers, Eina_Bool *external_only, int *num_modifiers);
6128 /** @} */
6109}; 6129};
6110 6130
6111/** 6131/**
diff --git a/src/lib/evas/canvas/evas_object_image.c b/src/lib/evas/canvas/evas_object_image.c
index 1e8e32cd94..84e08fcce1 100644
--- a/src/lib/evas/canvas/evas_object_image.c
+++ b/src/lib/evas/canvas/evas_object_image.c
@@ -284,8 +284,8 @@ _evas_image_init_set(const Eina_File *f, const char *key,
284 ENFN->image_data_preload_cancel(ENC, o->engine_data, eo_obj, EINA_FALSE); 284 ENFN->image_data_preload_cancel(ENC, o->engine_data, eo_obj, EINA_FALSE);
285 } 285 }
286 ENFN->image_free(ENC, o->engine_data); 286 ENFN->image_free(ENC, o->engine_data);
287 o->engine_data = NULL;
287 } 288 }
288 o->engine_data = NULL;
289 o->load_error = EFL_GFX_IMAGE_LOAD_ERROR_NONE; 289 o->load_error = EFL_GFX_IMAGE_LOAD_ERROR_NONE;
290 if (!lo) return; 290 if (!lo) return;
291 lo->emile.scale_down_by = o->load_opts->scale_down_by; 291 lo->emile.scale_down_by = o->load_opts->scale_down_by;
diff --git a/src/lib/evas/canvas/evas_object_smart.c b/src/lib/evas/canvas/evas_object_smart.c
index 012a7f4374..a9e654bdcb 100644
--- a/src/lib/evas/canvas/evas_object_smart.c
+++ b/src/lib/evas/canvas/evas_object_smart.c
@@ -1377,12 +1377,27 @@ evas_object_smart_changed_get(Evas_Object_Protected_Data *obj)
1377 return EINA_FALSE; 1377 return EINA_FALSE;
1378 1378
1379 //b. Object clipper visibility 1379 //b. Object clipper visibility
1380 if ((obj->prev->clipper && obj->cur->clipper) && 1380 if (obj->prev->clipper && obj->cur->clipper)
1381 ((!obj->prev->clipper->cur->visible && 1381 {
1382 !obj->cur->clipper->cur->visible) || 1382 if (obj->prev->clipper != obj->cur->clipper)
1383 ((obj->prev->clipper->cur->color.a == 0) && 1383 {
1384 (obj->cur->clipper->cur->color.a == 0)))) 1384 /* check between prev clipper and current clipper */
1385 return EINA_FALSE; 1385 if ((!obj->prev->clipper->cur->visible &&
1386 !obj->cur->clipper->cur->visible) ||
1387 ((obj->prev->clipper->cur->color.a == 0) &&
1388 (obj->cur->clipper->cur->color.a == 0)))
1389 return EINA_FALSE;
1390 }
1391 else
1392 {
1393 /* check between prev value and current value of clipper */
1394 if ((!obj->cur->clipper->prev->visible &&
1395 !obj->cur->clipper->cur->visible) ||
1396 ((obj->cur->clipper->prev->color.a == 0) &&
1397 (obj->cur->clipper->cur->color.a == 0)))
1398 return EINA_FALSE;
1399 }
1400 }
1386 1401
1387 if (!obj->clip.clipees) 1402 if (!obj->clip.clipees)
1388 { 1403 {
diff --git a/src/lib/evas/canvas/evas_object_textblock.c b/src/lib/evas/canvas/evas_object_textblock.c
index f44dfaab5c..ff87db7be0 100644
--- a/src/lib/evas/canvas/evas_object_textblock.c
+++ b/src/lib/evas/canvas/evas_object_textblock.c
@@ -1785,8 +1785,8 @@ _format_command_legacy_only(Evas_Object_Textblock_Format *fmt, const char *cmd,
1785 * @li "#RRGGBBAA" 1785 * @li "#RRGGBBAA"
1786 * @li "#RGB" 1786 * @li "#RGB"
1787 * @li "#RGBA" 1787 * @li "#RGBA"
1788 * @li "rgb(r,g,b)" 1788 * @li "rgb(0-255,0-255,0-255)"
1789 * @li "rgba(r,g,b,a)" 1789 * @li "rgba(0-255,0-255,0-255,0.0-1.0)"
1790 * @li "color_name" like "red" 1790 * @li "color_name" like "red"
1791 * @code 1791 * @code
1792 * backing_color=<color> 1792 * backing_color=<color>
@@ -1827,8 +1827,8 @@ _format_command_legacy_only(Evas_Object_Textblock_Format *fmt, const char *cmd,
1827 * @li "#RRGGBBAA" 1827 * @li "#RRGGBBAA"
1828 * @li "#RGB" 1828 * @li "#RGB"
1829 * @li "#RGBA" 1829 * @li "#RGBA"
1830 * @li "rgb(r,g,b)" 1830 * @li "rgb(0-255,0-255,0-255)"
1831 * @li "rgba(r,g,b,a)" 1831 * @li "rgba(0-255,0-255,0-255,0.0-1.0)"
1832 * @li "color_name" like "red" 1832 * @li "color_name" like "red"
1833 * @code 1833 * @code
1834 * underline2_color=<color> 1834 * underline2_color=<color>
@@ -1849,8 +1849,8 @@ _format_command_legacy_only(Evas_Object_Textblock_Format *fmt, const char *cmd,
1849 * @li "#RRGGBBAA" 1849 * @li "#RRGGBBAA"
1850 * @li "#RGB" 1850 * @li "#RGB"
1851 * @li "#RGBA" 1851 * @li "#RGBA"
1852 * @li "rgb(r,g,b)" 1852 * @li "rgb(0-255,0-255,0-255)"
1853 * @li "rgba(r,g,b,a)" 1853 * @li "rgba(0-255,0-255,0-255,0.0-1.0)"
1854 * @li "color_name" like "red" 1854 * @li "color_name" like "red"
1855 * @code 1855 * @code
1856 * glow2_color=<color> 1856 * glow2_color=<color>
@@ -2001,8 +2001,8 @@ _format_command_legacy_only(Evas_Object_Textblock_Format *fmt, const char *cmd,
2001 * @li "#RRGGBBAA" 2001 * @li "#RRGGBBAA"
2002 * @li "#RGB" 2002 * @li "#RGB"
2003 * @li "#RGBA" 2003 * @li "#RGBA"
2004 * @li "rgb(r,g,b)" 2004 * @li "rgb(0-255,0-255,0-255)"
2005 * @li "rgba(r,g,b,a)" 2005 * @li "rgba(0-255,0-255,0-255,0.0-1.0)"
2006 * @li "color_name" like "red" 2006 * @li "color_name" like "red"
2007 * @code 2007 * @code
2008 * underline_dash_color=<color> 2008 * underline_dash_color=<color>
@@ -2516,8 +2516,8 @@ _format_command(Evas_Object *eo_obj, Evas_Object_Textblock_Format *fmt, const ch
2516 * @li "#RRGGBBAA" 2516 * @li "#RRGGBBAA"
2517 * @li "#RGB" 2517 * @li "#RGB"
2518 * @li "#RGBA" 2518 * @li "#RGBA"
2519 * @li "rgb(r,g,b)" 2519 * @li "rgb(0-255,0-255,0-255)"
2520 * @li "rgba(r,g,b,a)" 2520 * @li "rgba(0-255,0-255,0-255,0.0-1.0)"
2521 * @li "color_name" like "red" 2521 * @li "color_name" like "red"
2522 * @code 2522 * @code
2523 * color=<color> 2523 * color=<color>
@@ -2537,8 +2537,8 @@ _format_command(Evas_Object *eo_obj, Evas_Object_Textblock_Format *fmt, const ch
2537 * @li "#RRGGBBAA" 2537 * @li "#RRGGBBAA"
2538 * @li "#RGB" 2538 * @li "#RGB"
2539 * @li "#RGBA" 2539 * @li "#RGBA"
2540 * @li "rgb(r,g,b)" 2540 * @li "rgb(0-255,0-255,0-255)"
2541 * @li "rgba(r,g,b,a)" 2541 * @li "rgba(0-255,0-255,0-255,0.0-1.0)"
2542 * @li "color_name" like "red" 2542 * @li "color_name" like "red"
2543 * @code 2543 * @code
2544 * underline_color=<color> 2544 * underline_color=<color>
@@ -2559,8 +2559,8 @@ _format_command(Evas_Object *eo_obj, Evas_Object_Textblock_Format *fmt, const ch
2559 * @li "#RRGGBBAA" 2559 * @li "#RRGGBBAA"
2560 * @li "#RGB" 2560 * @li "#RGB"
2561 * @li "#RGBA" 2561 * @li "#RGBA"
2562 * @li "rgb(r,g,b)" 2562 * @li "rgb(0-255,0-255,0-255)"
2563 * @li "rgba(r,g,b,a)" 2563 * @li "rgba(0-255,0-255,0-255,0.0-1.0)"
2564 * @li "color_name" like "red" 2564 * @li "color_name" like "red"
2565 * @code 2565 * @code
2566 * outline_color=<color> 2566 * outline_color=<color>
@@ -2581,8 +2581,8 @@ _format_command(Evas_Object *eo_obj, Evas_Object_Textblock_Format *fmt, const ch
2581 * @li "#RRGGBBAA" 2581 * @li "#RRGGBBAA"
2582 * @li "#RGB" 2582 * @li "#RGB"
2583 * @li "#RGBA" 2583 * @li "#RGBA"
2584 * @li "rgb(r,g,b)" 2584 * @li "rgb(0-255,0-255,0-255)"
2585 * @li "rgba(r,g,b,a)" 2585 * @li "rgba(0-255,0-255,0-255,0.0-1.0)"
2586 * @li "color_name" like "red" 2586 * @li "color_name" like "red"
2587 * @code 2587 * @code
2588 * shadow_color=<color> 2588 * shadow_color=<color>
@@ -2603,8 +2603,8 @@ _format_command(Evas_Object *eo_obj, Evas_Object_Textblock_Format *fmt, const ch
2603 * @li "#RRGGBBAA" 2603 * @li "#RRGGBBAA"
2604 * @li "#RGB" 2604 * @li "#RGB"
2605 * @li "#RGBA" 2605 * @li "#RGBA"
2606 * @li "rgb(r,g,b)" 2606 * @li "rgb(0-255,0-255,0-255)"
2607 * @li "rgba(r,g,b,a)" 2607 * @li "rgba(0-255,0-255,0-255,0.0-1.0)"
2608 * @li "color_name" like "red" 2608 * @li "color_name" like "red"
2609 * @code 2609 * @code
2610 * glow_color=<color> 2610 * glow_color=<color>
@@ -2625,8 +2625,8 @@ _format_command(Evas_Object *eo_obj, Evas_Object_Textblock_Format *fmt, const ch
2625 * @li "#RRGGBBAA" 2625 * @li "#RRGGBBAA"
2626 * @li "#RGB" 2626 * @li "#RGB"
2627 * @li "#RGBA" 2627 * @li "#RGBA"
2628 * @li "rgb(r,g,b)" 2628 * @li "rgb(0-255,0-255,0-255)"
2629 * @li "rgba(r,g,b,a)" 2629 * @li "rgba(0-255,0-255,0-255,0.0-1.0)"
2630 * @li "color_name" like "red" 2630 * @li "color_name" like "red"
2631 * @code 2631 * @code
2632 * strikethrough_color=<color> 2632 * strikethrough_color=<color>
diff --git a/src/lib/evas/common/evas_image_load.c b/src/lib/evas/common/evas_image_load.c
index 797fae37ea..5ca80b5811 100644
--- a/src/lib/evas/common/evas_image_load.c
+++ b/src/lib/evas/common/evas_image_load.c
@@ -94,26 +94,48 @@ static const struct ext_loader_s loaders[] =
94 MATCHING(".svgz", "generic"), 94 MATCHING(".svgz", "generic"),
95 MATCHING(".svg.gz", "generic"), 95 MATCHING(".svg.gz", "generic"),
96 /* RAW */ 96 /* RAW */
97 MATCHING(".3fr", "generic"),
98 MATCHING(".ari", "generic"),
97 MATCHING(".arw", "generic"), 99 MATCHING(".arw", "generic"),
98 MATCHING(".cr2", "generic"), 100 MATCHING(".bay", "generic"),
101 MATCHING(".braw", "generic"),
99 MATCHING(".crw", "generic"), 102 MATCHING(".crw", "generic"),
103 MATCHING(".cr2", "generic"),
104 MATCHING(".cr3", "generic"),
105 MATCHING(".cap", "generic"),
106 MATCHING(".data", "generic"),
100 MATCHING(".dcr", "generic"), 107 MATCHING(".dcr", "generic"),
108 MATCHING(".dcs", "generic"),
101 MATCHING(".dng", "generic"), 109 MATCHING(".dng", "generic"),
110 MATCHING(".drf", "generic"),
111 MATCHING(".eip", "generic"),
102 MATCHING(".erf", "generic"), 112 MATCHING(".erf", "generic"),
103 MATCHING(".fff", "generic"), 113 MATCHING(".fff", "generic"),
114 MATCHING(".gpr", "generic"),
115 MATCHING(".iiq", "generic"),
104 MATCHING(".k25", "generic"), 116 MATCHING(".k25", "generic"),
105 MATCHING(".kdc", "generic"), 117 MATCHING(".kdc", "generic"),
118 MATCHING(".mdc", "generic"),
119 MATCHING(".mef", "generic"),
120 MATCHING(".mos", "generic"),
106 MATCHING(".mrw", "generic"), 121 MATCHING(".mrw", "generic"),
107 MATCHING(".nef", "generic"), 122 MATCHING(".nef", "generic"),
108 MATCHING(".nrf", "generic"),
109 MATCHING(".nrw", "generic"), 123 MATCHING(".nrw", "generic"),
124 MATCHING(".obm", "generic"),
110 MATCHING(".orf", "generic"), 125 MATCHING(".orf", "generic"),
111 MATCHING(".pef", "generic"), 126 MATCHING(".pef", "generic"),
127 MATCHING(".ptx", "generic"),
128 MATCHING(".pxn", "generic"),
129 MATCHING(".r3d", "generic"),
112 MATCHING(".raf", "generic"), 130 MATCHING(".raf", "generic"),
113 MATCHING(".raw", "generic"), 131 MATCHING(".raw", "generic"),
132 MATCHING(".rw1", "generic"),
114 MATCHING(".rw2", "generic"), 133 MATCHING(".rw2", "generic"),
134 MATCHING(".rwz", "generic"),
115 MATCHING(".sr2", "generic"), 135 MATCHING(".sr2", "generic"),
116 MATCHING(".srf", "generic"), 136 MATCHING(".srf", "generic"),
137 MATCHING(".srw", "generic"),
138 MATCHING(".tif", "generic"),
117 MATCHING(".x3f", "generic"), 139 MATCHING(".x3f", "generic"),
118 /* video */ 140 /* video */
119 MATCHING(".264", "generic"), 141 MATCHING(".264", "generic"),
diff --git a/src/lib/evas/common/evas_text_utils.c b/src/lib/evas/common/evas_text_utils.c
index 99a9c3e3b3..1a0a7a0af2 100644
--- a/src/lib/evas/common/evas_text_utils.c
+++ b/src/lib/evas/common/evas_text_utils.c
@@ -1362,8 +1362,8 @@ Eina_Bool read_byte_color_component(const char* source,char ** next,unsigned cha
1362 * 3. "#RGB" 1362 * 3. "#RGB"
1363 * 4. "#RGBA" 1363 * 4. "#RGBA"
1364 * 5. "color names" 1364 * 5. "color names"
1365 * 6. "rgb(r,g,b)" 1365 * 6. "rgb(0-255,0-255,0-255)"
1366 * 7. "rgba(r,g,b,a)" 1366 * 7. "rgba(0-255,0-255,0-255,0.0-1.0)"
1367 * TODO (we may use specific color parser) 1367 * TODO (we may use specific color parser)
1368 * 8. "hsl(H,S,L)" 1368 * 8. "hsl(H,S,L)"
1369 * 9. "hsla(H,S,L,A)" 1369 * 9. "hsla(H,S,L,A)"
@@ -1422,7 +1422,7 @@ evas_common_format_color_parse(const char *str, int slen,
1422 } 1422 }
1423 else v = EINA_FALSE; 1423 else v = EINA_FALSE;
1424 } 1424 }
1425 else if (slen <= 21)/* search for rgb(),hsv(),colorname, 20 is length of rgba(255,255,255,255) */ 1425 else if (slen <= 25)/* search for rgb(),hsv(),colorname, 25 is length of rgba(255,255,255,1.0) */
1426 { 1426 {
1427 /*remove spaces and convert name to lowercase*/ 1427 /*remove spaces and convert name to lowercase*/
1428 char color_name[0xFF] = {0}; 1428 char color_name[0xFF] = {0};
@@ -1446,20 +1446,23 @@ evas_common_format_color_parse(const char *str, int slen,
1446 *a = 0xff; 1446 *a = 0xff;
1447 } 1447 }
1448 } 1448 }
1449 else if ((strncmp(color_name,"rgba(",4) == 0) && color_name[slen-1] == ')'&& slen >= 13 && slen <=21) /* rgba() */ 1449 else if ((strncmp(color_name,"rgba(",4) == 0) && color_name[slen-1] == ')'&& slen >= 13 && slen <=25) /* rgba() */
1450 { 1450 {
1451 char * p_color = &color_name[4]; 1451 char * p_color = &color_name[4];
1452 1452
1453 if ( 1453 if (
1454 (!read_byte_color_component(++p_color,&p_color,r) || !p_color || *p_color != ',') || 1454 (!read_byte_color_component(++p_color,&p_color,r) || !p_color || *p_color != ',') ||
1455 (!read_byte_color_component(++p_color,&p_color,g) || !p_color || *p_color != ',') || 1455 (!read_byte_color_component(++p_color,&p_color,g) || !p_color || *p_color != ',') ||
1456 (!read_byte_color_component(++p_color,&p_color,b) || !p_color || *p_color != ',') || 1456 (!read_byte_color_component(++p_color,&p_color,b) || !p_color || *p_color != ',')
1457 (!read_byte_color_component(++p_color,&p_color,a) || !p_color || *p_color != ')')
1458 ) 1457 )
1459 { 1458 {
1460 *r = *g = *b = *a = 0; 1459 *r = *g = *b = *a = 0;
1461 v = EINA_FALSE; 1460 v = EINA_FALSE;
1462 } 1461 }
1462 else
1463 {
1464 *a = (unsigned char)(strtof(++p_color, NULL) * 255);
1465 }
1463 } 1466 }
1464 else 1467 else
1465 { 1468 {