+++ /dev/null
-using System;\r
-using System.Diagnostics;\r
-using System.IO;\r
-using FDK;\r
-using System.Drawing;\r
-\r
-namespace DTXMania\r
-{\r
- public class TextureFactory\r
- {\r
-\r
- #region [ 汎用ヘルパー ]\r
- //-----------------\r
- #region [ tテクスチャの生成 ]\r
- public static CTexture tテクスチャの生成(string fileName)\r
- {\r
- return tテクスチャの生成(fileName, false);\r
- }\r
-\r
- public static CTexture tテクスチャの生成(string fileName, bool b黒を透過する)\r
- {\r
- if (CDTXMania.Instance == null)\r
- {\r
- return null;\r
- }\r
- try\r
- {\r
- return new CTexture(CDTXMania.Instance.Device, fileName, CDTXMania.Instance.TextureFormat, b黒を透過する);\r
- }\r
- catch (CTextureCreateFailedException)\r
- {\r
- Trace.TraceError("テクスチャの生成に失敗しました。({0})", fileName);\r
- return null;\r
- }\r
- catch (FileNotFoundException)\r
- {\r
- Trace.TraceError("テクスチャファイルが見つかりませんでした。({0})", fileName);\r
- return null;\r
- }\r
- }\r
-\r
- public static CTextureAf tテクスチャの生成Af(string fileName)\r
- {\r
- return tテクスチャの生成Af(fileName, false);\r
- }\r
-\r
- public static CTextureAf tテクスチャの生成Af(string fileName, bool b黒を透過する)\r
- {\r
- if (CDTXMania.Instance == null)\r
- {\r
- return null;\r
- }\r
- try\r
- {\r
- return new CTextureAf(CDTXMania.Instance.Device, fileName, CDTXMania.Instance.TextureFormat, b黒を透過する);\r
- }\r
- catch (CTextureCreateFailedException)\r
- {\r
- Trace.TraceError("テクスチャの生成に失敗しました。({0})", fileName);\r
- return null;\r
- }\r
- catch (FileNotFoundException)\r
- {\r
- Trace.TraceError("テクスチャファイルが見つかりませんでした。({0})", fileName);\r
- return null;\r
- }\r
- }\r
-\r
- public static void tテクスチャの解放(ref CTexture tx)\r
- {\r
- t安全にDisposeする(ref tx);\r
- }\r
-\r
- public static void tテクスチャの解放(ref CTextureAf tx)\r
- {\r
- t安全にDisposeする(ref tx);\r
- }\r
-\r
- public static CTexture tテクスチャの生成(byte[] txData)\r
- {\r
- return tテクスチャの生成(txData, false);\r
- }\r
-\r
- public static CTexture tテクスチャの生成(byte[] txData, bool b黒を透過する)\r
- {\r
- if (CDTXMania.Instance == null)\r
- {\r
- return null;\r
- }\r
- if (txData == null)\r
- {\r
- Trace.TraceError("テクスチャの生成に失敗しました。(txData==null)");\r
- return null;\r
- }\r
- try\r
- {\r
- return new CTexture(CDTXMania.Instance.Device, txData, CDTXMania.Instance.TextureFormat, b黒を透過する);\r
- }\r
- catch (CTextureCreateFailedException)\r
- {\r
- Trace.TraceError("テクスチャの生成に失敗しました。(txData)");\r
- return null;\r
- }\r
- }\r
-\r
- public static CTexture tテクスチャの生成(Bitmap bitmap)\r
- {\r
- return tテクスチャの生成(bitmap, false);\r
- }\r
-\r
- public static CTexture tテクスチャの生成(Bitmap bitmap, bool b黒を透過する)\r
- {\r
- if (CDTXMania.Instance == null)\r
- {\r
- return null;\r
- }\r
- if (bitmap == null)\r
- {\r
- Trace.TraceError("テクスチャの生成に失敗しました。(bitmap==null)");\r
- return null;\r
- }\r
- try\r
- {\r
- return new CTexture(CDTXMania.Instance.Device, bitmap, CDTXMania.Instance.TextureFormat, b黒を透過する);\r
- }\r
- catch (CTextureCreateFailedException)\r
- {\r
- Trace.TraceError("テクスチャの生成に失敗しました。(bitmap:{0}x{1} )", bitmap.Width, bitmap.Height);\r
- return null;\r
- }\r
- }\r
- #endregion\r
-\r
- /// <summary>プロパティ、インデクサには ref は使用できないので注意。</summary>\r
- public static void t安全にDisposeする<T>(ref T obj)\r
- {\r
- if (obj == null)\r
- return;\r
-\r
- var d = obj as IDisposable;\r
-\r
- if (d != null)\r
- d.Dispose();\r
-\r
- obj = default(T);\r
- }\r
- //-----------------\r
- #endregion\r
- }\r
-}\r