OSDN Git Service

#38362 FulAVIの仕様を全面変更。FullAVI改めForceScalingAVIがOnの時に、ScaledAVIX,Y,W,Hで指定した領域に旧AVIをアスペ...
authoryyagi <yyagi.dtxmania@gmail.com>
Tue, 8 Jan 2019 23:00:29 +0000 (08:00 +0900)
committeryyagi <yyagi.dtxmania@gmail.com>
Tue, 8 Jan 2019 23:00:29 +0000 (08:00 +0900)
これに伴いFullAVICenteringは廃止。MovieX,YはAVIX,Yに変更(AVIは旧AVI, Movieは全画面の動画等新方式のものとして用語区別したい)。

DTXMania/コード/スコア、曲/CDTXInput.cs
DTXMania/コード/ステージ/04.コンフィグ/CActConfigList.cs
DTXMania/コード/ステージ/04.コンフィグ/CConfigXml.cs
DTXMania/コード/ステージ/07.演奏/CAct演奏AVI.cs
DTXMania/コード/ステージ/07.演奏/CAct演奏BGA.cs
DTXMania/コード/ステージ/07.演奏/CStage演奏画面共通.cs
DTXMania/コード/ステージ/07.演奏/CStage演奏画面共通_描画.cs
DTXMania/コード/全体/CPreviewMagnifier.cs

index 1a33d56..2e44ad8 100644 (file)
@@ -2822,7 +2822,7 @@ namespace DTXMania
                                this.bチップがある.Movie |= chip.bMovie;
                                if (chip.bMovie)
                                {
-                                       if (chip[EChannel.MovieFull] || CDTXMania.Instance.ConfigIni.bFullAVI)
+                                       if (chip[EChannel.MovieFull] || CDTXMania.Instance.ConfigIni.bForceScalingAVI)
                                        {
                                                this.bMovieをFullscreen再生する = true;
                                        }
index a8f9d3a..c57f470 100644 (file)
@@ -256,7 +256,7 @@ namespace DTXMania
                                list項目リスト.Add(CDTXMania.Instance.ConfigIni.bFullScreen);
                                list項目リスト.Add(CDTXMania.Instance.ConfigIni.bBGA);
                                list項目リスト.Add(CDTXMania.Instance.ConfigIni.bAVI);
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bFullAVI);
+                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bForceScalingAVI);
                                list項目リスト.Add(CDTXMania.Instance.ConfigIni.bVSyncWait);
                                list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdDebugX.Both);
                                list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdDebugY.Both);
@@ -264,15 +264,17 @@ namespace DTXMania
                                list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdDebugY.DrOnly);
                                list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdDebugX.GBOnly);
                                list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdDebugY.GBOnly);
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdMovieX.Both);
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdMovieY.Both);
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdMovieX.DrOnly);
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdMovieY.DrOnly);
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdMovieX.GBOnly);
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdMovieY.GBOnly);
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bForceFullMovieCentering.Both);
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdForceFullMovieX.Both);
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdForceFullMovieY.Both);
+                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdAVIX.Both);
+                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdAVIY.Both);
+                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdAVIX.DrOnly);
+                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdAVIY.DrOnly);
+                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdAVIX.GBOnly);
+                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdAVIY.GBOnly);
+                               //list項目リスト.Add(CDTXMania.Instance.ConfigIni.bForceFullMovieCentering.Both);
+                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdForceScaledMovieX.Both);
+                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdForceScaledMovieY.Both);
+                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdForceScaledMovieW.Both);
+                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.cdForceScaledMovieH.Both);
                                list項目リスト.Add(CDTXMania.Instance.ConfigIni.nBGAlpha);
                                list項目リスト.Add(CDTXMania.Instance.ConfigIni.nShowLagType);
                                list項目リスト.Add(CDTXMania.Instance.ConfigIni.eJudgePriority);
index 4b5aae1..1dd38a5 100644 (file)
@@ -71,10 +71,10 @@ namespace DTXMania
                }
 
                /// <summary>
-               /// 従来のAVIをウインドウ全体に拡大表示するかどうか
+               /// 従来のAVIを拡大表示するかどうか
                /// </summary>
                [DataMember]
-               public COptionBool bFullAVI;
+               public COptionBool bForceScalingAVI;
 
                [DataMember]
                public COptionBool bAVI;
@@ -346,9 +346,9 @@ namespace DTXMania
                [DataMember]
                public STInstValue<COptionInteger> cdDebugY;
                [DataMember]
-               public STInstValue<COptionInteger> cdMovieX;
+               public STInstValue<COptionInteger> cdAVIX;
                [DataMember]
-               public STInstValue<COptionInteger> cdMovieY;
+               public STInstValue<COptionInteger> cdAVIY;
                [DataMember]
                public STDGBSValue<STInstValue<COptionInteger>> cdComboX;
                [DataMember]
@@ -365,19 +365,33 @@ namespace DTXMania
                public STDGBSValue<COptionInteger> nHiddenFrom;
                /// <summary>
                /// 旧AVIを強制的にウインドウ全体に表示するときの、X座標
