Rendu multithread sur OpenGL

J'ai une application multithread, dans lequel j'essaie de rendre avec les différents threads. J'ai d'abord essayé d'utiliser le même Contexte de Rendu entre tous les threads, mais j'étais NULLE actuel contextes, à d'autres threads. J'ai lu sur internet que l'un contexte ne peut être courant à un seul thread à la fois.

J'ai donc décidé de faire quelque chose de différent. J'ai créer une fenêtre, j'ai le HDC et créer le premier RC. Après cela, je partage ce HDC entre les threads, et dans chaque nouveau thread, j'ai créer je obtenir un nouveau RC à partir de la même HDC et je le fais en courant pour ce thread. Chaque fois que je le fais, le RC retournée est toujours différent (généralement la valeur + 1). Je fais une affirmation à vérifier si wglGetCurrentContext() retourne un RC, et il semble qu'il renvoie celui qui vient d'être créé. Mais après avoir fait le rendu, je n'ai pas rendu, et si j'appelle GetLastError() - je obtenir de l'erreur 6 (handle non valide??)

Donc, est-ce à dire que, en dépit de chaque nouvel appel de wglCreateContext() me donne une nouvelle valeur, en quelque sorte, cela signifie que l'ensemble de ces différentes valeurs sont les mêmes "canal de Connexion" pour les appels OpenGL?

Est-ce à dire que je vais toujours avoir à l'invalidité de la précédente Contexte de Rendu sur un fil de discussion, et de l'activer sur la nouvelle? J'ai vraiment besoin de faire cette synchronisation tout le temps ou est-il un autre moyen de travailler autour de ce problème?

source d'informationauteur filipehd