OpenKinect / libfreenect2

Open source drivers for the Kinect for Windows v2 device
2.07k stars 746 forks source link

GLFW on Win 8.1 - not initialized error #946

Open margokhokhlova opened 6 years ago

margokhokhlova commented 6 years ago

I am trying to compile the project on Win 8.1. All the dependencies are installed *cuda 7.5, glfw 3.1, openc cl, turbo jpeg), GLFW examples work, but I have the same error all the time:

65537 The GLFW library is not initialized Failed to create opengl window. It appears after the device initialization and start of the acquisition.

The test of freenect-openni is OK, but displays the data from one kinect only when multiple kinects are attached. Protonect works in -noviewer mode, detects both cameras.

Please, if someone have any idea what am I doing wrong, let me know.

SirDifferential commented 6 years ago

I saw this on Windows 10. This problem appears to be caused by the latest version of GLFW not liking glfwInit() being called multiple times due to a Windows windowing function call causing issues. I didn't investigate this further yet, but you can solve this temporarily by making sure glfwInit() is only called once.

I could look into this, but I'm afraid this will take until next weekend for me.

biro-mark commented 4 years ago

Just ran into this on Windows 10, compiling only with OpenGL support. It does run with -nowindow which seems to confirm @SirDifferential 's theory. However it would point to a bug(?) in GLFW, because the docs https://www.glfw.org/docs/latest/intro_guide.html#intro_init say The library only needs to be initialized once and additional calls to an already initialized library will return GLFW_TRUE immediately.

biro-mark commented 4 years ago

glfwInit() is also called in logging.cpp. Maybe that code path should be removed.

biro-mark commented 4 years ago

I went into config.h and commented out #define LIBFREENECT2_WITH_OPENGL_SUPPORT and enabled #define LIBFREENECT2_WITH_CXX11_SUPPORT and recompiled. Then Protonect cl works without errors.