ImFontAtlas: moved common TexData calls into a same helper functions, so adding new ones is easier.

This commit is contained in:
ocornut
2026-05-22 20:03:30 +02:00
parent 24a80f74a4
commit fbcf95193f
+20 -15
View File
@@ -2560,8 +2560,6 @@ void ImTextureData::DestroyPixels()
// - ImFontAtlasBuildPreloadAllGlyphRanges() // - ImFontAtlasBuildPreloadAllGlyphRanges()
// - ImFontAtlasBuildUpdatePointers() // - ImFontAtlasBuildUpdatePointers()
// - ImFontAtlasBuildRenderBitmapFromString() // - ImFontAtlasBuildRenderBitmapFromString()
// - ImFontAtlasBuildUpdateBasicTexData()
// - ImFontAtlasBuildUpdateLinesTexData()
// - ImFontAtlasBuildAddFont() // - ImFontAtlasBuildAddFont()
// - ImFontAtlasBuildSetupFontBakedEllipsis() // - ImFontAtlasBuildSetupFontBakedEllipsis()
// - ImFontAtlasBuildSetupFontBakedBlanks() // - ImFontAtlasBuildSetupFontBakedBlanks()
@@ -2578,13 +2576,14 @@ void ImTextureData::DestroyPixels()
// - ImFontAtlasUpdateDrawListsSharedData() // - ImFontAtlasUpdateDrawListsSharedData()
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// - ImFontAtlasBuildSetTexture() // - ImFontAtlasBuildSetTexture()
// - ImFontAtlasBuildAddTexture() // - ImFontAtlasBuildUpdateTexData()
// - ImFontAtlasBuildMakeSpace() // - ImFontAtlasTextureAdd()
// - ImFontAtlasBuildRepackTexture() // - ImFontAtlasTextureRepack()
// - ImFontAtlasBuildGrowTexture() // - ImFontAtlasTextureGrow()
// - ImFontAtlasBuildRepackOrGrowTexture() // - ImFontAtlasTextureMakeSpace()
// - ImFontAtlasBuildGetTextureSizeEstimate() // - ImFontAtlasTextureGetSizeEstimate()
// - ImFontAtlasBuildCompactTexture() // - ImFontAtlasBuildClear()
// - ImFontAtlasTextureCompact()
// - ImFontAtlasBuildInit() // - ImFontAtlasBuildInit()
// - ImFontAtlasBuildDestroy() // - ImFontAtlasBuildDestroy()
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
@@ -3581,7 +3580,7 @@ void ImFontAtlasBuildRenderBitmapFromString(ImFontAtlas* atlas, int x, int y, in
} }
} }
static void ImFontAtlasBuildUpdateBasicTexData(ImFontAtlas* atlas) static void ImFontAtlasBuildUpdateTexDataBasic(ImFontAtlas* atlas)
{ {
// Pack and store identifier so we can refresh UV coordinates on texture resize. // Pack and store identifier so we can refresh UV coordinates on texture resize.
// FIXME-NEWATLAS: User/custom rects where user code wants to store UV coordinates will need to do the same thing. // FIXME-NEWATLAS: User/custom rects where user code wants to store UV coordinates will need to do the same thing.
@@ -3615,7 +3614,7 @@ static void ImFontAtlasBuildUpdateBasicTexData(ImFontAtlas* atlas)
atlas->TexUvWhitePixel = ImVec2((r.x + 0.5f) * atlas->TexUvScale.x, (r.y + 0.5f) * atlas->TexUvScale.y); atlas->TexUvWhitePixel = ImVec2((r.x + 0.5f) * atlas->TexUvScale.x, (r.y + 0.5f) * atlas->TexUvScale.y);
} }
static void ImFontAtlasBuildUpdateLinesTexData(ImFontAtlas* atlas) static void ImFontAtlasBuildUpdateTexDataLines(ImFontAtlas* atlas)
{ {
if (atlas->Flags & ImFontAtlasFlags_NoBakedLines) if (atlas->Flags & ImFontAtlasFlags_NoBakedLines)
return; return;
@@ -4064,6 +4063,12 @@ static void ImFontAtlasBuildSetTexture(ImFontAtlas* atlas, ImTextureData* tex)
ImFontAtlasUpdateDrawListsTextures(atlas, old_tex_ref, atlas->TexRef); ImFontAtlasUpdateDrawListsTextures(atlas, old_tex_ref, atlas->TexRef);
} }
static void ImFontAtlasBuildUpdateTexData(ImFontAtlas* atlas)
{
ImFontAtlasBuildUpdateTexDataBasic(atlas);
ImFontAtlasBuildUpdateTexDataLines(atlas);
}
// Create a new texture, discard previous one // Create a new texture, discard previous one
ImTextureData* ImFontAtlasTextureAdd(ImFontAtlas* atlas, int w, int h) ImTextureData* ImFontAtlasTextureAdd(ImFontAtlas* atlas, int w, int h)
{ {
@@ -4178,8 +4183,7 @@ void ImFontAtlasTextureRepack(ImFontAtlas* atlas, int w, int h)
} }
// Update other cached UV // Update other cached UV
ImFontAtlasBuildUpdateLinesTexData(atlas); ImFontAtlasBuildUpdateTexData(atlas);
ImFontAtlasBuildUpdateBasicTexData(atlas);
builder->LockDisableResize = false; builder->LockDisableResize = false;
ImFontAtlasUpdateDrawListsSharedData(atlas); ImFontAtlasUpdateDrawListsSharedData(atlas);
@@ -4328,8 +4332,7 @@ void ImFontAtlasBuildInit(ImFontAtlas* atlas)
ImFontAtlasPackInit(atlas); ImFontAtlasPackInit(atlas);
// Add required texture data // Add required texture data
ImFontAtlasBuildUpdateLinesTexData(atlas); ImFontAtlasBuildUpdateTexData(atlas);
ImFontAtlasBuildUpdateBasicTexData(atlas);
// Register fonts // Register fonts
ImFontAtlasBuildUpdatePointers(atlas); ImFontAtlasBuildUpdatePointers(atlas);
@@ -4358,6 +4361,8 @@ void ImFontAtlasBuildDestroy(ImFontAtlas* atlas)
atlas->Builder = NULL; atlas->Builder = NULL;
} }
//-----------------------------------------------------------------------------
void ImFontAtlasPackInit(ImFontAtlas * atlas) void ImFontAtlasPackInit(ImFontAtlas * atlas)
{ {
ImTextureData* tex = atlas->TexData; ImTextureData* tex = atlas->TexData;