1
0
mirror of https://github.com/RPCS3/rpcs3.git synced 2024-11-22 18:53:28 +01:00

overlays: add fade to trophy notification pop-ups

This commit is contained in:
Megamouse 2021-10-29 21:17:22 +02:00
parent 244aa6879a
commit f262e77fbd
2 changed files with 36 additions and 1 deletions

View File

@ -53,6 +53,9 @@ namespace rsx
sliding_animation.duration = 1.5f;
sliding_animation.type = animation_type::ease_in_out_cubic;
// Make the fade animation a bit shorter to see the trophy better.
fade_animation.duration = 1.0f;
}
void trophy_notification::update()
@ -71,7 +74,10 @@ namespace rsx
return;
}
if (((t - creation_time) / 1000) > 5000)
const u64 time_since_creation = ((t - creation_time) / 1000);
u64 end_animation_begin = 5000;
if (time_since_creation > end_animation_begin)
{
if (!sliding_animation.active)
{
@ -86,10 +92,32 @@ namespace rsx
}
}
// Match both animation ends based on their durations
if (sliding_animation.duration > fade_animation.duration)
{
end_animation_begin += static_cast<u64>((sliding_animation.duration - fade_animation.duration) * 1000);
}
if (time_since_creation > end_animation_begin)
{
if (!fade_animation.active)
{
fade_animation.current = color4f(1.f);
fade_animation.end = color4f(0.f);
fade_animation.active = true;
}
}
if (sliding_animation.active)
{
sliding_animation.update(rsx::get_current_renderer()->vblank_count);
}
if (fade_animation.active)
{
fade_animation.update(rsx::get_current_renderer()->vblank_count);
}
}
compiled_resource trophy_notification::get_compiled()
@ -104,6 +132,8 @@ namespace rsx
result.add(text_view.get_compiled());
sliding_animation.apply(result);
fade_animation.apply(result);
return result;
}
@ -140,6 +170,10 @@ namespace rsx
sliding_animation.end = { 0, 0, 0 };
sliding_animation.active = true;
fade_animation.current = color4f(0.f);
fade_animation.end = color4f(1.f);
fade_animation.active = true;
visible = true;
return CELL_OK;
}

View File

@ -19,6 +19,7 @@ namespace rsx
std::unique_ptr<image_info> icon_info;
animation_translate sliding_animation;
animation_color_interpolate fade_animation;
public:
trophy_notification();