OSDN Git Service

#23568 ウインドウ非フォーカス時のsleep値を変更できるように修正。ただしConfig.iniとの連携は未実装。
authoryyagi <yyagi@16f42ceb-6dc6-49c8-ba94-f2d53467949d>
Wed, 3 Nov 2010 14:12:06 +0000 (14:12 +0000)
committeryyagi <yyagi@16f42ceb-6dc6-49c8-ba94-f2d53467949d>
Wed, 3 Nov 2010 14:12:06 +0000 (14:12 +0000)
#23510 ウインドウリサイズ関連: VSyncWaitのON/OFF切り替えでウインドウサイズが640x480にリセットされていた問題を修正。

git-svn-id: http://svn.osdn.jp/svnroot/dtxmania/trunk@10 16f42ceb-6dc6-49c8-ba94-f2d53467949d

DTXManiaプロジェクト/コード/全体/CDTXMania.cs
FDK17プロジェクト/コード/01.フレームワーク/Rendering/GraphicsDeviceManager.cs

index a5bc718..e3458a6 100644 (file)
@@ -1041,10 +1041,12 @@ namespace DTXMania
                        }\r
                        if( this.b次のタイミングで垂直帰線同期切り替えを行う )\r
                        {\r
+                               currentClientSize = this.Window.ClientSize;                                                                                             // #23510 2010.11.3 yyagi: to backup current window size before changing VSyncWait\r
                                DeviceSettings currentSettings = app.GraphicsDeviceManager.CurrentSettings;\r
                                currentSettings.EnableVSync = ConfigIni.b垂直帰線待ちを行う;\r
                                app.GraphicsDeviceManager.ChangeDevice( currentSettings );\r
                                this.b次のタイミングで垂直帰線同期切り替えを行う = false;\r
+                               base.Window.ClientSize = new Size(currentClientSize.Width, currentClientSize.Height);   // #23510 2010.11.3 yyagi: to resume window size after changing VSyncWait\r
                        }\r
                }\r
 \r
@@ -1174,6 +1176,7 @@ namespace DTXMania
                        base.GraphicsDeviceManager.ChangeDevice( settings );\r
                        base.IsFixedTimeStep = false;\r
                        base.Window.ClientSize = new Size(ConfigIni.nウインドウwidth, ConfigIni.nウインドウheight);   // #23510 2010.10.31 yyagi\r
+                       base.InactiveSleepTime = TimeSpan.FromMilliseconds((float)1);   // #23568 2010.11.3 yyagi: to support valiable sleep value when !IsActive\r
                        //---------------------\r
                        #endregion\r
 \r
@@ -1465,7 +1468,9 @@ namespace DTXMania
                        {\r
                                Trace.TraceInformation( "----------------------" );\r
                                Trace.TraceInformation( "■ アプリケーションの終了" );\r
-                               if( r現在のステージ != null )\r
+                               #region [ 現在のステージの終了処理 ]\r
+                               //---------------------\r
+                               if (r現在のステージ != null)\r
                                {\r
                                        Trace.TraceInformation( "現在のステージを終了します。" );\r
                                        Trace.Indent();\r
@@ -1479,8 +1484,11 @@ namespace DTXMania
                                                Trace.Unindent();\r
                                        }\r
                                }\r
-\r
-                               if( this.listプラグイン != null && this.listプラグイン.Count > 0 )\r
+                               //---------------------\r
+                               #endregion\r
+                               #region [ プラグインの終了処理 ]\r
+                               //---------------------\r
+                               if (this.listプラグイン != null && this.listプラグイン.Count > 0)\r
                                {\r
                                        Trace.TraceInformation( "すべてのプラグインを終了します。" );\r
                                        Trace.Indent();\r
@@ -1502,8 +1510,11 @@ namespace DTXMania
                                                Trace.Unindent();\r
                                        }\r
                                }\r
-\r
-                               if( Songs管理 != null )\r
+                               //---------------------\r
+                               #endregion\r
+                               #region [ 曲リストの終了処理 ]\r
+                               //---------------------\r
+                               if (Songs管理 != null)\r
                                {\r
                                        Trace.TraceInformation( "曲リストの終了処理を行います。" );\r
                                        Trace.Indent();\r
@@ -1523,7 +1534,11 @@ namespace DTXMania
                                        }\r
                                }\r
                                CAvi.t終了();\r
-                               if( Skin != null )\r
+                               //---------------------\r
+                               #endregion\r
+                               #region [ スキンの終了処理 ]\r
+                               //---------------------\r
+                               if (Skin != null)\r
                                {\r
                                        Trace.TraceInformation( "スキンの終了処理を行います。" );\r
                                        Trace.Indent();\r
@@ -1543,7 +1558,11 @@ namespace DTXMania
                                                Trace.Unindent();\r
                                        }\r
                                }\r
