v2: Fix macOS build by moving the offscreen helpers that were conditionally built with OpenGL to a separate source, make the vulkan offscreen surface nature updatable as the surface isn't recreated and cannot be notified of new parent/children otherwise.