В настоящее время я работаю над небольшим 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;