Ошибка при загрузке текстуры с SOIL_load_OGL_texture - PullRequest
0 голосов
/ 07 января 2020

В настоящее время я работаю над небольшим 3d рендером и пытаюсь добавить текстуры. Дело в том, что когда я пытаюсь загрузить текстуру с помощью SOIL_load_OGL_texture, я получаю ошибку нарушения доступа с vcruntime140d.dll.

Я видел еще один пост здесь с похожей ошибкой, но это происходило из-за того, что пользователь явно не создал контекст OpenGL при попытке загрузить текстуру, что я и сделал.

Ошибка связана с тем, что строка имеет значение nullptr в функции strstr () vcruntime140d.dll

Вот скриншот стека вызовов: стек вызовов

РЕДАКТИРОВАТЬ: здесь код, выдающий ошибку:

std::string stringPath = texturePath.string();

std::cout << "Loading texture : " << stringPath.c_str() << std::endl;

glEnable(GL_TEXTURE_2D);

GLuint textureID = SOIL_load_OGL_texture(stringPath.c_str(), SOIL_LOAD_AUTO, SOIL_CREATE_NEW_ID, SOIL_FLAG_POWER_OF_TWO | SOIL_FLAG_MIPMAPS);

if (textureID == 0)
{
    printf("SOIL loading error: '%s'\n", SOIL_last_result());
    return -1;
}

glBindTexture(GL_TEXTURE_2D, textureID);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);

m_textures.emplace(texturePath, textureID);

return textureID;
...