Using OpenGL 3.2 with Derelict3 and GLFW 3 on OSX Lion
d, glfw, opengl, opengl-3, osx-lion
Solution
All I had to do was specify some window hints before calling `glfwOpenWindow`:
...
glfwOpenWindowHint(GLFW_OPENGL_VERSION_MAJOR, 3);
glfwOpenWindowHint(GLFW_OPENGL_VERSION_MINOR, 2);
glfwOpenWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
glfwOpenWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
window = glfwOpenWindow(width, height, GLFW_WINDOWED, programName.ptr, null);
...
Problem
I'm having trouble getting OpenGL 3.2 to run on Lion (osx 10.7.4) using Derelict3 and GLFW 3. Here's my test program: ``` module glfw3Test; import std.stdio, std.conv; import derelict.glfw3.glfw3; import derelict.opengl3.gl3; string programName = "glfw3Test"; int width = 640; int height = 480; GLFWwindow window; void main() { // load opengl DerelictGL3.load(); // load GLFW DerelictGLFW3.load(); if(!glfwInit()) { glfwTerminate(); throw new Exception("Failed to create glcontext"); } writefln("GLFW: %s", to!string(glfwGetVersionString())); window = glfwOpenWindow(width, height, GLFW_WINDOWED, programName.ptr, null); if(!window) { glfwTerminate(); throw new Exception("Failed to create window"); } // Request opengl 3.2 context // based off the GLFW FAQ: http://www.glfw.org/faq.html#4_2 glfwOpenWindowHint(GLFW_OPENGL_VERSION_MAJOR, 3); glfwOpenWindowHint(GLFW_OPENGL_VERSION_MINOR, 2); glfwOpenWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); glfwOpenWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); DerelictGL3.reload(); // Print OpenGL and GLSL version writefln("Vendor: %s", to!string(glGetString(GL_VENDOR))); writefln("Renderer: %s", to!string(glGetString(GL_RENDERER))); writefln("Version: %s", to!string(glGetString(GL_VERSION))); writefln("GLSL: %s\n", to!string(glGetString(GL_SHADING_LANGUAGE_VERSION))); } ``` I get this output: ``` GLFW: 3.0.0 dynamic Vendor: NVIDIA Corporation Renderer: NVIDIA GeForce 9400M OpenGL Engine Version: 2.1 NVIDIA-7.18.18 GLSL: 1.20 ``` I've checked, and it seems my graphics card should support up to OpenGL 3.3.