aboutsummaryrefslogtreecommitdiff
path: root/font/src/darwin/byte_order.rs
diff options
context:
space:
mode:
authorKirill Chibisov <wchibisovkirill@gmail.com>2019-12-10 01:12:44 +0300
committerChristian Duerr <contact@christianduerr.com>2019-12-09 23:12:44 +0100
commit79b19176eeb57fbd6b137160afd6bc9f5518ad33 (patch)
treea3f76e83973e1bba2090afe39fbaa688d48efbf6 /font/src/darwin/byte_order.rs
parent88b4dbfc5a890569fcfac3fe400fe0ad0ea234cc (diff)
downloadr-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.rs21
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);