/// <summary> /// 初期化を行う。 /// </summary> /// <param name="title">タイトル</param> /// <param name="width">横幅</param> /// <param name="height">縦幅</param> /// <param name="option">オプション</param> /// <returns>成否</returns> public static bool Initialize(string title, int width, int height, EngineOption option) { if (core != null) { return(false); } //if (!CheckDLL()) return false; try { core = swig.Core_Imp.CreateCore(); } catch (System.TypeInitializationException) { // DLLが見つからないケース return(false); } var result = core.Initialize(title, width, height, option.IsFullScreen, option.GraphicsType == GraphicsType.OpenGL, option.IsMultithreadingMode); if (result) { GC.Initialize(); SetupMembers(); return(true); } else { core.Release(); core = null; return(false); } }
/// <summary> /// 初期化を行う。 /// </summary> /// <param name="title">タイトル</param> /// <param name="width">横幅</param> /// <param name="height">縦幅</param> /// <param name="option">オプション</param> /// <returns>成否</returns> public static bool Initialize(string title, int width, int height, EngineOption option) { if(core != null) return false; if (!Particular.Helper.CheckInitialize()) return false; core = Particular.Helper.CreateCore(); if (core == null) return false; var graphicsType = option.GraphicsDevice; if(graphicsType == GraphicsDeviceType.Default) { graphicsType = Particular.Helper.GetDefaultDevice(); } var coreOption = new swig.CoreOption(); coreOption.GraphicsDevice = (swig.GraphicsDeviceType)graphicsType; coreOption.IsFullScreen = option.IsFullScreen; coreOption.IsReloadingEnabled = option.IsReloadingEnabled; var result = core.Initialize(title, width, height, coreOption); if(result) { GC.Initialize(); SetupMembers(); if(option.AutoGeneratedLayer == AutoGeneratedLayerType.Layer2D) { var scene = new Scene(); var layer = new Layer2D(); scene.AddLayer(layer); ChangeScene(scene); } else if(option.AutoGeneratedLayer == AutoGeneratedLayerType.Layer3D) { var scene = new Scene(); var layer = new Layer3D(); scene.AddLayer(layer); ChangeScene(scene); } return true; } else { core.Release(); core = null; return false; } }
/// <summary> /// 初期化を行う。 /// </summary> /// <param name="title">タイトル</param> /// <param name="width">横幅</param> /// <param name="height">縦幅</param> /// <param name="option">オプション</param> /// <returns>成否</returns> public static bool Initialize(string title, int width, int height, EngineOption option) { if (core != null) { return(false); } if (!Particular.Helper.CheckInitialize()) { return(false); } core = Particular.Helper.CreateCore(); if (core == null) { return(false); } var graphicsType = option.GraphicsDevice; if (graphicsType == GraphicsDeviceType.Default) { graphicsType = Particular.Helper.GetDefaultDevice(); } var coreOption = new swig.CoreOption(); coreOption.GraphicsDevice = (swig.GraphicsDeviceType)graphicsType; coreOption.IsFullScreen = option.IsFullScreen; coreOption.WindowPosition = (swig.WindowPositionType)option.WindowPosition; coreOption.IsWindowResizable = option.IsWindowResizable; coreOption.IsReloadingEnabled = option.IsReloadingEnabled; coreOption.ColorSpace = (swig.ColorSpaceType)option.ColorSpace; var result = core.Initialize(title, width, height, coreOption); if (result) { GC.Initialize(); SetupMembers(); transitionState = new NeutralState(); if (option.AutoGeneratedLayer == AutoGeneratedLayerType.Layer2D) { var scene = new Scene(); var layer = new Layer2D(); scene.AddLayer(layer); ChangeScene(scene, true); } else if (option.AutoGeneratedLayer == AutoGeneratedLayerType.Layer3D) { var scene = new Scene(); var layer = new Layer3D(null); scene.AddLayer(layer); ChangeScene(scene, true); } CommitChanges(); transitionState.Proceed(); return(true); } else { core.Release(); core = null; return(false); } }