aboutsummaryrefslogtreecommitdiffstats
path: root/components/canvas_traits/lib.rs
diff options
context:
space:
mode:
authorAnthony Ramine <n.oxyde@gmail.com>2016-07-04 16:40:59 +0200
committerAnthony Ramine <n.oxyde@gmail.com>2016-07-04 16:48:15 +0200
commite77efb93c15a22aadb950d152e905a7ab1d27db9 (patch)
tree9130d064d6dc9b927e19e9f1b67c4e192059b97d /components/canvas_traits/lib.rs
parenta5b524d5590f84428c61895b418eda7024c8e600 (diff)
downloadservo-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.rs13
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;
+ }
+}