using System; using System.Collections.Generic; using System.Linq; using System.IO; using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Foundations { public static class Preamble { private static bool SetupBlacklight(string preferredBlacklightModule) { Blacklight.Core.GraphicsAdapterManager.Singleton.ForceStartup(); try { Blacklight.Core.GraphicsAdapterManager.Singleton.SetCurrentModule(preferredBlacklightModule); } catch (Exception) { System.Windows.Forms.MessageBox.Show(String.Format( "Could not create preferred Blacklight module {0}. Will now exit.", preferredBlacklightModule), "Critical Error"); return false; } return true; } public static string CalculateUserDataDirectory(string projectName) { return Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), projectName); } private static void MaybeCreateUserDataDirectory(string projectName) { string userDataDirectory = CalculateUserDataDirectory(projectName); if (!Directory.Exists(userDataDirectory)) { Directory.CreateDirectory(userDataDirectory); } } /// /// Does initial startup tasks such as checking on the .NET version and initializing Blacklight. This should /// be called before anything else in the program. /// public static int InitialStartup(string projectName, string preferredBlacklightModule) { if (!DotNetVersionCheck.CheckDotNetVersion()) { return 1; } if (!SetupBlacklight(preferredBlacklightModule)) { return 2; } MaybeCreateUserDataDirectory(projectName); return 0; } } }