using System.Diagnostics;\r
using System.Runtime.InteropServices;\r
using System.IO;\r
+using System.Drawing;\r
using System.Threading;\r
+using System.Globalization;\r
using System.Runtime.Serialization.Formatters.Binary;\r
-using SlimDX;\r
-using SlimDX.Direct3D9;\r
+using SharpDX;\r
+using SharpDX.Direct3D9;\r
using FDK;\r
using SampleFramework;\r
\r
namespace DTXMania\r
{\r
- internal class CActEnumSongs : CActivity\r
+ internal class CActEnumSongs : CActivity\r
{\r
+ public bool bコマンドでの曲データ取得;\r
+\r
\r
/// <summary>\r
/// Constructor\r
/// </summary>\r
public CActEnumSongs()\r
{\r
+ Init(false);\r
+ }\r
+\r
+ public CActEnumSongs(bool _bコマンドでの曲データ取得)\r
+ {\r
+ Init(_bコマンドでの曲データ取得);\r
+ }\r
+ private void Init(bool _bコマンドでの曲データ取得)\r
+ {\r
base.b活性化してない = true;\r
+ bコマンドでの曲データ取得 = _bコマンドでの曲データ取得;\r
}\r
\r
// CActivity 実装\r
\r
public override void On活性化()\r
{\r
- if ( this.b活性化してる )\r
+ if (this.b活性化してる)\r
return;\r
base.On活性化();\r
\r
try\r
{\r
- this.ctNowEnumeratingSongs = new CCounter(); // 0, 1000, 17, CDTXMania.Timer );\r
- this.ctNowEnumeratingSongs.t開始( 0, 100, 17, CDTXMania.Timer );\r
+ this.ctNowEnumeratingSongs = new CCounter(); // 0, 1000, 17, CDTXMania.Instance.Timer );\r
+ this.ctNowEnumeratingSongs.t開始(0, 100, 17, CDTXMania.Instance.Timer);\r
}\r
finally\r
{\r
}\r
public override void On非活性化()\r
{\r
- if ( this.b活性化してない )\r
+ if (this.b活性化してない)\r
return;\r
base.On非活性化();\r
this.ctNowEnumeratingSongs = null;\r
}\r
public override void OnManagedリソースの作成()\r
{\r
- if ( this.b活性化してない )\r
+ if (this.b活性化してない)\r
return;\r
- this.txNowEnumeratingSongs = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenTitle NowEnumeratingSongs.png" ), false );\r
+ string pathNowEnumeratingSongs = CSkin.Path(@"Graphics\ScreenTitle NowEnumeratingSongs.png");\r
+ if (File.Exists(pathNowEnumeratingSongs))\r
+ {\r
+ this.txNowEnumeratingSongs = TextureFactory.tテクスチャの生成(pathNowEnumeratingSongs, false);\r
+ }\r
+ else\r
+ {\r
+ this.txNowEnumeratingSongs = null;\r
+ }\r
+ string pathDialogNowEnumeratingSongs = CSkin.Path(@"Graphics\ScreenConfig NowEnumeratingSongs.png");\r
+ if (File.Exists(pathDialogNowEnumeratingSongs))\r
+ {\r
+ this.txDialogNowEnumeratingSongs = TextureFactory.tテクスチャの生成(pathDialogNowEnumeratingSongs, false);\r
+ }\r
+ else\r
+ {\r
+ this.txDialogNowEnumeratingSongs = null;\r
+ }\r
+ try\r
+ {\r
+ System.Drawing.Font ftMessage = new System.Drawing.Font( @"MS PGothic", 40.0f, FontStyle.Bold, GraphicsUnit.Pixel );\r
+ string strMessage = CDTXMania.Instance.Resources.Explanation("strEnumeratingSongs");\r
+ if ( ( strMessage != null ) && ( strMessage.Length > 0 ) )\r
+ {\r
+ Bitmap image = new Bitmap(1, 1);\r
+ Graphics graphics = Graphics.FromImage(image);\r
+ SizeF ef = graphics.MeasureString(strMessage, ftMessage);\r
+ Size size = new Size( (int) Math.Ceiling( (double) ef.Width ), (int) Math.Ceiling( (double) ef.Height ) );\r
+ graphics.Dispose();\r
+ image.Dispose();\r
+ image = new Bitmap(size.Width, size.Height);\r
+ graphics = Graphics.FromImage(image);\r
+ graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;\r
+ graphics.DrawString(strMessage, ftMessage, Brushes.White, (float) 0f, (float) 0f);\r
+ graphics.Dispose();\r
+ this.txMessage = new CTexture(CDTXMania.Instance.Device, image, CDTXMania.Instance.TextureFormat);\r
+ image.Dispose();\r
+ TextureFactory.t安全にDisposeする(ref ftMessage);\r
+ }\r
+ else\r
+ {\r
+ this.txMessage = null;\r
+ }\r
+ }\r
+ catch (CTextureCreateFailedException)\r
+ {\r
+ Trace.TraceError("テクスチャの生成に失敗しました。(txMessage)");\r
+ this.txMessage = null;\r
+ }\r
+\r
base.OnManagedリソースの作成();\r
}\r
public override void OnManagedリソースの解放()\r
{\r
- if ( this.b活性化してない )\r
+ if (this.b活性化してない)\r
return;\r
\r
- CDTXMania.t安全にDisposeする( ref this.txNowEnumeratingSongs );\r
+ TextureFactory.t安全にDisposeする(ref this.txDialogNowEnumeratingSongs);\r
+ TextureFactory.t安全にDisposeする(ref this.txNowEnumeratingSongs);\r
+ TextureFactory.t安全にDisposeする(ref this.txMessage);\r
base.OnManagedリソースの解放();\r
}\r
\r
public override int On進行描画()\r
{\r
- if ( this.b活性化してない )\r
+ if (this.b活性化してない)\r
{\r
return 0;\r
}\r
this.ctNowEnumeratingSongs.t進行Loop();\r
- if ( this.txNowEnumeratingSongs != null )\r
+ if (this.txNowEnumeratingSongs != null)\r
+ {\r
+ this.txNowEnumeratingSongs.n透明度 = (int)(176.0 + 80.0 * Math.Sin((double)(2 * Math.PI * this.ctNowEnumeratingSongs.n現在の値 * 2 / 100.0)));\r
+ this.txNowEnumeratingSongs.t2D描画(CDTXMania.Instance.Device, 18, 7);\r
+ }\r
+ if (bコマンドでの曲データ取得 && this.txDialogNowEnumeratingSongs != null)\r
{\r
- // this.txNowEnumeratingSongs.n透明度 = (int) ( 255.0 * ( 1.0 - ( ( (double) this.ctNowEnumeratingSongs.n現在の値 ) / 100.0 ) ) );\r
- this.txNowEnumeratingSongs.n透明度 = (int) ( 128.0 + 127.0 * Math.Sin( (double) (2 * Math.PI * this.ctNowEnumeratingSongs.n現在の値 / 100.0 ) ) );\r
- this.txNowEnumeratingSongs.t2D描画( CDTXMania.app.Device, 0, 0 );\r
+ this.txDialogNowEnumeratingSongs.t2D描画(CDTXMania.Instance.Device, 500, 300);\r
+ this.txMessage.t2D描画(CDTXMania.Instance.Device, 540, 320);\r
}\r
\r
return 0;\r
\r
private CCounter ctNowEnumeratingSongs;\r
private CTexture txNowEnumeratingSongs = null;\r
+ private CTexture txDialogNowEnumeratingSongs = null;\r
+ private CTexture txMessage;\r
}\r
}\r