mirror of
https://github.com/goatcorp/Dalamud.git
synced 2025-12-14 12:44:16 +01:00
Revert "Keep glyph range handles alive until font is built"
This reverts commit 5baccced15.
This commit is contained in:
parent
804f5b767b
commit
0d5da42407
1 changed files with 144 additions and 159 deletions
|
|
@ -611,12 +611,7 @@ namespace Dalamud.Interface.Internal
|
||||||
ioFonts.Clear();
|
ioFonts.Clear();
|
||||||
ioFonts.TexDesiredWidth = 4096;
|
ioFonts.TexDesiredWidth = 4096;
|
||||||
|
|
||||||
ImFontConfigPtr fontConfig = null;
|
ImFontConfigPtr fontConfig = ImGuiNative.ImFontConfig_ImFontConfig();
|
||||||
List<GCHandle> garbageList = new();
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
fontConfig = ImGuiNative.ImFontConfig_ImFontConfig();
|
|
||||||
fontConfig.OversampleH = 1;
|
fontConfig.OversampleH = 1;
|
||||||
fontConfig.OversampleV = 1;
|
fontConfig.OversampleV = 1;
|
||||||
fontConfig.PixelSnapH = true;
|
fontConfig.PixelSnapH = true;
|
||||||
|
|
@ -628,9 +623,8 @@ namespace Dalamud.Interface.Internal
|
||||||
// Default font
|
// Default font
|
||||||
{
|
{
|
||||||
var japaneseRangeHandle = GCHandle.Alloc(GlyphRangesJapanese.GlyphRanges, GCHandleType.Pinned);
|
var japaneseRangeHandle = GCHandle.Alloc(GlyphRangesJapanese.GlyphRanges, GCHandleType.Pinned);
|
||||||
garbageList.Add(japaneseRangeHandle);
|
|
||||||
|
|
||||||
DefaultFont = ioFonts.AddFontFromFileTTF(fontPathJp, (DefaultFontSizePx + 1) * fontScale, fontConfig, japaneseRangeHandle.AddrOfPinnedObject());
|
DefaultFont = ioFonts.AddFontFromFileTTF(fontPathJp, (DefaultFontSizePx + 1) * fontScale, fontConfig, japaneseRangeHandle.AddrOfPinnedObject());
|
||||||
|
japaneseRangeHandle.Free();
|
||||||
fontsToUnscale.Add(DefaultFont);
|
fontsToUnscale.Add(DefaultFont);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -641,9 +635,8 @@ namespace Dalamud.Interface.Internal
|
||||||
ShowFontError(fontPathIcon);
|
ShowFontError(fontPathIcon);
|
||||||
|
|
||||||
var iconRangeHandle = GCHandle.Alloc(new ushort[] { 0xE000, 0xF8FF, 0, }, GCHandleType.Pinned);
|
var iconRangeHandle = GCHandle.Alloc(new ushort[] { 0xE000, 0xF8FF, 0, }, GCHandleType.Pinned);
|
||||||
garbageList.Add(iconRangeHandle);
|
|
||||||
|
|
||||||
IconFont = ioFonts.AddFontFromFileTTF(fontPathIcon, DefaultFontSizePx * fontScale, fontConfig, iconRangeHandle.AddrOfPinnedObject());
|
IconFont = ioFonts.AddFontFromFileTTF(fontPathIcon, DefaultFontSizePx * fontScale, fontConfig, iconRangeHandle.AddrOfPinnedObject());
|
||||||
|
iconRangeHandle.Free();
|
||||||
fontsToUnscale.Add(IconFont);
|
fontsToUnscale.Add(IconFont);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -701,9 +694,9 @@ namespace Dalamud.Interface.Internal
|
||||||
flattenedRanges.Add(0);
|
flattenedRanges.Add(0);
|
||||||
|
|
||||||
var rangeHandle = GCHandle.Alloc(flattenedRanges.ToArray(), GCHandleType.Pinned);
|
var rangeHandle = GCHandle.Alloc(flattenedRanges.ToArray(), GCHandleType.Pinned);
|
||||||
garbageList.Add(rangeHandle);
|
|
||||||
|
|
||||||
var sizedFont = ioFonts.AddFontFromFileTTF(fontPathJp, fontSize * fontScale, fontConfig, rangeHandle.AddrOfPinnedObject());
|
var sizedFont = ioFonts.AddFontFromFileTTF(fontPathJp, fontSize * fontScale, fontConfig, rangeHandle.AddrOfPinnedObject());
|
||||||
|
rangeHandle.Free();
|
||||||
|
|
||||||
fontsToUnscale.Add(sizedFont);
|
fontsToUnscale.Add(sizedFont);
|
||||||
|
|
||||||
foreach (var request in requests)
|
foreach (var request in requests)
|
||||||
|
|
@ -782,19 +775,11 @@ namespace Dalamud.Interface.Internal
|
||||||
|
|
||||||
Log.Verbose("[FONT] Fonts built!");
|
Log.Verbose("[FONT] Fonts built!");
|
||||||
|
|
||||||
|
fontConfig.Destroy();
|
||||||
this.fontBuildSignal.Set();
|
this.fontBuildSignal.Set();
|
||||||
|
|
||||||
this.FontsReady = true;
|
this.FontsReady = true;
|
||||||
}
|
}
|
||||||
finally
|
|
||||||
{
|
|
||||||
if (fontConfig.NativePtr != null)
|
|
||||||
fontConfig.Destroy();
|
|
||||||
|
|
||||||
foreach (var garbage in garbageList)
|
|
||||||
garbage.Free();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void Disable()
|
private void Disable()
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue