mirror of
https://github.com/redstrate/Physis.git
synced 2025-04-27 14:37:46 +00:00
Add HWC module
This commit is contained in:
parent
6dec9ba5a5
commit
5924da0991
2 changed files with 30 additions and 0 deletions
27
src/hwc.rs
Normal file
27
src/hwc.rs
Normal file
|
@ -0,0 +1,27 @@
|
|||
// SPDX-FileCopyrightText: 2024 Joshua Goins <josh@redstrate.com>
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
use std::io::{Cursor, Read};
|
||||
|
||||
use crate::ByteSpan;
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct Hwc {
|
||||
pub rgba: Vec<u8>,
|
||||
}
|
||||
|
||||
const CURSOR_WIDTH: usize = 64;
|
||||
const CURSOR_HEIGHT: usize = 64;
|
||||
|
||||
impl Hwc {
|
||||
/// Reads an existing HWC file
|
||||
pub fn from_existing(buffer: ByteSpan) -> Option<Self> {
|
||||
let mut cursor = Cursor::new(buffer);
|
||||
|
||||
let mut rgba = Vec::new();
|
||||
rgba.resize(CURSOR_WIDTH * CURSOR_HEIGHT * 4, 0);
|
||||
cursor.read_exact(&mut rgba).ok()?;
|
||||
|
||||
Some(Self { rgba })
|
||||
}
|
||||
}
|
|
@ -135,3 +135,6 @@ pub mod sgb;
|
|||
|
||||
/// Reading SCD files
|
||||
pub mod scd;
|
||||
|
||||
/// Reading HWC files
|
||||
pub mod hwc;
|
||||
|
|
Loading…
Add table
Reference in a new issue