decoder/tiling: Make shared frame buffer a struct

This commit is contained in:
Sophie Herold 2023-12-26 22:07:46 +01:00
parent 6827a9c176
commit 139bd4ebb2
6 changed files with 52 additions and 68 deletions

View file

@ -48,13 +48,11 @@ use std::sync::Arc;
use adw::prelude::*;
use adw::subclass::prelude::*;
use arc_swap::ArcSwap;
use futures_lite::StreamExt;
use glib::subclass::Signal;
use glib::{Properties, SignalGroup};
use once_cell::sync::Lazy;
use crate::decoder::tiling::FrameBufferExt;
use crate::decoder::{self, tiling, Decoder, DecoderUpdate};
use crate::deps::*;
use crate::metadata::Metadata;
@ -126,6 +124,7 @@ pub enum FitMode {
mod imp {
use super::*;
use crate::decoder::tiling::SharedFrameBuffer;
#[derive(Debug, Default, Properties)]
#[properties(wrapper_type = super::LpImage)]
@ -148,7 +147,7 @@ mod imp {
/// Track changes to this image
pub(super) file_monitor: RefCell<Option<gio::FileMonitor>>,
pub(super) frame_buffer: Arc<ArcSwap<tiling::FrameBuffer>>,
pub(super) frame_buffer: Arc<SharedFrameBuffer>,
pub(super) decoder: RefCell<Option<Arc<Decoder>>>,
/// Rotation final value (can differ from `rotation` during animation)