2012-11-14 30 views
2

我有一個問題,在我的項目的早期部分與魔鬼加載圖像的OpenGL魔鬼ilLoad錯誤1285

我打電話

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"); 

誤差跟蹤的緣故,我沒有地方「ilGetError()」返回12每次調用 這對於ilLoad返回0,所有的這些,除了後85

經過一番搜索,我發現這是缺少內存錯誤。

所以ilLoad總是返回0並且未加載。

任何人都知道我做什麼不正確,因爲我的負載或如果我忘了做點什麼 因爲我覺得我可能已經忘記了一些事情,那就是爲什麼1285出現。

+0

我也只是測試,看看我是否可以加載另一個圖像格式我的測試主題是「.bmp」,並且該加載沒有給我任何錯誤 –

回答

0

ilLoad()IL_OUT_OF_MEMORY失敗的常見原因很簡單,如果您使用的PNG文件已損壞。

但是,1285意味着IL_INVALID_VALUE - 這意味着你給它的路徑可能是錯誤的。嘗試一個絕對路徑(記住在C++中反斜槓不行,除非使用雙斜槓)。

我個人已經使用了DevIL很長一段時間,並且喜歡它。不過,我敦促你考慮FreeImage。它有更多的發展正在進行,並且非常穩定 - 我將它用於商業引擎以滿足我所有的圖像需求,並且它非常像DevIL一樣很好地集成了DirectX/OpenGL。