void animator_setup(animator_callback_gui_shared_info_s* common_data) { debug_only("%s","animator_setup"); ecore_animator_frametime_set(REFRESH_SPEED); common_data->dash_animator = ecore_animator_add(animator_rotate_dashes, common_data); common_data->balls_animator = ecore_animator_add(animator_spawns_balls, common_data); ecore_animator_freeze(common_data->dash_animator); ecore_animator_freeze(common_data->balls_animator); }
Eina_Bool animator_rotate_dashes(animator_callback_gui_shared_info_s *common_data) { int i; static int curr_step = 1; if (common_data->rotation.direction == LEFT){ curr_step--; } else { curr_step++; } double angle = curr_step * common_data->game.rotation_degree * common_data->game.turning_speed * REFRESH_SPEED; Evas_Coord x,y,w,h; Evas_Object **dashes = common_data->gui.dashes; /* array! */ Evas_Map *dashes_maps[DASHES_COUNT]; for (i=0;i<DASHES_COUNT;i++) { dashes_maps[i] = evas_map_new(4); evas_object_geometry_get(dashes[i], &x, &y, &w, &h); evas_map_util_points_populate_from_object(dashes_maps[i], dashes[i]); evas_map_util_rotate(dashes_maps[i], DASHES_INIT[i].rotation, x + DASH_LEN/2, y + DASH_LEN/2); evas_map_util_rotate(dashes_maps[i], angle, CENTER_X, CENTER_Y); evas_object_map_set(dashes[i], dashes_maps[i]); evas_object_map_enable_set(dashes[i], EINA_TRUE); evas_map_free(dashes_maps[i]); } #ifdef does_not_want_inertion if (--common_data->steps == 0) #endif ecore_animator_freeze(common_data->dash_animator); return ECORE_CALLBACK_RENEW; }
static void app_pause(void *data) { /* Take necessary actions when application becomes invisible. */ if(!data) { return; } pauseAccelerometerSensor(); Application* app = ((Application *)data); app->applicationDidEnterBackground(); ecore_animator_freeze(app->_ani); app->setPauseFlag(true); }
static void compiz_damage(void) { CompDisplay *d; CompScreen *s; CompWindow *w; Eina_Bool thaw = EINA_FALSE; for (d = core.displays; d; d = d->next) for (s = d->screens; s; s = s->next) { if (!s->damageMask) for (w = s->windows; w; w = w->next) { E_Client *ec; ec = compiz_win_to_client(w); if (w->grabbed && ((!ec->moving) && (!e_client_util_resizing_get(ec)))) w->screen->windowUngrabNotify(w); if ((w->attrib.x == ec->client.x) && (w->attrib.y == ec->client.y)) continue; moveWindow(w, ec->client.x - w->attrib.x, ec->client.y - w->attrib.y, TRUE, TRUE); syncWindowPosition(w); compiz_texture_clear(w->texture); } if (s->damageMask) { evas_damage_rectangle_add(e_comp->evas, 0, 0, 1, 1); thaw = EINA_TRUE; } } if (eina_array_count(events) || thaw) ecore_animator_thaw(compiz_anim); else ecore_animator_freeze(compiz_anim); }
static void app_pause(void *data) { appdata_s *ad = data; ecore_animator_freeze(ad->ani); }
void Animator::stop() { ecore_animator_freeze( m_Animator ); }
void Animator::init() { m_Animator = ecore_animator_add( timer_func, this ); ecore_animator_freeze( m_Animator ); }
Eina_Bool animator_spawns_balls(animator_callback_gui_shared_info_s *common_data){ create_ball(common_data); ecore_animator_freeze(common_data->balls_animator); //spawn single ball and stop return ECORE_CALLBACK_RENEW; }