bevy/crates
Shane Celis 47ad37ec84
bug: Fix 9-slice textures with asymmetric borders. (#13921)
# Objective

Fix a 9-slice asymmetric border issue that
[QueenOfSquiggles](https://blobfox.coffee/@queenofsquiggles/112639035165575222)
found. Here's the behavior before:

<img width="340" alt="the-bug"
src="https://github.com/bevyengine/bevy/assets/54390/81ff1847-b2ea-4578-9fd0-af6ee96c5438">

## Solution

Here's the behavior with the fix.

<img width="327" alt="the-fix"
src="https://github.com/bevyengine/bevy/assets/54390/33a4e3f0-b6a8-448e-9654-1197218ea11d">


## Testing

I used QueenOfSquiggles
[repo](https://github.com/QueenOfSquiggles/my-bevy-learning-project) to
exercise the code. I manually went through a number of variations of the
border and caught a few other issues after the first pass. I added some
code to create random borders and though they often looked funny there
weren't any gaps like before.

### Unit Tests

I did add some tests to `slicer.rs` mostly as an exploratory programming
exercise. So they currently act as a limited, incomplete,
"golden-file"-ish approach. Perhaps they're not worth keeping.

In order to write the tests, I did add a `PartialEq` derive for
`TextureSlice`.

I only tested these changes on macOS.

---

## Changelog

Make 9-slice textures work with asymmetric borders.
2024-06-21 19:36:48 +02:00
..
bevy_a11y Release Candidate 0.14.0-rc.3 2024-06-16 17:50:19 +02:00
bevy_animation Release Candidate 0.14.0-rc.3 2024-06-16 17:50:19 +02:00
bevy_app Release Candidate 0.14.0-rc.3 2024-06-16 17:50:19 +02:00
bevy_asset Release Candidate 0.14.0-rc.3 2024-06-16 17:50:19 +02:00
bevy_audio Release Candidate 0.14.0-rc.3 2024-06-16 17:50:19 +02:00
bevy_color Release Candidate 0.14.0-rc.3 2024-06-16 17:50:19 +02:00
bevy_core Release Candidate 0.14.0-rc.3 2024-06-16 17:50:19 +02:00
bevy_core_pipeline Release Candidate 0.14.0-rc.3 2024-06-16 17:50:19 +02:00
bevy_derive Release Candidate 0.14.0-rc.3 2024-06-16 17:50:19 +02:00
bevy_dev_tools Release Candidate 0.14.0-rc.3 2024-06-16 17:50:19 +02:00
bevy_diagnostic Release Candidate 0.14.0-rc.3 2024-06-16 17:50:19 +02:00
bevy_dylib Release Candidate 0.14.0-rc.3 2024-06-16 17:50:19 +02:00
bevy_dynamic_plugin Release Candidate 0.14.0-rc.3 2024-06-16 17:50:19 +02:00
bevy_ecs Update observer archetype flags for sparse components (#13886) 2024-06-19 04:14:58 +02:00
bevy_encase_derive Release Candidate 0.14.0-rc.3 2024-06-16 17:50:19 +02:00
bevy_gilrs Release Candidate 0.14.0-rc.3 2024-06-16 17:50:19 +02:00
bevy_gizmos Release Candidate 0.14.0-rc.3 2024-06-16 17:50:19 +02:00
bevy_gltf Release Candidate 0.14.0-rc.3 2024-06-16 17:50:19 +02:00
bevy_hierarchy Release Candidate 0.14.0-rc.3 2024-06-16 17:50:19 +02:00
bevy_input Release Candidate 0.14.0-rc.3 2024-06-16 17:50:19 +02:00
bevy_internal Release Candidate 0.14.0-rc.3 2024-06-16 17:50:19 +02:00
bevy_log Release Candidate 0.14.0-rc.3 2024-06-16 17:50:19 +02:00
bevy_macro_utils Release Candidate 0.14.0-rc.3 2024-06-16 17:50:19 +02:00
bevy_math Release Candidate 0.14.0-rc.3 2024-06-16 17:50:19 +02:00
bevy_mikktspace Release Candidate 0.14.0-rc.3 2024-06-16 17:50:19 +02:00
bevy_pbr Release Candidate 0.14.0-rc.3 2024-06-16 17:50:19 +02:00
bevy_ptr Release Candidate 0.14.0-rc.3 2024-06-16 17:50:19 +02:00
bevy_reflect Release Candidate 0.14.0-rc.3 2024-06-16 17:50:19 +02:00
bevy_render Release Candidate 0.14.0-rc.3 2024-06-16 17:50:19 +02:00
bevy_scene Release Candidate 0.14.0-rc.3 2024-06-16 17:50:19 +02:00
bevy_sprite bug: Fix 9-slice textures with asymmetric borders. (#13921) 2024-06-21 19:36:48 +02:00
bevy_state Warn about missing StatesPlugin when installing states (#13877) 2024-06-19 04:14:58 +02:00
bevy_tasks Release Candidate 0.14.0-rc.3 2024-06-16 17:50:19 +02:00
bevy_text Release Candidate 0.14.0-rc.3 2024-06-16 17:50:19 +02:00
bevy_time Make time_system public (#13879) 2024-06-19 04:14:58 +02:00
bevy_transform Release Candidate 0.14.0-rc.3 2024-06-16 17:50:19 +02:00
bevy_ui Release Candidate 0.14.0-rc.3 2024-06-16 17:50:19 +02:00
bevy_utils Release Candidate 0.14.0-rc.3 2024-06-16 17:50:19 +02:00
bevy_window Release Candidate 0.14.0-rc.3 2024-06-16 17:50:19 +02:00
bevy_winit Fix phantom key presses in winit on focus change (#13299) (#13696) 2024-06-19 04:14:58 +02:00