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!
}