Проблема с загрузкой текстур с помощью библиотеки DevIl - PullRequest
2 голосов
/ 15 августа 2011

Я работаю с библиотекой DevIl и пытаюсь использовать ее для загрузки текстуры в OpenGL для применения к спрайту.Код прямо из книги C # Game Programming for Serious Game Design (если это поможет).У меня проблема с вызовом 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));
    }

1 Ответ

2 голосов
/ 15 августа 2011

DevIL, скорее бессмысленно, основан на API OpenGL и общей структуре. Таким образом, типичным способом сообщения об ошибках является ilGetError. Если вы хотите убедиться, что функция выполнена успешно или нет, вы должны использовать это.

...