blob: e499b28156525da68ae4f773ad2cc24278c67f14 [file] [log] [blame]
#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(SimpleArray<uint8_t>& data, Factory* factory)
{
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);
}
}