I enabled Anti-aliasing on macOS and I still do not experience any sort of flicker during resize. While exploring the undock exception a bit more, I found this
enum QSurfaceFormat::SwapBehavior that states under QSurfaceFormat::SingleBuffer that it can result in flickering. I realize that we seem to be using QSurfaceFormat::DoubleBuffer but perhaps this will serve as a hint and also shine light on the undock access violation exception (could also be a red herring)?
In terms of the access violation exception, I compiled the code with what is referred to as Zombie objects on macOS that configures the runtime to keep/track deallocated objects around long enough after deallocation to warn you if you try to access a deallocated object (i.e. invoke a method or access a property). Unfortunately, this simply allowed the undock view to run normally on macOS - I was able to select surfaces, rotate, resize, etc. So it didn't bear any fruit in the limited time I looked at it but it smells of a dellocation issue that may be affected by compiler optimization settings or perhaps the OpenGL buffering issue above. Other times, I either saw a blue-screen inside the undocked view or an partially-rendered view of the solid - by partial, I mean everything except some of the finer details almost like it raised the exception before it was able to complete rendering.
Here are some of the details as to what lldb thinks triggered the access violation:
- Screen Shot 2017-03-09 at 11.02.09 PM.jpg (513.23 KiB) Viewed 2194 times
- Screen Shot 2017-03-09 at 10.50.50 PM.png (732.56 KiB) Viewed 2194 times
I'll try to look at this some more tomorrow but I'm hoping that either @wmayer or @f3nix can spy the root cause immediately given their intimate familiarity with the FreeCAD code base and associated frameworks (Coin, OpenInventor, etc.)