2017-04-26 52 views
0

我使用SDL2和OpenGL 3.3,並想知道如果以下情況是線程安全的:多個線程渲染到單獨的OpenGL上下文線程安全嗎?

情況1

  1. 有多個線程和他們每個人都有一個背景和一個SDL窗口。
  2. 那些線程呈現幾何體多線程。

殼體2

  1. 有多個線程和它們中的每一個具有SDL窗口。但是隻有一個共享的上下文。
  2. 那些線程呈現幾何體多線程。

我想後一種情況是不安全的,因爲線程通過調用'SDL_GL_MakeCurrent'來改變當前上下文,但我不確定。

+1

是的你是對的 – zoly01

回答

0

好吧,我很傻。

我在閱讀文件,發現它:

SDL_GL_GetCurrentContext:使用此功能來獲得當前活動的OpenGL上下文。 SDL_GLContext SDL_GL_GetCurrentContext(無效)

,並意識到,只有一個激活的OpenGL上下文,這意味着不調用「SDL_GL_MakeCurrent」與多個上下文渲染是不可能的。也就是說,第一種情況與第二種情況幾乎沒有區別。

所以我認爲它不是線程安全的。對不起,我的愚蠢。