-                               if( Sound管理 != null )\r
+                               //---------------------\r
+                               #endregion\r
+                               #region [ DirectSoundの終了処理 ]\r
+                               //---------------------\r
+                               if (Sound管理 != null)\r
                                {\r
                                        Trace.TraceInformation( "DirectSound の終了処理を行います。" );\r
                                        Trace.Indent();\r
@@ -1563,7 +1582,11 @@ namespace DTXMania
                                                Trace.Unindent();\r
                                        }\r
                                }\r
-                               if( Pad != null )\r
+                               //---------------------\r
+                               #endregion\r
+                               #region [ パッドの終了処理 ]\r
+                               //---------------------\r
+                               if (Pad != null)\r
                                {\r
                                        Trace.TraceInformation( "パッドの終了処理を行います。" );\r
                                        Trace.Indent();\r
@@ -1582,7 +1605,11 @@ namespace DTXMania
                                                Trace.Unindent();\r
                                        }\r
                                }\r
-                               if( Input管理 != null )\r
+                               //---------------------\r
+                               #endregion\r
+                               #region [ DirectInput, MIDI入力の終了処理 ]\r
+                               //---------------------\r
+                               if (Input管理 != null)\r
                                {\r
                                        Trace.TraceInformation( "DirectInput, MIDI入力の終了処理を行います。" );\r
                                        Trace.Indent();\r
@@ -1602,7 +1629,11 @@ namespace DTXMania
                                                Trace.Unindent();\r
                                        }\r
                                }\r
-                               if( act文字コンソール != null )\r
+                               //---------------------\r
+                               #endregion\r
+                               #region [ 文字コンソールの終了処理 ]\r
+                               //---------------------\r
+                               if (act文字コンソール != null)\r
                                {\r
                                        Trace.TraceInformation( "文字コンソールの終了処理を行います。" );\r
                                        Trace.Indent();\r
@@ -1622,7 +1653,11 @@ namespace DTXMania
                                                Trace.Unindent();\r
                                        }\r
                                }\r
-                               Trace.TraceInformation( "FPSカウンタの終了処理を行います。" );\r
+                               //---------------------\r
+                               #endregion\r
+                               #region [ FPSカウンタの終了処理 ]\r
+                               //---------------------\r
+                               Trace.TraceInformation("FPSカウンタの終了処理を行います。");\r
                                Trace.Indent();\r
                                try\r
                                {\r
@@ -1636,7 +1671,11 @@ namespace DTXMania
                                {\r
                                        Trace.Unindent();\r
                                }\r
-                               Trace.TraceInformation( "タイマの終了処理を行います。" );\r
+                               //---------------------\r
+                               #endregion\r
+                               #region [ タイマの終了処理 ]\r
+                               //---------------------\r
+                               Trace.TraceInformation("タイマの終了処理を行います。");\r
                                Trace.Indent();\r
                                try\r
                                {\r
@@ -1655,7 +1694,11 @@ namespace DTXMania
                                {\r
                                        Trace.Unindent();\r
                                }\r
-                               Trace.TraceInformation( "Config.ini を出力します。" );\r
+                               //---------------------\r
+                               #endregion\r
+                               #region [ Config.iniの出力 ]\r
+                               //---------------------\r
+                               Trace.TraceInformation("Config.ini を出力します。");\r
                                // #23510 2010.10.31 yyagi\r
                                // #23510 2010.11.02 yyagi change conditions from (base.windows.clientsize.width > 0) to (ConfigIni.bウインドウモード) to detect whether fullscreenmode or not correctly\r
                                // とりあえずここでConfigへの変数書き戻しを行っているが、\r
@@ -1678,7 +1721,9 @@ namespace DTXMania
                                {\r
                                        Trace.Unindent();\r
                                }\r
-                               Trace.TraceInformation( "アプリケーションの終了処理を完了しました。" );\r
+                               //---------------------\r
+                               #endregion\r
+                               Trace.TraceInformation("アプリケーションの終了処理を完了しました。");\r
 \r
 \r
                                this.b終了処理完了済み = true;\r
@@ -1708,7 +1753,7 @@ namespace DTXMania
                                e.SuppressKeyPress = true;\r
                        }\r
                }\r
-               private CScoreIni tScoreIniへBGMAdjustとHistoryとPlayCountを更新( string str新ヒストリ行 )\r
+               private CScoreIni tScoreIniへBGMAdjustとHistoryとPlayCountを更新(string str新ヒストリ行)\r
                {\r
                        bool flag;\r
                        bool flag2;\r
index d1b63d6..8774db9 100644 (file)
@@ -416,8 +416,11 @@ namespace SampleFramework
                 return;\r
             }\r
 \r
-            if (!game.IsActive || deviceLost)\r
-                Thread.Sleep(50);\r
+//            if (!game.IsActive || deviceLost)                // #23568 2010.11.3 yyagi: separate conditions to support valiable sleep value when !IsActive.\r
+                       if (deviceLost)\r
+                               Thread.Sleep(50);\r
+                       else if (!game.IsActive)\r
+                               Thread.Sleep(this.game.InactiveSleepTime.Milliseconds);\r
 \r
             if (deviceLost)\r
             {\r