2

openGL の devIL を使用してイメージをロードする際に問題が発生しています

私のプロジェクトの初期の部分で私は呼び出します

ilInit();

このようにロードを呼び出した直後の関数で

//generate a texture
ilGenImages( 1, &uiTextureHandle );

//bind our image
ilBindImage( uiTextureHandle );

//load
//ilLoad( IL_PNG, (const ILstring)"fake.png" );
ilLoad( IL_PNG, "fake.png" );

エラー追跡のために、1285を返すilLoadを除いて、これらすべてに対して0を返すすべての呼び出しの後に「ilGetError()」を配置しました

いくつかの検索の後、これはメモリ不足エラーであることがわかりました。

そのため、ilLoad は常に 0 を返し、ロードされません。

ローディングに関して私が何を間違っているのか、または何かを忘れた可能性があると感じて何かをするのを忘れたのか、誰もが知っています。それが1285が表示される理由です。

4

1 に答える 1

0

ilLoad()で失敗する一般的な理由IL_OUT_OF_MEMORYは、単純に、使用している PNG ファイルが破損している場合です。

ただし、1285 は、指定IL_INVALID_VALUEしたパスが間違っている可能性が高いことを意味します。絶対パスを試してみてください (ダブル スラッシュを使用しない限り、C++ ではバック スラッシュは使用できないことに注意してください)。

私は個人的にかなり長い間 DevIL を使用してきましたが、気に入っています。ただし、FreeImage を検討することをお勧めします。もう少し開発が進んでおり、非常に安定しています。すべての画像のニーズに合わせて商用エンジンで使用しましたが、DevIL のように DirectX/OpenGL とうまく統合されています。

于 2013-08-04T14:45:57.643 に答える