#pragma once

#include "application/contracts/DisplayMetrics.h"
#include "foundation/concurrency/AtomicPort.h"

namespace ta::application::presentation_state
{
    struct ViewportState final
    {
        ta::application::DisplayMetrics metrics{};
        float scale_factor = 1.0f;
    };

    inline ta::foundation::AtomicPort<ViewportState> viewport{
        ViewportState{}};
    inline ta::foundation::AtomicPort<bool> menu_visible;
}
