aevyrie / bevy_mod_raycast

A little mesh raycasting plugin for Bevy
https://crates.io/crates/bevy_mod_raycast
MIT License
320 stars 93 forks source link

Include window scale factor in viewport offset calculation #92

Closed bardt closed 1 year ago

bardt commented 1 year ago

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.

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