Closed krismale closed 3 years ago
GLFW_MOUSE_PASSTHROUGH
use is guarded against in older GLFW versions that do not support it. Is it possible that you somehow built your application against newer headers while running example application with older GLFW dll (pre-3.4)?
No we did have GLFW 3.4 and the latest version of ImGui. We did some more testing now and found out that the error didn't show up if we downgraded to GLFW 3.3. Although it would be ideal to use the latest version of GLFW, and I guess that the GLFW_MOUSE_PASSTHROUGH would be useful to have as a feature. There's probably also a couple of other things in 3.4 that might be useful for us.
Seems to me like a GLFW bug then
I think you'll want to investigate and step in a debugger to see what GLFW is doing there.
Any update on this? I am finding it hard to explain this other than a user error (e.g. some unexpected wrong version loaded dynamically etc.) or an odd GLFW bug,
We decided to stick with v3.3 throughout the project and disable the viewport features. Everything worked fine with the docking so we decided to just keep that. Never really found out what the issue was though, but it’s most likely a bug in glfw 3.4 as @rokups mentioned
Got the very same error at exactly the same line (at different number due to project growing) with glfw v3.3.8.
Specs: Windows 10 Visual Studio 4.8.04084
I resolved it by replacing it with the same library!
I was copying git repository with glfw static library inside it to another folder and this error showed on the first solution project rebuild. It seems like there was some kind of bug inside library? Or perhaps it was Visual Studio doing its stuff.
I met the same problem, it shows repeating "Error: Invalid window attribute 0x0002000D" after I switched to ImGui docking branch.
System:
Windows 10 pro
MSYS2 64-bit
$ cat /proc/version
MINGW64_NT-10.0-19044 version 3.3.6-341.x86_64 (runneradmin@fv-az283-774) (gcc version 11.3.0 (GCC) ) 2022-09-20 22:07 UTC
$ pacman -Q mingw-w64-x86_64-glfw
mingw-w64-x86_64-glfw 3.3.8-2
Backtrace the glfw code, found that the latest glfw source can handle 0x0002000D attribute, which is GLFW_MOUSE_PASSTHROUGH, but 3.3.8 release didn't.
git clone the latest glfw source, and rebuild glfw with following commands
cd path/to/glfw
mkdir build
cd build
cmake -S ../ -B . -G "MSYS Makefiles" -D BUILD_SHARED_LIBS=ON
make
The library libglfw3dll.a and dll file glfw3.dll will be compiled under path/to/glfw/build/src folder. Recompile code, and run with the newly genereated glfw3.dll, it works like a charm, problem resolved.
Version: v1.79 Branch: docking
Back-ends: imgui_impl_glfw.cpp + imgui_impl_opengl3.cpp Compiler: MSVC Operating System: Windows 10
Hi! I'm struggling a bit with finding a solution to this error message that gets thrown after I switched from your master branch to the docking branch:
[ERROR]: 65539, Invalid window attribute 0x0002000D
The error message shows up each time _ImGui_ImplGlfwNewFrame() gets called. After doing some debugging, it appears that it's coming from line 362 in imgui_impl_glfw.cpp: _glfwSetWindowAttrib(window, GLFW_MOUSE_PASSTHROUGH, window_noinput);. I'm quite new to ImGui so I'm not really sure why this is happening. The docking feature and multi-viewport works perfectly as far as I know right now, but I'm afraid that I might run into some issues down the road. On top of that, my log gets filled up with this error message, so it's hard to notice anything else going on.
Here's my code implementing ImGui:
Here's how glfw is initialized:
Hope this makes sense, please help!