fast image operations
-rw-r--r--src/indexed.rs8
-rw-r--r--src/pack.rs11
2 files changed, 11 insertions, 8 deletions
diff --git a/src/indexed.rs b/src/indexed.rs
index ac56eb6..b7e465a 100644
--- a/src/indexed.rs
+++ b/src/indexed.rs
@@ -46,6 +46,14 @@ impl<I, P> IndexedImage<I, P> {
}
}
+ /// Gets a mut ref to raw parts.
+ pub unsafe fn raw<INDEX: uint>(&mut self) -> Image<&mut [INDEX], 1>
+ where
+ I: AsMut<[INDEX]>,
+ {
+ self.buffer.as_mut()
+ }
+
/// Provides the buffer and palette of this image.
pub fn into_raw_parts(self) -> (Image<I, 1>, P) {
(self.buffer, self.palette)
diff --git a/src/pack.rs b/src/pack.rs
index 82d41bb..e9ae84a 100644
--- a/src/pack.rs
+++ b/src/pack.rs
@@ -3,18 +3,13 @@
use crate::pixels::convert::{PFrom, RGB, RGBA, Y, YA};
#[inline]
-pub const fn pack([r, g, b, a]: [u8; 4]) -> u32 {
- ((a as u32) << 24) | ((r as u32) << 16) | ((g as u32) << 8) | (b as u32)
+pub const fn pack(x: [u8; 4]) -> u32 {
+ u32::from_le_bytes(x).rotate_left(8).swap_bytes()
}
#[inline]
pub const fn unpack(n: u32) -> [u8; 4] {
- [
- ((n >> 16) & 0xFF) as u8,
- ((n >> 8) & 0xFF) as u8,
- (n & 0xFF) as u8,
- ((n >> 24) & 0xFF) as u8,
- ]
+ n.rotate_left(8).to_be_bytes()
}
/// packs and unpacks this pixel
/icons/c.svg" width="30" height="30" />
cache.c
-rw-r--r--
9668
cache.h
-rw-r--r--
983
cgit.c
-rw-r--r--
11169
cgit.css
-rw-r--r--
5809
cgit.h
-rw-r--r--
4864
cgit.png
-rw-r--r--
1840
cgitrc
-rw-r--r--
4918
cmd.c
-rw-r--r--
2748
cmd.h
-rw-r--r--
271
configfile.c
-rw-r--r--
1426
configfile.h
-rw-r--r--
220
gen-version.sh
-rwxr-xr-x
392
git @ 1d2375d
m---------
html.c
-rw-r--r--
4152
html.h
-rw-r--r--
673
parsing.c
-rw-r--r--
4072
shared.c
-rw-r--r--
7479
tests
d---------
ui-blob.c
-rw-r--r--
865
ui-blob.h
-rw-r--r--
119
ui-commit.c
-rw-r--r--
2836
ui-commit.h
-rw-r--r--
109
ui-diff.c
-rw-r--r--
7711
ui-diff.h
-rw-r--r--
259
ui-log.c
-rw-r--r--
3805
ui-log.h
-rw-r--r--
177
ui-patch.c
-rw-r--r--
3062
ui-patch.h
-rw-r--r--
105
ui-refs.c
-rw-r--r--
4501
ui-refs.h
-rw-r--r--
182
ui-repolist.c
-rw-r--r--
4002
ui-repolist.h
-rw-r--r--
146
ui-shared.c
-rw-r--r--
16011
ui-shared.h
-rw-r--r--
1839
ui-snapshot.c
-rw-r--r--
3368
ui-snapshot.h
-rw-r--r--
205
ui-summary.c
-rw-r--r--
867
ui-summary.h
-rw-r--r--
142
ui-tag.c
-rw-r--r--
1609
ui-tag.h
-rw-r--r--
101
ui-tree.c
-rw-r--r--
4936
ui-tree.h
-rw-r--r--
119
README.md