bevy/crates
Alex a7be8a2655
Prefer UVec2 when working with texture dimensions (#11698)
# Objective

The physical width and height (pixels) of an image is always integers,
but for `GpuImage` bevy currently stores them as `Vec2` (`f32`).
Switching to `UVec2` makes this more consistent with the [underlying
texture data](https://docs.rs/wgpu/latest/wgpu/struct.Extent3d.html).

I'm not sure if this is worth the change in the surface level API. If
not, feel free to close this PR.

## Solution

- Replace uses of `Vec2` with `UVec2` when referring to texture
dimensions.
- Use integer types for the texture atlas dimensions and sections.


[`Sprite::rect`](a81a2d1da3/crates/bevy_sprite/src/sprite.rs (L29))
remains unchanged, so manually specifying a sub-pixel region of an image
is still possible.

---

## Changelog

- `GpuImage` now stores its size as `UVec2` instead of `Vec2`.
- Texture atlases store their size and sections as `UVec2` and `URect`
respectively.
- `UiImageSize` stores its size as `UVec2`.

## Migration Guide

- Change floating point types (`Vec2`, `Rect`) to their respective
unsigned integer versions (`UVec2`, `URect`) when using `GpuImage`,
`TextureAtlasLayout`, `TextureAtlasBuilder`,
`DynamicAtlasTextureBuilder` or `FontAtlas`.
2024-02-25 15:23:04 +00:00
..
bevy_a11y Bump Version after Release (#12020) 2024-02-21 20:58:59 +00:00
bevy_animation Bump Version after Release (#12020) 2024-02-21 20:58:59 +00:00
bevy_app Check cfg during CI and fix feature typos (#12103) 2024-02-25 15:19:27 +00:00
bevy_asset Normalise root path in file_watcher (#12102) 2024-02-25 15:21:06 +00:00
bevy_audio Bump Version after Release (#12020) 2024-02-21 20:58:59 +00:00
bevy_color Simplified bevy_color Srgba hex string parsing (#12082) 2024-02-25 15:20:47 +00:00
bevy_core Check cfg during CI and fix feature typos (#12103) 2024-02-25 15:19:27 +00:00
bevy_core_pipeline Check cfg during CI and fix feature typos (#12103) 2024-02-25 15:19:27 +00:00
bevy_derive Bump Version after Release (#12020) 2024-02-21 20:58:59 +00:00
bevy_diagnostic Bump Version after Release (#12020) 2024-02-21 20:58:59 +00:00
bevy_dylib Bump Version after Release (#12020) 2024-02-21 20:58:59 +00:00
bevy_dynamic_plugin Document all members of bevy_dynamic_plugin (#12029) 2024-02-22 13:28:52 +00:00
bevy_ecs Check cfg during CI and fix feature typos (#12103) 2024-02-25 15:19:27 +00:00
bevy_ecs_compile_fail_tests Remove APIs deprecated in 0.13 (#11974) 2024-02-19 19:04:47 +00:00
bevy_encase_derive Bump Version after Release (#12020) 2024-02-21 20:58:59 +00:00
bevy_gilrs Bump Version after Release (#12020) 2024-02-21 20:58:59 +00:00
bevy_gizmos Reflect GizmoConfigStore (#12104) 2024-02-25 01:57:44 +00:00
bevy_gltf Rename bevy_render::Color to LegacyColor (#12069) 2024-02-24 21:35:32 +00:00
bevy_hierarchy Bump Version after Release (#12020) 2024-02-21 20:58:59 +00:00
bevy_input Fix missing renaming of Input -> ButtonInput (#12096) 2024-02-24 18:41:17 +00:00
bevy_internal Rename bevy_render::Color to LegacyColor (#12069) 2024-02-24 21:35:32 +00:00
bevy_log Remove unnecessary wildcards from LogPlugin and convert warnings to errors. (#12046) 2024-02-23 18:49:32 +00:00
bevy_macro_utils fix some typos (#12038) 2024-02-22 18:55:22 +00:00
bevy_macros_compile_fail_tests Standardize toml format with taplo (#10594) 2023-11-21 01:04:14 +00:00
bevy_math Bump Version after Release (#12020) 2024-02-21 20:58:59 +00:00
bevy_mikktspace fix some typos (#12038) 2024-02-22 18:55:22 +00:00
bevy_pbr Prefer UVec2 when working with texture dimensions (#11698) 2024-02-25 15:23:04 +00:00
bevy_ptr Bump Version after Release (#12020) 2024-02-21 20:58:59 +00:00
bevy_reflect Check cfg during CI and fix feature typos (#12103) 2024-02-25 15:19:27 +00:00
bevy_reflect_compile_fail_tests bevy_reflect_derive: Clean up attribute logic (#11777) 2024-02-12 15:16:27 +00:00
bevy_render Prefer UVec2 when working with texture dimensions (#11698) 2024-02-25 15:23:04 +00:00
bevy_scene Bump Version after Release (#12020) 2024-02-21 20:58:59 +00:00
bevy_sprite Prefer UVec2 when working with texture dimensions (#11698) 2024-02-25 15:23:04 +00:00
bevy_tasks Loosen lifetime requirements for single-threaded Scope::spawn to match the multi-threaded version. (#12073) 2024-02-24 06:01:34 +00:00
bevy_text Prefer UVec2 when working with texture dimensions (#11698) 2024-02-25 15:23:04 +00:00
bevy_time Bump Version after Release (#12020) 2024-02-21 20:58:59 +00:00
bevy_transform Fix taplo CI - toml fmt (#12037) 2024-02-22 18:13:45 +00:00
bevy_ui Prefer UVec2 when working with texture dimensions (#11698) 2024-02-25 15:23:04 +00:00
bevy_utils fix some typos (#12038) 2024-02-22 18:55:22 +00:00
bevy_window Bump Version after Release (#12020) 2024-02-21 20:58:59 +00:00
bevy_winit Check cfg during CI and fix feature typos (#12103) 2024-02-25 15:19:27 +00:00