コード例 #1
0
        public static void RunLoop()
        {
            while (IsExist is true)
            {
                //update time
                Time.Update();

                SystemScene?.Update(Time.DeltaSeconds);
                MainScene?.Update(Time.DeltaSeconds);

                BehaviorSystems.ForEach((system) => UpdateBehaviorSystem(system));

                if (EngineWindow != null && EngineWindow.IsExisted != false)
                {
                    EngineWindow.Update(Time.DeltaSeconds);
                }

                if (EngineWindow != null && EngineWindow.IsExisted == false)
                {
                    IsExist = false;
                }

                PresentRender.BeginDraw();
                BehaviorSystems.ForEach((system) => system.Present(PresentRender));
                PresentRender.EndDraw(false);
            }
        }
コード例 #2
0
        private static void InitializeRuntime(GameStartInfo gameStartInfo)
        {
            if (gameStartInfo.Adapter == null)
            {
                var adapters = GpuAdapter.EnumerateGraphicsAdapter();

                LogEmitter.Assert(adapters.Count > 0, LogLevel.Error, "[Initialize Graphics Device Failed without Support Adapter] from [GameSystems]");

                GpuDevice = new GpuDevice(adapters[0]);
            }
            else
            {
                GpuDevice = new GpuDevice(gameStartInfo.Adapter);
            }

            EngineWindow = new EngineWindow(
                gameStartInfo.WindowName,
                gameStartInfo.IconName,
                gameStartInfo.WindowSize);
            EngineWindow.Show();

            PresentRender = new PresentRender(GpuDevice, EngineWindow.Handle, EngineWindow.Size);

            //init resize event
            EngineWindow.OnSizeChangeEvent += (sender, eventArg) =>
            {
                PresentRender.ReSize(eventArg.After);
                VisualGuiSystem.Area = new Rectangle <int>(0, 0, eventArg.After.Width, eventArg.After.Height);
            };
        }
コード例 #3
0
ファイル: GameSystems.cs プロジェクト: zhiy0122/GalDesigner
        public static void RunLoop()
        {
            while (IsExist is true)
            {
                //update time
                Time.Update();

                if (EngineWindow != null && EngineWindow.IsExisted != false)
                {
                    EngineWindow.Update(Time.DeltaSeconds);
                }

                if (EngineWindow != null && EngineWindow.IsExisted == false)
                {
                    IsExist = false;
                }

                //update time
                InputListener.Update();
                Gui.Update(Time.DeltaSeconds);

                //draw time
                Gui.Draw();

                //present time
                PresentRender.BeginDraw();

                Gui.Present(PresentRender);

                PresentRender.EndDraw(false);

                InputListener.Clear();
            }
        }
コード例 #4
0
        public static void Initialize(GameStartInfo gameStartInfo)
        {
            GameName = gameStartInfo.GameName;

            BehaviorSystems = new List <BehaviorSystem>();

            IsExist = true;

            SystemScene = new GameScene("SystemScene");

            InitializeRuntime(gameStartInfo);

            //add system
            AddBehaviorSystem(AssetSystem     = new AssetSystem());
            AddBehaviorSystem(LogicGuiSystem  = new LogicGuiSystem());
            AddBehaviorSystem(VisualGuiSystem = new VisualGuiSystem(GpuDevice, new Rectangle <int>(0, 0, EngineWindow.Size.Width, EngineWindow.Size.Height)));

            EngineWindow.AddEventListener(LogicGuiSystem);

            LogEmitter.Apply(LogLevel.Information, "[Initialize GameSystems Finish] from [GameSystems]");
        }
コード例 #5
0
ファイル: GameSystems.cs プロジェクト: zhiy0122/GalDesigner
        private static void InitializeRuntime(GameStartInfo gameStartInfo)
        {
            if (gameStartInfo.Adapter == null)
            {
                var adapters = GpuAdapter.EnumerateGraphicsAdapter();

                LogEmitter.Assert(adapters.Count > 0, LogLevel.Error, "[Initialize Graphics Device Failed without Support Adapter] from [GameSystems]");

                GpuDevice = new GpuDevice(adapters[0]);
            }
            else
            {
                GpuDevice = new GpuDevice(gameStartInfo.Adapter);
            }

            EngineWindow = new EngineWindow(
                gameStartInfo.Window.Name,
                gameStartInfo.Window.Icon,
                gameStartInfo.Window.Size);
            EngineWindow.Show();

            PresentRender = new PresentRender(GpuDevice, EngineWindow.Handle, EngineWindow.Size);
        }
コード例 #6
0
 public EventForwardInputEmitter(EngineWindow window)
 {
     mWindow = window;
 }