jsuya pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=a4311f73ee956653182c5bd5f047d5043e5bd894

commit a4311f73ee956653182c5bd5f047d5043e5bd894
Author: JunsuChoi <[email protected]>
Date:   Mon Feb 17 19:05:22 2020 +0900

    edje: Disable the json vector animation feature with a flag.
    
    Summary:
    Json vector animation requires the json loader to be loaded.
    Therefore, if the loader does not load,
    it prints an appropriate error message and disables the feature.
    
    Depends on D11228
    
    Test Plan: N/A
    
    Reviewers: Hermet, Jaehyun_Cho, id213sin
    
    Reviewed By: Hermet
    
    Subscribers: raster, cedric, #reviewers, #committers
    
    Tags: #efl
    
    Differential Revision: https://phab.enlightenment.org/D11230
---
 src/bin/edje/edje_cc_handlers.c |  2 +-
 src/lib/edje/Edje_Common.h      | 12 ++++++------
 src/lib/edje/edje_calc.c        | 16 ++++++++++++++--
 src/lib/edje/edje_private.h     |  2 ++
 src/lib/edje/edje_program.c     | 11 +++++++++++
 5 files changed, 34 insertions(+), 9 deletions(-)

diff --git a/src/bin/edje/edje_cc_handlers.c b/src/bin/edje/edje_cc_handlers.c
index 59a0f377a8..b110292cb0 100644
--- a/src/bin/edje/edje_cc_handlers.c
+++ b/src/bin/edje/edje_cc_handlers.c
@@ -15789,7 +15789,7 @@ st_collections_group_programs_program_action(void)
                            "VG_ANIM_PAUSE", EDJE_ACTION_TYPE_VG_ANIM_PAUSE,
                            "VG_ANIM_RESUME", EDJE_ACTION_TYPE_VG_ANIM_RESUME,
                            "VG_ANIM_PLAY", EDJE_ACTION_TYPE_VG_ANIM_PLAY,
-                           "VG_ANIM_PLAY_BACK", 
EDJE_ACTION_TYPE_VG_ANIM_REWIND,
+                           "VG_ANIM_REWIND", EDJE_ACTION_TYPE_VG_ANIM_REWIND,
                            "VG_ANIM_LOOP", EDJE_ACTION_TYPE_VG_ANIM_LOOP,
                            NULL);
    if (ep->action == EDJE_ACTION_TYPE_STATE_SET)
diff --git a/src/lib/edje/Edje_Common.h b/src/lib/edje/Edje_Common.h
index be752343ab..cdbc84b151 100644
--- a/src/lib/edje/Edje_Common.h
+++ b/src/lib/edje/Edje_Common.h
@@ -1952,12 +1952,12 @@ typedef enum _Edje_Action_Type
    EDJE_ACTION_TYPE_PHYSICS_ROT_SET          = 23, /**< @since 1.8 @brief 
Physics rotation set action value */
    EDJE_ACTION_TYPE_VIBRATION_SAMPLE         = 24, /**< @since 1.10 @brief 
vibration sample action value */
    EDJE_ACTION_TYPE_MO                       = 25, /**< @since 1.15 @brief Mo 
action value */
-   EDJE_ACTION_TYPE_VG_ANIM_STOP,
-   EDJE_ACTION_TYPE_VG_ANIM_PAUSE,
-   EDJE_ACTION_TYPE_VG_ANIM_RESUME,
-   EDJE_ACTION_TYPE_VG_ANIM_PLAY,
-   EDJE_ACTION_TYPE_VG_ANIM_REWIND,
-   EDJE_ACTION_TYPE_VG_ANIM_LOOP,
+   EDJE_ACTION_TYPE_VG_ANIM_STOP             = 26, /** @since 1.24 @brief 
Vector animation stop action value */
+   EDJE_ACTION_TYPE_VG_ANIM_PAUSE            = 27, /** @since 1.24 @brief 
Vector animation pause action value */
+   EDJE_ACTION_TYPE_VG_ANIM_RESUME           = 28, /** @since 1.24 @brief 
Vector animation resume action value */
+   EDJE_ACTION_TYPE_VG_ANIM_PLAY             = 29, /** @since 1.24 @brief 
Vector animation play action value */
+   EDJE_ACTION_TYPE_VG_ANIM_REWIND           = 30, /** @since 1.24 @brief 
Vector animation rewind action value */
+   EDJE_ACTION_TYPE_VG_ANIM_LOOP             = 31, /** @since 1.24 @brief 
Vector animation loop value */
    EDJE_ACTION_TYPE_LAST                     = 32  /**< Last action value */
 } Edje_Action_Type;
 
diff --git a/src/lib/edje/edje_calc.c b/src/lib/edje/edje_calc.c
index eba505b721..30f556d722 100644
--- a/src/lib/edje/edje_calc.c
+++ b/src/lib/edje/edje_calc.c
@@ -3279,6 +3279,7 @@ _edje_image_recalc_apply(Edje *ed, Edje_Real_Part *ep, 
Edje_Calc_Params *p3, Edj
      evas_object_image_border_center_fill_set(ep->object, 
EVAS_BORDER_FILL_SOLID);
 }
 
