3D renderer native window bugs
Captain's Log: Stardate 78245
MacOS Mouse Hover
Continuing my work from my previous devlog entry, I finally tracked down exactly what was going wrong with mouse hover on MacOS for floating native child windows. Basically there is a bug in JUCE where it allows mouse events to be duplicated between the frontmost child NSView and whatever NSView is behind it. In practice the mouseMove events were being sort of interleaved, so JUCE saw the mouse as entering/exiting the button and then entering/exiting the window below the button on each event.
The fix was pretty simple. Here's hoping that the JUCE folks will accept my pull request.
OpenGL on Intel Iris Xe Chips
In the previous devlog entry I was investigating Google Filament crashes with the Vulkan backend. While doing that, I figured I'd just change the default backend to OpenGL to get things working in the meantime. That worked great on my NVIDIA desktop chip, but on my Intel Iris XE chip OpenGL displays a black screen.
I haven't tracked down the root cause here yet, but I debugged it to a pretty significant extent and am hoping to hand off further debug work to the Filament team in this bug.
While working on this, I found other issues with Filament, like the fact that it crashes in debug mode on MSVC and in general misuses its own panic feature. I have a feeling the Filament folks are going to be very annoyed with me; I've already discovered more bugs that I haven't yet filed.
Note: anyone who wants Anukari to succeed might like to add smiley emojis on all of these Github issues to indicate that they're important.
Configurable Graphics Settings
After fighting with all these third-party library bugs, I finally had a little bit of time today to spend on fun stuff, namely: making the graphics quality settings fully-configurable. Google Filament has a lot of options, and I plan to expose most of them to the user. Right now I have the majority of the options configurable via the preferences menu system, and it's been a blast to play around with different settings. The screenshots below show some fancy stuff you can do with bloom, depth-of-field, and camera ISO. There are also options for fog, various quality things like FXAA and MSAA, and everything can be disabled or turned to low-quality. Once I'm done with the preferences menu, it will be possible to turn the graphics down to the point that they're faster than the old renderer, while still looking much nicer.