2013-06-05 39 views
0

我試圖執行一個使用原始圖片作爲紋理的代碼。問題是圖片不會加載。我需要把照片放在哪裏才能讓程序找到它?它目前在我正在處理的項目文件夾中。我在代碼塊12.11(Win7的,MinGW的)工作OpenGL無法加載原始圖片

bool setup_textures() 
{ 
    RGBIMG img; 

    // Create The Textures' Id List 
    glGenTextures(TEXTURES_NUM, g_texid); 

    // Load The Image From A Disk File 
    if (!load_rgb_image("glass_128x128.raw", 128, 128, &img)) return false; 

    // Create Nearest Filtered Texture 
    glBindTexture(GL_TEXTURE_2D, g_texid[0]); 
    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); 
    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); 
    glTexImage2D(GL_TEXTURE_2D, 0, 3, img.w, img.h, 0, GL_RGB, GL_UNSIGNED_BYTE, img.data); 

    // Create Linear Filtered Texture 
    glBindTexture(GL_TEXTURE_2D, g_texid[1]); 
    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR); 
    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR); 
    glTexImage2D(GL_TEXTURE_2D, 0, 3, img.w, img.h, 0, GL_RGB, GL_UNSIGNED_BYTE, img.data); 

    // Create MipMapped Texture 
    glBindTexture(GL_TEXTURE_2D, g_texid[2]); 
    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR); 
    glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR_MIPMAP_NEAREST); 
    gluBuild2DMipmaps(GL_TEXTURE_2D, 3, img.w, img.h, GL_RGB, GL_UNSIGNED_BYTE, img.data); 

    // Finished With Our Image, Free The Allocated Data 
    delete img.data; 

    return true; 
} 

問題是glass_128x128.raw的負載線失敗,並返回false;

+0

我想你需要你的圖像* glass_128x128.raw *需要在同一目錄中作爲'.exe'文件。由於這個例程中沒有其他可以返回false的東西,所以'load_rgb_image'很可能失敗了。 – radical7

回答

0

轉到:

項目 - >屬性 - >建設目標 - > [目標名稱] - >執行工作目錄

,並確保被設置爲相同的目錄中glass_128x128.raw。機會是從你的調試版本進入的任何目錄運行,這是不是你的圖像所在的目錄。