+#ifdef BUILD_VG_LOADER_JSON
 static void
 _edje_vector_animation_running_cb(void *data, const Efl_Event *event)
 {
@@ -3363,6 +3364,7 @@ _edje_vector_load_json(Edje *ed, Edje_Real_Part *ep, 
const char *key)
         efl_gfx_frame_controller_frame_set(ep->object, (int)(frame_count * 
desc->vg.frame));
      }
 }
+#endif
 
 static void
 _edje_vector_recalc_apply(Edje *ed, Edje_Real_Part *ep, Edje_Calc_Params *p3 
EINA_UNUSED, Edje_Part_Description_Vector *chosen_desc, FLOAT_T pos)
@@ -3381,8 +3383,11 @@ _edje_vector_recalc_apply(Edje *ed, Edje_Real_Part *ep, 
Edje_Calc_Params *p3 EIN
 
    if (type == EDJE_VECTOR_FILE_TYPE_JSON)
      {
+#ifdef BUILD_VG_LOADER_JSON
         _edje_vector_load_json(ed, ep, src_key);
-
+#else
+        ERR("Evas Vg Json (Lottie) Loader is not supported, Only Static Vector 
Image(SVG) is available!");
+#endif
         return;
      }
 
@@ -3402,7 +3407,12 @@ _edje_vector_recalc_apply(Edje *ed, Edje_Real_Part *ep, 
Edje_Calc_Params *p3 EIN
 
    if ((new_id < 0) || (new_type == EDJE_VECTOR_FILE_TYPE_JSON))
      {
-        efl_file_simple_load(ep->object, ed->file->path, src_key);
+#ifndef BUILD_VG_LOADER_JSON
+        if (new_type == EDJE_VECTOR_FILE_TYPE_JSON)
+          ERR("Evas Vg Json (Lottie) Loader is not supported, Only Static 
Vector Image(SVG) is available!");
+        else
+#endif
+          efl_file_simple_load(ep->object, ed->file->path, src_key);
      }
    else
      {
@@ -3428,6 +3438,7 @@ _edje_vector_recalc_apply(Edje *ed, Edje_Real_Part *ep, 
Edje_Calc_Params *p3 EIN
      }
 }
 
+#ifdef BUILD_VG_LOADER_JSON
 void
 _edje_part_vector_anim_stop(Edje *ed EINA_UNUSED, Edje_Real_Part *rp)
 {
@@ -3464,6 +3475,7 @@ _edje_part_vector_anim_play(Edje *ed EINA_UNUSED, 
Edje_Real_Part *rp, Eina_Bool
    rp->typedata.vector->is_playing = EINA_TRUE;
    efl_canvas_object_animation_start(rp->object, rp->typedata.vector->anim, 
1.0, 0.0);
 }
+#endif
 
 static Edje_Real_Part *
 _edje_real_part_state_get(Edje *ed, Edje_Real_Part *ep, int flags, int id, int 
*state)
diff --git a/src/lib/edje/edje_private.h b/src/lib/edje/edje_private.h
index c3f3ebbda6..a35c7eca90 100644
--- a/src/lib/edje/edje_private.h
+++ b/src/lib/edje/edje_private.h
@@ -3350,10 +3350,12 @@ char * _edje_text_cursor_content_get(Edje_Real_Part 
*rp, Efl_Text_Cursor_Handle
 void _edje_object_part_text_insert(Edje *ed, Edje_Real_Part *rp, const char 
*text);
 
 void _edje_internal_proxy_shutdown(void);
+#ifdef BUILD_VG_LOADER_JSON
 void _edje_part_vector_anim_stop(Edje *ed, Edje_Real_Part *rp);
 void _edje_part_vector_anim_pause(Edje *ed, Edje_Real_Part *rp);
 void _edje_part_vector_anim_resume(Edje *ed, Edje_Real_Part *rp);
 void _edje_part_vector_anim_play(Edje *ed, Edje_Real_Part *rp, Eina_Bool 
backward, Eina_Bool loop);
+#endif
 
 #ifdef HAVE_EPHYSICS
 Eina_Bool _edje_ephysics_load(void);
diff --git a/src/lib/edje/edje_program.c b/src/lib/edje/edje_program.c
index fbef7639ed..f823c871a2 100644
--- a/src/lib/edje/edje_program.c
+++ b/src/lib/edje/edje_program.c
@@ -1222,6 +1222,7 @@ low_mem_current:
 
 #endif
 
+#ifdef BUILD_VG_LOADER_JSON
       case EDJE_ACTION_TYPE_VG_ANIM_STOP:
         if (_edje_block_break(ed))
           goto break_prog;
@@ -1292,6 +1293,16 @@ low_mem_current:
                }
           }
         break;
+#else
+      case EDJE_ACTION_TYPE_VG_ANIM_STOP:
+      case EDJE_ACTION_TYPE_VG_ANIM_PAUSE:
+      case EDJE_ACTION_TYPE_VG_ANIM_RESUME:
+      case EDJE_ACTION_TYPE_VG_ANIM_LOOP:
+      case EDJE_ACTION_TYPE_VG_ANIM_REWIND:
+      case EDJE_ACTION_TYPE_VG_ANIM_PLAY:
+        ERR("Evas Vg Json (Lottie) Loader is not supported, Only Static Vector 
Image(SVG) is available!");
+        break;
+#endif
 
       default:
         // _edje_emit(ed, "program,start", pr->name);

-- 


Reply via email to