When the source or display (user) configuration changes, each display module needs to compute the same value. The core can do it on its behalf. It will do it for SPU and/or mouse movements anyway. This value only changes with the source and display configuration.
Modify modules that can use the precalc values. Other modules include OpenGL the needs to flip the coordinates. Maybe it could be handled by the core as well, but then mouse translation must not be flipped (?). Other modules use a custom display size that is not known to the core (bad).
Also simplify the Open signature of display modules. They don't need a
cfg they already have in
VideoLAN code repository instance