+               /// (114で...FullMovieXから...ScalewdMovieXに改名)
                /// </summary>
-               [DataMember(Order = 113)]
-               public STInstValue<COptionInteger> cdForceFullMovieX;   // #38362 2018.7.19 add yyagi
+               [DataMember(Order = 114)]
+               public STInstValue<COptionInteger> cdForceScaledMovieX;   // #38362 2018.7.19 add yyagi
                /// <summary>
                /// 旧AVIを強制的にウインドウ全体に表示するときの、Y座標
+               /// (114で...FullMovieYから...ScalewdMovieYに改名)
                /// </summary>
-               [DataMember(Order = 113)]
-               public STInstValue<COptionInteger> cdForceFullMovieY;   // #38362 2018.7.19 add yyagi
+               [DataMember(Order = 114)]
+               public STInstValue<COptionInteger> cdForceScaledMovieY;   // #38362 2018.7.19 add yyagi
                /// <summary>
                /// 旧AVIを強制的にウインドウ全体に表示するときに、センタリング表示するかどうか
+               /// (Rel114で廃止)
                /// </summary>
-               [DataMember(Order = 113)]
-               public STInstValue<COptionBool> bForceFullMovieCentering;   // #38362 2018.7.19 add yyagi
+               //[DataMember(Order = 113)]
+               //public STInstValue<COptionBool> bForceFullMovieCentering;   // #38362 2018.7.19 add yyagi
+
+               /// <summary>
+               /// 旧AVIを強制的にウインドウ全体に表示するときの、width
+               /// </summary>
+               [DataMember(Order = 114)]
+               public STInstValue<COptionInteger> cdForceScaledMovieW;   // #38362 2019.1.8 add yyagi
+               /// <summary>
+               /// 旧AVIを強制的にウインドウ全体に表示するときの、height
+               /// </summary>
+               [DataMember(Order = 114)]
+               public STInstValue<COptionInteger> cdForceScaledMovieH;   // #38362 2018.1.8 add yyagi
 
 
                public int GetLaneX(ELane e)
@@ -481,7 +495,7 @@ namespace DTXMania
                        bFullScreen = new COptionBool(false);
                        bVSyncWait = new COptionBool(true);
                        bStageFailed = new COptionBool(true);
-                       bFullAVI = new COptionBool(false);
+                       bForceScalingAVI = new COptionBool(false);
                        bAVI = new COptionBool(true);
                        bBGA = new COptionBool(true);
                        bFillin = new COptionBool(true);
@@ -673,31 +687,41 @@ namespace DTXMania
                        cdDebugY.DrOnly = new COptionInteger(200);
                        cdDebugY.GBOnly = new COptionInteger(200);
 
-                       cdMovieX = new STInstValue<COptionInteger>();
-                       cdMovieX.Both = new COptionInteger(619 + 682);
-                       cdMovieX.DrOnly = new COptionInteger(619 + 682);
-                       cdMovieX.GBOnly = new COptionInteger(682);
-
-                       cdMovieY = new STInstValue<COptionInteger>();
-                       cdMovieY.Both = new COptionInteger(128);
-                       cdMovieY.DrOnly = new COptionInteger(128);
-                       cdMovieY.GBOnly = new COptionInteger(128);
-
-                       #region [ #38362 ForcedFullScreen X, Y, flag ] 
-                       cdForceFullMovieX = new STInstValue<COptionInteger>();
-                       cdForceFullMovieX.Both = new COptionInteger(0);
-                       cdForceFullMovieX.DrOnly = new COptionInteger(0);
-                       cdForceFullMovieX.GBOnly = new COptionInteger(0);
-
-                       cdForceFullMovieY = new STInstValue<COptionInteger>();
-                       cdForceFullMovieY.Both = new COptionInteger(0);
-                       cdForceFullMovieY.DrOnly = new COptionInteger(0);
-                       cdForceFullMovieY.GBOnly = new COptionInteger(0);
-
-                       bForceFullMovieCentering = new STInstValue<COptionBool>();
-                       bForceFullMovieCentering.Both = new COptionBool(true);
-                       bForceFullMovieCentering.DrOnly = new COptionBool(true);
-                       bForceFullMovieCentering.GBOnly = new COptionBool(true);
+                       cdAVIX = new STInstValue<COptionInteger>();
+                       cdAVIX.Both = new COptionInteger(619 + 682);
+                       cdAVIX.DrOnly = new COptionInteger(619 + 682);
+                       cdAVIX.GBOnly = new COptionInteger(682);
+
+                       cdAVIY = new STInstValue<COptionInteger>();
+                       cdAVIY.Both = new COptionInteger(128);
+                       cdAVIY.DrOnly = new COptionInteger(128);
+                       cdAVIY.GBOnly = new COptionInteger(128);
+
+                       #region [ #38362 ForcedFullScreen X, Y, W, H ] 
+                       cdForceScaledMovieX = new STInstValue<COptionInteger>();
+                       cdForceScaledMovieX.Both = new COptionInteger(0);
+                       cdForceScaledMovieX.DrOnly = new COptionInteger(0);
+                       cdForceScaledMovieX.GBOnly = new COptionInteger(0);
+
+                       cdForceScaledMovieY = new STInstValue<COptionInteger>();
+                       cdForceScaledMovieY.Both = new COptionInteger(0);
+                       cdForceScaledMovieY.DrOnly = new COptionInteger(0);
+                       cdForceScaledMovieY.GBOnly = new COptionInteger(0);
+
+                       cdForceScaledMovieW = new STInstValue<COptionInteger>();
+                       cdForceScaledMovieW.Both = new COptionInteger(1920);
+                       cdForceScaledMovieW.DrOnly = new COptionInteger(1920);
+                       cdForceScaledMovieW.GBOnly = new COptionInteger(1920);
+
+                       cdForceScaledMovieH = new STInstValue<COptionInteger>();
+                       cdForceScaledMovieH.Both = new COptionInteger(1080);
+                       cdForceScaledMovieH.DrOnly = new COptionInteger(1080);
+                       cdForceScaledMovieH.GBOnly = new COptionInteger(1080);
+
+                       //bForceFullMovieCentering = new STInstValue<COptionBool>();
+                       //bForceFullMovieCentering.Both = new COptionBool(true);
+                       //bForceFullMovieCentering.DrOnly = new COptionBool(true);
+                       //bForceFullMovieCentering.GBOnly = new COptionBool(true);
                        #endregion
 
                        cdComboX = new STDGBSValue<STInstValue<COptionInteger>>();
