Uhhhh various improvements from kittage and psx-shm

This commit is contained in:
itsjunetime
2025-06-05 16:25:00 -06:00
parent b791b55b80
commit 6677266010
2 changed files with 7 additions and 25 deletions
+4 -4
View File
@@ -17,7 +17,7 @@ use crate::renderer::{PageInfo, RenderError, fill_default};
#[derive(Debug)] #[derive(Debug)]
pub enum MaybeTransferred { pub enum MaybeTransferred {
NotYet(kittage::image::Image<'static>, memmap2::MmapMut), NotYet(kittage::image::Image<'static>),
Transferred(kittage::ImageId) Transferred(kittage::ImageId)
} }
@@ -124,13 +124,13 @@ pub async fn run_conversion_loop(
match kittage::image::Image::shm_from( match kittage::image::Image::shm_from(
dyn_img, dyn_img,
format!("__tdf_kittage_{pid}_page_{page_num}").into() &format!("__tdf_kittage_{pid}_page_{page_num}")
) { ) {
Ok((mut img, map)) => { Ok(mut img) => {
img.num_or_id = img.num_or_id =
NumberOrId::Id(NonZeroU32::new(page_num as u32 + 1).unwrap()); NumberOrId::Id(NonZeroU32::new(page_num as u32 + 1).unwrap());
ConvertedImage::Kitty { ConvertedImage::Kitty {
img: MaybeTransferred::NotYet(img, map), img: MaybeTransferred::NotYet(img),
area area
} }
} }
+3 -21
View File
@@ -45,7 +45,7 @@ impl<W: Write> Write for DbgWriter<W> {
pub async fn run_action<'image, 'data, 'es>( pub async fn run_action<'image, 'data, 'es>(
action: Action<'image, 'data>, action: Action<'image, 'data>,
ev_stream: &'es mut EventStream ev_stream: &'es mut EventStream
) -> Result<ImageId, TransmitError<'image, 'data, <&'es mut EventStream as AsyncInputReader>::Error>> ) -> Result<ImageId, TransmitError<<&'es mut EventStream as AsyncInputReader>::Error>>
{ {
let writer = DbgWriter { let writer = DbgWriter {
w: std::io::stdout().lock(), w: std::io::stdout().lock(),
@@ -85,7 +85,7 @@ pub async fn display_kitty_images(
log::debug!("looking at (area {area:?}) img {img:#?}"); log::debug!("looking at (area {area:?}) img {img:#?}");
let this_err = match img { let this_err = match img {
MaybeTransferred::NotYet(image, _map) => { MaybeTransferred::NotYet(image) => {
let mut fake_image = Image { let mut fake_image = Image {
num_or_id: image.num_or_id, num_or_id: image.num_or_id,
format: PixelFormat::Rgb24( format: PixelFormat::Rgb24(
@@ -118,28 +118,10 @@ pub async fn display_kitty_images(
match res { match res {
Ok(img_id) => { Ok(img_id) => {
// We need the `_map` to be dropped here, but can't explicitly carry it
// over to here. So we're just relying on the overwrite of `img` to
// drop `_map` (and thus unmap the memory) for us
*img = MaybeTransferred::Transferred(img_id); *img = MaybeTransferred::Transferred(img_id);
Ok(()) Ok(())
} }
Err(e) => Err(match e { Err(e) => Err((Some(page_num), e.to_string())),
TransmitError::Writing(action, e) => {
let num = if let Action::TransmitAndDisplay {
image: failed_img, ..
} = *action
{
*image = failed_img;
None
} else {
Some(page_num)
};
(num, e.to_string())
}
_ => (Some(page_num), e.to_string())
})
} }
} }
MaybeTransferred::Transferred(image_id) => { MaybeTransferred::Transferred(image_id) => {