From 783cb5e6f8543b272fa20fd00274631b2c4c39a2 Mon Sep 17 00:00:00 2001 From: "jk7744.park" Date: Wed, 24 Feb 2016 18:55:41 +0900 Subject: [PATCH] Tizen 2.4.0 rev3 SDK Public Release --- packaging/efl.spec | 2 +- src/lib/ecore/ecore_timer.eo | 2 +- src/lib/ecore_buffer/Ecore_Buffer.h | 10 +- src/lib/ecore_evas/ecore_evas.c | 3 - src/lib/ecore_x/xlib/ecore_x_keygrab.c | 5 +- src/lib/edje/Edje_Edit.h | 16 +- src/lib/edje/edje_calc.c | 10 - src/lib/edje/edje_object.eo | 62 +++--- src/lib/edje/edje_private.h | 4 - src/lib/eet/eet_image.c | 17 +- src/lib/eina/eina_binshare.h | 2 +- src/lib/eina/eina_hash.h | 4 - src/lib/eina/eina_iterator.h | 8 - src/lib/eina/eina_simple_xml_parser.h | 4 - src/lib/eina/eina_str.h | 10 +- src/lib/eina/eina_strbuf.h | 32 --- src/lib/eina/eina_stringshare.c | 6 +- src/lib/eldbus/eldbus_pending.c | 12 +- src/lib/evas/Evas_Common.h | 233 ++++++++++----------- src/lib/evas/canvas/evas_render.c | 13 +- .../ecore_buffer/x11_dri2/ecore_buffer_x11_dri2.c | 14 +- .../ecore_buffer/x11_dri3/ecore_buffer_x11_dri3.c | 4 +- .../ecore_evas/engines/extn/ecore_evas_extn.c | 12 +- .../ecore_evas/engines/win32/ecore_evas_win32.c | 18 +- src/modules/ecore_evas/engines/x/ecore_evas_x.c | 151 +------------ .../evas/engines/gl_common/evas_gl_api_ext_def.h | 7 - src/modules/evas/engines/gl_common/evas_gl_core.c | 45 +--- .../evas/engines/gl_common/evas_gl_core_private.h | 17 +- src/modules/evas/engines/gl_common/evas_gl_image.c | 5 +- src/modules/evas/engines/gl_drm/evas_engine.c | 3 - src/modules/evas/engines/gl_sdl/evas_engine.c | 3 - src/modules/evas/engines/gl_x11/evas_engine.c | 201 +----------------- src/modules/evas/engines/gl_x11/evas_engine.h | 1 - src/modules/evas/engines/gl_x11/evas_x_main.c | 109 +--------- src/modules/evas/engines/wayland_egl/evas_engine.c | 3 - .../evas/image_loaders/eet/evas_image_load_eet.c | 80 +++---- 36 files changed, 248 insertions(+), 880 deletions(-) mode change 100755 => 100644 src/modules/evas/engines/gl_common/evas_gl_core.c mode change 100755 => 100644 src/modules/evas/engines/gl_common/evas_gl_core_private.h mode change 100755 => 100644 src/modules/evas/engines/gl_drm/evas_engine.c mode change 100755 => 100644 src/modules/evas/engines/gl_sdl/evas_engine.c mode change 100755 => 100644 src/modules/evas/engines/wayland_egl/evas_engine.c diff --git a/packaging/efl.spec b/packaging/efl.spec index 3ba589d..3a79fcc 100755 --- a/packaging/efl.spec +++ b/packaging/efl.spec @@ -1,7 +1,7 @@ %bcond_with wayland Name: efl -Version: 1.13.26 +Version: 1.13.24 Release: 0 License: LGPL-2.1+ Summary: Enlightenment Foundation Libraries - set of libraries used (not only) by E17 diff --git a/src/lib/ecore/ecore_timer.eo b/src/lib/ecore/ecore_timer.eo index c5bb0b4..08722c9 100644 --- a/src/lib/ecore/ecore_timer.eo +++ b/src/lib/ecore/ecore_timer.eo @@ -7,7 +7,7 @@ class Ecore.Timer (Eo.Base) timer callback returns true. If it does not they will be automatically deleted and never called again. Timers require the ecore mainloop to be running and functioning properly. They do not - guarantee exact timing, but try to work on a best effort basis. + guarantee exact timing, but try to work on a "best effort basis. @if MOBILE @since_tizen 2.3 @elseif WEARABLE @since_tizen 2.3.1 diff --git a/src/lib/ecore_buffer/Ecore_Buffer.h b/src/lib/ecore_buffer/Ecore_Buffer.h index d951600..eb595d5 100644 --- a/src/lib/ecore_buffer/Ecore_Buffer.h +++ b/src/lib/ecore_buffer/Ecore_Buffer.h @@ -383,6 +383,12 @@ typedef struct _Ecore_Buffer Ecore_Buffer; */ typedef struct _Ecore_Buffer_Backend Ecore_Buffer_Backend; /** + * @typedef Ecore_Export_Type + * Types for export buffer. + * @since_tizen 2.4 + */ +typedef enum _Ecore_Export_Type Ecore_Export_Type; +/** * @typedef Ecore_Buffer_Format * The format of Ecore_Buffer. * @since_tizen 2.4 @@ -418,12 +424,12 @@ typedef void (*Ecore_Buffer_Cb)(Ecore_Buffer *buf, void *data); * Types for export buffer. * @since_tizen 2.4 */ -typedef enum _Ecore_Export_Type +enum _Ecore_Export_Type { EXPORT_TYPE_INVALID, EXPORT_TYPE_ID, EXPORT_TYPE_FD -} Ecore_Export_Type; +}; /** * @struct _Ecore_Buffer_Backend diff --git a/src/lib/ecore_evas/ecore_evas.c b/src/lib/ecore_evas/ecore_evas.c index 8229c59..1ad9e7d 100644 --- a/src/lib/ecore_evas/ecore_evas.c +++ b/src/lib/ecore_evas/ecore_evas.c @@ -2689,9 +2689,6 @@ ecore_evas_manual_render_set(Ecore_Evas *ee, Eina_Bool manual_render) "ecore_evas_manual_render_set"); return; } -//TIZEN_ONLY(20150930) : add manual render code - INF("[manual_render_dbg] ecore_evas=%p manual render set=%d", ee, manual_render); -// ee->manual_render = manual_render; } diff --git a/src/lib/ecore_x/xlib/ecore_x_keygrab.c b/src/lib/ecore_x/xlib/ecore_x_keygrab.c index 4ed762d..b0dbd29 100644 --- a/src/lib/ecore_x/xlib/ecore_x_keygrab.c +++ b/src/lib/ecore_x/xlib/ecore_x_keygrab.c @@ -478,7 +478,7 @@ _ecore_x_window_keygrab_set_internal(Ecore_X_Window win, if (!ret) { WRN("Key(\"%s\") add failed", key); - goto error; + return ret; } if(grab_mode == ECORE_X_WIN_KEYGRAB_EXCLUSIVE) @@ -570,8 +570,7 @@ _ecore_x_window_keygrab_unset_internal(Ecore_X_Window win, ret = _ecore_x_window_keytable_possible_global_exclusiveness_unset(keycode); } - _keytable_free(&keytable); - return EINA_TRUE; + return EINA_TRUE; error: _keytable_free(&keytable); return EINA_FALSE; diff --git a/src/lib/edje/Edje_Edit.h b/src/lib/edje/Edje_Edit.h index bb6c935..5b9fda1 100644 --- a/src/lib/edje/Edje_Edit.h +++ b/src/lib/edje/Edje_Edit.h @@ -4136,8 +4136,6 @@ EAPI Eina_Bool edje_edit_state_text_set(Evas_Object *obj, const char *part, cons /** Get font name for a given part state. * - * Remember to free the returned string using edje_edit_string_free(). - * * @param obj Object being edited. * @param part The name of the part to get the font of. * @param state The state of the part to get the font of. @@ -4618,6 +4616,20 @@ EAPI Eina_Bool edje_edit_font_del(Evas_Object *obj, const char* alias); */ EAPI const char *edje_edit_font_path_get(Evas_Object *obj, const char *alias); + +/** Get font name for a given part state. + * + * Remember to free the returned string using edje_edit_string_free(). + * + * @param obj Object being edited. + * @param part Part that contain state. + * @param state The name of the state to get the name of the font used (not including the state value). + * @param value The state value. + * + * @return The name of the font used in the given part state. + */ +EAPI const char * edje_edit_state_font_get(Evas_Object *obj, const char *part, const char *state, double value); + //@} /******************************************************************************/ /************************** IMAGES API ************************************/ diff --git a/src/lib/edje/edje_calc.c b/src/lib/edje/edje_calc.c index 5db1fc2..be9a6a1 100644 --- a/src/lib/edje/edje_calc.c +++ b/src/lib/edje/edje_calc.c @@ -1234,16 +1234,6 @@ _edje_part_recalc_single_textblock(FLOAT_T sc, if ((ep->type != EDJE_RP_TYPE_TEXT) || (!ep->typedata.text)) return; - - // TIZEN_ONLY(20150921): Skip calculation for Evas Textblock when text is never set. - if (!(ep->typedata.text->text_enabled) && (ep->part->entry_mode == EDJE_ENTRY_EDIT_MODE_NONE) && - (!ep->typedata.text->text) && (!edje_string_get(&chosen_desc->text.text)) && - (chosen_desc && !(chosen_desc->text.id_text_source >= 0))) - return; - - if (!ep->typedata.text->text_enabled) ep->typedata.text->text_enabled = EINA_TRUE; - // - if (chosen_desc) { Evas_Coord tw, th, ins_l, ins_r, ins_t, ins_b; diff --git a/src/lib/edje/edje_object.eo b/src/lib/edje/edje_object.eo index e201df5..3763533 100644 --- a/src/lib/edje/edje_object.eo +++ b/src/lib/edje/edje_object.eo @@ -207,9 +207,9 @@ class Edje.Object (Evas.Smart_Clipped, Efl.File) scaling set, for the object @p obj's parts. Put it back to zero to get the effects of the global scaling again. - @warning Only parts which, at EDC level, had the @c scale + @warning Only parts which, at EDC level, had the @c "scale" property set to @c 1, will be affected by this function. Check the - complete @ref edcref syntax reference for EDC files. + complete @ref edcref "syntax reference" for EDC files. @see edje_object_scale_get() @see edje_scale_get() for more details */ @@ -336,7 +336,7 @@ class Edje.Object (Evas.Smart_Clipped, Efl.File) @ingroup Edje_Part_Text @remark This converts the given string @p text to UTF8 assuming it contains HTML - style escapes like & and © etc. IF the part is of type TEXT, + style escapes like "&" and "©" etc. IF the part is of type TEXT, as opposed to TEXTBLOCK. @return @c EINA_TRUE on success, @c EINA_FALSE otherwise @@ -387,7 +387,7 @@ class Edje.Object (Evas.Smart_Clipped, Efl.File) @remark For scriptable programs on an Edje object's defining EDC file which send messages with the @c send_message() primitive, one can attach handler functions, to be called in the code which creates - that object (see @ref edcref the syntax for EDC files). + that object (see @ref edcref "the syntax" for EDC files). @remark This function associates a message handler function and the attached data pointer to the object @p obj. @@ -426,9 +426,9 @@ class Edje.Object (Evas.Smart_Clipped, Efl.File) @remark where one declares a minimum size of 100 pixels both for width and height. Those are (hint) values which should be respected when the given object/group is to be controlled by a given container object - (e.g. an Edje object being swallowed into a given @c SWALLOW + (e.g. an Edje object being "swallowed" into a given @c SWALLOW typed part, as in edje_object_part_swallow()). Check the complete - @ref edcref syntax reference for EDC files. + @ref edcref "syntax reference" for EDC files. @remark If the @c min EDC property was not declared for @p obj, this call will return the value 0, for each axis. @@ -518,9 +518,9 @@ class Edje.Object (Evas.Smart_Clipped, Efl.File) @remark where one declares a maximum size of 100 pixels both for width and height. Those are (hint) values which should be respected when the given object/group is to be controlled by a given container object - (e.g. an Edje object being swallowed into a given @c SWALLOW + (e.g. an Edje object being "swallowed" into a given @c SWALLOW typed part, as in edje_object_part_swallow()). Check the complete - @ref edcref syntax reference for EDC files. + @ref edcref "syntax reference" for EDC files. @remark If the @c max EDC property was not declared for @p obj, this call will return the maximum size a given Edje object may have, for @@ -594,8 +594,8 @@ class Edje.Object (Evas.Smart_Clipped, Efl.File) @ingroup Edje_Object_Animation - @return The part state: - "default" for the default state + @return The part state:\n + "default" for the default state\n "" for other states */ return: const(char)*; params { @@ -1266,7 +1266,7 @@ class Edje.Object (Evas.Smart_Clipped, Efl.File) @brief Get the object created by this external part. Parts of type external creates the part object using information - provided by external plugins. It's somehow like swallow + provided by external plugins. It's somehow like "swallow" (edje_object_part_swallow()), but it's all set automatically. This function returns the part created by such external plugins and @@ -1362,7 +1362,7 @@ class Edje.Object (Evas.Smart_Clipped, Efl.File) @ingroup Edje_Part_Box - @return @c EINA_TRUE: Successfully added. + @return @c EINA_TRUE: Successfully added.\n @c EINA_FALSE: An error occurred. @remark Adds child to the box indicated by part, in the position given by @@ -1465,7 +1465,7 @@ class Edje.Object (Evas.Smart_Clipped, Efl.File) @ingroup Edje_Part_Box - @return @c EINA_TRUE: Successfully added. + @return @c EINA_TRUE: Successfully added.\n @c EINA_FALSE: An error occurred. @remark Prepends child to the box indicated by part. @@ -1493,7 +1493,7 @@ class Edje.Object (Evas.Smart_Clipped, Efl.File) @remark This function sends a signal to the object @a obj. An Edje program, at @p obj's EDC specification level, can respond to a signal by having declared matching @c 'signal' and @c 'source' fields on its - block (see @ref edcref the syntax for EDC files). + block (see @ref edcref "the syntax" for EDC files). @remark As an example, @code @@ -1562,7 +1562,7 @@ class Edje.Object (Evas.Smart_Clipped, Efl.File) @remark The @p id argument as a form of code and theme defining a common interface on message communication. One should define the same IDs - on both code and EDC declaration (see @ref edcref the syntax for + on both code and EDC declaration (see @ref edcref "the syntax" for EDC files), to individualize messages (binding them to a given context). @@ -1688,9 +1688,9 @@ class Edje.Object (Evas.Smart_Clipped, Efl.File) section, by the attributes @c x and @c y. See the @ref edcref for more information. - @return #EDJE_DRAG_DIR_NONE: Not dragable - #EDJE_DRAG_DIR_X: Dragable in X direction - #EDJE_DRAG_DIR_Y: Dragable in Y direction + @return #EDJE_DRAG_DIR_NONE: Not dragable\n + #EDJE_DRAG_DIR_X: Dragable in X direction\n + #EDJE_DRAG_DIR_Y: Dragable in Y direction\n #EDJE_DRAG_DIR_XY: Dragable in X & Y directions */ return: Edje_Drag_Dir; params { @@ -1775,7 +1775,7 @@ class Edje.Object (Evas.Smart_Clipped, Efl.File) @remark Signal callback registration is powerful, in the way that @b blobs may be used to match multiple signals at once. All the @c - *?[\ set of @c fnmatch() operators can be used, both for @p + "*?[\" set of @c fnmatch() operators can be used, both for @p emission and @p source. @remark Edje has @b internal signals it will emit, automatically, on @@ -1797,7 +1797,7 @@ class Edje.Object (Evas.Smart_Clipped, Efl.File) and @a source parameters of the callback function (e.g. @c "mouse,down,2" and @c "button.close"), for each of those events. - @remark See @ref edcref the syntax for EDC files + @remark See @ref edcref "the syntax" for EDC files @see edje_object_signal_emit() on how to emits Edje signals from code to a an object @see edje_object_signal_callback_del_full() */ @@ -1938,7 +1938,7 @@ class Edje.Object (Evas.Smart_Clipped, Efl.File) @endcode @remark EDC data fields always hold @b strings as values, hence the return - type of this function. Check the complete @ref edcref syntax reference + type of this function. Check the complete @ref edcref "syntax reference" for EDC files. @warning Do not confuse this call with edje_file_data_get(), which @@ -2072,7 +2072,7 @@ class Edje.Object (Evas.Smart_Clipped, Efl.File) } part_text_input_panel_return_key_type_set { /*@ - Set the return key type. This type is used to set string or icon on the return key of the input panel. + Set the "return" key type. This type is used to set string or icon on the "return" key of the input panel. An input panel displays the string or icon associated with this type @@ -2080,16 +2080,16 @@ class Edje.Object (Evas.Smart_Clipped, Efl.File) params { @in const(char)* part; /*@ The part name */ - @in Edje_Input_Panel_Return_Key_Type return_key_type; /*@ The type of return key on the input panel */ + @in Edje_Input_Panel_Return_Key_Type return_key_type; /*@ The type of "return" key on the input panel */ } } part_text_input_panel_return_key_type_get @const { /*@ - Get the return key type. + Get the "return" key type. @see edje_object_part_text_input_panel_return_key_type_set() for more details - @return The type of return key on the input panel + @return The type of "return" key on the input panel @since 1.2.0 */ return: Edje_Input_Panel_Return_Key_Type; params { @@ -2124,7 +2124,7 @@ class Edje.Object (Evas.Smart_Clipped, Efl.File) @ingroup Edje_Part_Box - @return @c EINA_TRUE: Successfully added. + @return @c EINA_TRUE: Successfully added.\n @c EINA_FALSE: An error occurred. @remark Inserts child in the box given by part, in the position marked by @@ -2234,7 +2234,7 @@ class Edje.Object (Evas.Smart_Clipped, Efl.File) @ingroup Edje_Part_Box - @return @c EINA_TRUE: Successfully added. + @return @c EINA_TRUE: Successfully added.\n @c EINA_FALSE: An error occurred. @remark Appends child to the box indicated by part. @@ -2294,7 +2294,7 @@ class Edje.Object (Evas.Smart_Clipped, Efl.File) @ingroup Edje_Part_Box - @return 1: Successfully cleared. + @return 1: Successfully cleared.\n 0: An error occurred. @remark Removes all the external objects from the box indicated by part. @@ -2787,7 +2787,7 @@ class Edje.Object (Evas.Smart_Clipped, Efl.File) } part_swallow { /*@ - @brief Swallows an object into one of the Edje object @c SWALLOW + @brief "Swallows" an object into one of the Edje object @c SWALLOW parts. @if MOBILE @since_tizen 2.3 @@ -2821,8 +2821,8 @@ class Edje.Object (Evas.Smart_Clipped, Efl.File) @remark @a obj @b won't delete the swallowed object once it is deleted -- @a obj_swallow will get to an unparented state again. - For more details on EDC @c SWALLOW parts, see @ref edcref syntax - reference. */ + For more details on EDC @c SWALLOW parts, see @ref edcref "syntax + reference". */ return: bool; params { diff --git a/src/lib/edje/edje_private.h b/src/lib/edje/edje_private.h index 03db1d4..a26ea8a 100644 --- a/src/lib/edje/edje_private.h +++ b/src/lib/edje/edje_private.h @@ -1807,10 +1807,6 @@ struct _Edje_Real_Part_Text const char *in_font; // 4 FLOAT_T align_x, align_y; // 16 } cache; - - // TIZEN_ONLY(20150921): Skip calculation for Evas Textblock when text is never set. - Eina_Bool text_enabled : 1; - // }; // 88 // FIXME make text a potiner to struct and alloc at end // if part type is TEXT move common members textblock + diff --git a/src/lib/eet/eet_image.c b/src/lib/eet/eet_image.c index 56cb9f4..0fb2a94 100644 --- a/src/lib/eet/eet_image.c +++ b/src/lib/eet/eet_image.c @@ -858,17 +858,8 @@ eet_data_image_etc2_decode(const void *data, switch (m[OFFSET_ALGORITHM] & 0xFF) { case 0: - // ETC2 is backwards compatible with ETC1 but we prefer ETC2 - if(lossy == EET_IMAGE_ETC2_RGB) - { - INF("ETC2 is backwoards compatible with ETC1 but we prefer ETC2"); - file_cspace = EET_COLORSPACE_RGB8_ETC2; - } - else - { - if (lossy != EET_IMAGE_ETC1) return 0; - file_cspace = EET_COLORSPACE_ETC1; - } + if (lossy != EET_IMAGE_ETC1) return 0; + file_cspace = EET_COLORSPACE_ETC1; if (alpha != EINA_FALSE) return 0; etc_block_size = 8; break; @@ -2615,10 +2606,6 @@ eet_data_image_decode_to_cspace_surface_cipher(const void *data, if (!d) return 0; - // ETC2 is backwards compatible with ETC1 but we prefer ETC2 - if(cspace == EET_COLORSPACE_RGB8_ETC2 && ilossy == EET_IMAGE_ETC1) - ilossy = EET_IMAGE_ETC2_RGB; - if (cspace == EET_COLORSPACE_ETC1 && ilossy != EET_IMAGE_ETC1) return 0; diff --git a/src/lib/eina/eina_binshare.h b/src/lib/eina/eina_binshare.h index 3866a4e..2285dd4 100644 --- a/src/lib/eina/eina_binshare.h +++ b/src/lib/eina/eina_binshare.h @@ -146,7 +146,7 @@ EAPI void eina_binshare_del(const void *obj); * @elseif WEARABLE @since_tizen 2.3.1 * @endif * - * @param[in] obj The shared object to know the length + * @param[in] obj The shared object to know the length \n * It is safe to give @c NULL, in which case @c -1 is returned * @return The length of the shared object * diff --git a/src/lib/eina/eina_hash.h b/src/lib/eina/eina_hash.h index 6b22578..7cd6213 100644 --- a/src/lib/eina/eina_hash.h +++ b/src/lib/eina/eina_hash.h @@ -1226,10 +1226,6 @@ EAPI void eina_hash_list_remove(Eina_Hash *hash, const void *key, const void *da * @brief * Paul Hsieh (http://www.azillionmonkeys.com/qed/hash.html) hash function used by WebCore (http://webkit.org/blog/8/hashtables-part-2/) * - * @if MOBILE @since_tizen 2.3 - * @elseif WEARABLE @since_tizen 2.3.1 - * @endif - * * @param[in] key The key to hash * @param[in] len The length of the key * @return The hash value diff --git a/src/lib/eina/eina_iterator.h b/src/lib/eina/eina_iterator.h index fb3661c..fd3e692 100644 --- a/src/lib/eina/eina_iterator.h +++ b/src/lib/eina/eina_iterator.h @@ -271,10 +271,6 @@ EAPI void eina_iterator_foreach(Eina_Iterator *iterator, /** * @brief Lock the container of the iterator. * - * @if MOBILE @since_tizen 2.3 - * @elseif WEARABLE @since_tizen 2.3.1 - * @endif - * * @param iterator The iterator. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * @@ -291,10 +287,6 @@ EAPI Eina_Bool eina_iterator_lock(Eina_Iterator *iterator) EINA_ARG_NONNULL(1); /** * @brief Unlock the container of the iterator. * - * @if MOBILE @since_tizen 2.3 - * @elseif WEARABLE @since_tizen 2.3.1 - * @endif - * * @param iterator The iterator. * @return #EINA_TRUE on success, #EINA_FALSE otherwise. * diff --git a/src/lib/eina/eina_simple_xml_parser.h b/src/lib/eina/eina_simple_xml_parser.h index 27d9023..c728ffd 100644 --- a/src/lib/eina/eina_simple_xml_parser.h +++ b/src/lib/eina/eina_simple_xml_parser.h @@ -357,10 +357,6 @@ EAPI Eina_Simple_XML_Node_Tag * eina_simple_xml_node_tag_new(Eina_Simple_XML_Nod /** * Remove tag from parent and delete it. * - * @if MOBILE @since_tizen 2.3 - * @elseif WEARABLE @since_tizen 2.3.1 - * @endif - * * @param tag to release memory. */ EAPI void eina_simple_xml_node_tag_free(Eina_Simple_XML_Node_Tag *tag); diff --git a/src/lib/eina/eina_str.h b/src/lib/eina/eina_str.h index 68458bd..ab3202e 100644 --- a/src/lib/eina/eina_str.h +++ b/src/lib/eina/eina_str.h @@ -46,7 +46,7 @@ * @until free(str * * Finally we see strlcat in action: - * @until printf( + * @until printf(" * * And then shut eina down and exit: * @until } @@ -63,13 +63,13 @@ * @warning Since these functions modify the strings they can't be used with * shared strings(eina_stringshare). * - * See an example @ref tutorial_eina_string here. + * See an example @ref tutorial_eina_string "here". */ /** * @addtogroup Eina_Tools_Group Tools * - * For more information refer to the @ref tutorial_eina_string string example. + * For more information refer to the @ref tutorial_eina_string "string example". * * @{ */ @@ -334,8 +334,8 @@ EAPI char *eina_str_convert_len(const char *enc_from, const char *enc_ * @param[in] str The string to escape. * @return The escaped string. * - * @remark Escaping is done by adding a slash '\' before any occurrence of slashes '\', - * spaces ' ' or apostrophes '''. This function returns a newly allocated + * @remark Escaping is done by adding a slash "\" before any occurrence of slashes "\", + * spaces " " or apostrophes "'". This function returns a newly allocated * escaped string on success, @c NULL on failure. When not used anymore, the * returned value must be freed. */ diff --git a/src/lib/eina/eina_strbuf.h b/src/lib/eina/eina_strbuf.h index 40ad237..f47ce46 100644 --- a/src/lib/eina/eina_strbuf.h +++ b/src/lib/eina/eina_strbuf.h @@ -484,10 +484,6 @@ EAPI Eina_Bool eina_strbuf_insert_vprintf(Eina_Strbuf *buf, const char *fmt, siz * @def eina_strbuf_prepend(buf, str) * @brief Prepend the given string to the given buffer * - * @if MOBILE @since_tizen 2.3 - * @elseif WEARABLE @since_tizen 2.3.1 - * @endif - * * @param buf The string buffer to prepend to. * @param str The string to prepend. * @return #EINA_TRUE on success, #EINA_FALSE on failure. @@ -502,10 +498,6 @@ EAPI Eina_Bool eina_strbuf_insert_vprintf(Eina_Strbuf *buf, const char *fmt, siz * @def eina_strbuf_prepend_escaped(buf, str) * @brief Prepend the given escaped string to the given buffer * - * @if MOBILE @since_tizen 2.3 - * @elseif WEARABLE @since_tizen 2.3.1 - * @endif - * * @param buf The string buffer to prepend to. * @param str The string to prepend. * @return #EINA_TRUE on success, #EINA_FALSE on failure. @@ -520,10 +512,6 @@ EAPI Eina_Bool eina_strbuf_insert_vprintf(Eina_Strbuf *buf, const char *fmt, siz * @def eina_strbuf_prepend_n(buf, str) * @brief Prepend the given escaped string to the given buffer * - * @if MOBILE @since_tizen 2.3 - * @elseif WEARABLE @since_tizen 2.3.1 - * @endif - * * @param buf The string buffer to prepend to. * @param str The string to prepend. * @param maxlen The maximum number of chars to prepend. @@ -539,10 +527,6 @@ EAPI Eina_Bool eina_strbuf_insert_vprintf(Eina_Strbuf *buf, const char *fmt, siz * @def eina_strbuf_prepend_length(buf, str) * @brief Prepend the given escaped string to the given buffer * - * @if MOBILE @since_tizen 2.3 - * @elseif WEARABLE @since_tizen 2.3.1 - * @endif - * * @param buf The string buffer to prepend to. * @param str The string to prepend. * @param length The exact length to use. @@ -558,10 +542,6 @@ EAPI Eina_Bool eina_strbuf_insert_vprintf(Eina_Strbuf *buf, const char *fmt, siz * @def eina_strbuf_prepend_char(buf, str) * @brief Prepend the given character to the given buffer * - * @if MOBILE @since_tizen 2.3 - * @elseif WEARABLE @since_tizen 2.3.1 - * @endif - * * @param buf The string buffer to prepend to. * @param c The character to prepend. * @return #EINA_TRUE on success, #EINA_FALSE on failure. @@ -576,10 +556,6 @@ EAPI Eina_Bool eina_strbuf_insert_vprintf(Eina_Strbuf *buf, const char *fmt, siz * @def eina_strbuf_prepend_printf(buf, fmt, ...) * @brief Prepend the given string to the given buffer * - * @if MOBILE @since_tizen 2.3 - * @elseif WEARABLE @since_tizen 2.3.1 - * @endif - * * @param buf The string buffer to prepend to. * @param fmt The string to prepend. * @return #EINA_TRUE on success, #EINA_FALSE on failure. @@ -594,10 +570,6 @@ EAPI Eina_Bool eina_strbuf_insert_vprintf(Eina_Strbuf *buf, const char *fmt, siz * @def eina_strbuf_prepend_vprintf(buf, fmt, args) * @brief Prepend the given string to the given buffer * - * @if MOBILE @since_tizen 2.3 - * @elseif WEARABLE @since_tizen 2.3.1 - * @endif - * * @param buf The string buffer to prepend to. * @param fmt The string to prepend. * @param args The variable arguments. @@ -720,10 +692,6 @@ EAPI Eina_Bool eina_strbuf_replace(Eina_Strbuf *buf, const char *str, const char * @def eina_strbuf_replace_first(buf, str, with) * @brief Prepend the given character to the given buffer * - * @if MOBILE @since_tizen 2.3 - * @elseif WEARABLE @since_tizen 2.3.1 - * @endif - * * @param buf The string buffer to work with. * @param str The string to replace. * @param with The replaceing string. diff --git a/src/lib/eina/eina_stringshare.c b/src/lib/eina/eina_stringshare.c index 588865d..b69d395 100644 --- a/src/lib/eina/eina_stringshare.c +++ b/src/lib/eina/eina_stringshare.c @@ -110,7 +110,7 @@ struct _Eina_Stringshare_Small_Bucket /* separate arrays for faster lookups */ const char **strings; unsigned char *lengths; - unsigned int *references; + unsigned short *references; int count; int size; }; @@ -413,7 +413,7 @@ _eina_stringshare_small_bucket_dump(Eina_Stringshare_Small_Bucket *bucket, { const char **s = bucket->strings; unsigned char *l = bucket->lengths; - unsigned int *r = bucket->references; + unsigned short *r = bucket->references; int i; di->used += sizeof(*bucket); @@ -426,7 +426,7 @@ _eina_stringshare_small_bucket_dump(Eina_Stringshare_Small_Bucket *bucket, { int dups; - printf("DDD: %5hhu %5u '%s'\n", *l, *r, *s); + printf("DDD: %5hhu %5hu '%s'\n", *l, *r, *s); dups = (*r - 1); diff --git a/src/lib/eldbus/eldbus_pending.c b/src/lib/eldbus/eldbus_pending.c index f47f259..bd897b9 100644 --- a/src/lib/eldbus/eldbus_pending.c +++ b/src/lib/eldbus/eldbus_pending.c @@ -157,15 +157,6 @@ _eldbus_connection_send(Eldbus_Connection *conn, Eldbus_Message *msg, Eldbus_Mes eldbus_pending_dispatch(pending, error_msg); return NULL; } - // TIZEN ONLY (20150921): Add NULL check to avoid crash in dbus - if (!pending->dbus_pending) - { - error_msg = eldbus_message_error_new(msg, "org.enlightenment.DBus.Error", - "The dbus_pending is NULL"); - eldbus_pending_dispatch(pending, error_msg); - return NULL; - } - // if (dbus_pending_call_set_notify(pending->dbus_pending, cb_pending, pending, NULL)) return pending; @@ -246,8 +237,7 @@ eldbus_pending_dispatch(Eldbus_Pending *pending, Eldbus_Message *msg) if (msg) eldbus_message_unref(msg); eldbus_message_unref(pending->msg_sent); - if (pending->dbus_pending) // TIZEN ONLY (20150921): Add NULL check to avoid crash in dbus - dbus_pending_call_unref(pending->dbus_pending); + dbus_pending_call_unref(pending->dbus_pending); pending->cb = NULL; pending->dbus_pending = NULL; diff --git a/src/lib/evas/Evas_Common.h b/src/lib/evas/Evas_Common.h index 7c4062e..5de39e1 100644 --- a/src/lib/evas/Evas_Common.h +++ b/src/lib/evas/Evas_Common.h @@ -415,15 +415,9 @@ typedef enum _Evas_Aspect_Control typedef enum _Evas_Display_Mode { EVAS_DISPLAY_MODE_NONE = 0, /** * Full-size @@ -3321,7 +3300,7 @@ typedef void (*Evas_Object_Intercept_Clip_Unset_Cb)(void *data, Evas_Object *obj * * @section Evas_Object_Image_Color_Spaces Color spaces * - * Image objects may return or accept image data in multiple + * Image objects may return or accept "image data" in multiple * formats. This is based on the color space of an object. Here is a * rundown on formats: * @@ -3332,12 +3311,15 @@ typedef void (*Evas_Object_Intercept_Clip_Unset_Cb)(void *data, Evas_Object *obj * being alpha and the low byte being blue in the format ARGB. Alpha * may or may not be used by evas depending on the alpha flag of the * image, but if not used, should be set to 0xff anyway. + * \n\n * This colorspace uses premultiplied alpha. That means that R, G * and B cannot exceed A in value. The conversion from * non-premultiplied colorspace is: + * \n\n * R = (r * a) / 255; G = (g * a) / 255; B = (b * a) / 255; + * \n\n * So 50% transparent blue will be: 0x80000080. This will not be - * dark - just 50% transparent. Values are 0 == black, 255 == + * "dark" - just 50% transparent. Values are 0 == black, 255 == * solid or full red, green or blue. * . * - #EVAS_COLORSPACE_YCBCR422P601_PL: @@ -3351,14 +3333,17 @@ typedef void (*Evas_Object_Intercept_Clip_Unset_Cb)(void *data, Evas_Object *obj * pointers will point to rows in the U plane, and the next N / 2 * pointers will point to the V plane rows. U and V planes are half * the horizontal and vertical resolution of the Y plane. + * \n\n * Row order is top to bottom and row pixels are stored left to * right. + * \n\n * There is a limitation that these images MUST be a multiple of 2 * pixels in size horizontally or vertically. This is due to the U * and V planes being half resolution. Also note that this assumes * the itu601 YUV colorspace specification. This is defined for * standard television and mpeg streams. HDTV may use the itu709 * specification. + * \n\n * Values are 0 to 255, indicating full or no signal in that plane * respectively. * . @@ -3368,11 +3353,13 @@ typedef void (*Evas_Object_Intercept_Clip_Unset_Cb)(void *data, Evas_Object *obj * - #EVAS_COLORSPACE_RGB565_A5P: * In the process of being implemented in 1 engine only. This may * change. + * \n\n * This is a pointer to image data for 16-bit half-word pixel data * in 16bpp RGB 565 format (5 bits red, 6 bits green, 5 bits blue), * with the high-byte containing red and the low byte containing * blue, per pixel. This data is packed row by row from the top-left * to the bottom right. + * \n\n * If the image has an alpha channel enabled there will be an extra * alpha plane after the color pixel plane. If not, then this data * will not exist and should not be accessed in any way. This plane @@ -3381,10 +3368,12 @@ typedef void (*Evas_Object_Intercept_Clip_Unset_Cb)(void *data, Evas_Object *obj * right of the image, row by row. Even though the values of the * alpha pixels can be 0 to 255, only values 0 through to 32 are * used, 32 being solid and 0 being transparent. + * \n\n * RGB values can be 0 to 31 for red and blue and 0 to 63 for green, * with 0 being black and 31 or 63 being full red, green or blue * respectively. This colorspace is also pre-multiplied like * EVAS_COLORSPACE_ARGB8888 so: + * \n\n * R = (r * a) / 32; G = (g * a) / 32; B = (b * a) / 32; * . * - #EVAS_COLORSPACE_GRY8: @@ -3395,7 +3384,7 @@ typedef void (*Evas_Object_Intercept_Clip_Unset_Cb)(void *data, Evas_Object *obj * without setting the evas engine. * * Some examples on this group of functions can be found @ref - * Example_Evas_Images here. + * Example_Evas_Images "here". * * @ingroup Evas_Object_Specific * @{ @@ -3414,8 +3403,6 @@ typedef void (*Evas_Object_Image_Pixels_Get_Cb)(void *data, Evas_Object *o); /** * Check if a file extension may be supported by @ref Evas_Object_Image. * - * @since_tizen 2.4 - * * @param file The file to check * @return @c EINA_TRUE if we may be able to open it, @c EINA_FALSE if it's * unlikely. @@ -3430,8 +3417,6 @@ EAPI Eina_Bool evas_object_image_extension_can_load_get(cons /** * Check if a file extension may be supported by @ref Evas_Object_Image. * - * @since_tizen 2.4 - * * @param file The file to check, it should be an Eina_Stringshare. * @return @c EINA_TRUE if we may be able to open it, @c EINA_FALSE if it's * unlikely. @@ -3451,7 +3436,7 @@ EAPI Eina_Bool evas_object_image_extension_can_load_fast_get * * For multiline and multiple style text, see @ref Evas_Object_Textblock. * - * See some @ref Example_Evas_Text examples on this group of functions. + * See some @ref Example_Evas_Text "examples" on this group of functions. * * @warning We don't guarantee any proper results if you create a Text object * without setting the evas engine. @@ -3539,7 +3524,7 @@ typedef enum _Evas_Text_Style_Type * You can use markup to format text, for example: "Big!". * You can also put more than one style directive in one tag: * "Big and Red!". - * Please notice that we used although the format also included + * Please notice that we used "" although the format also included * color, this is because the first format determines the matching closing tag's * name. You can also use anonymous tags, like: "Big" which * just pop any type of format, but it's advised to use the named alternatives @@ -3551,7 +3536,7 @@ typedef enum _Evas_Text_Style_Type * paragraph it points to, the position in that paragraph and the object itself. * Cursors register to textblock objects upon creation, this means that once * you created a cursor, it belongs to a specific obj and you can't for example - * copy a cursor into a cursor of a different object. Registered cursors + * copy a cursor "into" a cursor of a different object. Registered cursors * also have the added benefit of updating automatically upon textblock changes, * this means that if you have a cursor pointing to a specific character, it'll * still point to it even after you change the whole object completely (as long @@ -3579,59 +3564,59 @@ typedef enum _Evas_Text_Style_Type * A closing tag (i.e a \ tag) should NEVER be visible. * Invisible: formats that don't occupy space, for example: bold and underline. * Being able to access format nodes is very important for some uses. For - * example, edje uses the format to create links in the text (and pop + * example, edje uses the "" format to create links in the text (and pop * popups above them when clicked). For the textblock object a is just a * formatting instruction (how to color the text), but edje utilizes the access * to the format nodes to make it do more. * For more information, take a look at all the evas_textblock_node_format_* * functions. - * The translation of tags to actual format is done according to the + * The translation of "" tags to actual format is done according to the * tags defined in the style, see @ref evas_textblock_style_set * * @subsection textblock_special_formats Special Formats * Textblock supports various format directives that can be used in markup. In * addition to the mentioned format directives, textblock allows creating - * additional format directives using tags that can be set in the style see + * additional format directives using "tags" that can be set in the style see * @ref evas_textblock_style_set . * * For more details see @ref evas_textblock_style_page * * Textblock supports the following formats: - * @li font - Font description in fontconfig like format, e.g: Sans:style=Italic:lang=hi. or Serif:style=Bold. - * @li font_weight - Overrides the weight defined in font. E.g: font_weight=Bold is the same as font=:style=Bold. Supported weights: normal, thin, ultralight, light, book, medium, semibold, bold, ultrabold, black, and extrablack. - * @li font_style - Overrides the style defined in font. E.g: font_style=Italic is the same as font=:style=Italic. Supported styles: normal, oblique, and italic. - * @li font_width - Overrides the width defined in font. E.g: font_width=Condensed is the same as font=:style=Condensed. Supported widths: normal, ultracondensed, extracondensed, condensed, semicondensed, semiexpanded, expanded, extraexpanded, and ultraexpanded. - * @li lang - Overrides the language defined in font. E.g: lang=he is the same as font=:lang=he. + * @li font - Font description in fontconfig like format, e.g: "Sans:style=Italic:lang=hi". or "Serif:style=Bold". + * @li font_weight - Overrides the weight defined in "font". E.g: "font_weight=Bold" is the same as "font=:style=Bold". Supported weights: "normal", "thin", "ultralight", "light", "book", "medium", "semibold", "bold", "ultrabold", "black", and "extrablack". + * @li font_style - Overrides the style defined in "font". E.g: "font_style=Italic" is the same as "font=:style=Italic". Supported styles: "normal", "oblique", and "italic". + * @li font_width - Overrides the width defined in "font". E.g: "font_width=Condensed" is the same as "font=:style=Condensed". Supported widths: "normal", "ultracondensed", "extracondensed", "condensed", "semicondensed", "semiexpanded", "expanded", "extraexpanded", and "ultraexpanded". + * @li lang - Overrides the language defined in "font". E.g: "lang=he" is the same as "font=:lang=he". * @li font_fallbacks - A comma delimited list of fonts to try if finding the main font fails. * @li font_size - The font size in points. * @li font_source - The source of the font, e.g an eet file. - * @li color - Text color in one of the following formats: #RRGGBB, #RRGGBBAA, #RGB, and #RGBA. - * @li underline_color - color in one of the following formats: #RRGGBB, #RRGGBBAA, #RGB, and #RGBA. - * @li underline2_color - color in one of the following formats: #RRGGBB, #RRGGBBAA, #RGB, and #RGBA. - * @li outline_color - color in one of the following formats: #RRGGBB, #RRGGBBAA, #RGB, and #RGBA. - * @li shadow_color - color in one of the following formats: #RRGGBB, #RRGGBBAA, #RGB, and #RGBA. - * @li glow_color - color in one of the following formats: #RRGGBB, #RRGGBBAA, #RGB, and #RGBA. - * @li glow2_color - color in one of the following formats: #RRGGBB, #RRGGBBAA, #RGB, and #RGBA. - * @li strikethrough_color - color in one of the following formats: #RRGGBB, #RRGGBBAA, #RGB, and #RGBA. - * @li align - Either auto (meaning according to text direction), left, right, center, middle, a value between 0.0 and 1.0, or a value between 0% to 100%. - * @li valign - Either top, bottom, middle, center, baseline, base, a value between 0.0 and 1.0, or a value between 0% to 100%. - * @li wrap - word, char, mixed, or none. - * @li left_margin - Either reset, or a pixel value indicating the margin. - * @li right_margin - Either reset, or a pixel value indicating the margin. - * @li underline - on, off, single, or double. - * @li strikethrough - on or off - * @li backing_color - Background color in one of the following formats: #RRGGBB, #RRGGBBAA, #RGB, and #RGBA. - * @li backing - Enable/disable background color. ex) on or off - * @li style - Either off, none, plain, shadow, outline, soft_outline, outline_shadow, outline_soft_shadow, glow, far_shadow, soft_shadow, or far_soft_shadow. Direction can be selected by adding bottom_right, bottom, bottom_left, left, top_left, top, top_right, or right. E.g: style=shadow,bottom_right. + * @li color - Text color in one of the following formats: "#RRGGBB", "#RRGGBBAA", "#RGB", and "#RGBA". + * @li underline_color - color in one of the following formats: "#RRGGBB", "#RRGGBBAA", "#RGB", and "#RGBA". + * @li underline2_color - color in one of the following formats: "#RRGGBB", "#RRGGBBAA", "#RGB", and "#RGBA". + * @li outline_color - color in one of the following formats: "#RRGGBB", "#RRGGBBAA", "#RGB", and "#RGBA". + * @li shadow_color - color in one of the following formats: "#RRGGBB", "#RRGGBBAA", "#RGB", and "#RGBA". + * @li glow_color - color in one of the following formats: "#RRGGBB", "#RRGGBBAA", "#RGB", and "#RGBA". + * @li glow2_color - color in one of the following formats: "#RRGGBB", "#RRGGBBAA", "#RGB", and "#RGBA". + * @li strikethrough_color - color in one of the following formats: "#RRGGBB", "#RRGGBBAA", "#RGB", and "#RGBA". + * @li align - Either "auto" (meaning according to text direction), "left", "right", "center", "middle", a value between 0.0 and 1.0, or a value between 0% to 100%. + * @li valign - Either "top", "bottom", "middle", "center", "baseline", "base", a value between 0.0 and 1.0, or a value between 0% to 100%. + * @li wrap - "word", "char", "mixed", or "none". + * @li left_margin - Either "reset", or a pixel value indicating the margin. + * @li right_margin - Either "reset", or a pixel value indicating the margin. + * @li underline - "on", "off", "single", or "double". + * @li strikethrough - "on" or "off" + * @li backing_color - Background color in one of the following formats: "#RRGGBB", "#RRGGBBAA", "#RGB", and "#RGBA". + * @li backing - Enable/disable background color. ex) "on" or "off" + * @li style - Either "off", "none", "plain", "shadow", "outline", "soft_outline", "outline_shadow", "outline_soft_shadow", "glow", "far_shadow", "soft_shadow", or "far_soft_shadow". Direction can be selected by adding "bottom_right", "bottom", "bottom_left", "left", "top_left", "top", "top_right", or "right". E.g: "style=shadow,bottom_right". * @li tabstops - Pixel value for tab width. * @li linesize - Force a line size in pixels. * @li linerelsize - Either a floating point value or a percentage indicating the wanted size of the line relative to the calculated size. * @li linegap - Force a line gap in pixels. * @li linerelgap - Either a floating point value or a percentage indicating the wanted size of the line relative to the calculated size. - * @li item - Creates an empty space that should be filled by an upper layer. Use size, abssize, or relsize. To define the items size, and an optional: vsize=full/ascent to define the item's position in the line. + * @li item - Creates an empty space that should be filled by an upper layer. Use "size", "abssize", or "relsize". To define the items size, and an optional: vsize=full/ascent to define the item's position in the line. * @li linefill - Either a float value or percentage indicating how much to fill the line. * @li ellipsis - Value between 0.0-1.0 to indicate the type of ellipsis, or -1.0 to indicate ellipsis isn't wanted. - * @li password - on or off. This is used to specifically turn replacing chars with the replacement char (i.e password mode) on and off. + * @li password - "on" or "off". This is used to specifically turn replacing chars with the replacement char (i.e password mode) on and off. * * @warning We don't guarantee any proper results if you create a Textblock * object @@ -4371,7 +4356,7 @@ EAPI char *evas_textblock_cursor_range_text_v EAPI char *evas_textblock_cursor_content_get(const Evas_Textblock_Cursor *cur) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_MALLOC; /** - * @brief Returns the geometry of two cursors (split cursor), if logical cursor is + * @brief Returns the geometry of two cursors ("split cursor"), if logical cursor is * between LTR/RTL text, also considering paragraph direction. * Upper cursor is shown for the text of the same direction as paragraph, * lower cursor - for opposite. @@ -4414,7 +4399,7 @@ evas_textblock_cursor_geometry_bidi_get(const Evas_Textblock_Cursor *cur, Evas_C * * @remark in '|' cursor mode (i.e a line between two chars) it is very variable. * For example consider the following visual string: - * abcCBA (ABC are rtl chars), a cursor pointing on A should actually draw + * "abcCBA" (ABC are rtl chars), a cursor pointing on A should actually draw * a '|' between the c and the C. * * @param[in] cur the cursor. @@ -4687,7 +4672,7 @@ struct _Evas_Textgrid_Cell * objects in Evas itself (see @ref Evas_Object_Box, @ref * Evas_Object_Table and @ref Evas_Smart_Object_Clipped). * - * See also some @ref Example_Evas_Smart_Objects examples of this + * See also some @ref Example_Evas_Smart_Objects "examples" of this * group of functions. * * @{ @@ -4745,7 +4730,7 @@ struct _Evas_Smart_Class * function pointers must be defined, too, which will be called at * object creation and deletion times. * - * See also some @ref Example_Evas_Smart_Interfaces examples on + * See also some @ref Example_Evas_Smart_Interfaces "examples" on * smart interfaces. * * @since 1.7 @@ -4785,16 +4770,16 @@ struct _Evas_Smart_Cb_Description * brackets preceding types. Example: * * @li Structure with two integers: - * @c (ii) + * @c "(ii)" * * @li Structure called 'x' with two integers named 'a' and 'b': - * @c [x]([a]i[b]i) + * @c "[x]([a]i[b]i)" * * @li Array of integers: - * @c ai + * @c "ai" * * @li Array called 'x' of struct with two integers: - * @c [x]a(ii) + * @c "[x]a(ii)" * * @note This type string is used as a hint and is @b not validated * or enforced in any way. Implementors should make the best @@ -4839,7 +4824,7 @@ struct _Evas_Smart_Cb_Description * Similar to EVAS_SMART_CLASS_INIT_NULL, but will set version field to * latest EVAS_SMART_CLASS_VERSION and name to the specified value. * - * It will keep a reference to name field as a const char *, that is, + * It will keep a reference to name field as a "const char *", that is, * name must be available while the structure is used (hint: static or global!) * and will not be modified. * @@ -4860,7 +4845,7 @@ struct _Evas_Smart_Cb_Description * latest EVAS_SMART_CLASS_VERSION, name to the specified value and * parent class. * - * It will keep a reference to name field as a const char *, that is, + * It will keep a reference to name field as a "const char *", that is, * name must be available while the structure is used (hint: static or global!) * and will not be modified. Similarly, parent reference will be kept. * @@ -4881,7 +4866,7 @@ struct _Evas_Smart_Cb_Description * latest EVAS_SMART_CLASS_VERSION, name to the specified value, parent * class and callbacks at this level. * - * It will keep a reference to name field as a const char *, that is, + * It will keep a reference to name field as a "const char *", that is, * name must be available while the structure is used (hint: static or global!) * and will not be modified. Similarly, parent and callbacks reference * will be kept. @@ -4900,7 +4885,7 @@ struct _Evas_Smart_Cb_Description * Convenience macro to subclass a given Evas smart class. * * @param smart_name The name used for the smart class. e.g: - * @c Evas_Object_Box. + * @c "Evas_Object_Box". * @param prefix Prefix used for all variables and functions defined * and referenced by this macro. * @param api_type Type of the structure used as API for the smart @@ -4979,7 +4964,7 @@ struct _Evas_Smart_Cb_Description * interfaces besides the smart callbacks. * * @param smart_name The name used for the smart class. e.g: - * @c Evas_Object_Box. + * @c "Evas_Object_Box". * @param prefix Prefix used for all variables and functions defined * and referenced by this macro. * @param api_type Type of the structure used as API for the smart @@ -5281,7 +5266,7 @@ EAPI int evas_smart_usage_get(const Evas_Smart *s) * callbacks description array, so that the users of the smart object * can have introspection on its events API at run time. * - * See some @ref Example_Evas_Smart_Objects examples of this group + * See some @ref Example_Evas_Smart_Objects "examples" of this group * of functions. * * @see @ref Evas_Smart_Group for class definitions. @@ -5330,7 +5315,7 @@ EAPI void evas_smart_legacy_type_register(const char *type, const Eo_Class *klas * to the parent, and delete them when parent is deleted. In other * words, it is the base for simple object grouping. * - * See some @ref Example_Evas_Smart_Objects examples of this group + * See some @ref Example_Evas_Smart_Objects "examples" of this group * of functions. * * @see evas_object_smart_clipped_smart_set() @@ -5353,13 +5338,13 @@ struct _Evas_Object_Smart_Clipped_Data /** * Set a given smart class' callbacks so it implements the clipped smart - * object 's interface. + * object"'s interface. * * @param sc The smart class handle to operate on * * This call will assign all the required methods of the @p sc * #Evas_Smart_Class instance to the implementations set for clipped - * smart objects. If one wants to subclass it, call this function + * smart objects. If one wants to "subclass" it, call this function * and then override desired values. If one wants to call any original * method, save it somewhere. Example: * @@ -5388,7 +5373,7 @@ struct _Evas_Object_Smart_Clipped_Data * * Default behavior for each of #Evas_Smart_Class functions on a * clipped smart object are: - * - @c add: creates a hidden clipper with infinite size, to clip + * - @c add: creates a hidden clipper with "infinite" size, to clip * any incoming members; * - @c del: delete all children objects; * - @c move: move all objects relative relatively; @@ -5540,7 +5525,7 @@ struct _Evas_Object_Box_Api * Initializer for a whole #Evas_Object_Box_Api structure, with * @c NULL values on its specific fields. * - * @param smart_class_init initializer to use for the base field + * @param smart_class_init initializer to use for the "base" field * (#Evas_Smart_Class). * * @see EVAS_SMART_CLASS_INIT_NULL @@ -5592,7 +5577,7 @@ struct _Evas_Object_Box_Api * set the version field of #Evas_Smart_Class (base field) to the * latest #EVAS_SMART_CLASS_VERSION and name it to the specific value. * - * It will keep a reference to the name field as a const char *, + * It will keep a reference to the name field as a "const char *", * i.e., the name must be available while the structure is * used (hint: static or global variable!) and must not be modified. * @@ -5881,7 +5866,7 @@ EAPI void evas_cserve_disconnect(void); * * @param[in] error the error code, a value in ::Evas_Load_Error. * @return Always returns a valid string. If the given @p error is not - * supported, Unknown error is returned. + * supported, "Unknown error" is returned. * * @remark Mostly evas_object_image_file_set() would be the function setting * that error value afterwards, but also evas_object_image_load(), @@ -5898,9 +5883,9 @@ EAPI void evas_cserve_disconnect(void); * @remark Here, being @c valid_path the path to a valid image and @c * bogus_path a path to a file which does not exist, the two outputs * of evas_load_error_str() would be (if no other errors occur): - * No error on load and File (or file path) does - * not exist, respectively. See the full @ref - * Example_Evas_Images example. + * "No error on load" and "File (or file path) does + * not exist", respectively. See the full @ref + * Example_Evas_Images "example". * * @ingroup Evas_Utils */ @@ -6127,7 +6112,7 @@ EAPI int evas_string_char_len_get(const char *str) EINA_WARN_UNUSED_RESULT EINA * @until { * * All the other @c evas_key functions behave on the same manner. See - * the full @ref Example_Evas_Events example. + * the full @ref Example_Evas_Events "example". * * @ingroup Evas_Canvas */ diff --git a/src/lib/evas/canvas/evas_render.c b/src/lib/evas/canvas/evas_render.c index d71fe17..c25386e 100644 --- a/src/lib/evas/canvas/evas_render.c +++ b/src/lib/evas/canvas/evas_render.c @@ -1317,7 +1317,7 @@ evas_render_mapped(Evas_Public_Data *evas, Evas_Object *eo_obj, } // set render_pre - for child objs that may not have gotten it. - //obj->pre_render_done = EINA_TRUE; + obj->pre_render_done = EINA_TRUE; RD(level, " hasmap: %s [can_map:%p (%d)] cur.map:%p cur.usemap:%d\n", _evas_render_has_map(eo_obj, obj) ? "yes" : "no", obj->func->can_map, @@ -1674,7 +1674,10 @@ evas_render_mapped(Evas_Public_Data *evas, Evas_Object *eo_obj, } else { + const Evas_Coord_Rectangle *clip = &obj->cur->geometry; + ctx = ENFN->context_dup(ENDT, context); + ENFN->context_clip_clip(ENDT, ctx, clip->x + off_x, clip->y + off_y, clip->w, clip->h); if (obj->cur->clipper) { @@ -2170,14 +2173,6 @@ evas_render_updates_internal(Evas *eo_e, e = eo_data_scope_get(eo_e, EVAS_CANVAS_CLASS); if (!e->changed) return EINA_FALSE; -//TIZEN_ONLY(20150930) : add manual render code - // Do not render if the output size is 1 x 1. - if ((e->output.w == 1) && (e->output.h == 1)) - { - INF("[[manual_render_dbg]--- SKIP RENDER EVAS (size: 1x1)"); - return EINA_FALSE; - } -// if (e->rendering) { if (do_async) diff --git a/src/modules/ecore_buffer/x11_dri2/ecore_buffer_x11_dri2.c b/src/modules/ecore_buffer/x11_dri2/ecore_buffer_x11_dri2.c index ee6d21c..e66b20e 100644 --- a/src/modules/ecore_buffer/x11_dri2/ecore_buffer_x11_dri2.c +++ b/src/modules/ecore_buffer/x11_dri2/ecore_buffer_x11_dri2.c @@ -222,8 +222,8 @@ _ecore_buffer_x11_dri2_init(const char *context EINA_UNUSED, const char *options Ecore_X_Window root; int eb, ee; int major, minor; - char *driver_name = NULL; - char *device_name = NULL; + char *driver_name; + char *device_name; int fd = 0; drm_magic_t magic; Ecore_Buffer_Module_X11_Dri2_Data *mdata = NULL; @@ -253,14 +253,14 @@ _ecore_buffer_x11_dri2_init(const char *context EINA_UNUSED, const char *options goto on_error; if (drmGetMagic(fd, &magic) < 0) - goto on_fd_error; + goto on_error; if (!(DRI2Authenticate(xdpy, root, magic))) - goto on_fd_error; + goto on_error; mdata->tbm_mgr = tbm_bufmgr_init(fd); if (!mdata->tbm_mgr) - goto on_fd_error; + goto on_error; free(driver_name); free(device_name); @@ -268,10 +268,8 @@ _ecore_buffer_x11_dri2_init(const char *context EINA_UNUSED, const char *options return mdata; -on_fd_error: - close(fd); - on_error: + if (fd > 0) close(fd); if (driver_name) free(driver_name); if (device_name) free(device_name); if (mdata) free(mdata); diff --git a/src/modules/ecore_buffer/x11_dri3/ecore_buffer_x11_dri3.c b/src/modules/ecore_buffer/x11_dri3/ecore_buffer_x11_dri3.c index f156f86..e53b4e7 100644 --- a/src/modules/ecore_buffer/x11_dri3/ecore_buffer_x11_dri3.c +++ b/src/modules/ecore_buffer/x11_dri3/ecore_buffer_x11_dri3.c @@ -325,8 +325,8 @@ _dri3_open(Ecore_X_Display *dpy, Ecore_X_Window root, unsigned provider) static Ecore_X_Pixmap _dri3_pixmap_from_fd(Ecore_X_Display *dpy, Ecore_X_Drawable draw, int width, int height, int depth, int fd, int bpp, int stride, int size) { - xcb_connection_t *c; - Ecore_X_Pixmap pixmap; + xcb_connection_t *c = XGetXCBConnection(dpy); + Ecore_X_Pixmap pixmap = xcb_generate_id(c); if (!dpy) return 0; diff --git a/src/modules/ecore_evas/engines/extn/ecore_evas_extn.c b/src/modules/ecore_evas/engines/extn/ecore_evas_extn.c index a774b8a..a72da24 100755 --- a/src/modules/ecore_evas/engines/extn/ecore_evas_extn.c +++ b/src/modules/ecore_evas/engines/extn/ecore_evas_extn.c @@ -165,12 +165,6 @@ _ecore_evas_extn_plug_render_post(void *data, Evas *e EINA_UNUSED, void *event_i if (!extn) return; if (extn->b[extn->cur_b].buf) _extnbuf_unlock(extn->b[extn->cur_b].buf); - if (extn->b[extn->cur_b].obuf) - { - _extnbuf_unlock(extn->b[extn->cur_b].obuf); - _extnbuf_free(extn->b[extn->cur_b].obuf); - extn->b[extn->cur_b].obuf = NULL; - } } static void @@ -1071,6 +1065,12 @@ _ipc_server_data(void *data, int type EINA_UNUSED, void *event) extn->cur_b = n; if (extn->b[pn].buf) _extnbuf_unlock(extn->b[pn].buf); + if (extn->b[pn].obuf) + { + _extnbuf_unlock(extn->b[pn].obuf); + _extnbuf_free(extn->b[pn].obuf); + extn->b[pn].obuf = NULL; + } evas_object_image_colorspace_set(bdata->image, EVAS_COLORSPACE_ARGB8888); if (extn->b[n].buf) diff --git a/src/modules/ecore_evas/engines/win32/ecore_evas_win32.c b/src/modules/ecore_evas/engines/win32/ecore_evas_win32.c index 8455f2f..ad61ad2 100644 --- a/src/modules/ecore_evas/engines/win32/ecore_evas_win32.c +++ b/src/modules/ecore_evas/engines/win32/ecore_evas_win32.c @@ -206,24 +206,22 @@ _ecore_evas_win32_event_mouse_out(void *data EINA_UNUSED, int type EINA_UNUSED, Ecore_Evas *ee; Ecore_Win32_Event_Mouse_Out *e; + INF("mouse out"); + e = event; ee = ecore_event_window_match((Ecore_Window)e->window); - if ((!ee) || (ee->ignore_events)) return ECORE_CALLBACK_PASS_ON; - if ((Ecore_Window)e->window != ee->prop.window) return ECORE_CALLBACK_PASS_ON; + if ((!ee) || (ee->ignore_events)) return 1; /* pass on event */ + if ((Ecore_Window)e->window != ee->prop.window) return 1; /* FIXME to do */ /* _ecore_evas_x_modifier_locks_update(ee, e->modifiers); */ _ecore_evas_mouse_move_process(ee, e->x, e->y, e->timestamp); - if (ee->in) - { - if (evas_event_down_count_get(ee->evas) > 0) return ECORE_CALLBACK_PASS_ON; - evas_event_feed_mouse_out(ee->evas, e->timestamp, NULL); - if (ee->func.fn_mouse_out) ee->func.fn_mouse_out(ee); - if (ee->prop.cursor.object) evas_object_hide(ee->prop.cursor.object); - } + evas_event_feed_mouse_out(ee->evas, e->timestamp, NULL); + if (ee->func.fn_mouse_out) ee->func.fn_mouse_out(ee); + if (ee->prop.cursor.object) evas_object_hide(ee->prop.cursor.object); - return ECORE_CALLBACK_PASS_ON; + return 1; } static Eina_Bool diff --git a/src/modules/ecore_evas/engines/x/ecore_evas_x.c b/src/modules/ecore_evas/engines/x/ecore_evas_x.c index d96dc6e..ef5f9bb 100755 --- a/src/modules/ecore_evas/engines/x/ecore_evas_x.c +++ b/src/modules/ecore_evas/engines/x/ecore_evas_x.c @@ -131,14 +131,6 @@ struct _Ecore_Evas_Engine_Data_X11 { unsigned long colormap; // store colormap used to create pixmap } pixmap; Eina_Bool destroyed : 1; // X window has been deleted and cannot be used -//TIZEN_ONLY(20150930) : add manual render code - struct { - Eina_Bool manual_mode; //manual render was set by ecore_evas - Eina_Bool approve_send; //need to send ECORE_X_ATOM_E_DEICONIFY_APPROVE message - Ecore_Job *deiconify_job; - Ecore_Idle_Enterer *idle_enterer; - } manual_render; -// }; static Ecore_Evas_Interface_X11 * _ecore_evas_x_interface_x11_new(void); @@ -160,100 +152,6 @@ static void _transparent_do(Ecore_Evas *, int); static void _avoid_damage_do(Ecore_Evas *, int); static void _rotation_do(Ecore_Evas *, int, int); -//TIZEN_ONLY(20150930) : add manual render code - -// WE SHOULD SET/UNSET manual render using elm_window -// for example, below case make problem even though we check manual render using manual mode value. -// 1. ecore_evas_x set manual render EINA_TRUE -// 2. other set manual render EINA_TRUE -// 3. ecore_evas_x set manual render EINA_FALSE -// after three, OTHER LOST MANUAL RENDER!!! - -// THIS IS ONLY HOTFIX - -/* idle enterer for manual render on - * 1. ECORE_X_ATOM_E_COMP_SYNC_BEGIN - * 2. ECORE_X_EVENT_WINDOW_CONFIGURE - * 3. rotation - * 4. deiconify - **/ - -static Eina_Bool -_ecore_evas_x_manual_render_cb_idle_enterer(void *data) -{ - Ecore_Evas *ee = (Ecore_Evas *)data; - INF("[manual_render_dbg] ee=%p", ee); - Ecore_Evas_Engine_Data_X11 *edata = ee->engine.data; - int w, h; - - edata->manual_render.idle_enterer = NULL; - - // first manual render - ecore_evas_manual_render(ee); - - // second manual render - evas_output_viewport_get(ecore_evas_get(ee), NULL, NULL, &w, &h); - evas_obscured_clear(ecore_evas_get(ee)); - evas_damage_rectangle_add(ecore_evas_get(ee), 0, 0, w, h); - ecore_evas_manual_render(ee); - - if (edata->manual_render.manual_mode) - { - INF("[manual_render_dbg] ecore_evas_x=%p is set manual render false", ee); - edata->manual_render.manual_mode= EINA_FALSE; - ecore_evas_manual_render_set(ee, EINA_FALSE); - } - - //If need, send ECORE_X_ATOM_E_DEICONIFY_APPROVE - if (edata->manual_render.approve_send) - { - edata->manual_render.approve_send= EINA_FALSE; - - /* client sends immediately reply message using value 1 */ - ecore_x_client_message32_send(ee->prop.window, - ECORE_X_ATOM_E_DEICONIFY_APPROVE, - ECORE_X_EVENT_MASK_WINDOW_CONFIGURE, - ee->prop.window, 1, - 0, 0, 0); - ecore_x_flush(); - } - return ECORE_CALLBACK_CANCEL; -} - -static void -_ecore_evas_x_manual_render_set(Ecore_Evas *ee) -{ - Ecore_Evas_Engine_Data_X11 *edata = ee->engine.data; - INF("[manual_render_dbg] ee=%p", ee); - - if (!ecore_evas_manual_render_get(ee)) - { - INF("[manual_render_dbg] ecore_evas_x=%p is set manual render true", ee); - edata->manual_render.manual_mode = EINA_TRUE; - ecore_evas_manual_render_set(ee, EINA_TRUE); - } - - // queue an idle enterer to render manually until each object finished changing its size - if (edata->manual_render.idle_enterer) - ecore_idle_enterer_del(edata->manual_render.idle_enterer); - - edata->manual_render.idle_enterer = - ecore_idle_enterer_add(_ecore_evas_x_manual_render_cb_idle_enterer, ee); -} - -static void -_ecore_evas_x_deiconify_job(void *data) -{ - Ecore_Evas *ee = (Ecore_Evas *)data; - Ecore_Evas_Engine_Data_X11 *edata = ee->engine.data; - - INF("[manual_render_dbg] ee=%p", ee); - edata->manual_render.deiconify_job = NULL; - edata->manual_render.approve_send= EINA_TRUE; - _ecore_evas_x_manual_render_set(ee); -} -// - //Tizen Only: Need to contribute. static void _vsync_animator_tick_source_set(Ecore_Evas *ee, Eina_Bool on) @@ -1197,11 +1095,6 @@ _ecore_evas_x_event_client_message(void *data EINA_UNUSED, int type EINA_UNUSED, { // qeue a damage + draw. work around an event re-ordering thing. evas_damage_rectangle_add(ee->evas, 0, 0, ee->w, ee->h); - -//TIZEN_ONLY(20150930) : add manual render code - INF("[manual_render_dbg] ee=%p :ECORE_X_ATOM_E_COMP_SYNC_BEGIN", ee); - _ecore_evas_x_manual_render_set(ee); -// } edata->sync_began = 1; edata->sync_cancel = 0; @@ -1273,18 +1166,15 @@ _ecore_evas_x_event_client_message(void *data EINA_UNUSED, int type EINA_UNUSED, if (e->data.l[1] != 0) //wm sends request message using value 0 return ECORE_CALLBACK_PASS_ON; -//TIZEN_ONLY(20150930) : add manual render code - INF("[manual_render_dbg] ee=%p :ECORE_X_ATOM_E_DEICONIFY_APPROVE", ee); - edata = ee->engine.data; - - //Deal with deiconify using ecore_job for simplicity, - //But deiconify job is also handled like rotation. - if (edata->manual_render.deiconify_job) - ecore_job_del(edata->manual_render.deiconify_job); + evas_iconified_set(ee->evas, EINA_FALSE); // TIZEN_ONLY - /* queue a deiconify job to give the chance to other jobs */ - edata->manual_render.deiconify_job = ecore_job_add(_ecore_evas_x_deiconify_job, ee); -// + if (ecore_evas_manual_render_get(ee)) + ecore_evas_manual_render(ee); + //client sends reply message using value 1 + ecore_x_client_message32_send(e->win, ECORE_X_ATOM_E_DEICONIFY_APPROVE, + ECORE_X_EVENT_MASK_WINDOW_CONFIGURE, + e->win, 1, + 0, 0, 0); } else if (e->message_type == ECORE_X_ATOM_E_WINDOW_ROTATION_CHANGE_PREPARE) { @@ -1718,13 +1608,7 @@ _ecore_evas_x_event_window_configure(void *data EINA_UNUSED, int type EINA_UNUSE { // Tizen Only :: Add log for checking window configure notify INF("[ evas_dbg]: Window configure Notify (%ix%i) -> (%ix%i) \n", ee->w,ee->h,e->w,e->h); -//TIZEN_ONLY(20150930) : add manual render code - if(!ee->prop.iconified) - { - INF("[manual_render_dbg] ee=%p : ECORE_X_EVENT_WINDOW_CONFIGURE (%ix%i) -> (%ix%i)", ee, ee->w,ee->h,e->w,e->h); - _ecore_evas_x_manual_render_set(ee); - } -// + ee->w = e->w; ee->h = e->h; ee->req.w = ee->w; @@ -2121,18 +2005,7 @@ _ecore_evas_x_free(Ecore_Evas *ee) ecore_job_del(edata->wm_rot.manual_mode_job); edata->wm_rot.manual_mode_job = NULL; } -//TIZEN_ONLY(20150930) : add manual render code - if (edata->manual_render.deiconify_job) - { - ecore_job_del(edata->manual_render.deiconify_job); - edata->manual_render.deiconify_job = NULL; - } - if (edata->manual_render.idle_enterer) - { - ecore_idle_enterer_del(edata->manual_render.idle_enterer); - edata->manual_render.idle_enterer = NULL; - } -// + _ecore_evas_x_group_leader_unset(ee); if (edata->sync_counter) ecore_x_sync_counter_free(edata->sync_counter); @@ -2503,10 +2376,6 @@ _ecore_evas_x_rotation_set_internal(Ecore_Evas *ee, int rotation, int resize, else evas_damage_rectangle_add(ee->evas, 0, 0, ee->h, ee->w); } -//TIZEN_ONLY(20150930) : add manual render code - INF("[manual_render_dbg] ee=%p :rotation", ee); - _ecore_evas_x_manual_render_set(ee); -// } static Eina_Bool diff --git a/src/modules/evas/engines/gl_common/evas_gl_api_ext_def.h b/src/modules/evas/engines/gl_common/evas_gl_api_ext_def.h index 2b3bc93..be46d0f 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_api_ext_def.h +++ b/src/modules/evas/engines/gl_common/evas_gl_api_ext_def.h @@ -1140,13 +1140,6 @@ _EVASGL_EXT_BEGIN(shader_texture_lod) _EVASGL_EXT_DRVNAME(GL_EXT_shader_texture_lod) _EVASGL_EXT_END() -_EVASGL_EXT_BEGIN(color_buffer_float) - _EVASGL_EXT_DRVNAME(GL_EXT_color_buffer_float) -_EVASGL_EXT_END() - -_EVASGL_EXT_BEGIN(color_buffer_half_float) - _EVASGL_EXT_DRVNAME(GL_EXT_color_buffer_half_float) -_EVASGL_EXT_END() /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/modules/evas/engines/gl_common/evas_gl_core.c b/src/modules/evas/engines/gl_common/evas_gl_core.c old mode 100755 new mode 100644 index 9b9ee6a..11191d6 --- a/src/modules/evas/engines/gl_common/evas_gl_core.c +++ b/src/modules/evas/engines/gl_common/evas_gl_core.c @@ -1342,8 +1342,6 @@ try_again: sfc->depth_stencil_fmt = evgl_engine->caps.fbo_fmts[i].depth_stencil_fmt; sfc->msaa_samples = evgl_engine->caps.fbo_fmts[i].samples; - // TIZEN_ONLY - /* if (evgl_engine->funcs->native_win_surface_config_get) evgl_engine->funcs->native_win_surface_config_get(eng_data, &native_win_depth, &native_win_stencil, &native_win_msaa); if ((native_win_depth >= depth_size) @@ -1359,8 +1357,6 @@ try_again: native_win_depth, native_win_stencil, native_win_msaa); support_win_cfg = EINA_FALSE; } - */ - support_win_cfg = EINA_TRUE; if ((sfc->direct_override) || support_win_cfg) sfc->direct_fb_opt = !!(cfg->options_bits & EVAS_GL_OPTIONS_DIRECT); @@ -1727,11 +1723,6 @@ evgl_engine_init(void *eng_data, const EVGL_Interface *efunc) } DBG("TLS KEY created: %d", evgl_engine->resource_key); - // TIZEN_ONLY - // Initialize context TLS - if (evgl_engine->funcs->context_eina_tls_new) - evgl_engine->funcs->context_eina_tls_new(evgl_engine); - evgl_engine->safe_extensions = eina_hash_string_small_new(NULL); // Initialize Extensions @@ -1802,9 +1793,6 @@ error: eina_hash_free(evgl_engine->safe_extensions); if (evgl_engine->resource_key) eina_tls_free(evgl_engine->resource_key); - // TIZEN_ONLY - if (evgl_engine->context_key) - eina_tls_free(evgl_engine->context_key); LKD(evgl_engine->resource_lock); free(evgl_engine); } @@ -1832,10 +1820,6 @@ evgl_engine_shutdown(void *eng_data) // Destroy internal resources _evgl_tls_resource_destroy(eng_data); - // TIZEN_ONLY - if (evgl_engine->funcs->context_eina_tls_destroy) - evgl_engine->funcs->context_eina_tls_destroy(eng_data, evgl_engine); - LKD(evgl_engine->resource_lock); // Free engine @@ -1923,15 +1907,6 @@ evgl_surface_create(void *eng_data, Evas_GL_Config *cfg, int w, int h) //TIZEN ONLY if (evgl_engine->funcs->partial_rendering_disable) evgl_engine->funcs->partial_rendering_disable(eng_data); - - //TIZEN ONLY - if (sfc->direct_fb_opt) - { - EVGL_Resource *rsc = _evgl_tls_resource_get(); - if (evgl_engine->funcs->check_egl_config) - evgl_engine->funcs->check_egl_config(eng_data, evgl_engine, sfc, NULL, rsc); - } - return sfc; error: @@ -2001,13 +1976,6 @@ evgl_pbuffer_surface_create(void *eng_data, Evas_GL_Config *cfg, else if (evgl_engine->direct_override == 1) sfc->direct_override = EINA_TRUE; - // Set the context current with resource context/surface - if (!_internal_resource_make_current(eng_data, NULL)) - { - ERR("Error doing an internal resource make current"); - goto error; - } - // If the surface is defined as RGB or RGBA, then create an FBO if (sfc->pbuffer.color_fmt != EVAS_GL_NO_FBO) { @@ -2209,13 +2177,8 @@ evgl_context_create(void *eng_data, EVGL_Context *share_ctx, if (!(rsc = _evgl_tls_resource_get())) { - DBG("Creating new TLS for this thread: %lu", (unsigned long)eina_thread_self()); - rsc = _evgl_tls_resource_create(eng_data); - if (!rsc) - { - ERR("Error creating resources in tls."); - return NULL; - } + ERR("Error creating resources in tls."); + return NULL; } // Allocate context object @@ -2416,10 +2379,6 @@ evgl_make_current(void *eng_data, EVGL_Surface *sfc, EVGL_Context *ctx) rsc->current_ctx->partial_render = 0; } - // TIZEN_ONLY - if (sfc->direct_fb_opt && evgl_engine->funcs->check_egl_config) - evgl_engine->funcs->check_egl_config(eng_data, evgl_engine, sfc, ctx, rsc); - // Do a make current if (!_internal_resource_make_current(eng_data, ctx)) { diff --git a/src/modules/evas/engines/gl_common/evas_gl_core_private.h b/src/modules/evas/engines/gl_common/evas_gl_core_private.h old mode 100755 new mode 100644 index 886c2af..b3a8925 --- a/src/modules/evas/engines/gl_common/evas_gl_core_private.h +++ b/src/modules/evas/engines/gl_common/evas_gl_core_private.h @@ -87,16 +87,6 @@ struct _EVGL_Interface // partial rendering disable void (*partial_rendering_disable)(void *data); - - // If changed evgl config then recreate surface and context - int (*check_egl_config)(void *data, EVGL_Engine *evgl_engine, EVGL_Surface *sfc, EVGL_Context *ctx, EVGL_Resource *rsc); - - // create eina tls new - void (*context_eina_tls_new)(EVGL_Engine *evgl_engine); - - // destory eina tls context - void (*context_eina_tls_destroy)(void *data, EVGL_Engine *evgl_engine); - }; struct _EVGL_Surface @@ -170,8 +160,6 @@ struct _EVGL_Surface //-------------------------// EVGL_Context *current_ctx; - // TIZEN_ONLY - unsigned int egl_reconfig : 1; }; @@ -343,9 +331,6 @@ struct _EVGL_Engine int resource_count; int main_tid; - //TIZEN_ONLY - Eina_TLS context_key; - // Add more debug logs (DBG levels 4 and 6) int api_debug_mode; @@ -363,7 +348,7 @@ struct _EVGL_Engine Eina_List *surfaces; Eina_List *contexts; - //void *engine_data; + //void *engine_data; Eina_Hash *safe_extensions; }; 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 bd97b40..939e905 100755 --- a/src/modules/evas/engines/gl_common/evas_gl_image.c +++ b/src/modules/evas/engines/gl_common/evas_gl_image.c @@ -55,7 +55,6 @@ _evas_gl_image_cache_trim(Evas_Engine_GL_Context *gc) { Evas_GL_Image *im2; Eina_List *l = NULL; - Eina_Bool removed = EINA_FALSE; EINA_LIST_REVERSE_FOREACH(gc->shared->images, l, im2) { @@ -67,12 +66,10 @@ _evas_gl_image_cache_trim(Evas_Engine_GL_Context *gc) im2->gc->shared->images_size -= (im2->csize); evas_gl_common_image_free(im2); l = NULL; - removed = EINA_TRUE; break; } } - - if (!removed || !gc->shared->images) + if (!gc->shared->images) { // printf("EEK %i > %i, no imgs\n", // gc->shared->images_size, size); diff --git a/src/modules/evas/engines/gl_drm/evas_engine.c b/src/modules/evas/engines/gl_drm/evas_engine.c old mode 100755 new mode 100644 index 8c2fee5..23da8f4 --- a/src/modules/evas/engines/gl_drm/evas_engine.c +++ b/src/modules/evas/engines/gl_drm/evas_engine.c @@ -136,9 +136,6 @@ static const EVGL_Interface evgl_funcs = //TIZEN ONLY NULL, //partial_rendering_enable NULL, //partial_rendering_disable - NULL, //check_egl_config - NULL, //context_eina_tls_new - NULL, //context_eina_tls_destroy }; /* local functions */ diff --git a/src/modules/evas/engines/gl_sdl/evas_engine.c b/src/modules/evas/engines/gl_sdl/evas_engine.c old mode 100755 new mode 100644 index f2c9c86..e7d5a63 --- a/src/modules/evas/engines/gl_sdl/evas_engine.c +++ b/src/modules/evas/engines/gl_sdl/evas_engine.c @@ -263,9 +263,6 @@ static const EVGL_Interface evgl_funcs = //TIZEN ONLY NULL, //partial_rendering_enable NULL, //partial_rendering_disable - NULL, //check_egl_config - NULL, //context_eina_tls_new - NULL, //context_eina_tls_destroy }; diff --git a/src/modules/evas/engines/gl_x11/evas_engine.c b/src/modules/evas/engines/gl_x11/evas_engine.c index c2505f8..c477a09 100755 --- a/src/modules/evas/engines/gl_x11/evas_engine.c +++ b/src/modules/evas/engines/gl_x11/evas_engine.c @@ -1264,202 +1264,6 @@ evgl_eng_partial_rendering_disable(void *data EINA_UNUSED) extn_have_buffer_age = 0; } -// TIZEN_ONLY -void -evgl_eng_context_eina_tls_new(EVGL_Engine *evgl_engine) -{ - if (!evgl_engine) - return; - // Initialize Context TLS - evgl_engine->context_key = 0; - if (!eina_tls_new(&evgl_engine->context_key)) - { - ERR("Error creating context_key "); - return; - } - eina_tls_set(evgl_engine->context_key, NULL); -} - -// TIZEN_ONLY -EVGLNative_Context * -_evgl_tls_context_get(EVGL_Engine *evgl_engine) -{ - if (!evgl_engine) - return NULL; - - EVGLNative_Context *ctx = NULL; - - ctx = eina_tls_get(evgl_engine->context_key); - - if (!ctx) - return NULL; - else - return ctx; -} - -// TIZEN_ONLY -void -_evgl_tls_context_set(EVGL_Engine *evgl_engine, EVGLNative_Context *ctx) -{ - if (!evgl_engine) - return; - eina_tls_set(evgl_engine->context_key, ctx); -} - -// TIZEN_ONLY -void -evgl_eng_context_eina_tls_destroy(void *eng_data, EVGL_Engine *evgl_engine) -{ - if (!evgl_engine) - return; - Render_Engine *re = (Render_Engine *)eng_data; - EVGLNative_Context *ctx; - - ctx = _evgl_tls_context_get(evgl_engine); - if (ctx) - evgl_eng_context_destroy(eng_data, ctx); - - if (evgl_engine->context_key) - eina_tls_free(evgl_engine->context_key); - evgl_engine->context_key = 0; -} - - -// TIZEN_ONLY -static int -evgl_eng_check_egl_config(void *data, EVGL_Engine *evgl_engine, EVGL_Surface *sfc, EVGL_Context *ctx, EVGL_Resource *rsc) -{ -#ifdef GL_GLES - - Render_Engine *re = (Render_Engine *)data; - - if (!re || !sfc) return 0; - - Evas_GL_Config *cfg = sfc->cfg; - - // recreate EvasGL context - if (ctx && ctx->context) - { - if (sfc->egl_reconfig == 1) - { - EVGLNative_Context *context = _evgl_tls_context_get(evgl_engine); - if (!context) - _evgl_tls_context_set(evgl_engine, ctx->context); - - if (context && context != ctx->context) - evgl_eng_context_destroy(data, ctx->context); - - ctx->context = evgl_eng_context_create(data, context, ctx->version); - - sfc->egl_reconfig = 0; - } - return 0; - } - - int i, num_config = 0; - int config_attrs[40]; - int depth_bit = 0, stencil_bit = 0, msaa = 0; - int depth_size = 0; - int check_depth_size = 0, check_stencil_bit = 0, check_msaa = 0; - int need_reconfig = 0; - - i = 0; - config_attrs[i++] = EGL_SURFACE_TYPE; - config_attrs[i++] = EGL_WINDOW_BIT | EGL_PIXMAP_BIT; - config_attrs[i++] = EGL_RENDERABLE_TYPE; - config_attrs[i++] = EGL_OPENGL_ES2_BIT | EGL_OPENGL_ES_BIT; - - int val; - eglGetConfigAttrib(eng_get_ob(re)->egl_disp, eng_get_ob(re)->egl_config, EGL_ALPHA_SIZE, &val); - if (!val && (cfg && (cfg->color_format == EVAS_GL_RGBA_8888))) - { - config_attrs[i++] = EGL_ALPHA_SIZE; - config_attrs[i++] = 1; - need_reconfig = 1; - } - else - { - config_attrs[i++] = EGL_ALPHA_SIZE; - config_attrs[i++] = val; - } - - // check eglConfig old and new - // check depth size; - depth_size = eng_get_ob(re)->detected.depth_buffer_size; - check_depth_size = depth_size; - if (cfg && cfg->depth_bits) - { - depth_bit = (1 << (cfg->depth_bits-1)); - depth_size = 8 * cfg->depth_bits; - if (check_depth_size < depth_size) - need_reconfig = 1; - } - config_attrs[i++] = EGL_DEPTH_SIZE; - config_attrs[i++] = depth_size; - - // check stencil bit - stencil_bit = eng_get_ob(re)->detected.stencil_buffer_size; - check_stencil_bit = stencil_bit; - if (cfg && cfg->stencil_bits) - { - stencil_bit = (1 << (cfg->stencil_bits-1)); - if (check_stencil_bit < stencil_bit) - need_reconfig = 1; - } - config_attrs[i++] = EGL_STENCIL_SIZE; - config_attrs[i++] = stencil_bit; - - // check msaa - msaa = eng_get_ob(re)->detected.msaa; - check_msaa = msaa; - if (cfg && (cfg->multisample_bits > EVAS_GL_MULTISAMPLE_NONE) && - (cfg->multisample_bits <= EVAS_GL_MULTISAMPLE_HIGH)) - { - msaa = evgl_engine->caps.msaa_samples[(int) cfg->multisample_bits - 1]; - if (check_msaa != msaa) - need_reconfig = 1; - } - config_attrs[i++] = EGL_SAMPLE_BUFFERS; - config_attrs[i++] = 1; - config_attrs[i++] = EGL_SAMPLES; - config_attrs[i++] = msaa; - - config_attrs[i++] = EGL_NONE; - config_attrs[i++] = 0; - - if (!need_reconfig) - { - // already reconfigured - if (eng_get_ob(re)->egl_reconfig) - sfc->egl_reconfig = 1; - return 0; - } - - if (!eglChooseConfig(eng_get_ob(re)->egl_disp, config_attrs, - &eng_get_ob(re)->egl_config, 1, &num_config)) - { - int err = eglGetError(); - ERR("eglChooseConfig() can't find any configs, error: %d", err); - return 1; - } - - // window recontext - eng_window_recontext(eng_get_ob(re), eng_get_ob(re)->egl_config); - - // for internal_make_current - evgl_eng_context_destroy(data, rsc->context); - rsc->context = evgl_eng_context_create(data, NULL, EVAS_GL_GLES_2_X); - - sfc->egl_reconfig = 1; - eng_get_ob(re)->egl_reconfig = 1; - - return 1; -#else - eng_get_ob(re)->egl_reconfig = 1; - return 0; -#endif -} - static const EVGL_Interface evgl_funcs = { evgl_eng_display_get, @@ -1482,9 +1286,6 @@ static const EVGL_Interface evgl_funcs = evgl_eng_native_win_surface_config_get, evgl_eng_partial_rendering_enable, // TIZEN_ONLY evgl_eng_partial_rendering_disable, // TIZEN_ONLY - evgl_eng_check_egl_config, // TIZEN_ONLY - evgl_eng_context_eina_tls_new, // TIZEN_ONLY - evgl_eng_context_eina_tls_destroy, // TIZEN_ONLY }; //----------------------------------------------------------// @@ -2117,7 +1918,7 @@ eng_output_free(void *data) #endif if ((gl_wins == 1) &&(re->generic.evgl_initted)) - glsym_evgl_engine_shutdown(re); + glsym_evgl_engine_shutdown(re); evas_render_engine_software_generic_clean(&re->generic.software); diff --git a/src/modules/evas/engines/gl_x11/evas_engine.h b/src/modules/evas/engines/gl_x11/evas_engine.h index 983be83..5885072 100755 --- a/src/modules/evas/engines/gl_x11/evas_engine.h +++ b/src/modules/evas/engines/gl_x11/evas_engine.h @@ -65,7 +65,6 @@ struct _Outbuf EGLSurface egl_surface[2]; EGLConfig egl_config; EGLDisplay egl_disp; - unsigned int egl_reconfig : 1; // TIZEN_ONLY #else GLXContext context; GLXWindow glxwin; diff --git a/src/modules/evas/engines/gl_x11/evas_x_main.c b/src/modules/evas/engines/gl_x11/evas_x_main.c index 3c6ba7a..5f3e2a9 100755 --- a/src/modules/evas/engines/gl_x11/evas_x_main.c +++ b/src/modules/evas/engines/gl_x11/evas_x_main.c @@ -874,111 +874,6 @@ eng_window_resurf(Outbuf *gw) gw->surf = 1; } -// TIZEN_ONLY -void -eng_window_recontext(Outbuf *gw, EGLConfig *config) -{ -#ifdef GL_GLES - Outbuf *xwin; - GLContext context; - int context_attrs[3]; - - context_attrs[0] = EGL_CONTEXT_CLIENT_VERSION; - context_attrs[1] = 2; - context_attrs[2] = EGL_NONE; - - context = _tls_context_get(); - SET_RESTORE_CONTEXT(); - eglMakeCurrent(gw->egl_disp, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); - // context destroy - if (gw->egl_context[0] != context) - eglDestroyContext(gw->egl_disp, gw->egl_context[0]); - - // context recreate - gw->egl_context[0] = eglCreateContext - (gw->egl_disp, config, context, context_attrs); - if (gw->egl_context[0] == EGL_NO_CONTEXT) - { - ERR("eglCreateContext() fail. code=%#x", eglGetError()); - return; - } - if (context == EGL_NO_CONTEXT) - _tls_context_set(gw->egl_context[0]); - - // surface destroy - xwin = _tls_outbuf_get(); - if (xwin) - glsym_evas_gl_common_context_flush(xwin->gl_context); - - SET_RESTORE_CONTEXT(); - eglMakeCurrent(gw->egl_disp, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT); - if (gw->egl_surface[0] != EGL_NO_SURFACE) - eglDestroySurface(gw->egl_disp, gw->egl_surface[0]); - gw->egl_surface[0] = EGL_NO_SURFACE; - if (gw->egl_surface[1] != EGL_NO_SURFACE) - eglDestroySurface(gw->egl_disp, gw->egl_surface[1]); - gw->egl_surface[1] = EGL_NO_SURFACE; - - // surface recreate - if (gw->win_back) - { - gw->egl_surface[0] = eglCreatePixmapSurface(gw->egl_disp, gw->egl_config, - (EGLNativePixmapType)gw->win, - NULL); - if (gw->egl_surface[0] == EGL_NO_SURFACE) - { - ERR("eglCreatePixmapSurface() fail for %#x. code=%#x", - (unsigned int)gw->win, eglGetError()); - return; - } - - gw->egl_surface[1] = eglCreatePixmapSurface(gw->egl_disp, gw->egl_config, - (EGLNativePixmapType)gw->win_back, - NULL); - if (gw->egl_surface[1] == EGL_NO_SURFACE) - { - ERR("eglCreatePixmapSurface() fail for %#x. code=%#x", - (unsigned int)gw->win_back, eglGetError()); - return; - } - } - else - { - gw->egl_surface[0] = eglCreateWindowSurface(gw->egl_disp, gw->egl_config, - (EGLNativeWindowType)gw->win, - NULL); - if (gw->egl_surface[0] == EGL_NO_SURFACE) - { - ERR("eglCreateWindowSurface() fail for %#x. code=%#x", - (unsigned int)gw->win, eglGetError()); - return; - } - } - - - SET_RESTORE_CONTEXT(); - if (eglMakeCurrent(gw->egl_disp, - gw->egl_surface[gw->offscreen], - gw->egl_surface[gw->offscreen], - gw->egl_context[0]) == EGL_FALSE) - { - ERR("eglMakeCurrent() fail. code=%#x", eglGetError()); - return; - } - - int val; - eglGetConfigAttrib(gw->egl_disp, gw->egl_config, EGL_DEPTH_SIZE, &val); - gw->detected.depth_buffer_size = val; - DBG("Detected depth size %d", val); - eglGetConfigAttrib(gw->egl_disp, gw->egl_config, EGL_STENCIL_SIZE, &val); - gw->detected.stencil_buffer_size = val; - DBG("Detected stencil size %d", val); - eglGetConfigAttrib(gw->egl_disp, gw->egl_config, EGL_SAMPLES, &val); - gw->detected.msaa = val; - DBG("Detected msaa %d", val); -#endif -} - void * eng_best_visual_get(Evas_Engine_Info_GL_X11 *einfo) { @@ -1068,7 +963,7 @@ try_again: else { config_attrs[i++] = EGL_DEPTH_SIZE; - config_attrs[i++] = 0; + config_attrs[i++] = 1; } if (stencil_bits) @@ -1079,7 +974,7 @@ try_again: else { config_attrs[i++] = EGL_STENCIL_SIZE; - config_attrs[i++] = 0; + config_attrs[i++] = 1; } if (msaa_samples) diff --git a/src/modules/evas/engines/wayland_egl/evas_engine.c b/src/modules/evas/engines/wayland_egl/evas_engine.c old mode 100755 new mode 100644 index fd7d322..fa507fc --- a/src/modules/evas/engines/wayland_egl/evas_engine.c +++ b/src/modules/evas/engines/wayland_egl/evas_engine.c @@ -480,9 +480,6 @@ static const EVGL_Interface evgl_funcs = //TIZEN ONLY NULL, //partial_rendering_enable NULL, //partial_rendering_disable - NULL, //check_egl_config - NULL, //context_eina_tls_new - NULL, //context_eina_tls_destroy }; /* engine functions */ diff --git a/src/modules/evas/image_loaders/eet/evas_image_load_eet.c b/src/modules/evas/image_loaders/eet/evas_image_load_eet.c index 01a9182..3c8e49b 100644 --- a/src/modules/evas/image_loaders/eet/evas_image_load_eet.c +++ b/src/modules/evas/image_loaders/eet/evas_image_load_eet.c @@ -57,14 +57,6 @@ evas_image_load_file_close_eet(void *loader_data) free(loader); } -static int -roundup(int val, int rup) -{ - if (val >= 0 && rup > 0) - return (val + rup - 1) - ((val + rup - 1) % rup); - return 0; -} - static inline Eina_Bool _evas_image_load_return_error(int err, int *error) { @@ -93,16 +85,15 @@ static const Evas_Colorspace cspaces_etc2_rgba[] = { }; static Eina_Bool -evas_image_load_file_head_eet(void *loader_data, - Evas_Image_Property *prop, - int *error) +evas_image_load_file_head_eet(void *loader_data, + Evas_Image_Property *prop, + int *error) { Evas_Loader_Internal *loader = loader_data; int a, compression, quality; Eet_Image_Encoding lossy; const Eet_Colorspace *cspaces = NULL; int ok; - int border = 0; ok = eet_data_image_header_read(loader->ef, loader->key, &prop->w, &prop->h, &a, &compression, &quality, &lossy); @@ -115,48 +106,35 @@ evas_image_load_file_head_eet(void *loader_data, { unsigned int i; - if (cspaces != NULL) - { - for (i = 0; cspaces[i] != EET_COLORSPACE_ARGB8888; i++) + if (cspaces != NULL) + { + for (i = 0; cspaces[i] != EET_COLORSPACE_ARGB8888; i++) { if (cspaces[i] == EET_COLORSPACE_ETC1) { prop->cspaces = cspaces_etc1; - border = 1; break; } else if (cspaces[i] == EET_COLORSPACE_ETC1_ALPHA) { prop->cspaces = cspaces_etc1_alpha; - border = 1; break; } else if (cspaces[i] == EET_COLORSPACE_RGB8_ETC2) { prop->cspaces = cspaces_etc2_rgb; - border = 1; break; } else if (cspaces[i] == EET_COLORSPACE_RGBA8_ETC2_EAC) { prop->cspaces = cspaces_etc2_rgba; - border = 1; break; } } - } + } } prop->alpha = !!a; - // set boader for openGL - if (border) - { - prop->borders.l = 1; - prop->borders.t = 1; - prop->borders.r = roundup(prop->w + 2, 4) - prop->w - 1; - prop->borders.b = roundup(prop->h + 2, 4) - prop->h - 1; - } - *error = EVAS_LOAD_ERROR_NONE; return EINA_TRUE; @@ -166,7 +144,7 @@ Eina_Bool evas_image_load_file_data_eet(void *loader_data, Evas_Image_Property *prop, void *pixels, - int *error) + int *error) { Evas_Loader_Internal *loader = loader_data; int alpha, compression, quality, ok; @@ -196,29 +174,25 @@ evas_image_load_file_data_eet(void *loader_data, if (alpha) { prop->alpha = 1; - - if(cspace == EET_COLORSPACE_ARGB8888) - { - body = pixels; - - end = body + (prop->w * prop->h); - for (p = body; p < end; p++) - { - DATA32 r, g, b, a; - - a = A_VAL(p); - r = R_VAL(p); - g = G_VAL(p); - b = B_VAL(p); - if ((a == 0) || (a == 255)) nas++; - if (r > a) r = a; - if (g > a) g = a; - if (b > a) b = a; - *p = ARGB_JOIN(a, r, g, b); - } - if ((ALPHA_SPARSE_INV_FRACTION * nas) >= (prop->w * prop->h)) - prop->alpha_sparse = 1; - } + body = pixels; + + end = body + (prop->w * prop->h); + for (p = body; p < end; p++) + { + DATA32 r, g, b, a; + + a = A_VAL(p); + r = R_VAL(p); + g = G_VAL(p); + b = B_VAL(p); + if ((a == 0) || (a == 255)) nas++; + if (r > a) r = a; + if (g > a) g = a; + if (b > a) b = a; + *p = ARGB_JOIN(a, r, g, b); + } + if ((ALPHA_SPARSE_INV_FRACTION * nas) >= (prop->w * prop->h)) + prop->alpha_sparse = 1; } // result is already premultiplied now if u compile with edje // evas_common_image_premul(im); -- 2.7.4