Update to FontAtlasFactory for more eficent loading
This commit is contained in:
@@ -36,13 +36,19 @@ namespace OpenVulkano::Scene
|
||||
}
|
||||
|
||||
template<int Channels>
|
||||
void SdfFontAtlasGeneratorGeneric<Channels>::GenerateAtlas(const Array<char>& fontData, const std::set<uint32_t>& charset,
|
||||
void SdfFontAtlasGeneratorGeneric<Channels>::GenerateAtlas(const Array<char>& fontData, const std::set<uint32_t>& inCs,
|
||||
const std::optional<std::string>& pngOutput)
|
||||
{
|
||||
msdfgen::FreetypeHandle* ft;
|
||||
msdfgen::FontHandle* font;
|
||||
InitFreetypeFromBuffer(ft, font, (const msdfgen::byte*)(fontData.Data()), fontData.Size());
|
||||
msdf_atlas::Charset s;
|
||||
std::set<uint32_t> fallback;
|
||||
if (inCs.empty())
|
||||
{
|
||||
FontAtlasGeneratorBase::LoadAllGlyphs(fallback, fontData.AsBytes());
|
||||
}
|
||||
const auto& charset = inCs.empty() ? fallback : inCs;
|
||||
std::for_each(charset.begin(), charset.end(), [&](uint32_t unicode) { s.add(unicode); });
|
||||
Generate(ft, font, s, pngOutput);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user