Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix sprite picking backend not considering the viewport of the camera. #16386

Merged
merged 1 commit into from
Nov 14, 2024

Conversation

andriyDev
Copy link
Contributor

@andriyDev andriyDev commented Nov 14, 2024

Objective

  • When picking sprites, the pointer is offset from the mouse, causing you to pick sprites you're not mousing over!

Solution

  • Shift over the cursor by the minimum of the viewport.

Testing

  • I was already using the bevy_mod_picking PR for my project, so it seems to work!
  • I tested this on the sprite_example (making the camera only render to part of the viewport), and it also works there.

Notes

Without this, the pointer is offset from the visuals based on where the viewport is. Now it's fixed!

Co-authored-by: johanhelsing <[email protected]>
@kristoff3r kristoff3r added D-Straightforward Simple bug fixes and API improvements, docs, test and examples A-Picking Pointing at and selecting objects of all sorts S-Needs-Review Needs reviewer attention (from anyone!) to move forward labels Nov 14, 2024
@kristoff3r kristoff3r added this to the 0.15 milestone Nov 14, 2024
Copy link
Contributor

@kristoff3r kristoff3r left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I also tested the sprite_picking example with a smaller viewport and can confirm it works

@alice-i-cecile alice-i-cecile added C-Bug An unexpected or incorrect behavior S-Ready-For-Final-Review This PR has been approved by the community. It's ready for a maintainer to consider merging it and removed S-Needs-Review Needs reviewer attention (from anyone!) to move forward labels Nov 14, 2024
@alice-i-cecile alice-i-cecile added this pull request to the merge queue Nov 14, 2024
Merged via the queue into bevyengine:main with commit 4eaebd4 Nov 14, 2024
35 checks passed
mockersf pushed a commit that referenced this pull request Nov 16, 2024
#16386)

# Objective

- When picking sprites, the pointer is offset from the mouse, causing
you to pick sprites you're not mousing over!

## Solution

- Shift over the cursor by the minimum of the viewport.

## Testing

- I was already using the bevy_mod_picking PR for my project, so it
seems to work!
- I tested this on the sprite_example (making the camera only render to
part of the viewport), and it also works there.

## Notes

- This is just aevyrie/bevy_mod_picking#365 but
in Bevy form.
- We don't need to renormalize the viewport in any way since the
viewport is specified in pixels, so all that matters is that the origin
is correct.

Co-authored-by: johanhelsing <[email protected]>
ecoskey pushed a commit to ecoskey/bevy that referenced this pull request Dec 2, 2024
bevyengine#16386)

# Objective

- When picking sprites, the pointer is offset from the mouse, causing
you to pick sprites you're not mousing over!

## Solution

- Shift over the cursor by the minimum of the viewport.

## Testing

- I was already using the bevy_mod_picking PR for my project, so it
seems to work!
- I tested this on the sprite_example (making the camera only render to
part of the viewport), and it also works there.

## Notes

- This is just aevyrie/bevy_mod_picking#365 but
in Bevy form.
- We don't need to renormalize the viewport in any way since the
viewport is specified in pixels, so all that matters is that the origin
is correct.

Co-authored-by: johanhelsing <[email protected]>
ecoskey pushed a commit to ecoskey/bevy that referenced this pull request Jan 6, 2025
bevyengine#16386)

# Objective

- When picking sprites, the pointer is offset from the mouse, causing
you to pick sprites you're not mousing over!

## Solution

- Shift over the cursor by the minimum of the viewport.

## Testing

- I was already using the bevy_mod_picking PR for my project, so it
seems to work!
- I tested this on the sprite_example (making the camera only render to
part of the viewport), and it also works there.

## Notes

- This is just aevyrie/bevy_mod_picking#365 but
in Bevy form.
- We don't need to renormalize the viewport in any way since the
viewport is specified in pixels, so all that matters is that the origin
is correct.

Co-authored-by: johanhelsing <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-Picking Pointing at and selecting objects of all sorts C-Bug An unexpected or incorrect behavior D-Straightforward Simple bug fixes and API improvements, docs, test and examples S-Ready-For-Final-Review This PR has been approved by the community. It's ready for a maintainer to consider merging it
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants