From 040da925e4225e3dd5dce865c02409046837148d Mon Sep 17 00:00:00 2001 From: Mike Welsh Date: Wed, 24 Mar 2021 01:52:51 -0700 Subject: [PATCH] avm2: Fix incorrect color in drawing API --- core/src/avm2/globals/flash/display/graphics.rs | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/core/src/avm2/globals/flash/display/graphics.rs b/core/src/avm2/globals/flash/display/graphics.rs index f0dbaddb8..98e3f4832 100644 --- a/core/src/avm2/globals/flash/display/graphics.rs +++ b/core/src/avm2/globals/flash/display/graphics.rs @@ -31,14 +31,10 @@ pub fn class_init<'gc>( Ok(Value::Undefined) } -/// Convert a `color`/`alpha` argument pair into a `swf::Color`. -fn color_from_args(color: u32, alpha: f64) -> Color { - let r = (color & 0xFF0000 >> 16) as u8; - let g = (color & 0x00FF00 >> 8) as u8; - let b = (color & 0x0000FF) as u8; - let a = (alpha * 255.0) as u8; - - Color { r, g, b, a } +/// Convert an RGB `color` and `alpha` argument pair into a `swf::Color`. +/// `alpha` is normalized from 0.0 - 1.0. +fn color_from_args(rgb: u32, alpha: f64) -> Color { + Color::from_rgb(rgb, (alpha * 255.0) as u8) } /// Implements `Graphics.beginFill`.