Make sure Fonts are disposed (need to free textures!)

This commit is contained in:
Flamefire committed 2013-05-02 00:11:54 +02:00
1 parent 9ca577e0da
commit 9aafd6f82c
2 files changed
+17 -7

No files matched your search

+6 -3
View File
@@ -34,6 +34,8 @@ namespace Vocaluxe.Base.Fonts
private readonly string _FilePath;
private bool _Disposed;
public CFont(string file)
{
_FilePath = file;
@@ -135,11 +137,12 @@ namespace Vocaluxe.Base.Fonts
public void Dispose()
{
if (_Fonts != null)
if (!_Disposed)
{
_Fonts.Dispose();
_Fonts = null;
if (_Fonts != null)
_Fonts.Dispose();
UnloadGlyphs();
_Disposed = true;
}
GC.SuppressFinalize(this);
}
+11 -4
View File
@@ -31,11 +31,13 @@ namespace Vocaluxe.Base.Fonts
{
private static readonly XmlWriterSettings _Settings = new XmlWriterSettings();
private static List<SFont> _Fonts;
private static readonly List<SFont> _Fonts = new List<SFont>();
private static int _CurrentFont;
private static float _Height = 1f;
// ReSharper disable MemberCanBePrivate.Global
public static int PartyModeID { get; set; }
// ReSharper restore MemberCanBePrivate.Global
public static EStyle Style = EStyle.Normal;
@@ -68,7 +70,14 @@ namespace Vocaluxe.Base.Fonts
private static void _BuildFonts()
{
_Fonts = new List<SFont>();
foreach (var font in _Fonts)
{
font.Normal.Dispose();
font.Bold.Dispose();
font.Italic.Dispose();
font.BoldItalic.Dispose();
}
_Fonts.Clear();
_CurrentFont = 0;
_LoadFontList();
@@ -344,8 +353,6 @@ namespace Vocaluxe.Base.Fonts
if (xmlReader == null)
return;
_Fonts.Clear();
_LoadFontFiles(xmlReader, Path.Combine(Directory.GetCurrentDirectory(), CSettings.FolderFonts));
}