GLFW 3.X head on OSX -- [53365:c03] NSMapGet: map table argument is NULL

anonymous wrote on Wednesday, January 30, 2013:

Hi there,

I’m digging into a bug in the handling of external monitors in GLFW 3.x (taken 2 days ago from the Git repo head).

First, I’m getting all available monitors with glfwGetMonitors. The info I’m getting is:

Monitor 0, res: 1920x1080 // This is the external monitor
Monitor 1, res: 1280x800  // Laptop monitor

I’ve configured OSX to setup the external monitor as the primary one, so what GLFW is returning here makes sense.

Now, if I try creating a fullscreen window with that data, GLFW just goes nuts. If I use monitor0, it just barfs the error in the topic title, and fails to create the window. If I use monitor1 it does create a window, but it does so on the external monitor instead of the laptop one as I requested.

Finally, after configuring OSX to setup the laptop screen as the main monitor I get this info:

Monitor 0, res: 1280x800
Monitor 1, res: 1920x1080

Again, this makes sense.

But now the behavior is reversed: selecting monitor0 creates a window on the laptop screen (as it should), but if I try monitor1 it just shows the NSMapGet error and fails.

I have no problems with windowed mode, and everything works fine if I don’t plug in the external monitor.

Hope this helps!

elmindreda wrote on Tuesday, March 19, 2013:

There are still plenty of bugs in the OS X implementation of multi-monitor support in GLFW 3. It will be taken care of before release, but currently it doesn’t work very well.