diff options
author | Anthony Ramine <n.oxyde@gmail.com> | 2018-09-08 13:31:40 +0200 |
---|---|---|
committer | Anthony Ramine <n.oxyde@gmail.com> | 2018-09-08 13:42:07 +0200 |
commit | e192e4d97ff90f4b4480cd5a25a7a3914f84a09b (patch) | |
tree | ef5f55773072ef3f621717aa18d67ee4129b6094 /components/script/dom/webglrenderingcontext.rs | |
parent | 27951bb7c89614e5be1b2a0bf453f1359122fc9f (diff) | |
download | servo-e192e4d97ff90f4b4480cd5a25a7a3914f84a09b.tar.gz servo-e192e4d97ff90f4b4480cd5a25a7a3914f84a09b.zip |
Reuse input of rgba8_image_to_tex_image_data in some cases
Diffstat (limited to 'components/script/dom/webglrenderingcontext.rs')
-rw-r--r-- | components/script/dom/webglrenderingcontext.rs | 17 |
1 files 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<u8>, + mut pixels: Vec<u8>, ) -> Vec<u8> { // 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::<u8>::with_capacity(pixel_count * 4); - for rgba8 in pixels.chunks(4) { - alpha.write_f32::<NativeEndian>(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::<u8>::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::<NativeEndian>(p as f32).unwrap(); + NativeEndian::write_f32(rgba8, p as f32); } - luminance + pixels }, (TexFormat::LuminanceAlpha, TexDataType::Float) => { |