diff --git a/OpenMetaverse/Helpers.cs b/OpenMetaverse/Helpers.cs index 73660597..e8b49e81 100644 --- a/OpenMetaverse/Helpers.cs +++ b/OpenMetaverse/Helpers.cs @@ -471,7 +471,7 @@ namespace OpenMetaverse try { return new System.IO.FileStream( - System.IO.Path.Combine(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), searchPath), resourceName), + System.IO.Path.Combine(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(Assembly.GetEntryAssembly().Location), searchPath), resourceName), System.IO.FileMode.Open); } catch (Exception) diff --git a/OpenMetaverse/Imaging/BakeLayer.cs b/OpenMetaverse/Imaging/BakeLayer.cs index 6f7ee639..71b393b0 100644 --- a/OpenMetaverse/Imaging/BakeLayer.cs +++ b/OpenMetaverse/Imaging/BakeLayer.cs @@ -264,15 +264,29 @@ namespace OpenMetaverse.Imaging //File.WriteAllBytes(bakeType + ".tga", bakedTexture.Image.ExportTGA()); } + private static object ResourceSync = new object(); + public static ManagedImage LoadResourceLayer(string fileName) { try { - Stream stream = Helpers.GetResourceStream(fileName, Settings.RESOURCE_DIR); - Bitmap bitmap = LoadTGAClass.LoadTGA(stream); - stream.Close(); - stream.Dispose(); - return new ManagedImage(bitmap); + Bitmap bitmap = null; + lock (ResourceSync) + { + using (Stream stream = Helpers.GetResourceStream(fileName, Settings.RESOURCE_DIR)) + { + bitmap = LoadTGAClass.LoadTGA(stream); + } + } + if (bitmap == null) + { + Logger.Log(String.Format("Failed loading resource file: {0}", fileName), Helpers.LogLevel.Error); + return null; + } + else + { + return new ManagedImage(bitmap); + } } catch (Exception e) {