diff options
author | Anthony Ramine <n.oxyde@gmail.com> | 2016-07-04 16:40:59 +0200 |
---|---|---|
committer | Anthony Ramine <n.oxyde@gmail.com> | 2016-07-04 16:48:15 +0200 |
commit | e77efb93c15a22aadb950d152e905a7ab1d27db9 (patch) | |
tree | 9130d064d6dc9b927e19e9f1b67c4e192059b97d /components/canvas_traits/lib.rs | |
parent | a5b524d5590f84428c61895b418eda7024c8e600 (diff) | |
download | servo-e77efb93c15a22aadb950d152e905a7ab1d27db9.tar.gz servo-e77efb93c15a22aadb950d152e905a7ab1d27db9.zip |
Move util::vec::byte_swap to canvas_traits
Diffstat (limited to 'components/canvas_traits/lib.rs')
-rw-r--r-- | components/canvas_traits/lib.rs | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/components/canvas_traits/lib.rs b/components/canvas_traits/lib.rs index 98eaa159077..db945750a0c 100644 --- a/components/canvas_traits/lib.rs +++ b/components/canvas_traits/lib.rs @@ -539,3 +539,16 @@ impl ToAzColor for RGBA { self.alpha as AzFloat) } } + +// TODO(pcwalton): Speed up with SIMD, or better yet, find some way to not do this. +pub fn byte_swap(data: &mut [u8]) { + let length = data.len(); + // FIXME(rust #27741): Range::step_by is not stable yet as of this writing. + let mut i = 0; + while i < length { + let r = data[i + 2]; + data[i + 2] = data[i + 0]; + data[i + 0] = r; + i += 4; + } +} |