diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/05.\351\201\270\346\233\262/CActSelect\346\233\262\343\203\252\343\202\271\343\203\210.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/05.\351\201\270\346\233\262/CActSelect\346\233\262\343\203\252\343\202\271\343\203\210.cs" index 1340eaa3f..b275f8e8f 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/05.\351\201\270\346\233\262/CActSelect\346\233\262\343\203\252\343\202\271\343\203\210.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\343\202\271\343\203\206\343\203\274\343\202\270/05.\351\201\270\346\233\262/CActSelect\346\233\262\343\203\252\343\202\271\343\203\210.cs" @@ -433,13 +433,11 @@ public void t難易度レベルをひとつ戻す() /// public void Refresh(CSongs管理 cs, bool bRemakeSongTitleBar ) // #26070 2012.2.28 yyagi { -// this.On非活性化(); - if ( cs != null && cs.list曲ルート.Count > 0 ) // 新しい曲リストを検索して、1曲以上あった { + this.On非活性化(); CDTXMania.Songs管理 = cs; - if( CDTXMania.r現在のステージ.eステージID == CStage.Eステージ.選曲 ) - this.On活性化(); + this.On活性化(); if ( this.r現在選択中の曲 != null ) // r現在選択中の曲==null とは、「最初songlist.dbが無かった or 検索したが1曲もない」 { @@ -462,7 +460,7 @@ public void Refresh(CSongs管理 cs, bool bRemakeSongTitleBar ) // #26070 2012. return; } } - this.On非活性化(); + //this.On非活性化(); this.r現在選択中の曲 = null; //this.On活性化(); } @@ -518,6 +516,8 @@ public void t選択曲が変更された( bool bForce ) // #27648 CDTXMania.stage選曲.act演奏履歴パネル.tSongChange(); } + + // CActivity 実装 public override void On活性化() @@ -583,91 +583,182 @@ public override void On非活性化() } public override void OnManagedリソースの作成() { - if( this.b活性化してない ) - return; - this.tx曲バー_JPOP = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_songboard_JPOP.png" ), false ); - this.tx曲バー_アニメ = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_songboard_anime.png" ), false ); - this.tx曲バー_ゲーム = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_songboard_game.png" ), false ); - this.tx曲バー_ナムコ = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_songboard_namco.png" ), false ); - this.tx曲バー_クラシック = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_songboard_classic.png" ), false ); - this.tx曲バー_バラエティ = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_songboard_variety.png" ), false ); - this.tx曲バー_どうよう = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_songboard_child.png" ), false ); - this.tx曲バー_ボカロ = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_songboard_vocaloid.png" ), false ); - this.tx曲バー = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_songboard.png" ), false ); - - this.tx曲バー_難易度[0] = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_songboard_Easy.png" ) ); - this.tx曲バー_難易度[1] = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_songboard_Normal.png" ) ); - this.tx曲バー_難易度[2] = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_songboard_Hard.png" ) ); - this.tx曲バー_難易度[3] = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_songboard_Master.png" ) ); - this.tx曲バー_難易度[4] = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_songboard_Edit.png" ) ); - - this.tx難易度星 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_levelstar.png" ), false ); - this.tx難易度パネル = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_level_panel.png" ), false ); - this.tx譜面分岐曲バー用 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_songboard_branch.png" ) ); - this.tx譜面分岐中央パネル用 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_center panel_branch.png" ) ); - this.txバー中央 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_center panel.png" ) ); - this.tx上部ジャンル名 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_genrename.png" ) ); - this.txレベル数字フォント = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_levelfont.png" ) ); - - this.txカーソル左 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_cursor left.png" ) ); - this.txカーソル右 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_cursor right.png" ) ); - - int c = ( CultureInfo.CurrentCulture.TwoLetterISOLanguageName == "ja" ) ? 0 : 1; - #region [ Songs not found画像 ] - try - { - using( Bitmap image = new Bitmap( 640, 128 ) ) - using( Graphics graphics = Graphics.FromImage( image ) ) - { - string[] s1 = { "曲データが見つかりません。", "Songs not found." }; - string[] s2 = { "曲データをDTXManiaGR.exe以下の", "You need to install songs." }; - string[] s3 = { "フォルダにインストールして下さい。", "" }; - graphics.DrawString( s1[c], this.ft曲リスト用フォント, Brushes.DarkGray, (float) 2f, (float) 2f ); - graphics.DrawString( s1[c], this.ft曲リスト用フォント, Brushes.White, (float) 0f, (float) 0f ); - graphics.DrawString( s2[c], this.ft曲リスト用フォント, Brushes.DarkGray, (float) 2f, (float) 44f ); - graphics.DrawString( s2[c], this.ft曲リスト用フォント, Brushes.White, (float) 0f, (float) 42f ); - graphics.DrawString( s3[c], this.ft曲リスト用フォント, Brushes.DarkGray, (float) 2f, (float) 86f ); - graphics.DrawString( s3[c], this.ft曲リスト用フォント, Brushes.White, (float) 0f, (float) 84f ); - - this.txSongNotFound = new CTexture( CDTXMania.app.Device, image, CDTXMania.TextureFormat ); - - this.txSongNotFound.vc拡大縮小倍率 = new Vector3( 0.5f, 0.5f, 1f ); // 半分のサイズで表示する。 - } - } - catch( CTextureCreateFailedException ) - { - Trace.TraceError( "SoungNotFoundテクスチャの作成に失敗しました。" ); - this.txSongNotFound = null; - } - #endregion - #region [ "曲データを検索しています"画像 ] - try - { - using ( Bitmap image = new Bitmap( 640, 96 ) ) - using ( Graphics graphics = Graphics.FromImage( image ) ) - { - string[] s1 = { "曲データを検索しています。", "Now enumerating songs." }; - string[] s2 = { "そのまましばらくお待ち下さい。", "Please wait..." }; - graphics.DrawString( s1[c], this.ft曲リスト用フォント, Brushes.DarkGray, (float) 2f, (float) 2f ); - graphics.DrawString( s1[c], this.ft曲リスト用フォント, Brushes.White, (float) 0f, (float) 0f ); - graphics.DrawString( s2[c], this.ft曲リスト用フォント, Brushes.DarkGray, (float) 2f, (float) 44f ); - graphics.DrawString( s2[c], this.ft曲リスト用フォント, Brushes.White, (float) 0f, (float) 42f ); - - this.txEnumeratingSongs = new CTexture( CDTXMania.app.Device, image, CDTXMania.TextureFormat ); - - this.txEnumeratingSongs.vc拡大縮小倍率 = new Vector3( 0.5f, 0.5f, 1f ); // 半分のサイズで表示する。 - } - } - catch ( CTextureCreateFailedException ) - { - Trace.TraceError( "txEnumeratingSongsテクスチャの作成に失敗しました。" ); - this.txEnumeratingSongs = null; - } - #endregion - #region [ 曲数表示 ] - //this.txアイテム数数字 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenSelect skill number on gauge etc.png" ), false ); - #endregion - base.OnManagedリソースの作成(); + if( !this.b活性化してない ) + { + //2018.5.3 kairera0467 + CDTXMania.tオブジェクトを確認してテクスチャを生成( ref this.tx曲バー_JPOP, CSkin.Path( @"Graphics\5_songboard_JPOP.png" ), false, false ); + CDTXMania.tオブジェクトを確認してテクスチャを生成( ref this.tx曲バー_アニメ, CSkin.Path( @"Graphics\5_songboard_anime.png" ), false, false ); + CDTXMania.tオブジェクトを確認してテクスチャを生成( ref this.tx曲バー_ゲーム, CSkin.Path( @"Graphics\5_songboard_game.png" ), false, false ); + CDTXMania.tオブジェクトを確認してテクスチャを生成( ref this.tx曲バー_ナムコ, CSkin.Path( @"Graphics\5_songboard_namco.png" ), false, false ); + CDTXMania.tオブジェクトを確認してテクスチャを生成( ref this.tx曲バー_クラシック, CSkin.Path( @"Graphics\5_songboard_classic.png" ), false, false ); + CDTXMania.tオブジェクトを確認してテクスチャを生成( ref this.tx曲バー_バラエティ, CSkin.Path( @"Graphics\5_songboard_variety.png" ), false, false ); + CDTXMania.tオブジェクトを確認してテクスチャを生成( ref this.tx曲バー_どうよう, CSkin.Path( @"Graphics\5_songboard_child.png" ), false, false ); + CDTXMania.tオブジェクトを確認してテクスチャを生成( ref this.tx曲バー_ボカロ, CSkin.Path( @"Graphics\5_songboard_vocaloid.png" ), false, false ); + CDTXMania.tオブジェクトを確認してテクスチャを生成( ref this.tx曲バー, CSkin.Path( @"Graphics\5_songboard.png" ), false, false ); + + CDTXMania.tオブジェクトを確認してテクスチャを生成( ref this.tx曲バー_難易度[ 0 ], CSkin.Path( @"Graphics\5_songboard_Easy.png" ), false, false ); + CDTXMania.tオブジェクトを確認してテクスチャを生成( ref this.tx曲バー_難易度[ 1 ], CSkin.Path( @"Graphics\5_songboard_Normal.png" ), false, false ); + CDTXMania.tオブジェクトを確認してテクスチャを生成( ref this.tx曲バー_難易度[ 2 ], CSkin.Path( @"Graphics\5_songboard_Hard.png" ), false, false ); + CDTXMania.tオブジェクトを確認してテクスチャを生成( ref this.tx曲バー_難易度[ 3 ], CSkin.Path( @"Graphics\5_songboard_Master.png" ), false, false ); + CDTXMania.tオブジェクトを確認してテクスチャを生成( ref this.tx曲バー_難易度[ 4 ], CSkin.Path( @"Graphics\5_songboard_Edit.png" ), false, false ); + + CDTXMania.tオブジェクトを確認してテクスチャを生成( ref this.tx難易度星, CSkin.Path( @"Graphics\5_levelstar.png" ), false, false ); + CDTXMania.tオブジェクトを確認してテクスチャを生成( ref this.tx難易度パネル, CSkin.Path( @"Graphics\5_level_panel.png" ), false, false ); + CDTXMania.tオブジェクトを確認してテクスチャを生成( ref this.tx譜面分岐曲バー用, CSkin.Path( @"Graphics\5_songboard_branch.png" ), false, false ); + CDTXMania.tオブジェクトを確認してテクスチャを生成( ref this.tx譜面分岐中央パネル用, CSkin.Path( @"Graphics\5_center panel_branch.png" ), false, false ); + CDTXMania.tオブジェクトを確認してテクスチャを生成( ref this.txバー中央, CSkin.Path( @"Graphics\5_center panel.png" ), false, false ); + CDTXMania.tオブジェクトを確認してテクスチャを生成( ref this.tx上部ジャンル名, CSkin.Path( @"Graphics\5_genrename.png" ), false, false ); + CDTXMania.tオブジェクトを確認してテクスチャを生成( ref this.txレベル数字フォント, CSkin.Path( @"Graphics\5_levelfont.png" ), false, false ); + + CDTXMania.tオブジェクトを確認してテクスチャを生成( ref this.txカーソル左, CSkin.Path( @"Graphics\5_cursor left.png" ), false, false ); + CDTXMania.tオブジェクトを確認してテクスチャを生成( ref this.txカーソル右, CSkin.Path( @"Graphics\5_cursor right.png" ), false, false ); + + int c = ( CultureInfo.CurrentCulture.TwoLetterISOLanguageName == "ja" ) ? 0 : 1; + + #region [ Songs not found画像 ] + try + { + using( Bitmap image = new Bitmap( 640, 128 ) ) + using( Graphics graphics = Graphics.FromImage( image ) ) + { + string[] s1 = { "曲データが見つかりません。", "Songs not found." }; + string[] s2 = { "曲データをDTXManiaGR.exe以下の", "You need to install songs." }; + string[] s3 = { "フォルダにインストールして下さい。", "" }; + graphics.DrawString( s1[c], this.ft曲リスト用フォント, Brushes.DarkGray, (float) 2f, (float) 2f ); + graphics.DrawString( s1[c], this.ft曲リスト用フォント, Brushes.White, (float) 0f, (float) 0f ); + graphics.DrawString( s2[c], this.ft曲リスト用フォント, Brushes.DarkGray, (float) 2f, (float) 44f ); + graphics.DrawString( s2[c], this.ft曲リスト用フォント, Brushes.White, (float) 0f, (float) 42f ); + graphics.DrawString( s3[c], this.ft曲リスト用フォント, Brushes.DarkGray, (float) 2f, (float) 86f ); + graphics.DrawString( s3[c], this.ft曲リスト用フォント, Brushes.White, (float) 0f, (float) 84f ); + + this.txSongNotFound = new CTexture( CDTXMania.app.Device, image, CDTXMania.TextureFormat ); + + this.txSongNotFound.vc拡大縮小倍率 = new Vector3( 0.5f, 0.5f, 1f ); // 半分のサイズで表示する。 + } + } + catch( CTextureCreateFailedException ) + { + Trace.TraceError( "SoungNotFoundテクスチャの作成に失敗しました。" ); + this.txSongNotFound = null; + } + #endregion + #region [ "曲データを検索しています"画像 ] + try + { + using ( Bitmap image = new Bitmap( 640, 96 ) ) + using ( Graphics graphics = Graphics.FromImage( image ) ) + { + string[] s1 = { "曲データを検索しています。", "Now enumerating songs." }; + string[] s2 = { "そのまましばらくお待ち下さい。", "Please wait..." }; + graphics.DrawString( s1[c], this.ft曲リスト用フォント, Brushes.DarkGray, (float) 2f, (float) 2f ); + graphics.DrawString( s1[c], this.ft曲リスト用フォント, Brushes.White, (float) 0f, (float) 0f ); + graphics.DrawString( s2[c], this.ft曲リスト用フォント, Brushes.DarkGray, (float) 2f, (float) 44f ); + graphics.DrawString( s2[c], this.ft曲リスト用フォント, Brushes.White, (float) 0f, (float) 42f ); + + this.txEnumeratingSongs = new CTexture( CDTXMania.app.Device, image, CDTXMania.TextureFormat ); + + this.txEnumeratingSongs.vc拡大縮小倍率 = new Vector3( 0.5f, 0.5f, 1f ); // 半分のサイズで表示する。 + } + } + catch ( CTextureCreateFailedException ) + { + Trace.TraceError( "txEnumeratingSongsテクスチャの作成に失敗しました。" ); + this.txEnumeratingSongs = null; + } + #endregion + #region [ 曲数表示 ] + //this.txアイテム数数字 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenSelect skill number on gauge etc.png" ), false ); + #endregion + + #region[ 以前のテクスチャ生成 ] + //this.tx曲バー_JPOP = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_songboard_JPOP.png" ), false ); + //this.tx曲バー_アニメ = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_songboard_anime.png" ), false ); + //this.tx曲バー_ゲーム = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_songboard_game.png" ), false ); + //this.tx曲バー_ナムコ = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_songboard_namco.png" ), false ); + //this.tx曲バー_クラシック = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_songboard_classic.png" ), false ); + //this.tx曲バー_バラエティ = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_songboard_variety.png" ), false ); + //this.tx曲バー_どうよう = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_songboard_child.png" ), false ); + //this.tx曲バー_ボカロ = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_songboard_vocaloid.png" ), false ); + //this.tx曲バー = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_songboard.png" ), false ); + + //this.tx曲バー_難易度[0] = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_songboard_Easy.png" ) ); + //this.tx曲バー_難易度[1] = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_songboard_Normal.png" ) ); + //this.tx曲バー_難易度[2] = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_songboard_Hard.png" ) ); + //this.tx曲バー_難易度[3] = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_songboard_Master.png" ) ); + //this.tx曲バー_難易度[4] = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_songboard_Edit.png" ) ); + + //this.tx難易度星 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_levelstar.png" ), false ); + //this.tx難易度パネル = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_level_panel.png" ), false ); + //this.tx譜面分岐曲バー用 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_songboard_branch.png" ) ); + //this.tx譜面分岐中央パネル用 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_center panel_branch.png" ) ); + //this.txバー中央 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_center panel.png" ) ); + //this.tx上部ジャンル名 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_genrename.png" ) ); + //this.txレベル数字フォント = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_levelfont.png" ) ); + + //this.txカーソル左 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_cursor left.png" ) ); + //this.txカーソル右 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\5_cursor right.png" ) ); + + //int c = ( CultureInfo.CurrentCulture.TwoLetterISOLanguageName == "ja" ) ? 0 : 1; + + #region [ Songs not found画像 ] + //try + //{ + // using( Bitmap image = new Bitmap( 640, 128 ) ) + // using( Graphics graphics = Graphics.FromImage( image ) ) + // { + // string[] s1 = { "曲データが見つかりません。", "Songs not found." }; + // string[] s2 = { "曲データをDTXManiaGR.exe以下の", "You need to install songs." }; + // string[] s3 = { "フォルダにインストールして下さい。", "" }; + // graphics.DrawString( s1[c], this.ft曲リスト用フォント, Brushes.DarkGray, (float) 2f, (float) 2f ); + // graphics.DrawString( s1[c], this.ft曲リスト用フォント, Brushes.White, (float) 0f, (float) 0f ); + // graphics.DrawString( s2[c], this.ft曲リスト用フォント, Brushes.DarkGray, (float) 2f, (float) 44f ); + // graphics.DrawString( s2[c], this.ft曲リスト用フォント, Brushes.White, (float) 0f, (float) 42f ); + // graphics.DrawString( s3[c], this.ft曲リスト用フォント, Brushes.DarkGray, (float) 2f, (float) 86f ); + // graphics.DrawString( s3[c], this.ft曲リスト用フォント, Brushes.White, (float) 0f, (float) 84f ); + + // this.txSongNotFound = new CTexture( CDTXMania.app.Device, image, CDTXMania.TextureFormat ); + + // this.txSongNotFound.vc拡大縮小倍率 = new Vector3( 0.5f, 0.5f, 1f ); // 半分のサイズで表示する。 + // } + //} + //catch( CTextureCreateFailedException ) + //{ + // Trace.TraceError( "SoungNotFoundテクスチャの作成に失敗しました。" ); + // this.txSongNotFound = null; + //} + #endregion + #region [ "曲データを検索しています"画像 ] + //try + //{ + // using ( Bitmap image = new Bitmap( 640, 96 ) ) + // using ( Graphics graphics = Graphics.FromImage( image ) ) + // { + // string[] s1 = { "曲データを検索しています。", "Now enumerating songs." }; + // string[] s2 = { "そのまましばらくお待ち下さい。", "Please wait..." }; + // graphics.DrawString( s1[c], this.ft曲リスト用フォント, Brushes.DarkGray, (float) 2f, (float) 2f ); + // graphics.DrawString( s1[c], this.ft曲リスト用フォント, Brushes.White, (float) 0f, (float) 0f ); + // graphics.DrawString( s2[c], this.ft曲リスト用フォント, Brushes.DarkGray, (float) 2f, (float) 44f ); + // graphics.DrawString( s2[c], this.ft曲リスト用フォント, Brushes.White, (float) 0f, (float) 42f ); + + // this.txEnumeratingSongs = new CTexture( CDTXMania.app.Device, image, CDTXMania.TextureFormat ); + + // this.txEnumeratingSongs.vc拡大縮小倍率 = new Vector3( 0.5f, 0.5f, 1f ); // 半分のサイズで表示する。 + // } + //} + //catch ( CTextureCreateFailedException ) + //{ + // Trace.TraceError( "txEnumeratingSongsテクスチャの作成に失敗しました。" ); + // this.txEnumeratingSongs = null; + //} + #endregion + #region [ 曲数表示 ] + //this.txアイテム数数字 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenSelect skill number on gauge etc.png" ), false ); + #endregion + #endregion + + + base.OnManagedリソースの作成(); + } } public override void OnManagedリソースの解放() { @@ -1132,7 +1223,8 @@ public override int On進行描画() } if( this.stバー情報[ nパネル番号 ].b分岐[ CDTXMania.stage選曲.n現在選択中の曲の難易度 ] == true && i != 5 ) { - this.tx譜面分岐曲バー用.t2D描画( CDTXMania.app.Device, this.ptバーの座標[ nパネル番号 ].X + 76, 133 ); + if( this.tx譜面分岐曲バー用 != null ) + this.tx譜面分岐曲バー用.t2D描画( CDTXMania.app.Device, this.ptバーの座標[ nパネル番号 ].X + 76, 133 ); } if( this.stバー情報[ nパネル番号 ].ar難易度 != null ) { @@ -1190,27 +1282,28 @@ public override int On進行描画() #region [ バーテクスチャを描画。] //----------------- - if( this.stバー情報[ nパネル番号 ].eバー種別 == Eバー種別.Score && CDTXMania.stage選曲.actSortSongs.e現在のソート == CActSortSongs.EOrder.Title ) - { - this.tジャンル別選択されていない曲バーの描画( xAnime, 137, "難易度ソート" ); - } - else if( this.stバー情報[ nパネル番号 ].eバー種別 != Eバー種別.Score || CDTXMania.stage選曲.actSortSongs.e現在のソート == CActSortSongs.EOrder.Title ) - { - this.tジャンル別選択されていない曲バーの描画( xAnime, 137, "" ); - } - else - { - //this.tジャンル別バーの描画( x, y, this.stバー情報[ nパネル番号 ].strジャンル ); - //this.tジャンル別選択されていない曲バーの描画( this.ptバーの座標[ n見た目の行番号 ].X, 180, this.stバー情報[ nパネル番号 ].strジャンル ); - this.tジャンル別選択されていない曲バーの描画( xAnime, 137, this.stバー情報[ nパネル番号 ].strジャンル ); - } - if( this.stバー情報[ nパネル番号 ].b分岐[ CDTXMania.stage選曲.n現在選択中の曲の難易度 ] == true && i != 5 ) + if( this.stバー情報[ nパネル番号 ].ar難易度 != null ) { - //this.tx譜面分岐曲バー用.t2D描画( CDTXMania.app.Device, this.ptバーの座標[ n見た目の行番号 ].X + 76, 160 ); - this.tx譜面分岐曲バー用.t2D描画( CDTXMania.app.Device, xAnime + 76, 133 ); + if( this.stバー情報[ nパネル番号 ].eバー種別 == Eバー種別.Score && CDTXMania.stage選曲.actSortSongs.e現在のソート == CActSortSongs.EOrder.Title ) + { + this.tジャンル別選択されていない曲バーの描画( xAnime, 137, "難易度ソート" ); + } + else if( this.stバー情報[ nパネル番号 ].eバー種別 != Eバー種別.Score || CDTXMania.stage選曲.actSortSongs.e現在のソート == CActSortSongs.EOrder.Title ) + { + this.tジャンル別選択されていない曲バーの描画( xAnime, 137, "" ); + } + else + { + //this.tジャンル別バーの描画( x, y, this.stバー情報[ nパネル番号 ].strジャンル ); + //this.tジャンル別選択されていない曲バーの描画( this.ptバーの座標[ n見た目の行番号 ].X, 180, this.stバー情報[ nパネル番号 ].strジャンル ); + this.tジャンル別選択されていない曲バーの描画( xAnime, 137, this.stバー情報[ nパネル番号 ].strジャンル ); + } + if( this.stバー情報[ nパネル番号 ].b分岐[ CDTXMania.stage選曲.n現在選択中の曲の難易度 ] == true && i != 5 ) + { + //this.tx譜面分岐曲バー用.t2D描画( CDTXMania.app.Device, this.ptバーの座標[ n見た目の行番号 ].X + 76, 160 ); + this.tx譜面分岐曲バー用.t2D描画( CDTXMania.app.Device, xAnime + 76, 133 ); + } } - - //----------------- #endregion #region [ タイトル名テクスチャを描画。] @@ -1730,6 +1823,9 @@ private void tバーの初期化() for( int i = 0; i < 5; i++ ) song = this.r前の曲( song ); + if( song == null ) + return; + for( int i = 0; i < 13; i++ ) { this.stバー情報[ i ].strタイトル文字列 = song.strタイトル; diff --git "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\345\205\250\344\275\223/CDTXMania.cs" "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\345\205\250\344\275\223/CDTXMania.cs" index 30c16eca1..5beda70fd 100644 --- "a/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\345\205\250\344\275\223/CDTXMania.cs" +++ "b/DTXMania\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210/\343\202\263\343\203\274\343\203\211/\345\205\250\344\275\223/CDTXMania.cs" @@ -1568,6 +1568,44 @@ public static CTexture tテクスチャの生成( string fileName, bool b黒を return null; } } + /// + /// 既にオブジェクトにテクスチャが生成されているかを確認してからテクスチャを生成する。 + /// 渡したtextureに既にテクスチャが生成されていた場合、「b強制的に生成する」をtrueにしていなければ生成を行いません。 + /// + /// 生成先のオブジェクト + /// 読み込むファイル名 + /// trueの場合、#000000を透過します。(bmp形式向け) + /// trueの場合、渡したオブジェクトにテクスチャが生成されていても、一度Disposeを行って生成します。 + public static void tオブジェクトを確認してテクスチャを生成( ref CTexture texture, string fileName, bool b黒を透過する, bool b強制的に生成する ) + { + if ( app == null ) + { + texture = null; + } + try + { + if( ( texture != null ) && b強制的に生成する ) { + CDTXMania.t安全にDisposeする( ref texture ); + Trace.TraceWarning( "既にテクスチャが生成されていたため一度解放を行いました。({0})", fileName ); + } + if( texture == null ) { + texture = new CTexture( app.Device, fileName, TextureFormat, b黒を透過する ); + } + else { + Trace.TraceWarning( "既にテクスチャが生成されていたためテクスチャの生成をスキップしました。({0})", fileName ); + } + } + catch ( CTextureCreateFailedException ) + { + Trace.TraceError( "テクスチャの生成に失敗しました。({0})", fileName ); + texture = null; + } + catch ( FileNotFoundException ) + { + Trace.TraceError( "テクスチャファイルが見つかりませんでした。({0})", fileName ); + texture = null; + } + } public static void tテクスチャの解放( ref CTexture tx ) { CDTXMania.t安全にDisposeする( ref tx ); diff --git "a/\345\256\237\350\241\214\346\231\202\343\203\225\343\202\251\343\203\253\343\203\200/DTXManiaGR.exe" "b/\345\256\237\350\241\214\346\231\202\343\203\225\343\202\251\343\203\253\343\203\200/DTXManiaGR.exe" index d79504475..51521b9e1 100644 Binary files "a/\345\256\237\350\241\214\346\231\202\343\203\225\343\202\251\343\203\253\343\203\200/DTXManiaGR.exe" and "b/\345\256\237\350\241\214\346\231\202\343\203\225\343\202\251\343\203\253\343\203\200/DTXManiaGR.exe" differ diff --git "a/\345\256\237\350\241\214\346\231\202\343\203\225\343\202\251\343\203\253\343\203\200/dll/FDK.dll" "b/\345\256\237\350\241\214\346\231\202\343\203\225\343\202\251\343\203\253\343\203\200/dll/FDK.dll" index 2891ab835..b4a8cf5ef 100644 Binary files "a/\345\256\237\350\241\214\346\231\202\343\203\225\343\202\251\343\203\253\343\203\200/dll/FDK.dll" and "b/\345\256\237\350\241\214\346\231\202\343\203\225\343\202\251\343\203\253\343\203\200/dll/FDK.dll" differ