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
|
/// Reading SCD files
|
||||||
pub mod scd;
|
pub mod scd;
|
||||||
|
|
||||||
|
/// Reading HWC files
|
||||||
|
pub mod hwc;
|
||||||
|
|
Loading…
Add table
Reference in a new issue