summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunsuChoi <jsuya.choi@samsung.com>2020-02-17 19:05:22 +0900
committerJunsuChoi <jsuya.choi@samsung.com>2020-02-17 19:14:14 +0900
commita4311f73ee956653182c5bd5f047d5043e5bd894 (patch)
tree20d2fa39824d2d8510d63420feee487b628f473d
parent2fe158ce652860b2aa5a2e883e6b2beb0ee1c670 (diff)
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
-rw-r--r--src/bin/edje/edje_cc_handlers.c2
-rw-r--r--src/lib/edje/Edje_Common.h12
-rw-r--r--src/lib/edje/edje_calc.c16
-rw-r--r--src/lib/edje/edje_private.h2
-rw-r--r--src/lib/edje/edje_program.c11
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)
15789 "VG_ANIM_PAUSE", EDJE_ACTION_TYPE_VG_ANIM_PAUSE, 15789 "VG_ANIM_PAUSE", EDJE_ACTION_TYPE_VG_ANIM_PAUSE,
15790 "VG_ANIM_RESUME", EDJE_ACTION_TYPE_VG_ANIM_RESUME, 15790 "VG_ANIM_RESUME", EDJE_ACTION_TYPE_VG_ANIM_RESUME,
15791 "VG_ANIM_PLAY", EDJE_ACTION_TYPE_VG_ANIM_PLAY, 15791 "VG_ANIM_PLAY", EDJE_ACTION_TYPE_VG_ANIM_PLAY,
15792 "VG_ANIM_PLAY_BACK", EDJE_ACTION_TYPE_VG_ANIM_REWIND, 15792 "VG_ANIM_REWIND", EDJE_ACTION_TYPE_VG_ANIM_REWIND,
15793 "VG_ANIM_LOOP", EDJE_ACTION_TYPE_VG_ANIM_LOOP, 15793 "VG_ANIM_LOOP", EDJE_ACTION_TYPE_VG_ANIM_LOOP,
15794 NULL); 15794 NULL);
15795 if (ep->action == EDJE_ACTION_TYPE_STATE_SET) 15795 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
1952 EDJE_ACTION_TYPE_PHYSICS_ROT_SET = 23, /**< @since 1.8 @brief Physics rotation set action value */ 1952 EDJE_ACTION_TYPE_PHYSICS_ROT_SET = 23, /**< @since 1.8 @brief Physics rotation set action value */
1953 EDJE_ACTION_TYPE_VIBRATION_SAMPLE = 24, /**< @since 1.10 @brief vibration sample action value */ 1953 EDJE_ACTION_TYPE_VIBRATION_SAMPLE = 24, /**< @since 1.10 @brief vibration sample action value */
1954 EDJE_ACTION_TYPE_MO = 25, /**< @since 1.15 @brief Mo action value */ 1954 EDJE_ACTION_TYPE_MO = 25, /**< @since 1.15 @brief Mo action value */
1955 EDJE_ACTION_TYPE_VG_ANIM_STOP, 1955 EDJE_ACTION_TYPE_VG_ANIM_STOP = 26, /** @since 1.24 @brief Vector animation stop action value */
1956 EDJE_ACTION_TYPE_VG_ANIM_PAUSE, 1956 EDJE_ACTION_TYPE_VG_ANIM_PAUSE = 27, /** @since 1.24 @brief Vector animation pause action value */
1957 EDJE_ACTION_TYPE_VG_ANIM_RESUME, 1957 EDJE_ACTION_TYPE_VG_ANIM_RESUME = 28, /** @since 1.24 @brief Vector animation resume action value */
1958 EDJE_ACTION_TYPE_VG_ANIM_PLAY, 1958 EDJE_ACTION_TYPE_VG_ANIM_PLAY = 29, /** @since 1.24 @brief Vector animation play action value */
1959 EDJE_ACTION_TYPE_VG_ANIM_REWIND, 1959 EDJE_ACTION_TYPE_VG_ANIM_REWIND = 30, /** @since 1.24 @brief Vector animation rewind action value */
1960 EDJE_ACTION_TYPE_VG_ANIM_LOOP, 1960 EDJE_ACTION_TYPE_VG_ANIM_LOOP = 31, /** @since 1.24 @brief Vector animation loop value */
1961 EDJE_ACTION_TYPE_LAST = 32 /**< Last action value */ 1961 EDJE_ACTION_TYPE_LAST = 32 /**< Last action value */
1962} Edje_Action_Type; 1962} Edje_Action_Type;
1963 1963
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
3279 evas_object_image_border_center_fill_set(ep->object, EVAS_BORDER_FILL_SOLID); 3279 evas_object_image_border_center_fill_set(ep->object, EVAS_BORDER_FILL_SOLID);
3280} 3280}
3281 3281
3282#ifdef BUILD_VG_LOADER_JSON
3282static void 3283static void
3283_edje_vector_animation_running_cb(void *data, const Efl_Event *event) 3284_edje_vector_animation_running_cb(void *data, const Efl_Event *event)
3284{ 3285{
@@ -3363,6 +3364,7 @@ _edje_vector_load_json(Edje *ed, Edje_Real_Part *ep, const char *key)
3363 efl_gfx_frame_controller_frame_set(ep->object, (int)(frame_count * desc->vg.frame)); 3364 efl_gfx_frame_controller_frame_set(ep->object, (int)(frame_count * desc->vg.frame));
3364 } 3365 }
3365} 3366}
3367#endif
3366 3368
3367static void 3369static void
3368_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) 3370_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
3381 3383
3382 if (type == EDJE_VECTOR_FILE_TYPE_JSON) 3384 if (type == EDJE_VECTOR_FILE_TYPE_JSON)
3383 { 3385 {
3386#ifdef BUILD_VG_LOADER_JSON
3384 _edje_vector_load_json(ed, ep, src_key); 3387 _edje_vector_load_json(ed, ep, src_key);
3385 3388#else
3389 ERR("Evas Vg Json (Lottie) Loader is not supported, Only Static Vector Image(SVG) is available!");
3390#endif
3386 return; 3391 return;
3387 } 3392 }
3388 3393
@@ -3402,7 +3407,12 @@ _edje_vector_recalc_apply(Edje *ed, Edje_Real_Part *ep, Edje_Calc_Params *p3 EIN
3402 3407
3403 if ((new_id < 0) || (new_type == EDJE_VECTOR_FILE_TYPE_JSON)) 3408 if ((new_id < 0) || (new_type == EDJE_VECTOR_FILE_TYPE_JSON))
3404 { 3409 {
3405 efl_file_simple_load(ep->object, ed->file->path, src_key); 3410#ifndef BUILD_VG_LOADER_JSON
3411 if (new_type == EDJE_VECTOR_FILE_TYPE_JSON)
3412 ERR("Evas Vg Json (Lottie) Loader is not supported, Only Static Vector Image(SVG) is available!");
3413 else
3414#endif
3415 efl_file_simple_load(ep->object, ed->file->path, src_key);
3406 } 3416 }
3407 else 3417 else
3408 { 3418 {
@@ -3428,6 +3438,7 @@ _edje_vector_recalc_apply(Edje *ed, Edje_Real_Part *ep, Edje_Calc_Params *p3 EIN
3428 } 3438 }
3429} 3439}
3430 3440
3441#ifdef BUILD_VG_LOADER_JSON
3431void 3442void
3432_edje_part_vector_anim_stop(Edje *ed EINA_UNUSED, Edje_Real_Part *rp) 3443_edje_part_vector_anim_stop(Edje *ed EINA_UNUSED, Edje_Real_Part *rp)
3433{ 3444{
@@ -3464,6 +3475,7 @@ _edje_part_vector_anim_play(Edje *ed EINA_UNUSED, Edje_Real_Part *rp, Eina_Bool
3464 rp->typedata.vector->is_playing = EINA_TRUE; 3475 rp->typedata.vector->is_playing = EINA_TRUE;
3465 efl_canvas_object_animation_start(rp->object, rp->typedata.vector->anim, 1.0, 0.0); 3476 efl_canvas_object_animation_start(rp->object, rp->typedata.vector->anim, 1.0, 0.0);
3466} 3477}
3478#endif
3467 3479
3468static Edje_Real_Part * 3480static Edje_Real_Part *
3469_edje_real_part_state_get(Edje *ed, Edje_Real_Part *ep, int flags, int id, int *state) 3481_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
3350void _edje_object_part_text_insert(Edje *ed, Edje_Real_Part *rp, const char *text); 3350void _edje_object_part_text_insert(Edje *ed, Edje_Real_Part *rp, const char *text);
3351 3351
3352void _edje_internal_proxy_shutdown(void); 3352void _edje_internal_proxy_shutdown(void);
3353#ifdef BUILD_VG_LOADER_JSON
3353void _edje_part_vector_anim_stop(Edje *ed, Edje_Real_Part *rp); 3354void _edje_part_vector_anim_stop(Edje *ed, Edje_Real_Part *rp);
3354void _edje_part_vector_anim_pause(Edje *ed, Edje_Real_Part *rp); 3355void _edje_part_vector_anim_pause(Edje *ed, Edje_Real_Part *rp);
3355void _edje_part_vector_anim_resume(Edje *ed, Edje_Real_Part *rp); 3356void _edje_part_vector_anim_resume(Edje *ed, Edje_Real_Part *rp);
3356void _edje_part_vector_anim_play(Edje *ed, Edje_Real_Part *rp, Eina_Bool backward, Eina_Bool loop); 3357void _edje_part_vector_anim_play(Edje *ed, Edje_Real_Part *rp, Eina_Bool backward, Eina_Bool loop);
3358#endif
3357 3359
3358#ifdef HAVE_EPHYSICS 3360#ifdef HAVE_EPHYSICS
3359Eina_Bool _edje_ephysics_load(void); 3361Eina_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:
1222 1222
1223#endif 1223#endif
1224 1224
1225#ifdef BUILD_VG_LOADER_JSON
1225 case EDJE_ACTION_TYPE_VG_ANIM_STOP: 1226 case EDJE_ACTION_TYPE_VG_ANIM_STOP:
1226 if (_edje_block_break(ed)) 1227 if (_edje_block_break(ed))
1227 goto break_prog; 1228 goto break_prog;
@@ -1292,6 +1293,16 @@ low_mem_current:
1292 } 1293 }
1293 } 1294 }
1294 break; 1295 break;
1296#else
1297 case EDJE_ACTION_TYPE_VG_ANIM_STOP:
1298 case EDJE_ACTION_TYPE_VG_ANIM_PAUSE:
1299 case EDJE_ACTION_TYPE_VG_ANIM_RESUME:
1300 case EDJE_ACTION_TYPE_VG_ANIM_LOOP:
1301 case EDJE_ACTION_TYPE_VG_ANIM_REWIND:
1302 case EDJE_ACTION_TYPE_VG_ANIM_PLAY:
1303 ERR("Evas Vg Json (Lottie) Loader is not supported, Only Static Vector Image(SVG) is available!");
1304 break;
1305#endif
1295 1306
1296 default: 1307 default:
1297 // _edje_emit(ed, "program,start", pr->name); 1308 // _edje_emit(ed, "program,start", pr->name);