Beispiel #1
0
        /// <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);
            }
        }
Beispiel #2
0
        /// <summary>
        /// 外部ウインドウにゲーム画面を表示する初期化を行う。
        /// </summary>
        /// <param name="handle1">ハンドル1</param>
        /// <param name="handle2">ハンドル2</param>
        /// <param name="width">横幅</param>
        /// <param name="height">縦幅</param>
        /// <param name="option">オプション</param>
        /// <returns>成否</returns>
        public static bool InitializeByExternalWindow(IntPtr handle1, IntPtr handle2, 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.InitializeByExternalWindow(handle1, handle2, width, height, option.GraphicsType == GraphicsType.OpenGL, option.IsMultithreadingMode);

            if (result)
            {
                GC.Initialize();
                SetupMembers();
                return(true);
            }
            else
            {
                core.Release();
                core = null;
                return(false);
            }
        }