2013-08-14 4 views
0

У меня проблема с SOIL в C++. Проблема в том, что когда я пытаюсь загрузить изображение с указанного пути, он показывает только белый цвет.SOIL не отображает изображения

Сначала я загрузить его в память следующим образом:

_t = SOIL_load_OGL_texture(_texture.c_str(), 
         SOIL_LOAD_AUTO, 
         SOIL_CREATE_NEW_ID, 
         SOIL_FLAG_INVERT_Y); 

После этого я использовать его как это:

glBindTexture(GL_TEXTURE_2D, _t); 

glPushMatrix(); 

glBegin(GL_QUADS); 
    glTexCoord2f (0, 0); glVertex3f(-1 + (_p.X)/(App::WinSize().X/2), 1 - (_p.Y)/(App::WinSize().Y/2), 0.0f); 
    glTexCoord2f (1, 0); glVertex3f(-1 + (_p.X + _s.X)/(App::WinSize().X/2), 1 - (_p.Y)/(App::WinSize().Y/2), 0.0f); 
    glTexCoord2f (1, 1); glVertex3f(-1 + (_p.X + _s.X)/(App::WinSize().X/2), 1 - (_p.Y + _s.Y)/(App::WinSize().Y/2), 0.0f); 
    glTexCoord2f (0, 1); glVertex3f(-1 + (_p.X)/(App::WinSize().X/2), 1 - (_p.Y + _s.Y)/(App::WinSize().Y/2), 0.0f); 
glEnd(); 

glPopMatrix(); 

Я использую Visual Studio 2012. Я положил папку с изображениями в где файл .exe заканчивается, когда он отлаживается.

Я не уверен, если это уместно, но вот установка OpenGL программа запускается при его выполнении:

glutInit(&argc, &argv); 
glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA | GLUT_MULTISAMPLE | GLUT_BORDERLESS); 
glEnable(GLUT_MULTISAMPLE); 
glEnable(GL_TEXTURE_2D); 
glEnable(GL_BLEND); 
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 
glClearColor(0.0, 0.0, 0.0, 1.0); 
glLoadIdentity(); 
glOrtho(0.0, size.X, 0.0, size.Y, -1.0, 1.0); 
glutInitWindowPosition(position.X, position.Y); 
glutInitWindowSize(size.X, size.Y); 

ответ

0

Вы проверки ошибок в процессе загрузки?

Добавить

/* check for an error during the load process */ 
if(0 == _t) 
{ 
    printf("SOIL loading error: '%s'\n", SOIL_last_result()); 
} 

сразу после того, как вы загрузите текстуру с помощью SOIL_load_OGL_texture, чтобы проверить, если ваша текстура была загружена без каких-либо ошибок.

+0

Пробовал это, и ошибок не было. – Steffen

+0

@Stef: Вы используете относительный путь к изображениям? – user2681063

+0

Я должен использовать правильный путь. Файл .exe находится в папке отладки. С ним я помещаю папку с именем TestImages. Тогда путь, который я использую, следующий: "TestImages/CrossNoMouse.png" – Steffen