@@ -773,7 +797,7 @@ namespace DTXMania
                        bFullScreen.Initialize( "strCfgSysFullScreen" );
                        bVSyncWait.Initialize( "strCfgSysVSync" );
                        bStageFailed.Initialize( "strCfgSysStageFailed");
-                       bFullAVI.Initialize( "strCfgSysFullAVI" );
+                       bForceScalingAVI.Initialize( "strCfgSysForceScalingAVI" );
                        bAVI.Initialize( "strCfgSysAVI" );
                        bBGA.Initialize( "strCfgSysBGA" );
                        bLog.Initialize( "strCfgSysLog" );
@@ -941,24 +965,32 @@ namespace DTXMania
                        cdDebugY.Both.Initialize("strCfgDispDebugYBoth", 0, 1 + SampleFramework.GameWindowSize.Height, crdStep);
                        cdDebugY.GBOnly.Initialize("strCfgDispDebugYGB", 0, 1 + SampleFramework.GameWindowSize.Height, crdStep);
 
-                       cdMovieX.DrOnly.Initialize("strCfgDispMovieXDr", 0, 1 + SampleFramework.GameWindowSize.Width, crdStep);
-                       cdMovieX.Both.Initialize("strCfgDispMovieXBoth", 0, 1 + SampleFramework.GameWindowSize.Width, crdStep);
-                       cdMovieX.GBOnly.Initialize("strCfgDispMovieXGB", 0, 1 + SampleFramework.GameWindowSize.Width, crdStep);
-                       cdMovieY.DrOnly.Initialize("strCfgDispMovieYDr", 0, 1 + SampleFramework.GameWindowSize.Height, crdStep);
-                       cdMovieY.Both.Initialize("strCfgDispMovieYBoth", 0, 1 + SampleFramework.GameWindowSize.Height, crdStep);
-                       cdMovieY.GBOnly.Initialize("strCfgDispMovieYGB", 0, 1 + SampleFramework.GameWindowSize.Height, crdStep);
+                       cdAVIX.DrOnly.Initialize("strCfgDispAVIXDr", 0, 1 + SampleFramework.GameWindowSize.Width, crdStep);
+                       cdAVIX.Both.Initialize("strCfgDispAVIXBoth", 0, 1 + SampleFramework.GameWindowSize.Width, crdStep);
+                       cdAVIX.GBOnly.Initialize("strCfgDispAVIXGB", 0, 1 + SampleFramework.GameWindowSize.Width, crdStep);
+                       cdAVIY.DrOnly.Initialize("strCfgDispAVIYDr", 0, 1 + SampleFramework.GameWindowSize.Height, crdStep);
+                       cdAVIY.Both.Initialize("strCfgDispAVIYBoth", 0, 1 + SampleFramework.GameWindowSize.Height, crdStep);
+                       cdAVIY.GBOnly.Initialize("strCfgDispAVIYGB", 0, 1 + SampleFramework.GameWindowSize.Height, crdStep);
+
+                       cdForceScaledMovieX.DrOnly.Initialize("strCfgForceScaledAVIXDr", -SampleFramework.GameWindowSize.Width, 1 + SampleFramework.GameWindowSize.Width, crdStep);
+                       cdForceScaledMovieX.Both.Initialize("strCfgForceScaledAVIXBoth", -SampleFramework.GameWindowSize.Width, 1 + SampleFramework.GameWindowSize.Width, crdStep);
+                       cdForceScaledMovieX.GBOnly.Initialize("strCfgForceScaledAVIXGB", -SampleFramework.GameWindowSize.Width, 1 + SampleFramework.GameWindowSize.Width, crdStep);
+
+                       cdForceScaledMovieY.DrOnly.Initialize("strCfgForceScaledAVIYDr", -SampleFramework.GameWindowSize.Height, 1 + SampleFramework.GameWindowSize.Height, crdStep);
+                       cdForceScaledMovieY.Both.Initialize("strCfgForceScaledAVIYBoth", -SampleFramework.GameWindowSize.Height, 1 + SampleFramework.GameWindowSize.Height, crdStep);
+                       cdForceScaledMovieY.GBOnly.Initialize("strCfgForceScaledAVIYGB", -SampleFramework.GameWindowSize.Height, 1 + SampleFramework.GameWindowSize.Height, crdStep);
 
