diff --git a/Dalamud/Interface/UiBuilder.cs b/Dalamud/Interface/UiBuilder.cs
index 43912f224..02decf103 100644
--- a/Dalamud/Interface/UiBuilder.cs
+++ b/Dalamud/Interface/UiBuilder.cs
@@ -13,6 +13,7 @@ using Dalamud.Interface.Internal.ManagedAsserts;
using Dalamud.Interface.Internal.Notifications;
using Dalamud.Interface.ManagedFontAtlas;
using Dalamud.Interface.ManagedFontAtlas.Internals;
+using Dalamud.Plugin.Internal.Types;
using Dalamud.Utility;
using ImGuiNET;
using ImGuiScene;
@@ -103,7 +104,7 @@ public sealed class UiBuilder : IDisposable
///
/// Gets or sets an action that is called any time ImGui fonts need to be rebuilt.
- /// Any ImFontPtr objects that you store can be invalidated when fonts are rebuilt
+ /// Any ImFontPtr objects that you store can be invalidated when fonts are rebuilt
/// (at any time), so you should both reload your custom fonts and restore those
/// pointers inside this handler.
///
@@ -112,7 +113,36 @@ public sealed class UiBuilder : IDisposable
/// .
/// To be notified on font changes after fonts are built, use
/// ..
- /// For all other purposes, use ..
+ /// For all other purposes, use ..
+ ///
+ /// Note that you will be calling above functions once, instead of every time inside a build step change callback.
+ /// For example, you can make all font handles from your plugin constructor, and then use the created handles during
+ /// event, by using in a scope.
+ /// You may dispose your font handle anytime, as long as it's not in use in .
+ /// Font handles may be constructed anytime, as long as the owner or
+ /// is not disposed.
+ ///
+ /// If you were storing , consider if the job can be achieved solely by using
+ /// without directly using an instance of .
+ /// If you do need it, evaluate if you need to access fonts outside the main thread.
+ /// If it is the case, use to obtain a safe-to-access instance of
+ /// , once resolves.
+ /// Otherwise, use , and obtain the instance of via
+ /// . Do not let the escape the using scope.
+ ///
+ /// If your plugin sets to a non-default value, then
+ /// should be accessed using
+ /// , as the font handle member variables are only available
+ /// once drawing facilities are available.
+ ///
+ /// Examples:
+ /// * .
+ /// * .
+ /// * ctor.
+ /// * :
+ /// note how a new instance of is constructed, and
+ /// is called from another function, without having to manually
+ /// initialize font rebuild process.
///
[Obsolete("See remarks.", false)]
[Api10ToDo(Api10ToDoAttribute.DeleteCompatBehavior)]
@@ -120,18 +150,11 @@ public sealed class UiBuilder : IDisposable
///
/// Gets or sets an action that is called any time right after ImGui fonts are rebuilt.
- /// Any ImFontPtr objects that you store can be invalidated when fonts are rebuilt
+ /// Any ImFontPtr objects that you store can be invalidated when fonts are rebuilt
/// (at any time), so you should both reload your custom fonts and restore those
/// pointers inside this handler.
///
- ///
- /// To add your custom font, use . or
- /// .
- /// To be notified on font changes after fonts are built, use
- /// ..
- /// For all other purposes, use ..
- ///
- [Obsolete($"Use {nameof(this.FontAtlas)} instead.", false)]
+ [Obsolete($"See remarks for {nameof(BuildFonts)}.", false)]
[Api10ToDo(Api10ToDoAttribute.DeleteCompatBehavior)]
public event Action? AfterBuildFonts;