Files
@ 71732f305328
Branch filter:
Location: ATITD-Tools/Desert-Paint-Lab/FileUtils.cs - annotation
71732f305328
4.2 KiB
text/x-csharp
Pre-allocate a bunch of map entries, given that we know there are a fixed set of colors. Use fixed arrays in places where maps/sets were excessive. Switch away from using Gtk.Application.Invoke, which leaks a bunch of memory.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 | f28757bb21cb f28757bb21cb f28757bb21cb f28757bb21cb f28757bb21cb f28757bb21cb f28757bb21cb f28757bb21cb f28757bb21cb f28757bb21cb f28757bb21cb f28757bb21cb f28757bb21cb f28757bb21cb f28757bb21cb f28757bb21cb f28757bb21cb f28757bb21cb f28757bb21cb 501aa95c46d7 501aa95c46d7 501aa95c46d7 501aa95c46d7 501aa95c46d7 501aa95c46d7 501aa95c46d7 501aa95c46d7 501aa95c46d7 501aa95c46d7 501aa95c46d7 501aa95c46d7 501aa95c46d7 501aa95c46d7 501aa95c46d7 501aa95c46d7 f28757bb21cb f28757bb21cb f28757bb21cb f28757bb21cb f28757bb21cb f28757bb21cb f28757bb21cb f28757bb21cb f28757bb21cb 501aa95c46d7 501aa95c46d7 501aa95c46d7 501aa95c46d7 501aa95c46d7 501aa95c46d7 501aa95c46d7 501aa95c46d7 501aa95c46d7 f28757bb21cb f28757bb21cb f28757bb21cb f28757bb21cb f28757bb21cb f28757bb21cb f28757bb21cb f28757bb21cb f28757bb21cb f28757bb21cb f28757bb21cb f28757bb21cb 501aa95c46d7 f28757bb21cb f28757bb21cb f28757bb21cb f28757bb21cb f28757bb21cb 501aa95c46d7 501aa95c46d7 501aa95c46d7 501aa95c46d7 501aa95c46d7 501aa95c46d7 501aa95c46d7 501aa95c46d7 501aa95c46d7 501aa95c46d7 501aa95c46d7 501aa95c46d7 501aa95c46d7 f28757bb21cb f28757bb21cb f28757bb21cb f28757bb21cb f28757bb21cb f28757bb21cb f28757bb21cb f28757bb21cb 501aa95c46d7 501aa95c46d7 501aa95c46d7 501aa95c46d7 501aa95c46d7 501aa95c46d7 501aa95c46d7 f28757bb21cb f28757bb21cb f28757bb21cb f28757bb21cb f28757bb21cb f28757bb21cb f28757bb21cb f28757bb21cb f28757bb21cb f28757bb21cb f28757bb21cb f28757bb21cb f28757bb21cb | using System;
namespace DesertPaintLab
{
public class FileUtils
{
public FileUtils()
{
}
public static string FindApplicationResourceDirectory(string dirname)
{
string dirPath = System.IO.Path.Combine(
System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location),
dirname);
if (System.IO.Directory.Exists(dirPath))
{
return dirPath;
}
dirPath = System.IO.Path.Combine(
System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location),
"data",
dirname);
if (!System.IO.Directory.Exists(dirPath))
{
// not found
dirPath = null;
}
// try "Resources" in case this is a Mac app bundle
dirPath = System.IO.Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.Resources), "data", dirname);
if (System.IO.Directory.Exists(dirPath))
{
return dirPath;
}
// try "Resources" in case this is a Mac app bundle
dirPath = System.IO.Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.Resources), dirname);
if (System.IO.Directory.Exists(dirPath))
{
return dirPath;
}
dirPath = System.IO.Path.Combine(
System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location),
"Resources", "data",
dirname);
if (!System.IO.Directory.Exists(dirPath))
{
// not found
dirPath = null;
}
dirPath = System.IO.Path.Combine(
System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location),
"Resources",
dirname);
if (!System.IO.Directory.Exists(dirPath))
{
// not found
dirPath = null;
}
return dirPath;
}
public static string FindApplicationResourceFile(string filename)
{
// start with the location of the executable
string filePath = System.IO.Path.Combine(
System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location),
filename);
if (!System.IO.File.Exists(filePath))
{
filePath = System.IO.Path.Combine(
System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location),
"data",
filename);
}
if (!System.IO.File.Exists(filePath))
{
// try "Resources/data" in case this is a Mac app bundle
filePath = System.IO.Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.Resources), "data", filename);
}
if (!System.IO.File.Exists(filePath))
{
// try "Resources" in case this is a Mac app bundle
filePath = System.IO.Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.Resources), filename);
}
if (!System.IO.File.Exists(filePath))
{
filePath = System.IO.Path.Combine(
System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location),
"Resources", "data",
filename);
}
if (!System.IO.File.Exists(filePath))
{
filePath = System.IO.Path.Combine(
System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location),
"Resources",
filename);
}
if (!System.IO.File.Exists(filePath))
{
// not found
filePath = null;
}
return filePath;
}
}
}
|