mirror of
https://github.com/goatcorp/Dalamud.git
synced 2025-12-29 03:49:19 +01:00
Move PostPromotion modification functions to PostBuild
These changes are done to ensure that `IFontHandle.Lock` will be guaranteed to obtain a fully built font that will not be modified any further (unless `PostPromotion` is being used for modifying fonts, which should not be done by clients.)
* Moved `CopyGlyphsAcrossFonts` and `BuildLookupTable` from `PostPromotion` to `PostBuild` build toolkit.
* `IFontAtlasBuildToolkit`: Added `GetFont` to enable retrieving font corresponding to a handle being built.
* `InterfaceManager`: Use `OnPostBuild` for copying glyphs from Mono to Default.
* `FontAtlasBuildStep`:
* Removed `Invalid` to prevent an unnecessary switch-case warnings.
* Added contracts on when `IFontAtlas.BuildStepChanged` will be called.
This commit is contained in:
parent
5479149e79
commit
fb8beb9370
8 changed files with 180 additions and 136 deletions
|
|
@ -23,4 +23,28 @@ public interface IFontAtlasBuildToolkitPostBuild : IFontAtlasBuildToolkit
|
|||
/// <param name="disposeOnError">Dispose the wrap on error.</param>
|
||||
/// <returns>The texture index.</returns>
|
||||
int StoreTexture(IDalamudTextureWrap textureWrap, bool disposeOnError);
|
||||
|
||||
/// <summary>
|
||||
/// Copies glyphs across fonts, in a safer way.<br />
|
||||
/// If the font does not belong to the current atlas, this function is a no-op.
|
||||
/// </summary>
|
||||
/// <param name="source">Source font.</param>
|
||||
/// <param name="target">Target font.</param>
|
||||
/// <param name="missingOnly">Whether to copy missing glyphs only.</param>
|
||||
/// <param name="rebuildLookupTable">Whether to call target.BuildLookupTable().</param>
|
||||
/// <param name="rangeLow">Low codepoint range to copy.</param>
|
||||
/// <param name="rangeHigh">High codepoing range to copy.</param>
|
||||
void CopyGlyphsAcrossFonts(
|
||||
ImFontPtr source,
|
||||
ImFontPtr target,
|
||||
bool missingOnly,
|
||||
bool rebuildLookupTable = true,
|
||||
char rangeLow = ' ',
|
||||
char rangeHigh = '\uFFFE');
|
||||
|
||||
/// <summary>
|
||||
/// Calls <see cref="ImFontPtr.BuildLookupTable"/>, with some fixups.
|
||||
/// </summary>
|
||||
/// <param name="font">The font.</param>
|
||||
void BuildLookupTable(ImFontPtr font);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue