Fonts: move ClearFonts(), ClearInputData(), ClearTexData() implementation (no other changes)

This commit is contained in:
ocornut
2026-05-11 17:42:08 +02:00
parent 4ac473b2c7
commit b8f6c51af7
+25 -24
View File
@@ -2519,10 +2519,11 @@ void ImTextureData::DestroyPixels()
// - Default texture data encoded in ASCII // - Default texture data encoded in ASCII
// - ImFontAtlas() // - ImFontAtlas()
// - ImFontAtlas::Clear() // - ImFontAtlas::Clear()
// - ImFontAtlas::CompactCache() // - ImFontAtlas::ClearFonts()
// - ImFontAtlas::ClearInputData() // - ImFontAtlas::ClearInputData()
// - ImFontAtlas::ClearTexData() // - ImFontAtlas::ClearTexData()
// - ImFontAtlas::ClearFonts() // - ImFontAtlas::CompactCache()
// - ImFontAtlas::SetFontLoader()
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// - ImFontAtlasUpdateNewFrame() // - ImFontAtlasUpdateNewFrame()
// - ImFontAtlasTextureBlockConvert() // - ImFontAtlasTextureBlockConvert()
@@ -2693,14 +2694,22 @@ void ImFontAtlas::Clear()
RendererHasTextures = backup_renderer_has_textures; RendererHasTextures = backup_renderer_has_textures;
} }
void ImFontAtlas::CompactCache() void ImFontAtlas::ClearFonts()
{ {
ImFontAtlasTextureCompact(this); // FIXME-NEWATLAS: Illegal to remove currently bound font.
} IM_ASSERT(!Locked && "Cannot modify a locked ImFontAtlas!");
for (ImFont* font : Fonts)
void ImFontAtlas::SetFontLoader(const ImFontLoader* font_loader) ImFontAtlasBuildNotifySetFont(this, font, NULL);
{ ImFontAtlasBuildDestroy(this);
ImFontAtlasBuildSetupFontLoader(this, font_loader); ClearInputData();
Fonts.clear_delete();
TexIsBuilt = false;
for (ImDrawListSharedData* shared_data : DrawListSharedDatas)
if (shared_data->FontAtlas == this)
{
shared_data->Font = NULL;
shared_data->FontScale = shared_data->FontSize = 0.0f;
}
} }
void ImFontAtlas::ClearInputData() void ImFontAtlas::ClearInputData()
@@ -2730,22 +2739,14 @@ void ImFontAtlas::ClearTexData()
//Locked = true; // Hoped to be able to lock this down but some reload patterns may not be happy with it. //Locked = true; // Hoped to be able to lock this down but some reload patterns may not be happy with it.
} }
void ImFontAtlas::ClearFonts() void ImFontAtlas::CompactCache()
{ {
// FIXME-NEWATLAS: Illegal to remove currently bound font. ImFontAtlasTextureCompact(this);
IM_ASSERT(!Locked && "Cannot modify a locked ImFontAtlas!"); }
for (ImFont* font : Fonts)
ImFontAtlasBuildNotifySetFont(this, font, NULL); void ImFontAtlas::SetFontLoader(const ImFontLoader* font_loader)
ImFontAtlasBuildDestroy(this); {
ClearInputData(); ImFontAtlasBuildSetupFontLoader(this, font_loader);
Fonts.clear_delete();
TexIsBuilt = false;
for (ImDrawListSharedData* shared_data : DrawListSharedDatas)
if (shared_data->FontAtlas == this)
{
shared_data->Font = NULL;
shared_data->FontScale = shared_data->FontSize = 0.0f;
}
} }
static void ImFontAtlasBuildUpdateRendererHasTexturesFromContext(ImFontAtlas* atlas) static void ImFontAtlasBuildUpdateRendererHasTexturesFromContext(ImFontAtlas* atlas)