Skip to content

Commit

Permalink
HnBeginFrameTask: added LoadingAnimationTransitionDuration parameter
Browse files Browse the repository at this point in the history
  • Loading branch information
TheMostDiligent committed Jan 28, 2025
1 parent 4556a1d commit d4ac5a4
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 7 deletions.
9 changes: 5 additions & 4 deletions Hydrogent/interface/Tasks/HnBeginFrameTask.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -89,10 +89,11 @@ struct HnBeginFrameTaskParams
float4 UnshadedColor = {1, 1, 1, 1};
float PointSize = 1;

float4 LoadingAnimationColor0 = {0.1f, 0.100f, 0.10f, 1.0f};
float4 LoadingAnimationColor1 = {1.0f, 0.675f, 0.25f, 1.0f};
float LoadingAnimationWorldScale = 1.0f;
float LoadingAnimationSpeed = 0.25f;
float4 LoadingAnimationColor0 = {0.1f, 0.100f, 0.10f, 1.0f};
float4 LoadingAnimationColor1 = {1.0f, 0.675f, 0.25f, 1.0f};
float LoadingAnimationWorldScale = 1.0f;
float LoadingAnimationSpeed = 0.25f;
float LoadingAnimationTransitionDuration = 0.5f;

constexpr bool operator==(const RendererParams& rhs) const
{
Expand Down
8 changes: 5 additions & 3 deletions Hydrogent/src/Tasks/HnBeginFrameTask.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -681,9 +681,11 @@ void HnBeginFrameTask::UpdateFrameConstants(IDeviceContext* pCtx,
if (m_FallBackPsoUseStartTime > 0 && m_FallBackPsoUseEndTime > m_FallBackPsoUseStartTime)
{
float FallbackDuration = static_cast<float>(m_FallBackPsoUseEndTime - m_FallBackPsoUseStartTime);
float TransitionDuration = std::min(0.5f, FallbackDuration * 0.5f);
LoadingAnimationFactor = static_cast<float>(m_CurrFrameTime - m_FallBackPsoUseEndTime) / TransitionDuration;
LoadingAnimationFactor = std::max(1.f - LoadingAnimationFactor, 0.f);
float TransitionDuration = std::min(m_Params.Renderer.LoadingAnimationTransitionDuration, FallbackDuration * 0.5f);
LoadingAnimationFactor = TransitionDuration > 0.f ?
static_cast<float>(m_CurrFrameTime - m_FallBackPsoUseEndTime) / TransitionDuration :
1.f;
LoadingAnimationFactor = std::max(1.f - LoadingAnimationFactor, 0.f);
if (LoadingAnimationFactor == 0)
{
// Transition is over
Expand Down

0 comments on commit d4ac5a4

Please sign in to comment.