ich gefunden habe, dass es nicht das Gewinde glfwInit auf
()
allererst genannt egal. Nur weil etwas zu funktionieren scheint, heißt das nicht, dass es weiter funktionieren wird. Mit anderen Worten, ein bestimmtes Ereignis kann zum Absturz Ihrer Anwendung führen, für die Sie noch nicht getestet haben.
Diese Funktion muss nur vom Haupt-Thread aufgerufen werden.
Die hier wichtige Sache ist, dass die GLFW documentation gibt nie, was von dem „Haupt-Thread“ gemeint ist.
Zitieren von GLFW Entwickler und Betreuer Camilla Löwy/elmindreda.
Cocoa hat eine einzige Ereigniswarteschlange, auf die nur vom Hauptthread aus zugegriffen werden kann, und dasselbe gilt für die meisten Fensteroperationen. Win32 verfügt über eine Ereigniswarteschlange pro Thread und Fenster sind an die Warteschlange des Threads gebunden, mit dem sie erstellt wurden. X11 hat eine einzige Warteschlange und Ereignisverarbeitung und Fensteroperationen können von jedem Thread ausgeführt werden. Die von GLFW auferlegte Beschränkung besteht darin, sicherzustellen, dass Programme portabel sind. Diese Beschränkung wird nicht erzwungen, d. H. Die Bibliothek versucht nicht zu verhindern, dass Sie sich selbst in den Fuß schießen. Wenn das Laden oder Rendern dein Programm blockiert, lege es in einen anderen Thread. Alles, was Sie zum Rendern und Austauschen von Puffern benötigen, ist aus diesem Grund auf allen Plattformen Thread-sicher.
Die von GLFW auferlegte Einschränkung besteht darin, sicherzustellen, dass Programme portabel sind. Diese Einschränkung wird nicht erzwungen, d. H. Die Bibliothek versucht nicht zu verhindern, dass Sie sich selbst in den Fuß schießen.
Also kurz gesagt. Kakao wird nicht glücklich sein. Da Windows und der OpenGL-Kontext jedoch im selben Thread erstellt werden, sollten keine Probleme auftreten.
Aber am Ende ist es besser, Spiel nach den Regeln-sicherzustellen, dass Programme tragbar sind.