我的问题是,SOIL(简单的 opengl 图像库)线程兼容吗?
因为当我运行以下代码时:
Texture = SOIL_load_OGL_texture (
loc.c_str(),
SOIL_LOAD_AUTO,
SOIL_CREATE_NEW_ID,
SOIL_FLAG_POWER_OF_TWO
| SOIL_FLAG_MIPMAPS
| SOIL_FLAG_MULTIPLY_ALPHA
| SOIL_FLAG_COMPRESS_TO_DXT
| SOIL_FLAG_DDS_LOAD_DIRECT
| SOIL_FLAG_INVERT_Y
);
(为了加载纹理)
在线程之外它工作正常,但是当在 std::thread 内运行时它给了我错误
Project2.exe 中 0x592527FF (msvcr110d.dll) 处的未处理异常:0xC0000005:访问冲突读取位置 0x00000000。
我希望能够对它进行线程化,以便它可以在菜单屏幕、启动屏幕或类似的东西中加载。所以我的问题是,如果 SOIL 不是线程安全的,那么一个不错的解决方案是运行一个线程来运行菜单/启动屏幕/其他任何东西以允许纹理加载到主线程中?