OSDN Git Service

Merge branch 'feature/37178_プロジェクトとソリューションファイルの英語化' into develop
[dtxmania/dtxmania.git] / DTXManiaプロジェクト / コード / ステージ / 07.演奏 / CAct演奏BGA.cs
diff --git a/DTXManiaプロジェクト/コード/ステージ/07.演奏/CAct演奏BGA.cs b/DTXManiaプロジェクト/コード/ステージ/07.演奏/CAct演奏BGA.cs
deleted file mode 100644 (file)
index ec03f37..0000000
+++ /dev/null
@@ -1,390 +0,0 @@
-using System;\r
-using System.Collections.Generic;\r
-using System.Text;\r
-using System.Runtime.InteropServices;\r
-using System.Drawing;\r
-using System.Diagnostics;\r
-using SharpDX.Direct3D9;\r
-using SharpDX;\r
-using FDK;\r
-\r
-using Point = System.Drawing.Point;\r
-using Rectangle = System.Drawing.Rectangle;\r
-\r
-namespace DTXMania\r
-{\r
-       internal class CAct演奏BGA : CActivity\r
-       {\r
-               [StructLayout(LayoutKind.Sequential)]\r
-               private struct STLAYER\r
-               {\r
-                       public CDTX.CBMP rBMP;\r
-                       public CDTX.CBMPTEX rBMPTEX;\r
-                       public Size sz開始サイズ;\r
-                       public Size sz終了サイズ;\r
-                       public Point pt画像側開始位置;\r
-                       public Point pt画像側終了位置;\r
-                       public Point pt表示側開始位置;\r
-                       public Point pt表示側終了位置;\r
-                       public long n総移動時間ms;\r
-                       public long n移動開始時刻ms;\r
-               }\r
-\r
-               private CTexture txBGA;\r
-               private STLAYER[] stLayer = new STLAYER[8];\r
-               private readonly Size size基準 = new Size( 278, 355 );\r
-\r
-               public CAct演奏BGA()\r
-               {\r
-                       base.b活性化してない = true;\r
-               }\r
-\r
-               public void ChangeScope(CChip chip)\r
-               {\r
-                       this.stLayer[chip.nBGALayerSwapIndex].rBMP = chip.rBMP;\r
-                       this.stLayer[chip.nBGALayerSwapIndex].rBMPTEX = chip.rBMPTEX;\r
-               }\r
-\r
-               public void Start(CChip chip, CDTX.CBMP bmp, CDTX.CBMPTEX bmptex, int n開始サイズW, int n開始サイズH, int n終了サイズW, int n終了サイズH, int n画像側開始位置X, int n画像側開始位置Y, int n画像側終了位置X, int n画像側終了位置Y, int n表示側開始位置X, int n表示側開始位置Y, int n表示側終了位置X, int n表示側終了位置Y, int n総移動時間ms, int n移動開始時刻ms = -1)\r
-               {\r
-                       int i = chip.nBGALayerIndex;\r
-                       this.stLayer[i].rBMP = bmp;\r
-                       this.stLayer[i].rBMPTEX = bmptex;\r
-                       this.stLayer[i].sz開始サイズ.Width = n開始サイズW;\r
-                       this.stLayer[i].sz開始サイズ.Height = n開始サイズH;\r
-                       this.stLayer[i].sz終了サイズ.Width = n終了サイズW;\r
-                       this.stLayer[i].sz終了サイズ.Height = n終了サイズH;\r
-                       this.stLayer[i].pt画像側開始位置.X = n画像側開始位置X;\r
-                       this.stLayer[i].pt画像側開始位置.Y = n画像側開始位置Y;\r
-                       this.stLayer[i].pt画像側終了位置.X = n画像側終了位置X;\r
-                       this.stLayer[i].pt画像側終了位置.Y = n画像側終了位置Y;\r
-                       this.stLayer[i].pt表示側開始位置.X = n表示側開始位置X;\r
-                       this.stLayer[i].pt表示側開始位置.Y = n表示側開始位置Y;\r
-                       this.stLayer[i].pt表示側終了位置.X = n表示側終了位置X;\r
-                       this.stLayer[i].pt表示側終了位置.Y = n表示側終了位置Y;\r
-                       this.stLayer[i].n総移動時間ms = n総移動時間ms;\r
-                       this.stLayer[i].n移動開始時刻ms = (n移動開始時刻ms != -1) ? n移動開始時刻ms : CDTXMania.Instance.Timer.n現在時刻;\r
-               }\r
-\r
-               public void SkipStart(int n移動開始時刻ms)\r
-               {\r
-                       for (int i = 0; i < CDTXMania.Instance.DTX.listChip.Count; i++)\r
-                       {\r
-                               CChip chip = CDTXMania.Instance.DTX.listChip[i];\r
-                               if (chip.n発声時刻ms > n移動開始時刻ms)\r
-                               {\r
-                                       return;\r
-                               }\r
-                               switch (chip.eBGA種別)\r
-                               {\r
-                                       case EBGAType.BMP:\r
-                                               if ((chip.rBMP != null) && (chip.rBMP.tx画像 != null))\r
-                                               {\r
-                                                       this.Start(chip, chip.rBMP, null, chip.rBMP.n幅, chip.rBMP.n高さ, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, chip.n発声時刻ms);\r
-                                               }\r
-                                               break;\r
-\r
-                                       case EBGAType.BMPTEX:\r
-                                               if ((chip.rBMPTEX != null) && (chip.rBMPTEX.tx画像 != null))\r
-                                               {\r
-                                                       this.Start(chip, null, chip.rBMPTEX, chip.rBMPTEX.tx画像.sz画像サイズ.Width, chip.rBMPTEX.tx画像.sz画像サイズ.Height, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, chip.n発声時刻ms);\r
-                                               }\r
-                                               break;\r
-\r
-                                       case EBGAType.BGA:\r
-                                               if (chip.rBGA != null)\r
-                                               {\r
-                                                       this.Start(chip, chip.rBMP, chip.rBMPTEX, chip.rBGA.pt画像側右下座標.X - chip.rBGA.pt画像側左上座標.X, chip.rBGA.pt画像側右下座標.Y - chip.rBGA.pt画像側左上座標.Y, 0, 0, chip.rBGA.pt画像側左上座標.X, chip.rBGA.pt画像側左上座標.Y, 0, 0, chip.rBGA.pt表示座標.X, chip.rBGA.pt表示座標.Y, 0, 0, 0, chip.n発声時刻ms);\r
-                                               }\r
-                                               break;\r
-\r
-                                       case EBGAType.BGAPAN:\r
-                                               if (chip.rBGAPan != null)\r
-                                               {\r
-                                                       this.Start(chip, chip.rBMP, chip.rBMPTEX, chip.rBGAPan.sz開始サイズ.Width, chip.rBGAPan.sz開始サイズ.Height, chip.rBGAPan.sz終了サイズ.Width, chip.rBGAPan.sz終了サイズ.Height, chip.rBGAPan.pt画像側開始位置.X, chip.rBGAPan.pt画像側開始位置.Y, chip.rBGAPan.pt画像側終了位置.X, chip.rBGAPan.pt画像側終了位置.Y, chip.rBGAPan.pt表示側開始位置.X, chip.rBGAPan.pt表示側開始位置.Y, chip.rBGAPan.pt表示側終了位置.X, chip.rBGAPan.pt表示側終了位置.Y, chip.n総移動時間, chip.n発声時刻ms);\r
-                                               }\r
-                                               break;\r
-                               }\r
-                       }\r
-               }\r
-\r
-               public void Stop()\r
-               {\r
-                       for (int i = 0; i < 8; i++)\r
-                       {\r
-                               this.stLayer[i].n移動開始時刻ms = -1;\r
-                       }\r
-               }\r
-\r
-               public override void On活性化()\r
-               {\r
-                       for (int i = 0; i < 8; i++)\r
-                       {\r
-                               STLAYER stlayer2 = new STLAYER();\r
-                               STLAYER stlayer = stlayer2;\r
-                               stlayer.rBMP = null;\r
-                               stlayer.rBMPTEX = null;\r
-                               stlayer.n移動開始時刻ms = -1;\r
-                               this.stLayer[i] = stlayer;\r
-                       }\r
-                       base.On活性化();\r
-               }\r
-\r
-               public override void OnUnmanagedリソースの作成()\r
-               {\r
-                       if( base.b活性化してる )\r
-                       {\r
-                               using( Surface surface = CDTXMania.Instance.Device.GetBackBuffer( 0, 0 ) )\r
-                               {\r
-                                       try\r
-                                       {\r
-                                               var format = Format.A8R8G8B8;\r
-                                               switch( surface.Description.Format )    // バックバッファ用フォーマットで X を持つのはこれだけ。\r
-                                               {\r
-                                                       case Format.X4R4G4B4: format = Format.A4R4G4B4; break;\r
-                                                       case Format.X8B8G8R8: format = Format.A8R8G8B8; break;\r
-                                                       case Format.X8R8G8B8: format = Format.A8R8G8B8; break;\r
-                                               }\r
-\r
-                                               this.txBGA = new CTexture( CDTXMania.Instance.Device,\r
-                                                       size基準.Width,\r
-                                                       size基準.Height,\r
-                                                       format,\r
-                                                       Pool.Default,\r
-                                                       Usage.RenderTarget,\r
-                                                       true );\r
-\r
-                                               txBGA.vc拡大縮小倍率 = new Vector3(\r
-                                                       (float) CDTXMania.Instance.Coordinates.Movie.W / size基準.Width,\r
-                                                       (float) CDTXMania.Instance.Coordinates.Movie.H / size基準.Height,\r
-                                                       1f );\r
-                                       }\r
-                                       catch( Exception e )\r
-                                       {\r
-                                               Trace.TraceError( "CAct演奏BGA: Error: ( " + e.Message + " )" );\r
-                                       }\r
-                               }\r
-                               base.OnUnmanagedリソースの作成();\r
-                       }\r
-               }\r
-\r
-               public override void OnUnmanagedリソースの解放()\r
-               {\r
-                       if( base.b活性化してる )\r
-                       {\r
-                               if( this.txBGA != null )\r
-                               {\r
-                                       this.txBGA.Dispose();\r
-                                       this.txBGA = null;\r
-                               }\r
-                               base.OnUnmanagedリソースの解放();\r
-                       }\r
-               }\r
-\r
-               public override int On進行描画()\r
-               {\r
-                       if (b活性化してる && CDTXMania.Instance.ConfigIni.bBGA && !CDTXMania.Instance.ConfigIni.bStoicMode)\r
-                       {\r
-                               // (1) txBGA をレンダーターゲットにして、BGA を描画する。\r
-\r
-                               using( Surface sfBackBuffer = CDTXMania.Instance.Device.GetRenderTarget( 0 ) )\r
-                               {\r
-                                       using( Surface sfBGA = txBGA.texture.GetSurfaceLevel( 0 ) )\r
-                                       {\r
-                                               CDTXMania.Instance.Device.SetRenderTarget( 0, sfBGA );\r
-                                               CDTXMania.Instance.Device.Clear( ClearFlags.Target, new ColorBGRA( (int) 0 ), 0f, 0 );\r
-\r
-                                               for( int i = 0; i < 8; i++ )\r
-                                               {\r
-                                                       #region [ レイヤー i の描画 ]\r
-                                                       if( ( ( ( this.stLayer[ i ].n移動開始時刻ms != -1 ) && ( ( this.stLayer[ i ].rBMP != null ) || ( this.stLayer[ i ].rBMPTEX != null ) ) ) ) &&\r
-                                                               ( ( ( this.stLayer[ i ].rBMP == null ) || ( this.stLayer[ i ].rBMP.bUse && ( this.stLayer[ i ].rBMP.tx画像 != null ) ) ) &&\r
-                                                               ( ( ( this.stLayer[ i ].rBMPTEX == null ) || ( this.stLayer[ i ].rBMPTEX.bUse && ( this.stLayer[ i ].rBMPTEX.tx画像 != null ) ) ) ) ) )\r
-                                                       {\r
-                                                               Size sizeStart = this.stLayer[ i ].sz開始サイズ;\r
-                                                               Size sizeEnd = this.stLayer[ i ].sz終了サイズ;\r
-                                                               Point ptImgStart = this.stLayer[ i ].pt画像側開始位置;\r
-                                                               Point ptImgEnd = this.stLayer[ i ].pt画像側終了位置;\r
-                                                               Point ptDispStart = this.stLayer[ i ].pt表示側開始位置;\r
-                                                               Point ptDispEnd = this.stLayer[ i ].pt表示側終了位置;\r
-                                                               long timeTotal = this.stLayer[ i ].n総移動時間ms;\r
-                                                               long timeMoveStart = this.stLayer[ i ].n移動開始時刻ms;\r
-\r
-                                                               if( CDTXMania.Instance.Timer.n現在時刻 < timeMoveStart )\r
-                                                               {\r
-                                                                       timeMoveStart = CDTXMania.Instance.Timer.n現在時刻;\r
-                                                               }\r
-\r
-                                                               Size sizeBMP = new Size(\r
-                                                                       ( this.stLayer[ i ].rBMP != null ) ? this.stLayer[ i ].rBMP.n幅 : this.stLayer[ i ].rBMPTEX.tx画像.sz画像サイズ.Width,\r
-                                                                       ( this.stLayer[ i ].rBMP != null ) ? this.stLayer[ i ].rBMP.n高さ : this.stLayer[ i ].rBMPTEX.tx画像.sz画像サイズ.Height );\r
-\r
-                                                               int n再生位置 = (int) ( ( CDTXMania.Instance.Timer.n現在時刻 - timeMoveStart ) * ( ( (double) CDTXMania.Instance.ConfigIni.nPlaySpeed ) / 20.0 ) );\r
-\r
-                                                               if( ( timeTotal != 0 ) && ( timeTotal < n再生位置 ) )\r
-                                                               {\r
-                                                                       this.stLayer[ i ].pt画像側開始位置 = ptImgStart = ptImgEnd;\r
-                                                                       this.stLayer[ i ].pt表示側開始位置 = ptDispStart = ptDispEnd;\r
-                                                                       this.stLayer[ i ].sz開始サイズ = sizeStart = sizeEnd;\r
-                                                                       this.stLayer[ i ].n総移動時間ms = timeTotal = 0;\r
-                                                               }\r
-\r
-                                                               Rectangle rect画像側 = new Rectangle();\r
-                                                               Rectangle rect表示側 = new Rectangle();\r
-\r
-                                                               if( timeTotal == 0 )\r
-                                                               {\r
-                                                                       rect画像側.X = ptImgStart.X;\r
-                                                                       rect画像側.Y = ptImgStart.Y;\r
-                                                                       rect画像側.Width = sizeStart.Width;\r
-                                                                       rect画像側.Height = sizeStart.Height;\r
-                                                                       rect表示側.X = ptDispStart.X;\r
-                                                                       rect表示側.Y = ptDispStart.Y;\r
-                                                                       rect表示側.Width = sizeStart.Width;\r
-                                                                       rect表示側.Height = sizeStart.Height;\r
-                                                               }\r
-                                                               else\r
-                                                               {\r
-                                                                       double coefSizeWhileMoving = ( (double) n再生位置 ) / ( (double) timeTotal );\r
-                                                                       Size sizeWhileMoving = new Size( \r
-                                                                               sizeStart.Width + ( (int) ( ( sizeEnd.Width - sizeStart.Width ) * coefSizeWhileMoving ) ),\r
-                                                                               sizeStart.Height + ( (int) ( ( sizeEnd.Height - sizeStart.Height ) * coefSizeWhileMoving ) ) );\r
-                                                                       rect画像側.X = ptImgStart.X + ( (int) ( ( ptImgEnd.X - ptImgStart.X ) * coefSizeWhileMoving ) );\r
-                                                                       rect画像側.Y = ptImgStart.Y + ( (int) ( ( ptImgEnd.Y - ptImgStart.Y ) * coefSizeWhileMoving ) );\r
-                                                                       rect画像側.Width = sizeWhileMoving.Width;\r
-                                                                       rect画像側.Height = sizeWhileMoving.Height;\r
-                                                                       rect表示側.X = ptDispStart.X + ( (int) ( ( ptDispEnd.X - ptDispStart.X ) * coefSizeWhileMoving ) );\r
-                                                                       rect表示側.Y = ptDispStart.Y + ( (int) ( ( ptDispEnd.Y - ptDispStart.Y ) * coefSizeWhileMoving ) );\r
-                                                                       rect表示側.Width = sizeWhileMoving.Width;\r
-                                                                       rect表示側.Height = sizeWhileMoving.Height;\r
-                                                               }\r
-\r
-                                                               if(\r
-                                                                       ( rect画像側.Right > 0 ) &&\r
-                                                                       ( rect画像側.Bottom > 0 ) &&\r
-                                                                       ( rect画像側.Left < sizeBMP.Width ) &&\r
-                                                                       ( rect画像側.Top < sizeBMP.Height ) &&\r
-                                                                       ( rect表示側.Right > 0 ) &&\r
-                                                                       ( rect表示側.Bottom > 0 ) &&\r
-                                                                       ( rect表示側.Left < size基準.Width ) &&\r
-                                                                       ( rect表示側.Top < size基準.Height )\r
-                                                                       )\r
-                                                               {\r
-                                                                       #region " 画像側の表示指定が画像の境界をまたいでいる場合補正 "\r
-                                                                       //----------------\r
-                                                                       if( rect画像側.X < 0 )\r
-                                                                       {\r
-                                                                               rect表示側.Width -= -rect画像側.X;\r
-                                                                               rect表示側.X += -rect画像側.X;\r
-                                                                               rect画像側.Width -= -rect画像側.X;\r
-                                                                               rect画像側.X = 0;\r
-                                                                       }\r
-                                                                       if( rect画像側.Y < 0 )\r
-                                                                       {\r
-                                                                               rect表示側.Height -= -rect画像側.Y;\r
-                                                                               rect表示側.Y += -rect画像側.Y;\r
-                                                                               rect画像側.Height -= -rect画像側.Y;\r
-                                                                               rect画像側.Y = 0;\r
-                                                                       }\r
-                                                                       if( rect画像側.Right > sizeBMP.Width )\r
-                                                                       {\r
-                                                                               rect表示側.Width -= rect画像側.Right - sizeBMP.Width;\r
-                                                                               rect画像側.Width -= rect画像側.Right - sizeBMP.Width;\r
-                                                                       }\r
-                                                                       if( rect画像側.Bottom > sizeBMP.Height )\r
-                                                                       {\r
-                                                                               rect表示側.Height -= rect画像側.Bottom - sizeBMP.Height;\r
-                                                                               rect画像側.Height -= rect画像側.Bottom - sizeBMP.Height;\r
-                                                                       }\r
-                                                                       //----------------\r
-                                                                       #endregion\r
-\r
-                                                                       #region " 表示側の表示指定が表示域の境界をまたいでいる場合補正 "\r
-                                                                       //----------------\r
-                                                                       if( rect表示側.X < 0 )\r
-                                                                       {\r
-                                                                               rect画像側.Width -= -rect表示側.X;\r
-                                                                               rect画像側.X += -rect表示側.X;\r
-                                                                               rect表示側.Width -= rect表示側.X;\r
-                                                                               rect表示側.X = 0;\r
-                                                                       }\r
-                                                                       if( rect表示側.Y < 0 )\r
-                                                                       {\r
-                                                                               rect画像側.Height -= -rect表示側.Y;\r
-                                                                               rect画像側.Y += -rect表示側.Y;\r
-                                                                               rect表示側.Height -= -rect表示側.Y;\r
-                                                                               rect表示側.Y = 0;\r
-                                                                       }\r
-                                                                       if( rect表示側.Right > size基準.Width )\r
-                                                                       {\r
-                                                                               rect画像側.Width -= rect表示側.Right - size基準.Width;\r
-                                                                               rect表示側.Width -= rect表示側.Right - size基準.Width;\r
-                                                                       }\r
-                                                                       if( rect表示側.Bottom > size基準.Height )\r
-                                                                       {\r
-                                                                               rect画像側.Height -= rect表示側.Bottom - size基準.Height;\r
-                                                                               rect表示側.Height -= rect表示側.Bottom - size基準.Height;\r
-                                                                       }\r
-                                                                       //----------------\r
-                                                                       #endregion\r
-\r
-                                                                       if(\r
-                                                                               ( rect画像側.Width > 0 ) &&\r
-                                                                               ( rect画像側.Height > 0 ) &&\r
-                                                                               ( rect表示側.Width > 0 ) &&\r
-                                                                               ( rect表示側.Height > 0 ) &&\r
-\r
-                                                                               ( rect画像側.Right >= 0 ) &&\r
-                                                                               ( rect画像側.Bottom >= 0 ) &&\r
-                                                                               ( rect画像側.Left <= sizeBMP.Width ) &&\r
-                                                                               ( rect画像側.Top <= sizeBMP.Height ) &&\r
-                                                                               ( rect表示側.Right >= 0 ) &&\r
-                                                                               ( rect表示側.Bottom >= 0 ) &&\r
-                                                                               ( rect表示側.Left <= size基準.Width ) &&\r
-                                                                               ( rect表示側.Top <= size基準.Height )\r
-                                                                               )\r
-                                                                       {\r
-                                                                               CTexture tex = null;\r
-                                                                               if( this.stLayer[ i ].rBMP != null )\r
-                                                                               {\r
-                                                                                       tex = this.stLayer[ i ].rBMP.tx画像;\r
-                                                                               }\r
-                                                                               else if( this.stLayer[ i ].rBMPTEX != null )\r
-                                                                               {\r
-                                                                                       tex = this.stLayer[ i ].rBMPTEX.tx画像;\r
-                                                                               }\r
-                                                                               if( tex != null )\r
-                                                                               {\r
-                                                                                       //if( CDTXMania.Instance.DTX != null && !CDTXMania.Instance.DTX.bUse556x710BGAAVI )\r
-                                                                                       //{\r
-                                                                                       //      tex.vc拡大縮小倍率.X = 2.0f;\r
-                                                                                       //      tex.vc拡大縮小倍率.Y = 2.0f;\r
-                                                                                       //      tex.vc拡大縮小倍率.Z = 1.0f;\r
-                                                                                       //}\r
-\r
-                                                                                       tex.t2D描画( CDTXMania.Instance.Device, rect表示側.X, rect表示側.Y, rect画像側 );\r
-                                                                               }\r
-                                                                       }\r
-                                                               }\r
-                                                       }\r
-                                                       #endregion\r
-                                               }\r
-\r
-                                               // レンダーターゲットをバックバッファに戻す。\r
-                                               CDTXMania.Instance.Device.SetRenderTarget( 0, sfBackBuffer );\r
-                                       }\r
-                               }\r
-\r
-                               // (2) バックバッファに txBGA を描画する。\r
-\r
-                               int x = CDTXMania.Instance.ConfigIni.cdMovieX[ CDTXMania.Instance.ConfigIni.eActiveInst ];\r
-                               int y = CDTXMania.Instance.ConfigIni.cdMovieY[ CDTXMania.Instance.ConfigIni.eActiveInst ];\r
-\r
-                               txBGA.t2D描画( CDTXMania.Instance.Device, x, y );\r
-                       }\r
-                       return 0;\r
-               }\r
-\r
-\r
-       }\r
-}\r