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