When working with bevy_mod_picking I noticed that pick events are not triggered when I work with a viewport positioned with an offset relative to the window. I tracked issue down to this package. One can reproduce the issue by running mouse_picking example on a high density display: the rays will not match with mouse cursor.
Turns out, the viewport offset calculation doesn't take into account pixel density of the screen. We have access to this information in Window though. So I make an assumption that we are working with the primary window, and pass the object down to the offset calculation.
I also borrowed helper code for low_latency_window_plugin from bevy_mod_picking while at it.
When working with
bevy_mod_picking
I noticed that pick events are not triggered when I work with a viewport positioned with an offset relative to the window. I tracked issue down to this package. One can reproduce the issue by runningmouse_picking
example on a high density display: the rays will not match with mouse cursor.Turns out, the viewport offset calculation doesn't take into account pixel density of the screen. We have access to this information in
Window
though. So I make an assumption that we are working with the primary window, and pass the object down to the offset calculation.I also borrowed helper code for
low_latency_window_plugin
frombevy_mod_picking
while at it.This PR fixes one of the root issues https://github.com/aevyrie/bevy_mod_raycast/pull/91 tried to fix symptoms for.
Closes https://github.com/aevyrie/bevy_mod_raycast/issues/93