-                       cdForceFullMovieX.DrOnly.Initialize("strCfgForceFullMovieXDr", -SampleFramework.GameWindowSize.Width, 1 + SampleFramework.GameWindowSize.Width, crdStep);
-                       cdForceFullMovieX.Both.Initialize("strCfgForceFullMovieXBoth", -SampleFramework.GameWindowSize.Width, 1 + SampleFramework.GameWindowSize.Width, crdStep);
-                       cdForceFullMovieX.GBOnly.Initialize("strCfgForceFullMovieXGB", -SampleFramework.GameWindowSize.Width, 1 + SampleFramework.GameWindowSize.Width, crdStep);
+                       cdForceScaledMovieW.DrOnly.Initialize("strCfgForceScaledAVIWDr", 1, 1 + SampleFramework.GameWindowSize.Width, crdStep);
+                       cdForceScaledMovieW.Both.Initialize("strCfgForceScaledAVIWBoth", 1, 1 + SampleFramework.GameWindowSize.Width, crdStep);
+                       cdForceScaledMovieW.GBOnly.Initialize("strCfgForceScaledAVIWGB", 1, 1 + SampleFramework.GameWindowSize.Width, crdStep);
 
-                       cdForceFullMovieY.DrOnly.Initialize("strCfgForceFullMovieYDr", -SampleFramework.GameWindowSize.Height, 1 + SampleFramework.GameWindowSize.Height, crdStep);
-                       cdForceFullMovieY.Both.Initialize("strCfgForceFullMovieYBoth", -SampleFramework.GameWindowSize.Height, 1 + SampleFramework.GameWindowSize.Height, crdStep);
-                       cdForceFullMovieY.GBOnly.Initialize("strCfgForceFullMovieYGB", -SampleFramework.GameWindowSize.Height, 1 + SampleFramework.GameWindowSize.Height, crdStep);
+                       cdForceScaledMovieH.DrOnly.Initialize("strCfgForceScaledAVIHDr", 1, 1 + SampleFramework.GameWindowSize.Height, crdStep);
+                       cdForceScaledMovieH.Both.Initialize("strCfgForceScaledAVIHBoth", 1, 1 + SampleFramework.GameWindowSize.Height, crdStep);
+                       cdForceScaledMovieH.GBOnly.Initialize("strCfgForceScaledAVIHGB", 1, 1 + SampleFramework.GameWindowSize.Height, crdStep);
 
-                       bForceFullMovieCentering.DrOnly.Initialize("strCfgForceFullMovieCenteringDr");
-                       bForceFullMovieCentering.Both.Initialize("strCfgForceFullMovieCenteringBoth");
-                       bForceFullMovieCentering.GBOnly.Initialize("strCfgForceFullMovieCenteringGB");
+                       //bForceFullMovieCentering.DrOnly.Initialize("strCfgForceFullMovieCenteringDr");
+                       //bForceFullMovieCentering.Both.Initialize("strCfgForceFullMovieCenteringBoth");
+                       //bForceFullMovieCentering.GBOnly.Initialize("strCfgForceFullMovieCenteringGB");
 
                        cdComboX.Drums.Both.Initialize("strCfgDispDrComboXBoth", 0, 1 + SampleFramework.GameWindowSize.Width, crdStep);
                        cdComboX.Drums.DrOnly.Initialize("strCfgDispDrComboXDr", 0, 1 + SampleFramework.GameWindowSize.Width, crdStep);
index a1bafaf..12cc2db 100644 (file)
@@ -36,20 +36,24 @@ namespace DTXMania
                /// </remarks>
                public bool bIsPreviewMovie
                {
-                       get
-                       {
-                               return _bIsPreviewMovie;
-                       }
-                       set
-                       {
-                               _bIsPreviewMovie = value;
-                               if (value == true)
-                               {
-                                       this.bFullScreenMovieCentering = true;
-                               }
-                       }
+                       get; set;
                }
-               private bool _bIsPreviewMovie;
+               //public bool bIsPreviewMovie
+               //{
+               //      get
+               //      {
+               //              return _bIsPreviewMovie;
+               //      }
+               //      set
+               //      {
+               //              _bIsPreviewMovie = value;
+               //              //if (value == true)
+               //              //{
+               //              //      this.bFullScreenMovieCentering = true;
+               //              //}
+               //      }
+               //}
+               //private bool _bIsPreviewMovie;
 
 
                public bool bHasBGA
