我一直在嘗試使用SOIL庫將磁盤上存儲的十個圖像讀入一個數組指針。然後我想使用3D紋理在OpenGL中渲染結果數據。C++ - 在一個數組中放置多個圖像指針
我寫的從磁盤讀取圖像並將它們存儲在緩衝區中的代碼會引發錯誤Access violation reading location 0x00000000
錯誤。
這是使用SOIL將多個圖像存儲到數組指針的正確方法嗎?
unsigned char *tex;
int imSize = h*w;
unsigned char *buff = new unsigned char[h * w * slices];
for(int i = 1; i<=10; i++)
{
for(int j = 0; j<imSize; j++)
{
if (i==1)
{
tex = (unsigned char*) SOIL_load_OGL_texture("Data/PA_170090.png",
SOIL_LOAD_AUTO,SOIL_CREATE_NEW_ID,SOIL_FLAG_INVERT_Y);
buff[((i-1)*imSize) + j] = tex[j]; }
if (i==2)
{ tex = (unsigned char*)SOIL_load_OGL_texture("Data/PA_170091.png",
SOIL_LOAD_AUTO,SOIL_CREATE_NEW_ID, SOIL_FLAG_INVERT_Y);
buff[(i-1)*imSize + j] = tex[j]; }
if (i==3)
{ tex = (unsigned char*)SOIL_load_OGL_texture("Data/PA_170092.png",
SOIL_LOAD_AUTO,SOIL_CREATE_NEW_ID, SOIL_FLAG_INVERT_Y);
buff[(i-1)*imSize + j] = tex[j];}
....
.... // up to 10 images
}
}
注意,將紋理的名稱放在數組中,並通過數組索引來獲取它們,爲什麼你的工作很難? – Dabo
這是真的。我只是在使用SOIL庫,在線文檔提供了覆蓋現有變量/指針的方法。 http://www.lonesock.net/soil.html – Eagle