Bonsoir les gens.
Je me fabrique un petit moteur 3D maison portable entre Windows et Android. Pour la raison de portabilité, je n'utilise pas GLUT, ni aucune bibliothèque comme SDL ou je ne sais quoi.
Je cherche à implémenter le partage de contexte pour pouvoir charger mes ressources dans un thread séparé, mais je me heurte sur l'utilisation de wglShareLists.
Basiquement :
- Je créé ma fenêtre
CreateWindow() pour le window handle puis GetDC() pour le device context
- Je set mon format de pixel
ChoosePixelFormat() et SetPixelFormat()
- Je créé mon contexte principal pour le main thread et le met current
wglCreateContext()
wglMakeCurrent()
- Dans mon second thread, je créé le nouveau context
wglCreateContext()
- J'essaye de le partager avec wglShareLists
wglShareLists() Paf, error 170 ERROR_BUSY, "La resource est utilisé".
- Je cherche a mettre le nouveau context current au thread en cours
glMakeCurrent()
Donc quoi, est-ce que je dois créer mon deuxième contexte avant l'ouverture de la fenêtre?
Est-ce que j'aurai du bon à créer un contexte à part que je ne met jamais Current, pour le partager avec mes deux autres context le main et celui pour les resources?
Et si je me trompe complètement, quel est la marche à suivre pour créer correctement un contexte partagé?
Et accessoirement, sous OpenGL ES, est-ce que le même principe s'applique pour l'utilisation d'un shared context?
Partager