diff --git a/render/Cargo.toml b/render/Cargo.toml index ac9373df7..8a2ac32ba 100644 --- a/render/Cargo.toml +++ b/render/Cargo.toml @@ -24,7 +24,7 @@ lyon_geom = "1.0.5" thiserror = { workspace = true } wasm-bindgen = { workspace = true, optional = true } enum-map = { workspace = true } -serde = { workspace = true, features = ["derive"] } +serde = { workspace = true, features = ["derive"], optional = true } clap = { workspace = true, optional = true } h263-rs-yuv = { git = "https://github.com/ruffle-rs/h263-rs", rev = "f0fa94c366a1d0383df99aa835add175658d6bad"} num-traits = { workspace = true } @@ -50,3 +50,4 @@ default = [] tessellator = ["lyon"] web = ["wasm-bindgen"] wgpu = ["dep:wgpu"] +serde = ["dep:serde"] diff --git a/render/src/backend.rs b/render/src/backend.rs index b493ce136..683dbd230 100644 --- a/render/src/backend.rs +++ b/render/src/backend.rs @@ -9,7 +9,6 @@ use crate::quality::StageQuality; use crate::shape_utils::DistilledShape; use downcast_rs::{impl_downcast, Downcast}; use ruffle_wstr::WStr; -use serde::{Deserialize, Serialize}; use std::borrow::Cow; use std::cell::RefCell; use std::fmt::Debug; @@ -533,8 +532,9 @@ pub struct ShapeHandle(pub Arc); pub trait ShapeHandleImpl: Downcast + Debug {} impl_downcast!(ShapeHandleImpl); -#[derive(Copy, Clone, Debug, Serialize, Deserialize)] -#[serde(deny_unknown_fields)] +#[derive(Copy, Clone, Debug)] +#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] +#[cfg_attr(feature = "serde", serde(deny_unknown_fields))] pub struct ViewportDimensions { /// The dimensions of the stage's containing viewport. pub width: u32, diff --git a/tests/framework/Cargo.toml b/tests/framework/Cargo.toml index e13bc2a09..7b48703f4 100644 --- a/tests/framework/Cargo.toml +++ b/tests/framework/Cargo.toml @@ -12,7 +12,7 @@ workspace = true [dependencies] ruffle_core = { path = "../../core", features = ["deterministic", "timeline_debug", "avm_debug", "audio", "mp3", "default_font"] } -ruffle_render = { path = "../../render" } +ruffle_render = { path = "../../render", features = ["serde"] } ruffle_input_format = { path = "../input-format" } ruffle_socket_format = { path = "../socket-format" } ruffle_video_software = { path = "../../video/software", optional = true }