LeapImageRetriever subscribes to the DistortionChanged event and marks it's EyeTextureData as stale if it receives an event, causing it to be recalculated once the next image is retrieved. Previously the distortion data was not ever recalculated, causing misalignment.
LeapImageRetriever needs to execute after LeapProvider in order to acquire the most recent frame. An ExecuteAfter attribute has been added to ensure that this was the case.
The Controller field in LeapProvider was public, it has been changed to protected since there already is a getter method.
@protodeep