canvas: Use strum::{Display, EnumString} for canvas enums (#37670)

This makes it easier to add variants, I also added some spec links and
reordered enum variants to match the spec.

Testing: Just refactor, but the code is covered by WPT tests.

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
This commit is contained in:
sagudev 2025-06-24 15:03:41 +02:00 committed by GitHub
parent 2dc62c504f
commit ef7be66c56
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 82 additions and 202 deletions

View file

@ -894,14 +894,14 @@ impl ToRaqoteStyle for CompositionStyle {
fn to_raqote_style(self) -> Self::Target {
match self {
CompositionStyle::SrcIn => raqote::BlendMode::SrcIn,
CompositionStyle::SrcOut => raqote::BlendMode::SrcOut,
CompositionStyle::SrcOver => raqote::BlendMode::SrcOver,
CompositionStyle::SrcAtop => raqote::BlendMode::SrcAtop,
CompositionStyle::DestIn => raqote::BlendMode::DstIn,
CompositionStyle::DestOut => raqote::BlendMode::DstOut,
CompositionStyle::DestOver => raqote::BlendMode::DstOver,
CompositionStyle::DestAtop => raqote::BlendMode::DstAtop,
CompositionStyle::SourceIn => raqote::BlendMode::SrcIn,
CompositionStyle::SourceOut => raqote::BlendMode::SrcOut,
CompositionStyle::SourceOver => raqote::BlendMode::SrcOver,
CompositionStyle::SourceAtop => raqote::BlendMode::SrcAtop,
CompositionStyle::DestinationIn => raqote::BlendMode::DstIn,
CompositionStyle::DestinationOut => raqote::BlendMode::DstOut,
CompositionStyle::DestinationOver => raqote::BlendMode::DstOver,
CompositionStyle::DestinationAtop => raqote::BlendMode::DstAtop,
CompositionStyle::Copy => raqote::BlendMode::Src,
CompositionStyle::Lighter => raqote::BlendMode::Add,
CompositionStyle::Xor => raqote::BlendMode::Xor,