@@ -68,27 +72,44 @@ namespace DTXMania
                /// <summary>
                /// ウインドウ全体で再生するAVIを、センタリング表示するかどうか
                /// </summary>
-               public bool bFullScreenMovieCentering
+               //public bool bFullScreenMovieCentering
+               //{
+               //      get;
+               //      set;
+               //}
+
+               public int X
                {
-                       get;
-                       set;
+                       get; set;
                }
-               /// <summary>
-               /// ウインドウ全体で再生するAVIを、センタリング表示しない場合の、表示X座標
-               /// </summary>
-               public int nFullScreenMovieX
+               public int Y
                {
-                       get;
-                       set;
+                       get; set;
                }
-               /// <summary>
-               /// ウインドウ全体で再生するAVIを、センタリング表示しない場合の、表示Y座標
-               /// </summary>
-               public int nFullScreenMovieY
+               public int Width
                {
-                       get;
-                       set;
+                       get; set;
+               }
+               public int Height
+               {
+                       get; set;
                }
+               ///// <summary>
+               ///// ウインドウ全体で再生するAVIを、センタリング表示しない場合の、表示X座標
+               ///// </summary>
+               //public int nFullScreenMovieX
+               //{
+               //      get;
+               //      set;
+               //}
+               ///// <summary>
+               ///// ウインドウ全体で再生するAVIを、センタリング表示しない場合の、表示Y座標
+               ///// </summary>
+               //public int nFullScreenMovieY
+               //{
+               //      get;
+               //      set;
+               //}
 
 
                public void PrepareProperSizeTexture(int width, int height)
@@ -169,7 +190,7 @@ namespace DTXMania
                                                                {
                                                                        this.rAVI = chip.rAVI;    // DTXVモードで、最初に途中再生で起動したときに、ここに来る
                                                                }
-                                                               this.bFullScreenMovie = (chip.eチャンネル番号 == EChannel.MovieFull || CDTXMania.Instance.ConfigIni.bFullAVI);   // DTXVモードで、最初に途中再生で起動したときのために必要
+                                                               this.bFullScreenMovie = (chip.eチャンネル番号 == EChannel.MovieFull);   // DTXVモードで、最初に途中再生で起動したときのために必要
                                                                this.rAVI.avi.Seek(n移動開始時刻ms - chip.n発声時刻ms);
                                                                //this.Start( chip.eチャンネル番号, chip.rAVI, SampleFramework.GameWindowSize.Width, SampleFramework.GameWindowSize.Height, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, chip.n発声時刻ms );
                                                                this.Start( chip.eチャンネル番号, chip.rAVI, (int)chip.rAVI.avi.nフレーム幅, (int)chip.rAVI.avi.nフレーム高さ, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, chip.n発声時刻ms );
@@ -184,7 +205,8 @@ namespace DTXMania
                                                                {
                                                                        this.rAVI = chip.rAVI;    // DTXVモードで、最初に途中再生で起動したときに、ここに来る
                                                                }
-                                                               this.bFullScreenMovie = (chip.eチャンネル番号 == EChannel.MovieFull || CDTXMania.Instance.ConfigIni.bFullAVI);   // DTXVモードで、最初に途中再生で起動したときのために必要
+                                                               //this.bFullScreenMovie = (chip.eチャンネル番号 == EChannel.MovieFull || CDTXMania.Instance.ConfigIni.bForceScalingAVI);   // DTXVモードで、最初に途中再生で起動したときのために必要
+                                                               this.bFullScreenMovie = (chip.eチャンネル番号 == EChannel.MovieFull);    // DTXVモードで、最初に途中再生で起動したときのために必要
                                                                this.rAVI.avi.Seek(n移動開始時刻ms - chip.n発声時刻ms);
                                                                this.Start(chip.eチャンネル番号, chip.rAVI, chip.rAVIPan.sz開始サイズ.Width, chip.rAVIPan.sz開始サイズ.Height, chip.rAVIPan.sz終了サイズ.Width, chip.rAVIPan.sz終了サイズ.Height, chip.rAVIPan.pt動画側開始位置.X, chip.rAVIPan.pt動画側開始位置.Y, chip.rAVIPan.pt動画側終了位置.X, chip.rAVIPan.pt動画側終了位置.Y, chip.rAVIPan.pt表示側開始位置.X, chip.rAVIPan.pt表示側開始位置.Y, chip.rAVIPan.pt表示側終了位置.X, chip.rAVIPan.pt表示側終了位置.Y, chip.n総移動時間, chip.n発声時刻ms);
                                                        }
