mirror of
https://github.com/ocornut/imgui.git
synced 2026-01-02 19:42:35 +00:00
Fonts: ImFontAtlasBuildInit() is always called with atlas->Builder == NULL.
This commit is contained in:
@@ -3552,6 +3552,7 @@ static void ImFontAtlasBuildUpdateLinesTexData(ImFontAtlas* atlas)
|
||||
|
||||
//-----------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
// Was tempted to lazily init FontSrc but wouldn't save much + makes it more complicated to detect invalid data at AddFont()
|
||||
bool ImFontAtlasBuildInitFontOutput(ImFontAtlas* atlas, ImFont* font)
|
||||
{
|
||||
bool ret = true;
|
||||
@@ -4157,15 +4158,9 @@ void ImFontAtlasBuildInit(ImFontAtlas* atlas)
|
||||
if (atlas->TexData == NULL || atlas->TexData->Pixels == NULL)
|
||||
ImFontAtlasBuildAddTexture(atlas, ImUpperPowerOfTwo(atlas->TexMinWidth), ImUpperPowerOfTwo(atlas->TexMinHeight));
|
||||
|
||||
ImFontAtlasBuilder* builder = atlas->Builder; // Do not move above
|
||||
const bool builder_is_new = (builder == NULL);
|
||||
if (builder_is_new)
|
||||
{
|
||||
IM_ASSERT(atlas->Builder == NULL);
|
||||
builder = atlas->Builder = IM_NEW(ImFontAtlasBuilder)();
|
||||
if (atlas->FontLoader->LoaderInit)
|
||||
atlas->FontLoader->LoaderInit(atlas);
|
||||
}
|
||||
atlas->Builder = IM_NEW(ImFontAtlasBuilder)();
|
||||
if (atlas->FontLoader->LoaderInit)
|
||||
atlas->FontLoader->LoaderInit(atlas);
|
||||
|
||||
ImFontAtlasBuildUpdateRendererHasTexturesFromContext(atlas);
|
||||
|
||||
@@ -4176,12 +4171,9 @@ void ImFontAtlasBuildInit(ImFontAtlas* atlas)
|
||||
ImFontAtlasBuildUpdateBasicTexData(atlas);
|
||||
|
||||
// Register fonts
|
||||
if (builder_is_new)
|
||||
{
|
||||
ImFontAtlasBuildUpdatePointers(atlas);
|
||||
for (ImFontConfig& cfg : atlas->Sources)
|
||||
ImFontAtlasBuildAddFont(atlas, &cfg);
|
||||
}
|
||||
ImFontAtlasBuildUpdatePointers(atlas);
|
||||
for (ImFontConfig& cfg : atlas->Sources)
|
||||
ImFontAtlasBuildAddFont(atlas, &cfg);
|
||||
|
||||
// Update UV coordinates etc. stored in bound ImDrawListSharedData instance
|
||||
ImFontAtlasUpdateDrawListsSharedData(atlas);
|
||||
|
||||
@@ -3753,7 +3753,7 @@ struct ImFontAtlasBuilder
|
||||
|
||||
// Cache of all ImFontBaked
|
||||
ImStableVector<ImFontBaked,32> BakedPool;
|
||||
ImGuiStorage BakedMap;
|
||||
ImGuiStorage BakedMap; // BakedId --> ImFontBaked*
|
||||
int BakedDiscardedCount;
|
||||
|
||||
// Custom rectangle identifiers
|
||||
|
||||
Reference in New Issue
Block a user