#include "rive/text/text_style.hpp"
#include "rive/assets/file_asset_referencer.hpp"
#include "rive/assets/font_asset.hpp"
#include "rive/artboard.hpp"
#include "rive/factory.hpp"

using namespace rive;

bool FontAsset::decode(Span<const uint8_t> data, Factory* factory)
{
    m_font = factory->decodeFont(data);
    return m_font != nullptr;
}
std::string FontAsset::fileExtension() const { return "ttf"; }

void FontAsset::font(rcp<Font> font)
{
    m_font = std::move(font);

    // We could try to tie this to some generic FileAssetReferencer callback
    // but for that we'd need this to be behind a more generic setter like
    // ::asset(rcp<Asset> asset)
    for (FileAssetReferencer* fileAssetReferencer : fileAssetReferencers())
    {
        static_cast<TextStyle*>(fileAssetReferencer)->addDirt(ComponentDirt::TextShape);
    }
}