@@ -220,6 +242,16 @@ namespace DTXMania
 
                public int t進行描画(int x, int y, int w, int h)
                {
+                       this.X = x;
+                       this.Y = y;
+                       this.Width = w;
+                       this.Height = h;
+                       return t進行描画();
+               }
+               public int t進行描画()
+               {
+                       int x = X, y = Y, w = Width, h = Height;
+
                        if (b活性化してる &&
                                CDTXMania.Instance.ConfigIni.bAVI &&
                                !CDTXMania.Instance.ConfigIni.bStoicMode)
@@ -272,11 +304,13 @@ namespace DTXMania
 
                                        //if (bFullScreenMovie || bIsPreviewMovie)      // #37227 2017.5.29 yyagi: 動画表示の拡縮を、右横ウインドウ表示での動画再生にも適用
                                        {
-                                               CPreviewMagnifier.EPreviewType e = CPreviewMagnifier.EPreviewType.PlayingFront;
+                                               CPreviewMagnifier.EPreviewType e = CPreviewMagnifier.EPreviewType.PlayingFrontScalable;
                                                if ( bFullScreenMovie ) e = CPreviewMagnifier.EPreviewType.PlayingBackground;
-                                               if ( bIsPreviewMovie ) e = CPreviewMagnifier.EPreviewType.MusicSelect;
+                                               if ( bIsPreviewMovie )  e = CPreviewMagnifier.EPreviewType.MusicSelect;
 
-                                               CPreviewMagnifier cmg = new CPreviewMagnifier( e, xx, yy );
+//Trace.TraceInformation("InMovie1:{0},{1},{2},{3} Type={4}", x, y, w, h, e);
+
+                                               CPreviewMagnifier cmg = new CPreviewMagnifier( e, xx, yy, w, h );
                                                cmg.GetMagnifier(
                                                        (int) this.rAVI.avi.nフレーム幅,
                                                        (int) this.rAVI.avi.nフレーム高さ,
@@ -285,22 +319,23 @@ namespace DTXMania
                                                );
                                                magX = cmg.magX;
                                                magY = cmg.magY;
-                                               if (bFullScreenMovieCentering)
+                                               //if (bFullScreenMovieCentering)
                                                {
                                                        xx = cmg.px;
                                                        yy = cmg.py;
                                                }
-                                               else if (bFullScreenMovie)
-                                               {
-                                                       xx = nFullScreenMovieX;
-                                                       yy = nFullScreenMovieY;
-                                               }
+                                               ////else if (bFullScreenMovie)
+                                               ////{
+                                               ////    xx = nFullScreenMovieX;
+                                               ////    yy = nFullScreenMovieY;
+                                               ////}
                                                // fullscreenでないときはxx=x, yy=yだが、xx,yyの初期値がx,yのためここでわざわざ記載する必要なし
                                                //else
                                                //{
                                                //      xx = x;
                                                //      yy = y;
                                                //}
+//Trace.TraceInformation("InMovie2:{0},{1},{2},{3}: {4}, {5}", xx, yy, w*magX, w*magY, magX, magY);
                                        }
 
                                        this.tx描画用.vc拡大縮小倍率.X = magX;
@@ -320,7 +355,7 @@ namespace DTXMania
                                this.rAVI = null;
                                this.n移動開始時刻ms = -1;
                                this.bHasBGA = false;
-                               this.bFullScreenMovie = false;
+                               //this.bFullScreenMovie = false;
                                base.On活性化();
                        }
                }
index 566b21b..6c4e212 100644 (file)
@@ -379,8 +379,8 @@ namespace DTXMania
 
                                // (2) バックバッファに txBGA を描画する。
 
-                               int x = CDTXMania.Instance.ConfigIni.cdMovieX[ CDTXMania.Instance.ConfigIni.eActiveInst ];
-                               int y = CDTXMania.Instance.ConfigIni.cdMovieY[ CDTXMania.Instance.ConfigIni.eActiveInst ];
+                               int x = CDTXMania.Instance.ConfigIni.cdAVIX[ CDTXMania.Instance.ConfigIni.eActiveInst ];
+                               int y = CDTXMania.Instance.ConfigIni.cdAVIY[ CDTXMania.Instance.ConfigIni.eActiveInst ];
 
                                txBGA.t2D描画( CDTXMania.Instance.Device, x, y );
                        }
