bevy/crates
Gagnus cbebcb0d3f
Adds back in way to convert color to u8 array, implemented for the two RGB color types, also renames Color::linear to Color::to_linear. (#13759)
# Objective

One thing missing from the new Color implementation in 0.14 is the
ability to easily convert to a u8 representation of the rgb color.

(note this is a redo of PR https://github.com/bevyengine/bevy/pull/13739
as I needed to move the source branch

## Solution

I have added to_u8_array and to_u8_array_no_alpha to a new trait called
ColorToPacked to mirror the f32 conversions in ColorToComponents and
implemented the new trait for Srgba and LinearRgba.
To go with those I also added matching from_u8... functions and
converted a couple of cases that used ad-hoc implementations of that
conversion to use these.
After discussion on Discord of the experience of using the API I renamed
Color::linear to Color::to_linear, as without that it looks like a
constructor (like Color::rgb).
I also added to_srgba which is the other commonly converted to type of
color (for UI and 2D) to match to_linear.
Removed a redundant extra implementation of to_f32_array for LinearColor
as it is also supplied in ColorToComponents (I'm surprised that's
allowed?)

## Testing

Ran all tests and manually tested.
Added to_and_from_u8 to linear_rgba::tests

## Changelog

visible change is Color::linear becomes Color::to_linear.

---------

Co-authored-by: John Payne <20407779+johngpayne@users.noreply.github.com>
2024-06-10 19:31:41 +02:00
..
bevy_a11y Release Candidate 0.14.0-rc.2 2024-06-06 23:56:56 +02:00
bevy_animation Make the component types of the new animation players clonable. (#13736) 2024-06-09 01:18:07 +02:00
bevy_app Let init_non_send_resource require FromWorld instead of Default (#13779) 2024-06-10 19:31:41 +02:00
bevy_asset Improve error handling for AssetServer::add_async (#13745) 2024-06-10 19:31:41 +02:00
bevy_audio Release Candidate 0.14.0-rc.2 2024-06-06 23:56:56 +02:00
bevy_color Adds back in way to convert color to u8 array, implemented for the two RGB color types, also renames Color::linear to Color::to_linear. (#13759) 2024-06-10 19:31:41 +02:00
bevy_core Release Candidate 0.14.0-rc.2 2024-06-06 23:56:56 +02:00
bevy_core_pipeline Release Candidate 0.14.0-rc.2 2024-06-06 23:56:56 +02:00
bevy_derive Release Candidate 0.14.0-rc.2 2024-06-06 23:56:56 +02:00
bevy_dev_tools Release Candidate 0.14.0-rc.2 2024-06-06 23:56:56 +02:00
bevy_diagnostic Release Candidate 0.14.0-rc.2 2024-06-06 23:56:56 +02:00
bevy_dylib Release Candidate 0.14.0-rc.2 2024-06-06 23:56:56 +02:00
bevy_dynamic_plugin Release Candidate 0.14.0-rc.2 2024-06-06 23:56:56 +02:00
bevy_ecs Fix EntityCommands::despawn docs (#13774) 2024-06-09 20:52:52 +02:00
bevy_encase_derive Release Candidate 0.14.0-rc.2 2024-06-06 23:56:56 +02:00
bevy_gilrs Release Candidate 0.14.0-rc.2 2024-06-06 23:56:56 +02:00
bevy_gizmos view.inverse_clip_from_world should be world_from_clip (#13756) 2024-06-09 16:55:22 +02:00
bevy_gltf Release Candidate 0.14.0-rc.2 2024-06-06 23:56:56 +02:00
bevy_hierarchy Fix EntityCommands::despawn docs (#13774) 2024-06-09 20:52:52 +02:00
bevy_input Release Candidate 0.14.0-rc.2 2024-06-06 23:56:56 +02:00
bevy_internal Release Candidate 0.14.0-rc.2 2024-06-06 23:56:56 +02:00
bevy_log Release Candidate 0.14.0-rc.2 2024-06-06 23:56:56 +02:00
bevy_macro_utils Release Candidate 0.14.0-rc.2 2024-06-06 23:56:56 +02:00
bevy_math Release Candidate 0.14.0-rc.2 2024-06-06 23:56:56 +02:00
bevy_mikktspace Release Candidate 0.14.0-rc.2 2024-06-06 23:56:56 +02:00
bevy_pbr Adds back in way to convert color to u8 array, implemented for the two RGB color types, also renames Color::linear to Color::to_linear. (#13759) 2024-06-10 19:31:41 +02:00
bevy_ptr Release Candidate 0.14.0-rc.2 2024-06-06 23:56:56 +02:00
bevy_reflect Release Candidate 0.14.0-rc.2 2024-06-06 23:56:56 +02:00
bevy_render Add segments to ExtrusionBuilder (#13719) 2024-06-10 19:31:41 +02:00
bevy_scene Release Candidate 0.14.0-rc.2 2024-06-06 23:56:56 +02:00
bevy_sprite Adds back in way to convert color to u8 array, implemented for the two RGB color types, also renames Color::linear to Color::to_linear. (#13759) 2024-06-10 19:31:41 +02:00
bevy_state Clear messed up feature flag on AppExitStates impl (#13737) 2024-06-09 16:22:50 +02:00
bevy_tasks Release Candidate 0.14.0-rc.2 2024-06-06 23:56:56 +02:00
bevy_text Release Candidate 0.14.0-rc.2 2024-06-06 23:56:56 +02:00
bevy_time Release Candidate 0.14.0-rc.2 2024-06-06 23:56:56 +02:00
bevy_transform Release Candidate 0.14.0-rc.2 2024-06-06 23:56:56 +02:00
bevy_ui Adds back in way to convert color to u8 array, implemented for the two RGB color types, also renames Color::linear to Color::to_linear. (#13759) 2024-06-10 19:31:41 +02:00
bevy_utils Release Candidate 0.14.0-rc.2 2024-06-06 23:56:56 +02:00
bevy_window Release Candidate 0.14.0-rc.2 2024-06-06 23:56:56 +02:00
bevy_winit 13743 app exit hang (#13744) 2024-06-09 01:18:07 +02:00