SDL_UpdateTexture 线程安全吗?
Is SDL_UpdateTexture threadsafe?
我有一个程序可以处理大小为 1920x1080 的纹理,并在多线程环境中通过 SDL_UpdateTexture
更新纹理。线程之间的纹理是 "tiled",因此线程 1 将更新与线程 2 不同的区域。例如,t1
将更新区域 0,0,64,64
,而 t2
将更新 65, 65, 128, 128
.
在这种情况下是否可以使用SDL_UpdateTexture
而不使用任何锁定,以便线程可以同时更新纹理?
看看
Multithreaded Rendering on OpenGL
但是,简而言之:GL 不是线程安全的(甚至是线程感知的)。在 Windows 上,您不能同时在多个线程上激活上下文,因此如果不同步线程(这违背了多线程的目的),您将无法更新纹理。我敢打赌 Linux.
也一样
我有一个程序可以处理大小为 1920x1080 的纹理,并在多线程环境中通过 SDL_UpdateTexture
更新纹理。线程之间的纹理是 "tiled",因此线程 1 将更新与线程 2 不同的区域。例如,t1
将更新区域 0,0,64,64
,而 t2
将更新 65, 65, 128, 128
.
在这种情况下是否可以使用SDL_UpdateTexture
而不使用任何锁定,以便线程可以同时更新纹理?
看看
Multithreaded Rendering on OpenGL
但是,简而言之:GL 不是线程安全的(甚至是线程感知的)。在 Windows 上,您不能同时在多个线程上激活上下文,因此如果不同步线程(这违背了多线程的目的),您将无法更新纹理。我敢打赌 Linux.
也一样