index c8face8..068fb9c 100644 (file)
@@ -664,11 +664,12 @@ namespace DTXMania
                                        base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト)
                                {
                                        // AVI / BGA
-                                       actAVI.t進行描画(
-                                               CDTXMania.Instance.ConfigIni.cdMovieX[CDTXMania.Instance.ConfigIni.eActiveInst],
-                                               CDTXMania.Instance.ConfigIni.cdMovieY[CDTXMania.Instance.ConfigIni.eActiveInst],
-                                               CDTXMania.Instance.Coordinates.Movie.W,
-                                               CDTXMania.Instance.Coordinates.Movie.H);
+                                       //actAVI.t進行描画(
+                                       //      CDTXMania.Instance.ConfigIni.cdAVIX[CDTXMania.Instance.ConfigIni.eActiveInst],
+                                       //      CDTXMania.Instance.ConfigIni.cdAVIY[CDTXMania.Instance.ConfigIni.eActiveInst],
+                                       //      CDTXMania.Instance.Coordinates.Movie.W,
+                                       //      CDTXMania.Instance.Coordinates.Movie.H);
+                                       actAVI.t進行描画();
                                        actBGA.On進行描画();
                                        #region [MIDIBGM 処理?]
                                        if (base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED)
@@ -3110,26 +3111,54 @@ namespace DTXMania
                                                {
                                                        this.actAVI.bHasBGA = true;
                                                }
-                                               this.actAVI.bFullScreenMovieCentering = (pChip.eチャンネル番号 == EChannel.MovieFull) ? true : CDTXMania.Instance.ConfigIni.bForceFullMovieCentering.Both;
-                                               if (CDTXMania.Instance.ConfigIni.bFullAVI)
+                                               //this.actAVI.bFullScreenMovieCentering = (pChip.eチャンネル番号 == EChannel.MovieFull) ? true : CDTXMania.Instance.ConfigIni.bForceFullMovieCentering.Both;
+                                               //this.actAVI.bFullScreenMovieCentering = true;
+                                               //if (CDTXMania.Instance.ConfigIni.bForceScalingAVI)
+                                               //{
+                                               //      //if (!this.actAVI.bFullScreenMovieCentering)
+                                               //      //{
+                                               //              this.actAVI.nFullScreenMovieX = CDTXMania.Instance.ConfigIni.cdForceScaledMovieX.Both;
+                                               //              this.actAVI.nFullScreenMovieY = CDTXMania.Instance.ConfigIni.cdForceScaledMovieY.Both;
+                                               //      //}
+                                               //}
+                                               //if (pChip.eチャンネル番号 == EChannel.MovieFull || CDTXMania.Instance.ConfigIni.bForceScalingAVI)
+                                               //if (pChip.eチャンネル番号 == EChannel.MovieFull)
+                                               //{
+                                               //      this.actAVI.bFullScreenMovie = true;
+                                               //}
+
+                                               if (pChip.eチャンネル番号 == EChannel.MovieFull)                 // 新movie(Fullscreen movie)の場合
                                                {
-                                                       if (!this.actAVI.bFullScreenMovieCentering)
-                                                       {
-                                                               this.actAVI.nFullScreenMovieX = CDTXMania.Instance.ConfigIni.cdForceFullMovieX.Both;
-                                                               this.actAVI.nFullScreenMovieY = CDTXMania.Instance.ConfigIni.cdForceFullMovieY.Both;
-                                                       }
+                                                       this.actAVI.X      = 0;
+                                                       this.actAVI.Y      = 0;
+                                                       this.actAVI.Width  = SampleFramework.GameWindowSize.Width;
+                                                       this.actAVI.Height = SampleFramework.GameWindowSize.Height;
+//Trace.TraceInformation("MovieFull:{0},{1},{2},{3}", this.actAVI.X, this.actAVI.Y, this.actAVI.Width, this.actAVI.Height);
                                                }
-                                               if (pChip.eチャンネル番号 == EChannel.MovieFull || CDTXMania.Instance.ConfigIni.bFullAVI)
+                                               else if (CDTXMania.Instance.ConfigIni.bForceScalingAVI)         // 旧AVIを拡大表示する場合
                                                {
-                                                       this.actAVI.bFullScreenMovie = true;
+                                                       this.actAVI.X      = CDTXMania.Instance.ConfigIni.cdForceScaledMovieX[CDTXMania.Instance.ConfigIni.eActiveInst];
+                                                       this.actAVI.Y      = CDTXMania.Instance.ConfigIni.cdForceScaledMovieY[CDTXMania.Instance.ConfigIni.eActiveInst];
+                                                       this.actAVI.Width  = CDTXMania.Instance.ConfigIni.cdForceScaledMovieW[CDTXMania.Instance.ConfigIni.eActiveInst];
+                                                       this.actAVI.Height = CDTXMania.Instance.ConfigIni.cdForceScaledMovieH[CDTXMania.Instance.ConfigIni.eActiveInst];
+//Trace.TraceInformation("ScaledAVI:{0},{1},{2},{3}", this.actAVI.X, this.actAVI.Y, this.actAVI.Width, this.actAVI.Height);
                                                }
+                                               else                                                                                                            // 旧AVIをそのまま表示する場合
+                                               {
+                                                       this.actAVI.X      = CDTXMania.Instance.ConfigIni.cdAVIX[CDTXMania.Instance.ConfigIni.eActiveInst];
+                                                       this.actAVI.Y      = CDTXMania.Instance.ConfigIni.cdAVIY[CDTXMania.Instance.ConfigIni.eActiveInst];
+                                                       this.actAVI.Width  = CDTXMania.Instance.Coordinates.Movie.W;
+                                                       this.actAVI.Height = CDTXMania.Instance.Coordinates.Movie.H;
+//Trace.TraceInformation("NormalAVI:{0},{1},{2},{3}", this.actAVI.X, this.actAVI.Y, this.actAVI.Width, this.actAVI.Height);
+                                               }
+
+                                               int startWidth  = !this.actAVI.bFullScreenMovie ? 278 : SampleFramework.GameWindowSize.Width;
+                                               int startHeight = !this.actAVI.bFullScreenMovie ? 355 : SampleFramework.GameWindowSize.Height;
 
                                                switch (pChip.eAVI種別)
                                                {
                                                        case EAVIType.AVI:
                                                                {
-                                                                       int startWidth = !this.actAVI.bFullScreenMovie ? 278 : SampleFramework.GameWindowSize.Width;
-                                                                       int startHeight = !this.actAVI.bFullScreenMovie ? 355 : SampleFramework.GameWindowSize.Height;
                                                                        this.actAVI.Start(pChip.eチャンネル番号, pChip.rAVI, startWidth, startHeight, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, pChip.n発声時刻ms);
                                                                }
                                                                break;
index 7c668ba..244c133 100644 (file)
@@ -508,8 +508,8 @@ namespace DTXMania
                                                {
                                                        graphics3.FillRectangle(Brushes.Black,
                                                                new Rectangle(
-                                                                       CDTXMania.Instance.ConfigIni.cdMovieX[CDTXMania.Instance.ConfigIni.eActiveInst],
-                                                                       CDTXMania.Instance.ConfigIni.cdMovieY[CDTXMania.Instance.ConfigIni.eActiveInst],
+                                                                       CDTXMania.Instance.ConfigIni.cdAVIX[CDTXMania.Instance.ConfigIni.eActiveInst],
+                                                                       CDTXMania.Instance.ConfigIni.cdAVIY[CDTXMania.Instance.ConfigIni.eActiveInst],
                                                                        CDTXMania.Instance.Coordinates.Movie.W, CDTXMania.Instance.Coordinates.Movie.H));
                                                }
                                                #endregion
index 230460c..2317cd7 100644 (file)
@@ -29,14 +29,17 @@ namespace DTXMania
                public int px;
                public int py;
 
+               private int freestyle_w, freestyle_h;
+
                /// <summary>
                /// プレビュー画像向けの拡大率か(それとも、演奏画面向けの拡大率か)
                /// </summary>
                public enum EPreviewType : int
                {
                        MusicSelect = 0,                        // 選曲画面
-                       PlayingFront = 1,                       // 演奏画面(ウインドウ表示の動画)
-                       PlayingBackground = 2           // 演奏画面(背景全画面表示の動画)
+                       PlayingFront = 1,                       // 演奏画面(ウインドウ表示の動画,サイズ固定(従来方式)
+                       PlayingBackground = 2,          // 演奏画面(背景全画面表示の動画)
+                       PlayingFrontScalable = 3        // 演奏画面(ウインドウ表示の動画,サイズ可変
                }
                public EPreviewType ePreviewType;
                #endregion
@@ -64,17 +67,23 @@ namespace DTXMania
                }
                public CPreviewMagnifier(EPreviewType _ePreviewType)
                {
-                       CPreviewMagnifier_initializer(_ePreviewType, 0, 0);
+                       CPreviewMagnifier_initializer(_ePreviewType, 0, 0, 1, 1);
                }
                public CPreviewMagnifier( EPreviewType _ePreviewType, int _px, int _py )
                {
-                       CPreviewMagnifier_initializer( _ePreviewType, _px, _py );
+                       CPreviewMagnifier_initializer( _ePreviewType, _px, _py, 1, 1 );
+               }
+               public CPreviewMagnifier(EPreviewType _ePreviewType, int _px, int _py, int _w, int _h)
+               {
+                       CPreviewMagnifier_initializer(_ePreviewType, _px, _py, _w, _h);
                }
-               private void CPreviewMagnifier_initializer( EPreviewType _ePreviewType, int _px, int _py)
+               private void CPreviewMagnifier_initializer(EPreviewType _ePreviewType, int _px, int _py, int _w, int _h)
                {
                        this.ePreviewType = _ePreviewType;
                        this.px = _px;
                        this.py = _py;
+                       this.freestyle_w = _w;
+                       this.freestyle_h = _h;
                }
                #endregion
 
@@ -101,18 +110,20 @@ namespace DTXMania
                        #region [ アスペクト比を維持した拡大縮小 ]
                        this.width = width_org;
                        this.height = height_org;
-                       this.magX = magX_org * width_fhd_set / width_org;
-                       this.magY = magY_org * height_fhd_set / height_org;
+                       int W = (this.ePreviewType == EPreviewType.PlayingFrontScalable)? freestyle_w : width_fhd_set;
+                       int H = (this.ePreviewType == EPreviewType.PlayingFrontScalable)? freestyle_h : height_fhd_set;
+                       this.magX = magX_org * W  / width_org;
+                       this.magY = magY_org * H / height_org;
 
                        if ( magX > magY )
                        {
                                magX = magY;
-                               px += (int) ( ( width_fhd_set - ( width_org * magY ) ) / 2 );
+                               px += (int) ( ( W - ( width_org * magY ) ) / 2 );
                        }
                        else
                        {
                                magY = magX;
-                               py += (int) ( ( height_fhd_set - ( height_org * magX ) ) / 2 );
+                               py += (int) ( ( H - ( height_org * magX ) ) / 2 );
                        }
                        #endregion
                }