# Objective The `Anchor` component doesn't need to be a enum. The variants are just mapped to `Vec2`s so it could be changed to a newtype with associated const values, saving the space needed for the discriminator by the enum. Also there was no benefit I think in hiding the underlying `Vec2` representation of `Anchor`s. Suggested by @atlv24. Fixes #18459 Fixes #18460 ## Solution Change `Anchor` to a struct newtyping a `Vec2`, and its variants into associated constants. ## Migration Guide The anchor component has been changed from an enum to a struct newtyping a `Vec2`. The `Custom` variant has been removed, instead to construct a custom `Anchor` use its tuple constructor: ```rust Sprite { anchor: Anchor(Vec2::new(0.25, 0.4)), ..default() } ``` The other enum variants have been replaced with corresponding constants: * `Anchor::BottomLeft` to `Anchor::BOTTOM_LEFT` * `Anchor::Center` to `Anchor::CENTER` * `Anchor::TopRight` to `Anchor::TOP_RIGHT` * .. and so on for the remaining variants |
||
|---|---|---|
| .. | ||
| bevymark.rs | ||
| many_animated_sprites.rs | ||
| many_buttons.rs | ||
| many_cameras_lights.rs | ||
| many_components.rs | ||
| many_cubes.rs | ||
| many_foxes.rs | ||
| many_gizmos.rs | ||
| many_glyphs.rs | ||
| many_lights.rs | ||
| many_materials.rs | ||
| many_sprites.rs | ||
| many_text2d.rs | ||
| README.md | ||
| text_pipeline.rs | ||
| transform_hierarchy.rs | ||
| warning_string.txt | ||
Stress tests
These examples are used to stress test Bevy's performance in various ways. These should be run with the "stress-test" profile to accurately represent performance in production, otherwise they will run in cargo's default "dev" profile which is very slow.
Example Command
cargo run --profile stress-test --example <EXAMPLE>