ck3-regions 0.0.4

Generates title-based region textures for use with the custom dynamic terrain shader system implemented in some CK3 mods.
Documentation
use image::{
    Rgba,
    ImageBuffer
};

//
// Interface aliases
//

pub type RegionsMapImageBuffer = ImageBuffer<Rgba<u8>, Vec<u8>>;

//
// Interface
//


pub fn encode_index_as_rgba(index: u32) -> [u8; 4] {
    [
        ((index & (0xFF << 0))  >> 0)  as u8,
        ((index & (0xFF << 8))  >> 8)  as u8,
        ((index & (0xFF << 16)) >> 16) as u8,
        ((index & (0xFF << 24)) >> 24) as u8
    ]
}

pub fn decode_index_from_rgb(rgb: &[u8]) -> u32 {
    assert_eq!(rgb.len(), 3);

    (rgb[0] as u32) << 0
        | (rgb[1] as u32) << 8
        | (rgb[2] as u32) << 16
}