#region [ 汎用ヘルパー ]
//-----------------
#region [ tテクスチャの生成 ]
- public static CTexture tテクスチャの生成(string fileName)
+ public static CTexture tテクスチャの生成(string fileName, string _label = "" )
{
- return tテクスチャの生成(fileName, false);
+ return tテクスチャの生成(fileName, false, _label);
}
- public static CTexture tテクスチャの生成(string fileName, bool b黒を透過する)
+ public static CTexture tテクスチャの生成(string fileName, bool b黒を透過する, string _label = "")
{
if (CDTXMania.Instance == null)
{
}
try
{
- return new CTexture(CDTXMania.Instance.Device, fileName, CDTXMania.Instance.TextureFormat, b黒を透過する);
+ return new CTexture(CDTXMania.Instance.Device, fileName, CDTXMania.Instance.TextureFormat, b黒を透過する, _label);
}
catch (CTextureCreateFailedException)
{
}
}
- public static CTextureAf tテクスチャの生成Af(string fileName)
+ public static CTextureAf tテクスチャの生成Af(string fileName, string _label = "")
{
- return tテクスチャの生成Af(fileName, false);
+ return tテクスチャの生成Af(fileName, false, _label);
}
- public static CTextureAf tテクスチャの生成Af(string fileName, bool b黒を透過する)
+ public static CTextureAf tテクスチャの生成Af(string fileName, bool b黒を透過する, string _label = "")
{
if (CDTXMania.Instance == null)
{
}
try
{
- return new CTextureAf(CDTXMania.Instance.Device, fileName, CDTXMania.Instance.TextureFormat, b黒を透過する);
+ return new CTextureAf(CDTXMania.Instance.Device, fileName, CDTXMania.Instance.TextureFormat, b黒を透過する, _label);
}
catch (CTextureCreateFailedException)
{
t安全にDisposeする(ref tx);
}
- public static CTexture tテクスチャの生成(byte[] txData)
+ public static CTexture tテクスチャの生成(byte[] txData, string _label = "")
{
- return tテクスチャの生成(txData, false);
+ return tテクスチャの生成(txData, false, _label);
}
- public static CTexture tテクスチャの生成(byte[] txData, bool b黒を透過する)
+ public static CTexture tテクスチャの生成(byte[] txData, bool b黒を透過する, string _label = "")
{
if (CDTXMania.Instance == null)
{
}
try
{
- return new CTexture(CDTXMania.Instance.Device, txData, CDTXMania.Instance.TextureFormat, b黒を透過する);
+ return new CTexture(CDTXMania.Instance.Device, txData, CDTXMania.Instance.TextureFormat, b黒を透過する, _label);
}
catch (CTextureCreateFailedException)
{
}
}
- public static CTexture tテクスチャの生成(Bitmap bitmap)
+ public static CTexture tテクスチャの生成(Bitmap bitmap, string _label = "")
{
- return tテクスチャの生成(bitmap, false);
+ return tテクスチャの生成(bitmap, false, _label);
}
- public static CTexture tテクスチャの生成(Bitmap bitmap, bool b黒を透過する)
+ public static CTexture tテクスチャの生成(Bitmap bitmap, bool b黒を透過する, string _label = "")
{
if (CDTXMania.Instance == null)
{
}
try
{
- return new CTexture(CDTXMania.Instance.Device, bitmap, CDTXMania.Instance.TextureFormat, b黒を透過する);
+ return new CTexture(CDTXMania.Instance.Device, bitmap, CDTXMania.Instance.TextureFormat, b黒を透過する, _label);
}
catch (CTextureCreateFailedException)
{
}
public Vector3 vc拡大縮小倍率;
public string filename;
+ public string label;
#endregion
// コンストラクタ
this.bFlipY = false;
// this._txData = null;
this.filename = "";
+ this.label = "";
}
/// <summary>
/// <param name="bitmap">作成元のビットマップ。</param>
/// <param name="format">テクスチャのフォーマット。</param>
/// <exception cref="CTextureCreateFailedException">テクスチャの作成に失敗しました。</exception>
- public CTexture( Device device, Bitmap bitmap, Format format )
+ public CTexture( Device device, Bitmap bitmap, Format format, string _label="" )
: this()
{
try
{
this.Format = format;
+ this.label = _label;
this.sz画像サイズ = new Size( bitmap.Width, bitmap.Height );
this.szテクスチャサイズ = this.t指定されたサイズを超えない最適なテクスチャサイズを返す( device, this.sz画像サイズ );
this.rc全画像 = new Rectangle( 0, 0, this.sz画像サイズ.Width, this.sz画像サイズ.Height );
/// <param name="n高さ">テクスチャの高さ(希望値)。</param>
/// <param name="format">テクスチャのフォーマット。</param>
/// <exception cref="CTextureCreateFailedException">テクスチャの作成に失敗しました。</exception>
- public CTexture( Device device, int n幅, int n高さ, Format format )
- : this( device, n幅, n高さ, format, Pool.Managed )
+ public CTexture( Device device, int n幅, int n高さ, Format format, string _label = "")
+ : this( device, n幅, n高さ, format, Pool.Managed, _label)
{
}
/// <param name="format">テクスチャのフォーマット。</param>
/// <param name="b黒を透過する">画像の黒(0xFFFFFFFF)を透過させるなら true。</param>
/// <exception cref="CTextureCreateFailedException">テクスチャの作成に失敗しました。</exception>
- public CTexture( Device device, string strファイル名, Format format, bool b黒を透過する )
- : this( device, strファイル名, format, b黒を透過する, Pool.Managed )
+ public CTexture( Device device, string strファイル名, Format format, bool b黒を透過する, string _label = "")
+ : this( device, strファイル名, format, b黒を透過する, Pool.Managed, _label)
{
}
- public CTexture( Device device, byte[] txData, Format format, bool b黒を透過する )
- : this( device, txData, format, b黒を透過する, Pool.Managed )
+ public CTexture( Device device, byte[] txData, Format format, bool b黒を透過する, string _label = "")
+ : this( device, txData, format, b黒を透過する, Pool.Managed, _label)
{
}
- public CTexture( Device device, Bitmap bitmap, Format format, bool b黒を透過する )
- : this( device, bitmap, format, b黒を透過する, Pool.Managed )
+ public CTexture( Device device, Bitmap bitmap, Format format, bool b黒を透過する, string _label = "")
+ : this( device, bitmap, format, b黒を透過する, Pool.Managed, _label)
{
}
/// <param name="format">テクスチャのフォーマット。</param>
/// <param name="pool">テクスチャの管理方法。</param>
/// <exception cref="CTextureCreateFailedException">テクスチャの作成に失敗しました。</exception>
- public CTexture( Device device, int n幅, int n高さ, Format format, Pool pool )
- : this( device, n幅, n高さ, format, pool, Usage.None, false )
+ public CTexture( Device device, int n幅, int n高さ, Format format, Pool pool, string _label = "")
+ : this( device, n幅, n高さ, format, pool, Usage.None, false, _label)
{
}
- public CTexture( Device device, int n幅, int n高さ, Format format, Pool pool, Usage usage, bool b黒を透過する )
+ public CTexture( Device device, int n幅, int n高さ, Format format, Pool pool, Usage usage, bool b黒を透過する, string _label = "")
: this()
{
try
{
this.Format = format;
+ this.label = _label;
this.sz画像サイズ = new Size( n幅, n高さ );
this.szテクスチャサイズ = this.t指定されたサイズを超えない最適なテクスチャサイズを返す( device, this.sz画像サイズ );
this.rc全画像 = new Rectangle( 0, 0, this.sz画像サイズ.Width, this.sz画像サイズ.Height );
/// <param name="b黒を透過する">画像の黒(0xFFFFFFFF)を透過させるなら true。</param>
/// <param name="pool">テクスチャの管理方法。</param>
/// <exception cref="CTextureCreateFailedException">テクスチャの作成に失敗しました。</exception>
- public CTexture( Device device, string strファイル名, Format format, bool b黒を透過する, Pool pool )
+ public CTexture( Device device, string strファイル名, Format format, bool b黒を透過する, Pool pool, string _label = "")
: this()
{
- MakeTexture( device, strファイル名, format, b黒を透過する, pool );
+ MakeTexture( device, strファイル名, format, b黒を透過する, pool, _label );
}
- public void MakeTexture( Device device, string strファイル名, Format format, bool b黒を透過する, Pool pool )
+ public void MakeTexture( Device device, string strファイル名, Format format, bool b黒を透過する, Pool pool, string _label = "")
{
if ( !File.Exists( strファイル名 ) ) // #27122 2012.1.13 from: ImageInformation では FileNotFound 例外は返ってこないので、ここで自分でチェックする。わかりやすいログのために。
throw new FileNotFoundException( string.Format( "ファイルが存在しません。\n[{0}]", strファイル名 ) );
Byte[] _txData = File.ReadAllBytes( strファイル名 );
this.filename = Path.GetFileName( strファイル名 );
- MakeTexture( device, _txData, format, b黒を透過する, pool );
+ MakeTexture( device, _txData, format, b黒を透過する, pool, _label );
}
- public CTexture( Device device, byte[] txData, Format format, bool b黒を透過する, Pool pool )
+ public CTexture( Device device, byte[] txData, Format format, bool b黒を透過する, Pool pool, string _label = "")
: this()
{
- MakeTexture( device, txData, format, b黒を透過する, pool );
+ MakeTexture( device, txData, format, b黒を透過する, pool, _label );
}
- public void MakeTexture( Device device, byte[] txData, Format format, bool b黒を透過する, Pool pool )
+ public void MakeTexture( Device device, byte[] txData, Format format, bool b黒を透過する, Pool pool, string _label = "")
{
try
{
var information = ImageInformation.FromMemory( txData );
this.Format = format;
+ this.label = _label;
this.sz画像サイズ = new Size( information.Width, information.Height );
this.rc全画像 = new Rectangle( 0, 0, this.sz画像サイズ.Width, this.sz画像サイズ.Height );
int colorKey = ( b黒を透過する ) ? unchecked( (int) 0xFF000000 ) : 0;
}
}
- public CTexture( Device device, Bitmap bitmap, Format format, bool b黒を透過する, Pool pool )
+ public CTexture( Device device, Bitmap bitmap, Format format, bool b黒を透過する, Pool pool, string _label = "")
: this()
{
- MakeTexture( device, bitmap, format, b黒を透過する, pool );
+ MakeTexture( device, bitmap, format, b黒を透過する, pool, _label );
}
- public void MakeTexture( Device device, Bitmap bitmap, Format format, bool b黒を透過する, Pool pool )
+ public void MakeTexture( Device device, Bitmap bitmap, Format format, bool b黒を透過する, Pool pool, string _label = "")
{
try
{
this.Format = format;
+ this.label = _label;
this.sz画像サイズ = new Size( bitmap.Width, bitmap.Height );
this.rc全画像 = new Rectangle( 0, 0, this.sz画像サイズ.Width, this.sz画像サイズ.Height );
int colorKey = ( b黒を透過する ) ? unchecked( (int) 0xFF000000 ) : 0;
// CTextureのDispose漏れと見做して警告をログ出力する
if (!this.bSharpDXTextureDispose完了済み)
{
- Trace.TraceWarning("CTexture: Dispose漏れを検出しました。(Size=({0}, {1}), filename={2})", sz画像サイズ.Width, sz画像サイズ.Height, filename );
+ Trace.TraceWarning("CTexture: Dispose漏れを検出しました。(Size=({0}, {1}), filename={2}, label={3})", sz画像サイズ.Width, sz画像サイズ.Height, filename, label );
}
this.Dispose(false);
}
/// <param name="format">テクスチャのフォーマット。</param>
/// <param name="b黒を透過する">画像の黒(0xFFFFFFFF)を透過させるなら true。</param>
/// <exception cref="CTextureCreateFailedException">テクスチャの作成に失敗しました。</exception>
- public CTextureAf( Device device, string strファイル名, Format format, bool b黒を透過する )
- : this( device, strファイル名, format, b黒を透過する, Pool.Managed )
+ public CTextureAf( Device device, string strファイル名, Format format, bool b黒を透過する, string _label = "")
+ : this( device, strファイル名, format, b黒を透過する, Pool.Managed, _label )
{
}
/// <param name="b黒を透過する">画像の黒(0xFFFFFFFF)を透過させるなら true。</param>
/// <param name="pool">テクスチャの管理方法。</param>
/// <exception cref="CTextureCreateFailedException">テクスチャの作成に失敗しました。</exception>
- public CTextureAf( Device device, string strファイル名, Format format, bool b黒を透過する, Pool pool )
+ public CTextureAf( Device device, string strファイル名, Format format, bool b黒を透過する, Pool pool, string _label = "")
{
- MakeTexture( device, strファイル名, format, b黒を透過する, pool );
+ MakeTexture( device, strファイル名, format, b黒を透過する, pool, _label );
}
- public new void MakeTexture( Device device, string strファイル名, Format format, bool b黒を透過する, Pool pool )
+ public new void MakeTexture( Device device, string strファイル名, Format format, bool b黒を透過する, Pool pool, string _label = "")
{
if ( !File.Exists( strファイル名 ) ) // #27122 2012.1.13 from: ImageInformation では FileNotFound 例外は返ってこないので、ここで自分でチェックする。わかりやすいログのために。
throw new FileNotFoundException( string.Format( "ファイルが存在しません。\n[{0}]", strファイル名 ) );
if ( !bサイズは2の累乗でなければならない && b条件付きでサイズは2の累乗でなくてもOK )
{
//Debug.WriteLine( Path.GetFileName( strファイル名 ) + ": 最適化は不要です。" );
- base.MakeTexture( device, strファイル名, format, b黒を透過する, pool );
+ base.MakeTexture( device, strファイル名, format, b黒を透過する, pool, _label);
return;
}
g = null;
bmpOrg.Dispose();
bmpOrg = null;
- base.MakeTexture( device, bmpNew, format, b黒を透過する, pool );
+ base.MakeTexture( device, bmpNew, format, b黒を透過する, pool, _label );
bmpNew.Dispose();
bmpNew = null;
#endregion