我正在使用 DevIl 库并尝试使用它将纹理加载到 OpenGL 以应用于精灵。代码直接来自《严肃游戏设计的 C# 游戏编程》一书(如果有帮助的话)。我遇到的问题是 Il.ilLoadImage 调用。即使我将它传递为 null,它也不会抛出未找到图像的错误,并且当表单弹出时,精灵只会显示为深灰色(而不是白色)。
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));
}