From e192e4d97ff90f4b4480cd5a25a7a3914f84a09b Mon Sep 17 00:00:00 2001 From: Anthony Ramine Date: Sat, 8 Sep 2018 13:31:40 +0200 Subject: [PATCH] Reuse input of rgba8_image_to_tex_image_data in some cases --- components/script/dom/webglrenderingcontext.rs | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/components/script/dom/webglrenderingcontext.rs b/components/script/dom/webglrenderingcontext.rs index def1a2bacc4..c96fdcf60b6 100644 --- a/components/script/dom/webglrenderingcontext.rs +++ b/components/script/dom/webglrenderingcontext.rs @@ -4008,7 +4008,7 @@ fn remove_premultiplied_alpha(pixels: &mut [u8]) { fn rgba8_image_to_tex_image_data( format: TexFormat, data_type: TexDataType, - pixels: Vec, + mut pixels: Vec, ) -> Vec { // hint for vector allocation sizing. let pixel_count = pixels.len() / 4; @@ -4106,20 +4106,19 @@ fn rgba8_image_to_tex_image_data( } (TexFormat::Alpha, TexDataType::Float) => { - let mut alpha = Vec::::with_capacity(pixel_count * 4); - for rgba8 in pixels.chunks(4) { - alpha.write_f32::(rgba8[0] as f32).unwrap(); + for rgba8 in pixels.chunks_mut(4) { + let p = rgba8[0] as f32; + NativeEndian::write_f32(rgba8, p); } - alpha + pixels }, (TexFormat::Luminance, TexDataType::Float) => { - let mut lum = Vec::::with_capacity(pixel_count * 4); - for rgba8 in pixels.chunks(4) { + for rgba8 in pixels.chunks_mut(4) { let p = luminance(rgba8[0], rgba8[1], rgba8[2]); - luminance.write_f32::(p as f32).unwrap(); + NativeEndian::write_f32(rgba8, p as f32); } - luminance + pixels }, (TexFormat::LuminanceAlpha, TexDataType::Float) => {