From 14459c4d745828e13779b116f6b53860eaa67e16 Mon Sep 17 00:00:00 2001 From: Bruno Dilly Date: Thu, 4 Oct 2012 22:40:46 +0000 Subject: [PATCH] ephysics: add heavy test to check threads work Simulate 600 small balls. Ok, it's not so huge, but I've tested to add a sleep on step simulation on bullet. Things looks to be working just fine. SVN revision: 77470 --- legacy/ephysics/data/themes/Makefile.am | 3 + legacy/ephysics/data/themes/ephysics_test.edc | 1 + legacy/ephysics/data/themes/frame.edc | 26 +++++++ .../data/themes/images/loading_bar.png | Bin 0 -> 1159 bytes .../data/themes/images/loading_knob.png | Bin 0 -> 1490 bytes legacy/ephysics/data/themes/loading_bar.edc | 69 +++++++++++++++++ legacy/ephysics/src/bin/Makefile.am | 1 + legacy/ephysics/src/bin/test.c | 2 + legacy/ephysics/src/bin/test_heavy.c | 73 ++++++++++++++++++ 9 files changed, 175 insertions(+) create mode 100644 legacy/ephysics/data/themes/images/loading_bar.png create mode 100644 legacy/ephysics/data/themes/images/loading_knob.png create mode 100644 legacy/ephysics/data/themes/loading_bar.edc create mode 100644 legacy/ephysics/src/bin/test_heavy.c diff --git a/legacy/ephysics/data/themes/Makefile.am b/legacy/ephysics/data/themes/Makefile.am index 0973a55d1f..87fd0499be 100644 --- a/legacy/ephysics/data/themes/Makefile.am +++ b/legacy/ephysics/data/themes/Makefile.am @@ -19,6 +19,7 @@ EXTRA_DIST = \ ephysics_test.edc \ frame.edc \ list.edc \ + loading_bar.edc \ shadows.edc \ shapes.edc \ spinner.edc \ @@ -47,6 +48,8 @@ EXTRA_DIST = \ images/list-item-corner.png \ images/list-item-corner-pressed.png \ images/list-item-pressed.png \ + images/loading_bar.png \ + images/loading_knob.png \ images/pentagon.png \ images/shadow-ball.png \ images/shadow-cube.png \ diff --git a/legacy/ephysics/data/themes/ephysics_test.edc b/legacy/ephysics/data/themes/ephysics_test.edc index 2e1f427604..f0bec3e4ac 100644 --- a/legacy/ephysics/data/themes/ephysics_test.edc +++ b/legacy/ephysics/data/themes/ephysics_test.edc @@ -9,6 +9,7 @@ collections { #include "effects.edc" #include "frame.edc" #include "list.edc" +#include "loading_bar.edc" #include "shadows.edc" #include "shapes.edc" #include "spinner.edc" diff --git a/legacy/ephysics/data/themes/frame.edc b/legacy/ephysics/data/themes/frame.edc index 67e647be1b..6bbd23cb6e 100644 --- a/legacy/ephysics/data/themes/frame.edc +++ b/legacy/ephysics/data/themes/frame.edc @@ -229,6 +229,24 @@ } } + part { + name: "loading_bar"; + type: GROUP; + source: "loading_bar"; + mouse_events: 0; + description { + state: "default" 0.0; + align: 0.5 1; + visible: 0; + rel2.offset: -1 -5; + } + description { + state: "visible" 0.0; + inherit: "default" 0.0; + visible: 1; + } + } + } programs { @@ -268,6 +286,14 @@ target: "angular_acc"; } + program { + name: "loading_bar,show"; + source: "ephysics_test"; + signal: "loading_bar,show"; + action: STATE_SET "visible" 0.0; + target: "loading_bar"; + } + } } diff --git a/legacy/ephysics/data/themes/images/loading_bar.png b/legacy/ephysics/data/themes/images/loading_bar.png new file mode 100644 index 0000000000000000000000000000000000000000..59d23ca3ff1d542470110c761192fcaf845fa8de GIT binary patch literal 1159 zcmeAS@N?(olHy`uVBq!ia0y~yVB7&@b8xT$$?o!3ML zw8T~k=u(Imatq+b<`qMO2^e7d6^RAQdGl)fawRsgeP1e2cGm(^ML8S2$-;CzPCmKGsRC&7srr_ zTW@aJ@-YTVv_3Rc^WxpT;PQ`5)nsm$LrNl2Q{5I`J#UiZpgeI!i%ZFyBoi%_BRdVB z-udTtPu)`Qr_tH#b7ENL@w{5v)i?7}7}u%DnMaP_KE}*&An?`tfa4)6HT6?h_gsy? zKBq0T_J;P+p7iRAijffcJ1C40+nSQfpOW(Qt zyH=Nz;lTcipKll#KJ+uCE^nFkQ{76X@)`?6!PyOgb+0$XUMWj6_*7?qBK75Fpn;2X zWK*qjpBz7a+ckgIsi?{s(X)$!tY&@W_hM+6e5vo%lDS_!t literal 0 HcmV?d00001 diff --git a/legacy/ephysics/data/themes/images/loading_knob.png b/legacy/ephysics/data/themes/images/loading_knob.png new file mode 100644 index 0000000000000000000000000000000000000000..a40872bf0ff7c526a5ce6093fc5de1fd07b4072d GIT binary patch literal 1490 zcmeAS@N?(olHy`uVBq!ia0vp^7CDSr z1<%~X^wgl##FWaylc_cg49qH-ArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8 zNvY|XdA3ULckfqH$V{%1*XSQL?vFu&J;D8jzb> zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XRMoSU}&gdW~OIo zVrph)sH0$HU}&Uo07PcGh9*{~W>!Y#3Q(W~w5=#5%__*n4QdyVXRDM^Qc_^0uU}qX zu2*iXmtT~wZ)j<02{OaTNEfI=x41H|B(Xv_uUHvof=g;~a#3bMNoIbY0?5R~r2Ntn zTP2`NAzsKWfE$}v3=Jk=fazBx7U&!58GyV5Q|Rl9UukYGTy=3tP%6T`SPd=?sVqp< z4@xc0FD*(2MqHXQ$f^P>=c3falKi5O{QMkPC z!8&|>tvvIJOA_;vQ$1a5m4IgGWoD*WS-2QmniyG_7?_#485+78Ia->yI+>fBxVoA< znpm0`!t}c2Czs}?=9R$orXcj1;?xUD47mkBn_W_iGRsm^+=}vZ6~Lah%EaOpH(-pL zn3}r*&2z=>7Kq*yEN+45wJ^Y`S0CsYeNfaQMKw$an0`P^c)|s8;7LC<518JIfC;-i z*mxEL1CxuVi(^Q|tvlhq*}{P$wx2WirA;bZmNaRR(5!1=0n>LCD((=7**Tf((INW_ z`xSQ-ymsRHDlZb_Wq!1Ec2rK_rKVXaS|+oWEWMoe>PYotpUTb|V&<1$HXg3dzxU+n zygTLgN{$B}&kk#BvwT#W)VV@Y?nB4yBd(7=|19sV+M&q#C@r(X(?{uEL8rgxlk7N+ zrX8&kl{pd-hnuAzuRP^-HFj!Kb|k0m^GvI(pGvpf`ksBfu)0$2%v`lDzusrE7bgp6 z2^70Ox~869wb)NT?%pr1!?&H?uRV}3yOs7Wgd^!TSMOT8+fs{@pG?tNX1~5wDf03h zr*$=s!n5bsNbm2s+tWE^cl&B-`9MAG9Yv=PRCYI&Ze`o~dhuK{Wl{4p+vXqR;0tBl z8D?B_H>f%1CUd;E+s&ItzQjrkm%mxu{Q0`?p4x4VxmHJfmnaEW%*kEY#-JMMqq9%P z+4{?Zx4Sg%Zu`aO7j4CL-6!St+80T0S+;Ft`>6csfnv~h?h`^PuD@P$i_D$(`|b&r zfBm^d0V@A>YUE|T4EC)%6#4S|l;}t<+jRSJeL4wu#sH4Nrz#S+IBJBhl-Eep`Kw+x@36 zE7%ay`Y&zw_tmxL#~+C3yTmEA-8}ZR(Uc=XCh7${)3+;4>!0rD+G}!Q)m&AZM|E4S zcNd*MwpZHs{oKa7DYoC2tiLJdvX9G}At~%m|H1pJWfyEdDt1Qmnb&a}Ft|s*rY RCm&SGdb;|#taD0e0sxK#Fwy`3 literal 0 HcmV?d00001 diff --git a/legacy/ephysics/data/themes/loading_bar.edc b/legacy/ephysics/data/themes/loading_bar.edc new file mode 100644 index 0000000000..0b962d9589 --- /dev/null +++ b/legacy/ephysics/data/themes/loading_bar.edc @@ -0,0 +1,69 @@ + group { + name: "loading_bar"; + min: 440 16; + max: 440 16; + + images { + image: "loading_bar.png" COMP; + image: "loading_knob.png" COMP; + } + + parts { + + part { + name: "bar"; + type: IMAGE; + mouse_events: 0; + description { + state: "default" 0.0; + min: 440 8; + max: 440 8; + image.normal: "loading_bar.png"; + } + } + + part { + name: "knob"; + type: IMAGE; + mouse_events: 0; + description { + state: "default" 0.0; + min: 56 16; + max: 56 16; + rel1.to: "bar"; + rel2.to: "bar"; + align: 0 0.5; + image.normal: "loading_knob.png"; + } + description { + state: "end" 0.0; + inherit: "default" 0.0; + align: 1 0.5; + } + } + + } + + programs { + + program { + name: "loading_bar,show"; + source: "ephysics_test"; + signal: "loading_bar,show"; + action: STATE_SET "end" 0.0; + transition: LINEAR 1.5; + target: "knob"; + after: "knob,restart"; + } + + program { + name: "knob,restart"; + action: STATE_SET "default" 0.0; + transition: LINEAR 1.5; + target: "knob"; + after: "loading_bar,show"; + } + + } + + } diff --git a/legacy/ephysics/src/bin/Makefile.am b/legacy/ephysics/src/bin/Makefile.am index 9bd4eb9876..8cb344701e 100644 --- a/legacy/ephysics/src/bin/Makefile.am +++ b/legacy/ephysics/src/bin/Makefile.am @@ -29,6 +29,7 @@ test_delete.c \ test_falling_letters.c \ test_forces.c \ test_growing_balls.c \ +test_heavy.c \ test_jumping_balls.c \ test_material.c \ test_no_gravity.c \ diff --git a/legacy/ephysics/src/bin/test.c b/legacy/ephysics/src/bin/test.c index f512356254..ce1f7f60b7 100644 --- a/legacy/ephysics/src/bin/test.c +++ b/legacy/ephysics/src/bin/test.c @@ -29,6 +29,7 @@ void test_falling_letters(void *data, Evas_Object *obj, void *event_info); void test_flag(void *data, Evas_Object *obj, void *event_info); void test_forces(void *data, Evas_Object *obj, void *event_info); void test_growing_balls(void *data, Evas_Object *obj, void *event_info); +void test_heavy(void *data, Evas_Object *obj, void *event_info); void test_jumping_balls(void *data, Evas_Object *obj, void *event_info); void test_material(void *data, Evas_Object *obj, void *event_info); void test_no_gravity(void *data, Evas_Object *obj, void *event_info); @@ -56,6 +57,7 @@ static const EPhysics_Test tests[] = { {"Flag - Cloth", test_flag}, {"Forces", test_forces}, {"Growing Balls", test_growing_balls}, + {"Heavy", test_heavy}, {"Jumping Balls", test_jumping_balls}, {"Material", test_material}, {"No Gravity", test_no_gravity}, diff --git a/legacy/ephysics/src/bin/test_heavy.c b/legacy/ephysics/src/bin/test_heavy.c new file mode 100644 index 0000000000..ad90b9fd1f --- /dev/null +++ b/legacy/ephysics/src/bin/test_heavy.c @@ -0,0 +1,73 @@ +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "ephysics_test.h" + +static void +_add_sphere(Test_Data *test_data, int i) +{ + EPhysics_Body *body; + Evas_Object *sphere; + static const char *colors[] = {"blue-ball", "red-ball", "green-ball"}; + + sphere = elm_image_add(test_data->win); + elm_image_file_set( + sphere, PACKAGE_DATA_DIR "/" EPHYSICS_TEST_THEME ".edj", colors[i % 3]); + evas_object_move(sphere, 50 + (i % 34) * 12, 40 + i / 34 * 12); + evas_object_resize(sphere, 10, 10); + evas_object_show(sphere); + test_data->evas_objs = eina_list_append(test_data->evas_objs, sphere); + + body = ephysics_body_circle_add(test_data->world); + ephysics_body_restitution_set(body, 0.85); + ephysics_body_evas_object_set(body, sphere, EINA_TRUE); + test_data->bodies = eina_list_append(test_data->bodies, body); +} + +static void +_world_populate(Test_Data *test_data) +{ + int i; + for (i = 0; i < 612; i++) + _add_sphere(test_data, i); +} + +static void +_restart(void *data, Evas_Object *obj __UNUSED__, const char *emission __UNUSED__, const char *source __UNUSED__) +{ + test_clean(data); + _world_populate(data); +} + +void +test_heavy(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) +{ + EPhysics_Body *boundary; + EPhysics_World *world; + Test_Data *test_data; + + if (!ephysics_init()) + return; + + test_data = test_data_new(); + test_win_add(test_data, "Heavy", EINA_TRUE); + elm_object_signal_emit(test_data->layout, "borders,show", "ephysics_test"); + elm_layout_signal_callback_add(test_data->layout, "restart", "test-theme", + _restart, test_data); + elm_layout_signal_emit(test_data->layout, "loading_bar,show", + "ephysics_test"); + + world = ephysics_world_new(); + ephysics_world_render_geometry_set(world, 50, 40, WIDTH - 100, FLOOR_Y - 40); + test_data->world = world; + + boundary = ephysics_body_bottom_boundary_add(test_data->world); + ephysics_body_restitution_set(boundary, 1); + + ephysics_body_top_boundary_add(test_data->world); + ephysics_body_left_boundary_add(test_data->world); + ephysics_body_right_boundary_add(test_data->world); + + _world_populate(test_data); +}