Ich habe den folgenden Code:GLFW schlägt fehl, Fenster zu öffnen in OSX
glfwWindowHint(GLFW_SAMPLES, 4); // 4x antialiasing
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
// Open window and create OpenGL context
GLFWwindow * window;
window = glfwCreateWindow(1024, 768, "OpenGL Testing", NULL, NULL);
if(window == NULL)
{
fprintf(stderr, "Failed to open GLFW Window.\n");
glfwTerminate();
return -1;
}
Es funktioniert gut auf meinem Desktop sowohl auf Ubuntu und Windows, aber es funktioniert nicht auf meinem Laptop mit OSX. Ich dachte, es wäre ein Problem mit dem Laptop, der diese Version von OpenGL nicht unterstützt, aber es unterstützt bis zu 4.1 mit der Grafikkarte.
Ich habe gedacht, dass es die integrierte Intel-GPU anstelle der nVidia verwenden kann, aber wie ich aus dem, was ich gesehen habe, verstehen, wird GLFW die richtige GPU zwingen, das Rendern zu tun.
Wenn ich den Kontext auf 2.1 ändere, scheint alles zu funktionieren, aber dann sind die Shader nicht kompatibel.
Irgendwelche Ideen?
UPDATE: Wenn alle Aufrufe glfwWindowHint()
entfernt werden, wird das Fenster erstellt, aber die Shader sind inkompatibel. Ich nehme an, wenn diese entfernt werden, wählt GLFW automatisch einen Kontext, der inkompatibel mit Shadern mit version 330 core
ist.
Erhalten Sie Fehlermeldungen? – Gurgadurgen
Die einzige Fehlermeldung, die ich bekomme, ist, wenn überprüft das Fenster auf Null und druckt eine Nachricht und kehrt zurück. Wenn ich den Kontext auf 2.1 umstelle oder den Kontext entferne, erhalte ich eine Inkompatibilitätsfehlermeldung, wenn ich versuche, die Shader zu laden. – danielunderwood
Diese Antwort könnte helfen: http://stackoverflow.com/questions/22213874/creating-opengl-3-3-context-with-glfw-in-mac-os-x-10-9 – Gurgadurgen