diff options
author | Kirill Chibisov <wchibisovkirill@gmail.com> | 2019-12-10 01:12:44 +0300 |
---|---|---|
committer | Christian Duerr <contact@christianduerr.com> | 2019-12-09 23:12:44 +0100 |
commit | 79b19176eeb57fbd6b137160afd6bc9f5518ad33 (patch) | |
tree | a3f76e83973e1bba2090afe39fbaa688d48efbf6 /font/src/darwin/byte_order.rs | |
parent | 88b4dbfc5a890569fcfac3fe400fe0ad0ea234cc (diff) | |
download | r-alacritty-79b19176eeb57fbd6b137160afd6bc9f5518ad33.tar.gz r-alacritty-79b19176eeb57fbd6b137160afd6bc9f5518ad33.tar.bz2 r-alacritty-79b19176eeb57fbd6b137160afd6bc9f5518ad33.zip |
Add support for colored emojis on Linux/BSD
Fixes #153.
Diffstat (limited to 'font/src/darwin/byte_order.rs')
-rw-r--r-- | font/src/darwin/byte_order.rs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/font/src/darwin/byte_order.rs b/font/src/darwin/byte_order.rs index 382caa31..1574cf19 100644 --- a/font/src/darwin/byte_order.rs +++ b/font/src/darwin/byte_order.rs @@ -24,6 +24,27 @@ pub const kCGBitmapByteOrder32Host: u32 = kCGBitmapByteOrder32Little; pub const kCGBitmapByteOrder32Host: u32 = kCGBitmapByteOrder32Big; #[cfg(target_endian = "little")] +pub fn extract_rgba(bytes: &[u8]) -> Vec<u8> { + let pixels = bytes.len() / 4; + let mut rgb = Vec::with_capacity(pixels * 4); + + for i in 0..pixels { + let offset = i * 4; + rgb.push(bytes[offset + 2]); + rgb.push(bytes[offset + 1]); + rgb.push(bytes[offset]); + rgb.push(bytes[offset + 3]); + } + + rgb +} + +#[cfg(target_endian = "big")] +pub fn extract_rgba(bytes: Vec<u8>) -> Vec<u8> { + bytes +} + +#[cfg(target_endian = "little")] pub fn extract_rgb(bytes: &[u8]) -> Vec<u8> { let pixels = bytes.len() / 4; let mut rgb = Vec::with_capacity(pixels * 3); |