2017-04-26 2 views
0

J'utilise SDL2 et OpenGL 3.3, et se demander si les situations suivantes sont thread-safe:Le rendu de plusieurs threads dans des contextes OpenGL individuels est-il sécurisé?

cas 1

  1. Il y a plusieurs threads et chacun d'eux a un contexte et une fenêtre SDL.
  2. Ces threads rendent des géométries multithread.

cas 2

  1. Il existe de multiples threads et chacun d'eux a une fenêtre SDL. Mais il n'y a qu'un seul contexte qui est partagé.
  2. Ces threads rendent des géométries multithread.

Je suppose que ce dernier cas n'est pas sûr car les threads changent le contexte actuel en appelant 'SDL_GL_MakeCurrent', mais je ne suis pas sûr.

+1

oui vous avez raison – zoly01

Répondre

0

Ok, j'étais stupide.

Je lisais les documents et l'a trouvé:

SDL_GL_GetCurrentContext: Utilisez cette fonction pour obtenir le contexte OpenGL actuellement actif. SDL_GLContext SDL_GL_GetCurrentContext (void)

et réalisé qu'il n'y a qu'un seul contexte OpenGL activé, ce qui signifie sans appeler « SDL_GL_MakeCurrent » rendu avec de multiples contexte est impossible. Autrement dit, le premier cas est à peine différent du second cas. J'ai donc conclu que ce n'est pas sûr pour les threads. Désolé pour ma bêtise.