using System.Runtime.InteropServices; using Dalamud.Interface.Utility; using ImGuiNET; namespace Dalamud.Interface.ManagedFontAtlas; /// /// Common stuff for and . /// public interface IFontAtlasBuildToolkit { /// /// Gets or sets the font relevant to the call. /// ImFontPtr Font { get; set; } /// /// Gets the current scale this font atlas is being built with. /// float Scale { get; } /// /// Gets a value indicating whether the current build operation is asynchronous. /// bool IsAsyncBuildOperation { get; } /// /// Gets the current build step. /// FontAtlasBuildStep BuildStep { get; } /// /// Gets the font atlas being built. /// ImFontAtlasPtr NewImAtlas { get; } /// /// Gets the wrapper for of .
/// This does not need to be disposed. Calling does nothing.- ///
/// Modification of this vector may result in undefined behaviors. ///
ImVectorWrapper Fonts { get; } /// /// Queues an item to be disposed after the native atlas gets disposed, successful or not. /// /// Disposable type. /// The disposable. /// The same . T DisposeWithAtlas(T disposable) where T : IDisposable; /// /// Queues an item to be disposed after the native atlas gets disposed, successful or not. /// /// The gc handle. /// The same . GCHandle DisposeWithAtlas(GCHandle gcHandle); /// /// Queues an item to be disposed after the native atlas gets disposed, successful or not. /// /// The action to run on dispose. void DisposeWithAtlas(Action action); }