render: Moved render backend from core to render
This commit is contained in:
parent
760da753fb
commit
824b4aa8d1
|
@ -3010,7 +3010,6 @@ dependencies = [
|
|||
name = "ruffle_core"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"approx",
|
||||
"bitflags",
|
||||
"bitstream-io",
|
||||
"build_playerglobal",
|
||||
|
@ -3099,6 +3098,8 @@ dependencies = [
|
|||
name = "ruffle_render"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"approx",
|
||||
"downcast-rs",
|
||||
"flate2",
|
||||
"gc-arena",
|
||||
"gif",
|
||||
|
|
|
@ -53,9 +53,6 @@ version = "0.3.21"
|
|||
[target.'cfg(target_family = "wasm")'.dependencies.wasm-bindgen-futures]
|
||||
version = "0.4.32"
|
||||
|
||||
[dev-dependencies]
|
||||
approx = "0.5.1"
|
||||
|
||||
[features]
|
||||
default = ["minimp3"]
|
||||
h263 = ["h263-rs", "h263-rs-yuv"]
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
pub mod audio;
|
||||
pub mod log;
|
||||
pub mod navigator;
|
||||
pub mod render;
|
||||
pub mod storage;
|
||||
pub mod ui;
|
||||
pub mod video;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
//! Video decoder backends
|
||||
|
||||
use crate::backend::render::RenderBackend;
|
||||
use generational_arena::{Arena, Index};
|
||||
use ruffle_render::backend::RenderBackend;
|
||||
use ruffle_render::bitmap::BitmapInfo;
|
||||
use swf::{VideoCodec, VideoDeblocking};
|
||||
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
//! Pure software video decoding backend.
|
||||
|
||||
use crate::backend::render::RenderBackend;
|
||||
use crate::backend::video::{
|
||||
DecodedFrame, EncodedFrame, Error, FrameDependency, VideoBackend, VideoStreamHandle,
|
||||
};
|
||||
use generational_arena::Arena;
|
||||
use ruffle_render::backend::RenderBackend;
|
||||
use ruffle_render::bitmap::{Bitmap, BitmapFormat, BitmapHandle, BitmapInfo};
|
||||
use swf::{VideoCodec, VideoDeblocking};
|
||||
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
use gc_arena::Collect;
|
||||
|
||||
use crate::avm2::{Object as Avm2Object, Value as Avm2Value};
|
||||
use crate::backend::render::RenderBackend;
|
||||
use crate::bitmap::color_transform_params::ColorTransformParams;
|
||||
use crate::bitmap::turbulence::Turbulence;
|
||||
use bitflags::bitflags;
|
||||
use ruffle_render::backend::RenderBackend;
|
||||
use ruffle_render::bitmap::{Bitmap, BitmapFormat, BitmapHandle};
|
||||
use std::ops::Range;
|
||||
|
||||
|
|
|
@ -7,7 +7,6 @@ use crate::backend::{
|
|||
audio::{AudioBackend, AudioManager, SoundHandle, SoundInstanceHandle},
|
||||
log::LogBackend,
|
||||
navigator::NavigatorBackend,
|
||||
render::RenderBackend,
|
||||
storage::StorageBackend,
|
||||
ui::{InputManager, UiBackend},
|
||||
video::VideoBackend,
|
||||
|
@ -27,6 +26,7 @@ use core::fmt;
|
|||
use gc_arena::{Collect, MutationContext};
|
||||
use instant::Instant;
|
||||
use rand::rngs::SmallRng;
|
||||
use ruffle_render::backend::RenderBackend;
|
||||
use ruffle_render::transform::TransformStack;
|
||||
use std::collections::{HashMap, VecDeque};
|
||||
use std::sync::{Arc, Mutex, Weak};
|
||||
|
|
|
@ -2,7 +2,6 @@ use crate::avm1::Object as Avm1Object;
|
|||
use crate::avm2::{
|
||||
Activation as Avm2Activation, Object as Avm2Object, StageObject as Avm2StageObject,
|
||||
};
|
||||
use crate::backend::render::ShapeHandle;
|
||||
use crate::context::{RenderContext, UpdateContext};
|
||||
use crate::display_object::{DisplayObjectBase, DisplayObjectPtr, TDisplayObject};
|
||||
use crate::drawing::Drawing;
|
||||
|
@ -10,6 +9,7 @@ use crate::prelude::*;
|
|||
use crate::tag_utils::SwfMovie;
|
||||
use crate::vminterface::{AvmType, Instantiator};
|
||||
use gc_arena::{Collect, GcCell, MutationContext};
|
||||
use ruffle_render::backend::ShapeHandle;
|
||||
use std::cell::{Ref, RefMut};
|
||||
use std::sync::Arc;
|
||||
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
use crate::backend::render::{RenderBackend, ShapeHandle};
|
||||
use crate::context::{RenderContext, UpdateContext};
|
||||
use crate::display_object::{DisplayObjectBase, DisplayObjectPtr, TDisplayObject};
|
||||
use crate::library::Library;
|
||||
use crate::prelude::*;
|
||||
use crate::tag_utils::SwfMovie;
|
||||
use gc_arena::{Collect, Gc, GcCell, MutationContext};
|
||||
use ruffle_render::backend::{RenderBackend, ShapeHandle};
|
||||
use std::cell::{Ref, RefCell, RefMut};
|
||||
use std::sync::Arc;
|
||||
use swf::{Fixed16, Fixed8, Twips};
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
use crate::backend::render::ShapeHandle;
|
||||
use crate::context::RenderContext;
|
||||
use gc_arena::Collect;
|
||||
use ruffle_render::backend::ShapeHandle;
|
||||
use ruffle_render::bitmap::{BitmapInfo, BitmapSource};
|
||||
use ruffle_render::bounding_box::BoundingBox;
|
||||
use ruffle_render::shape_utils::{DistilledShape, DrawCommand, DrawPath};
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
use crate::backend::render::{RenderBackend, ShapeHandle};
|
||||
use crate::html::TextSpan;
|
||||
use crate::prelude::*;
|
||||
use crate::string::WStr;
|
||||
use gc_arena::{Collect, Gc, MutationContext};
|
||||
use ruffle_render::backend::{RenderBackend, ShapeHandle};
|
||||
use ruffle_render::transform::Transform;
|
||||
use std::cell::{Cell, Ref, RefCell};
|
||||
|
||||
|
@ -540,11 +540,11 @@ impl From<swf::CsmTextSettings> for TextRenderSettings {
|
|||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use crate::backend::render::{NullRenderer, RenderBackend};
|
||||
use crate::font::{EvalParameters, Font};
|
||||
use crate::player::{Player, DEVICE_FONT_TAG};
|
||||
use crate::string::WStr;
|
||||
use gc_arena::{rootless_arena, MutationContext};
|
||||
use ruffle_render::backend::{null::NullRenderer, RenderBackend};
|
||||
use std::ops::DerefMut;
|
||||
use swf::Twips;
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
use crate::avm1::property_map::PropertyMap as Avm1PropertyMap;
|
||||
use crate::avm2::{ClassObject as Avm2ClassObject, Domain as Avm2Domain};
|
||||
use crate::backend::{audio::SoundHandle, render};
|
||||
use crate::backend::audio::SoundHandle;
|
||||
use crate::character::Character;
|
||||
use crate::display_object::{Bitmap, Graphic, MorphShape, TDisplayObject, Text};
|
||||
use crate::font::{Font, FontDescriptor};
|
||||
|
@ -9,6 +9,7 @@ use crate::string::AvmString;
|
|||
use crate::tag_utils::SwfMovie;
|
||||
use crate::vminterface::AvmType;
|
||||
use gc_arena::{Collect, MutationContext};
|
||||
use ruffle_render::utils::remove_invalid_jpeg_data;
|
||||
use std::collections::HashMap;
|
||||
use std::sync::{Arc, Weak};
|
||||
use swf::CharacterId;
|
||||
|
@ -293,7 +294,7 @@ impl<'gc> MovieLibrary<'gc> {
|
|||
self.jpeg_tables = if data.is_empty() {
|
||||
None
|
||||
} else {
|
||||
Some(render::remove_invalid_jpeg_data(&data[..]).to_vec())
|
||||
Some(remove_invalid_jpeg_data(&data[..]).to_vec())
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -11,7 +11,6 @@ use crate::backend::{
|
|||
audio::{AudioBackend, AudioManager},
|
||||
log::LogBackend,
|
||||
navigator::{NavigatorBackend, Request},
|
||||
render::RenderBackend,
|
||||
storage::StorageBackend,
|
||||
ui::{InputManager, MouseCursor, UiBackend},
|
||||
video::VideoBackend,
|
||||
|
@ -39,6 +38,7 @@ use gc_arena::{make_arena, ArenaParameters, Collect, GcCell};
|
|||
use instant::Instant;
|
||||
use log::info;
|
||||
use rand::{rngs::SmallRng, SeedableRng};
|
||||
use ruffle_render::backend::RenderBackend;
|
||||
use ruffle_render::transform::TransformStack;
|
||||
use std::collections::{HashMap, VecDeque};
|
||||
use std::ops::DerefMut;
|
||||
|
@ -1827,6 +1827,7 @@ impl PlayerBuilder {
|
|||
/// Builds the player, wiring up the backends and configuring the specified settings.
|
||||
pub fn build(self) -> Arc<Mutex<Player>> {
|
||||
use crate::backend::*;
|
||||
use ruffle_render::backend::null::NullRenderer;
|
||||
let audio = self
|
||||
.audio
|
||||
.unwrap_or_else(|| Box::new(audio::NullAudioBackend::new()));
|
||||
|
@ -1838,7 +1839,7 @@ impl PlayerBuilder {
|
|||
.unwrap_or_else(|| Box::new(navigator::NullNavigatorBackend::new()));
|
||||
let renderer = self
|
||||
.renderer
|
||||
.unwrap_or_else(|| Box::new(render::NullRenderer::new()));
|
||||
.unwrap_or_else(|| Box::new(NullRenderer::new()));
|
||||
let storage = self
|
||||
.storage
|
||||
.unwrap_or_else(|| Box::new(storage::MemoryStorageBackend::new()));
|
||||
|
|
|
@ -13,8 +13,12 @@ gif = "0.11.4"
|
|||
png = { version = "0.17.5" }
|
||||
flate2 = "1.0.24"
|
||||
smallvec = { version = "1.9.0", features = ["union"] }
|
||||
downcast-rs = "1.2.0"
|
||||
|
||||
[dependencies.jpeg-decoder]
|
||||
version = "0.2.6"
|
||||
default-features = false # can't use rayon on web
|
||||
|
||||
[dev-dependencies]
|
||||
approx = "0.5.1"
|
||||
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
use fnv::FnvHashMap;
|
||||
use ruffle_core::backend::render::{NullBitmapSource, RenderBackend, ShapeHandle, Transform};
|
||||
use ruffle_core::swf::{self, Color};
|
||||
use ruffle_render::backend::null::NullBitmapSource;
|
||||
use ruffle_render::backend::{RenderBackend, ShapeHandle};
|
||||
use ruffle_render::bitmap::{Bitmap, BitmapFormat, BitmapHandle, BitmapSource};
|
||||
use ruffle_render::color_transform::ColorTransform;
|
||||
use ruffle_render::matrix::Matrix;
|
||||
use ruffle_render::shape_utils::{DistilledShape, DrawCommand, LineScaleMode, LineScales};
|
||||
use ruffle_render::transform::Transform;
|
||||
use ruffle_web_common::{JsError, JsResult};
|
||||
use wasm_bindgen::{Clamped, JsCast};
|
||||
use web_sys::{
|
||||
|
|
|
@ -1,15 +1,13 @@
|
|||
mod null;
|
||||
pub mod null;
|
||||
|
||||
pub use null::{NullBitmapSource, NullRenderer};
|
||||
pub use ruffle_render::utils::{determine_jpeg_tag_format, remove_invalid_jpeg_data};
|
||||
|
||||
use downcast_rs::Downcast;
|
||||
use ruffle_render::bitmap::{Bitmap, BitmapHandle, BitmapInfo, BitmapSource};
|
||||
use ruffle_render::matrix::Matrix;
|
||||
use ruffle_render::shape_utils::DistilledShape;
|
||||
pub use ruffle_render::transform::Transform;
|
||||
use ruffle_render::utils;
|
||||
pub use swf;
|
||||
use crate::bitmap::{Bitmap, BitmapHandle, BitmapInfo, BitmapSource};
|
||||
use crate::error::Error;
|
||||
use crate::matrix::Matrix;
|
||||
use crate::shape_utils::DistilledShape;
|
||||
use crate::transform::Transform;
|
||||
use crate::utils;
|
||||
use downcast_rs::{impl_downcast, Downcast};
|
||||
use swf;
|
||||
|
||||
pub trait RenderBackend: Downcast {
|
||||
fn set_viewport_dimensions(&mut self, width: u32, height: u32);
|
||||
|
@ -103,7 +101,5 @@ pub trait RenderBackend: Downcast {
|
|||
}
|
||||
impl_downcast!(RenderBackend);
|
||||
|
||||
type Error = Box<dyn std::error::Error>;
|
||||
|
||||
#[derive(Copy, Clone, Debug)]
|
||||
pub struct ShapeHandle(pub usize);
|
|
@ -1,8 +1,9 @@
|
|||
use crate::backend::render::{Error, RenderBackend, ShapeHandle};
|
||||
use ruffle_render::bitmap::{Bitmap, BitmapHandle, BitmapInfo, BitmapSource};
|
||||
use ruffle_render::matrix::Matrix;
|
||||
use ruffle_render::shape_utils::DistilledShape;
|
||||
use ruffle_render::transform::Transform;
|
||||
use crate::backend::{RenderBackend, ShapeHandle};
|
||||
use crate::bitmap::{Bitmap, BitmapHandle, BitmapInfo, BitmapSource};
|
||||
use crate::error::Error;
|
||||
use crate::matrix::Matrix;
|
||||
use crate::shape_utils::DistilledShape;
|
||||
use crate::transform::Transform;
|
||||
use swf::Color;
|
||||
|
||||
pub struct NullBitmapSource;
|
|
@ -1,3 +1,4 @@
|
|||
pub mod backend;
|
||||
pub mod bitmap;
|
||||
pub mod bounding_box;
|
||||
pub mod color_transform;
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
use bytemuck::{Pod, Zeroable};
|
||||
use fnv::FnvHashMap;
|
||||
use ruffle_core::backend::render::{NullBitmapSource, RenderBackend, ShapeHandle, Transform};
|
||||
use ruffle_core::swf::{self, Color};
|
||||
use ruffle_render::backend::null::NullBitmapSource;
|
||||
use ruffle_render::backend::{RenderBackend, ShapeHandle};
|
||||
use ruffle_render::bitmap::{Bitmap, BitmapFormat, BitmapHandle, BitmapSource};
|
||||
use ruffle_render::shape_utils::DistilledShape;
|
||||
use ruffle_render::transform::Transform;
|
||||
use ruffle_render_common_tess::{
|
||||
Gradient as TessGradient, GradientType, ShapeTessellator, Vertex as TessVertex,
|
||||
};
|
||||
|
|
|
@ -7,11 +7,12 @@ use crate::utils::{create_buffer_with_data, format_list, get_backend_names};
|
|||
use bytemuck::{Pod, Zeroable};
|
||||
use enum_map::Enum;
|
||||
use fnv::FnvHashMap;
|
||||
use ruffle_core::backend::render::{RenderBackend, ShapeHandle, Transform};
|
||||
use ruffle_core::swf::{self, Color};
|
||||
use ruffle_render::backend::{RenderBackend, ShapeHandle};
|
||||
use ruffle_render::bitmap::{Bitmap, BitmapHandle, BitmapSource};
|
||||
use ruffle_render::color_transform::ColorTransform;
|
||||
use ruffle_render::shape_utils::DistilledShape;
|
||||
use ruffle_render::transform::Transform;
|
||||
use ruffle_render_common_tess::{
|
||||
DrawType as TessDrawType, Gradient as TessGradient, GradientType, ShapeTessellator,
|
||||
Vertex as TessVertex,
|
||||
|
@ -901,7 +902,7 @@ impl<T: RenderTarget + 'static> RenderBackend for WgpuRenderBackend<T> {
|
|||
let handle = ShapeHandle(self.meshes.len());
|
||||
let mesh = self.register_shape_internal(
|
||||
(&shape).into(),
|
||||
&ruffle_core::backend::render::NullBitmapSource,
|
||||
&ruffle_render::backend::null::NullBitmapSource,
|
||||
);
|
||||
self.meshes.push(mesh);
|
||||
handle
|
||||
|
|
Loading…
Reference in New Issue