aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/webglrenderingcontext.rs
diff options
context:
space:
mode:
authorAnthony Ramine <n.oxyde@gmail.com>2018-09-08 13:31:40 +0200
committerAnthony Ramine <n.oxyde@gmail.com>2018-09-08 13:42:07 +0200
commite192e4d97ff90f4b4480cd5a25a7a3914f84a09b (patch)
treeef5f55773072ef3f621717aa18d67ee4129b6094 /components/script/dom/webglrenderingcontext.rs
parent27951bb7c89614e5be1b2a0bf453f1359122fc9f (diff)
downloadservo-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.rs17
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) => {