2 using System.Collections.Generic;
4 using System.Windows.Forms;
6 namespace DTXCreator.WAV_BMP_AVI
8 internal class CBMPキャッシュ
10 public Dictionary<int, CBMP> dicBMPディクショナリ = new Dictionary<int, CBMP>();
11 public int n現在のキャッシュアイテム数
15 if( this.dicBMPディクショナリ == null )
19 return this.dicBMPディクショナリ.Count;
23 public CBMP tBMPをキャッシュから検索して返す( int nBMP番号1to1295 )
26 if( ( nBMP番号1to1295 < 1 ) || ( nBMP番号1to1295 > 36 * 36 - 1 ) )
28 throw new Exception( "BMP番号が範囲を超えています。-> [" + nBMP番号1to1295 + "]" );
30 if( this.dicBMPディクショナリ.TryGetValue( nBMP番号1to1295, out cbmp ) )
36 public CBMP tBMPをキャッシュから検索して返す_なければ新規生成する( int nBMP番号1to1295 )
38 if( ( nBMP番号1to1295 < 1 ) || ( nBMP番号1to1295 > 36 * 36 - 1 ) )
40 throw new Exception( "BMP番号が範囲を超えています。-> [" + nBMP番号1to1295 + "]" );
43 if( !this.dicBMPディクショナリ.TryGetValue( nBMP番号1to1295, out cbmp ) )
46 cbmp.nBMP番号1to1295 = nBMP番号1to1295;
47 this.tキャッシュに追加する( cbmp );
51 public void tBMPをキャッシュから削除する( int nBMP番号1to1295 )
53 if( ( nBMP番号1to1295 < 1 ) || ( nBMP番号1to1295 > 36 * 36 - 1 ) )
55 throw new Exception( "BMP番号が範囲を超えています。-> [" + nBMP番号1to1295 + "]" );
58 if( this.dicBMPディクショナリ.TryGetValue( nBMP番号1to1295, out cbmp ) )
60 this.dicBMPディクショナリ.Remove( nBMP番号1to1295 );
63 public void tキャッシュに追加する( CBMP bc追加するBMP )
66 if( this.dicBMPディクショナリ.TryGetValue( bc追加するBMP.nBMP番号1to1295, out cbmp ) )
68 this.dicBMPディクショナリ.Remove( bc追加するBMP.nBMP番号1to1295 );
70 this.dicBMPディクショナリ.Add( bc追加するBMP.nBMP番号1to1295, bc追加するBMP );
72 public void tキャッシュに追加する( ListViewItem lvi )
74 CBMP cbmp = new CBMP();
76 this.tキャッシュに追加する( cbmp );
80 this.dicBMPディクショナリ.Clear();