void frame_builder::recalculate_duration() { halo_ = progressive_string(halo_.get_original(),duration_); halo_x_ = progressive_int(halo_x_.get_original(),duration_); halo_y_ = progressive_int(halo_y_.get_original(),duration_); blend_ratio_=progressive_double(blend_ratio_.get_original(),duration_); highlight_ratio_=progressive_double(highlight_ratio_.get_original(),duration_); offset_=progressive_double(offset_.get_original(),duration_); submerge_=progressive_double(submerge_.get_original(),duration_); x_=progressive_int(x_.get_original(),duration_); y_=progressive_int(y_.get_original(),duration_); drawing_layer_=progressive_int(drawing_layer_.get_original(),duration_); }
result.auto_hflip = auto_hflip_; result.primary_frame = primary_frame_; result.drawing_layer = drawing_layer_.get_current_element(current_time,display::LAYER_UNIT_DEFAULT-display::LAYER_UNIT_FIRST); return result; } void frame_parsed_parameters::override( int duration , const std::string& highlight , const std::string& blend_ratio , Uint32 blend_color , const std::string& offset , const std::string& layer , const std::string& modifiers) { if(!highlight.empty()) { highlight_ratio_ = progressive_double(highlight,duration); } else if(duration != duration_){ highlight_ratio_=progressive_double(highlight_ratio_.get_original(),duration); } if(!offset.empty()) { offset_= progressive_double(offset,duration); } else if(duration != duration_){ offset_=progressive_double(offset_.get_original(),duration); } if(!blend_ratio.empty()) { blend_ratio_ = progressive_double(blend_ratio,duration); blend_with_ = blend_color; } else if(duration != duration_){ blend_ratio_=progressive_double(blend_ratio_.get_original(),duration); } if(!layer.empty()) {
frame_builder & frame_builder::submerge(const shared_string& submerge) { submerge_=progressive_double(submerge,duration_); return *this; }
frame_builder & frame_builder::offset(const shared_string& offset) { offset_=progressive_double(offset,duration_); return *this; }
frame_builder & frame_builder::highlight(const shared_string& highlight) { highlight_ratio_=progressive_double(highlight,duration_); return *this; }
frame_builder & frame_builder::blend(const shared_string& blend_ratio,const Uint32 blend_color) { blend_with_=blend_color; blend_ratio_=progressive_double(blend_ratio,duration_); return *this; }