diff --git a/Vocaluxe/Base/CDraw.cs b/Vocaluxe/Base/CDraw.cs index 0be03c05..782c3a86 100644 --- a/Vocaluxe/Base/CDraw.cs +++ b/Vocaluxe/Base/CDraw.cs @@ -91,11 +91,11 @@ namespace Vocaluxe.Base /// /// Unloads the current driver, e.g. to switch to another one /// - public static void Unload() + public static void Close() { if (_Draw != null) { - _Draw.Unload(); + _Draw.Close(); _Draw = null; } } diff --git a/Vocaluxe/Lib/Draw/CDirect3D.cs b/Vocaluxe/Lib/Draw/CDirect3D.cs index 919fdef7..8970edcb 100644 --- a/Vocaluxe/Lib/Draw/CDirect3D.cs +++ b/Vocaluxe/Lib/Draw/CDirect3D.cs @@ -390,9 +390,9 @@ namespace Vocaluxe.Lib.Draw /// Unloads all Textures and other objects used by Direct3D for rendering /// /// - public override void Unload() + public override void Close() { - base.Unload(); + base.Close(); STexturedColoredVertex.DisposeDeclaration(); _VertexBuffer.Dispose(); _IndexBuffer.Dispose(); diff --git a/Vocaluxe/Lib/Draw/CDrawBaseWindows.cs b/Vocaluxe/Lib/Draw/CDrawBaseWindows.cs index 8ac494e8..894106bc 100644 --- a/Vocaluxe/Lib/Draw/CDrawBaseWindows.cs +++ b/Vocaluxe/Lib/Draw/CDrawBaseWindows.cs @@ -28,9 +28,9 @@ namespace Vocaluxe.Lib.Draw private SClientRect _Restore; protected Size _SizeBeforeMinimize; - public override void Unload() + public override void Close() { - base.Unload(); + base.Close(); try { _Form.Close(); diff --git a/Vocaluxe/Lib/Draw/CDrawWinForm.cs b/Vocaluxe/Lib/Draw/CDrawWinForm.cs index 5fff48f2..7410bbf1 100644 --- a/Vocaluxe/Lib/Draw/CDrawWinForm.cs +++ b/Vocaluxe/Lib/Draw/CDrawWinForm.cs @@ -253,11 +253,11 @@ namespace Vocaluxe.Lib.Draw Close(); } - public void Unload() + public new void Close() { try { - Close(); + base.Close(); } catch {} Dispose(); diff --git a/Vocaluxe/Lib/Draw/COpenGL.cs b/Vocaluxe/Lib/Draw/COpenGL.cs index c00535d7..15a2581b 100644 --- a/Vocaluxe/Lib/Draw/COpenGL.cs +++ b/Vocaluxe/Lib/Draw/COpenGL.cs @@ -240,9 +240,9 @@ namespace Vocaluxe.Lib.Draw return true; } - public override void Unload() + public override void Close() { - base.Unload(); + base.Close(); GL.DeleteFramebuffers(1, ref _FBO); } diff --git a/Vocaluxe/Lib/Draw/CTextureProvider.cs b/Vocaluxe/Lib/Draw/CTextureProvider.cs index 0c863979..0782f73b 100644 --- a/Vocaluxe/Lib/Draw/CTextureProvider.cs +++ b/Vocaluxe/Lib/Draw/CTextureProvider.cs @@ -20,6 +20,7 @@ using System.Collections.Generic; using System.Diagnostics; using System.Drawing; using System.Drawing.Imaging; +using System.IO; using System.Linq; using System.Runtime.InteropServices; using System.Threading; @@ -116,7 +117,7 @@ namespace Vocaluxe.Lib.Draw return true; } - public virtual void Unload() + public virtual void Close() { _EnsureMainThread(); lock (_Textures) @@ -731,6 +732,8 @@ namespace Vocaluxe.Lib.Draw // 3) a) AddTexture(fileA) || b) EnqueueTexture(fileA) with a)getFromCache + b)getFromCache + a)addToCache + b)addToCache --> Only keep one copy // All solved with atomic get/add cache and _WaitForTextureLoaded + if (!File.Exists(filePath)) + return null; CTextureRef textureRef; TTextureType texture = null; Task loader; diff --git a/Vocaluxe/Lib/Draw/IDraw.cs b/Vocaluxe/Lib/Draw/IDraw.cs index acea643f..5b362a49 100644 --- a/Vocaluxe/Lib/Draw/IDraw.cs +++ b/Vocaluxe/Lib/Draw/IDraw.cs @@ -25,7 +25,7 @@ namespace Vocaluxe.Lib.Draw { bool Init(); void MainLoop(); - void Unload(); + void Close(); int GetScreenWidth(); int GetScreenHeight(); diff --git a/Vocaluxe/Program.cs b/Vocaluxe/Program.cs index a21bac8d..9b1969f1 100644 --- a/Vocaluxe/Program.cs +++ b/Vocaluxe/Program.cs @@ -270,7 +270,7 @@ namespace Vocaluxe CVideo.Close(); CRecord.Close(); CSound.Close(); - CDraw.Unload(); + CDraw.Close(); GC.Collect(); // Do a GC run here before we close logs to have finalizers run CLog.CloseAll(); // Do this last, so we get all log entries! }