2
DevIlライブラリを使用して、スプライトに適用するためにOpenGLにテクスチャを読み込むために使用しようとしています。このコードは、C#Game Programming for Serious Game Designの書籍(それが役立つ場合)の外にあります。私が持っている問題は、Il.ilLoadImage呼び出しです。私がnullを渡したとしても、画像が見つかりませんでした。エラーは発生せず、スプライトはフォームがポップアップすると暗いグレー(白の代わりに)になります。DevIlライブラリを使用したテクスチャ読み込みの問題
public void LoadTexture(string textureId, string path)
{
int devilId = 0;
Il.ilGenImages(1, out devilId);
Il.ilBindImage(devilId);
if (!Il.ilLoadImage(path))
{
System.Diagnostics.Debug.Assert(false, "Could not open file [" + path + "].");
}
//Flip the files before passing them to OpenGl
Ilu.iluFlipImage();
int width = Il.ilGetInteger(Il.IL_IMAGE_WIDTH);
int height = Il.ilGetInteger(Il.IL_IMAGE_HEIGHT);
int openGLId = Ilut.ilutGLBindTexImage();
System.Diagnostics.Debug.Assert(openGLId != 0);
Il.ilDeleteImages(1, ref devilId);
_textureDatabase.Add(textureId, new Texture(openGLId, width, height));
}
どうすればいいですか? ilLoadImage呼び出しがtrueを返しているので、エラーが発生していないことを示していませんか?コールが実行された後のすべての行はアサートされません。 – Pat
'ilLoadImage'を呼び出した後、' ilGetError'を呼び出します。 'IL_NO_ERROR'以外のものを返すと、エラーが発生します。悲しいことに、Devilのドキュメントは、 'ilLoadImage'の返り値が何を意味するのか、むしろ無意味です。 –
私はそれを理解しました。私が使用していたTaoフレームワークのバージョンは、DevIlの最新バージョンをダウンロードしたdllと互換性がありませんでした。コマンドは私が見ていないエラーを投げていました。どうもありがとうございます! – Pat