render: Made new render crate, moved Bitmap stuff to it
This commit is contained in:
parent
94282dfe73
commit
bc0c7cbccb
|
@ -3046,6 +3046,7 @@ dependencies = [
|
|||
"rand",
|
||||
"regress",
|
||||
"ruffle_macros",
|
||||
"ruffle_render",
|
||||
"ruffle_wstr",
|
||||
"serde",
|
||||
"serde_json",
|
||||
|
@ -3097,6 +3098,15 @@ dependencies = [
|
|||
"syn",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ruffle_render"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"gc-arena",
|
||||
"log",
|
||||
"swf",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ruffle_render_canvas"
|
||||
version = "0.1.0"
|
||||
|
@ -3105,6 +3115,7 @@ dependencies = [
|
|||
"js-sys",
|
||||
"log",
|
||||
"ruffle_core",
|
||||
"ruffle_render",
|
||||
"ruffle_web_common",
|
||||
"wasm-bindgen",
|
||||
"web-sys",
|
||||
|
@ -3117,6 +3128,7 @@ dependencies = [
|
|||
"log",
|
||||
"lyon",
|
||||
"ruffle_core",
|
||||
"ruffle_render",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
@ -3128,6 +3140,7 @@ dependencies = [
|
|||
"js-sys",
|
||||
"log",
|
||||
"ruffle_core",
|
||||
"ruffle_render",
|
||||
"ruffle_render_common_tess",
|
||||
"ruffle_web_common",
|
||||
"wasm-bindgen",
|
||||
|
@ -3147,6 +3160,7 @@ dependencies = [
|
|||
"log",
|
||||
"raw-window-handle 0.4.3",
|
||||
"ruffle_core",
|
||||
"ruffle_render",
|
||||
"ruffle_render_common_tess",
|
||||
"web-sys",
|
||||
"wgpu",
|
||||
|
|
|
@ -11,6 +11,7 @@ members = [
|
|||
"scanner",
|
||||
"exporter",
|
||||
|
||||
"render",
|
||||
"render/canvas",
|
||||
"render/wgpu",
|
||||
"render/common_tess",
|
||||
|
|
|
@ -17,6 +17,7 @@ indexmap = "1.9.1"
|
|||
log = "0.4"
|
||||
minimp3 = { version = "0.5.1", optional = true }
|
||||
png = { version = "0.17.5" }
|
||||
ruffle_render = { path = "../render" }
|
||||
ruffle_macros = { path = "macros" }
|
||||
ruffle_wstr = { path = "../wstr" }
|
||||
swf = { path = "../swf" }
|
||||
|
|
|
@ -8,7 +8,7 @@ use crate::avm1::property_decl::{define_properties_on, Declaration};
|
|||
use crate::avm1::{self, Object, ScriptObject, TObject, Value};
|
||||
use crate::avm_error;
|
||||
use crate::avm_warn;
|
||||
use crate::backend::{navigator::NavigationMethod, render};
|
||||
use crate::backend::navigator::NavigationMethod;
|
||||
use crate::display_object::{
|
||||
Bitmap, DisplayObject, EditText, MovieClip, TDisplayObject, TDisplayObjectContainer,
|
||||
};
|
||||
|
@ -358,7 +358,7 @@ fn begin_bitmap_fill<'gc>(
|
|||
} else {
|
||||
return Ok(Value::Undefined);
|
||||
};
|
||||
let bitmap = render::BitmapInfo {
|
||||
let bitmap = ruffle_render::bitmap::BitmapInfo {
|
||||
handle,
|
||||
width: bitmap_data.width() as u16,
|
||||
height: bitmap_data.height() as u16,
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
mod bitmap;
|
||||
mod null;
|
||||
mod utils;
|
||||
|
||||
|
@ -7,9 +6,9 @@ pub use utils::{determine_jpeg_tag_format, remove_invalid_jpeg_data};
|
|||
|
||||
use crate::matrix::Matrix;
|
||||
use crate::shape_utils::DistilledShape;
|
||||
pub use crate::{transform::Transform, Color};
|
||||
pub use bitmap::{Bitmap, BitmapFormat, BitmapHandle, BitmapInfo, BitmapSource};
|
||||
pub use crate::transform::Transform;
|
||||
use downcast_rs::Downcast;
|
||||
use ruffle_render::bitmap::{Bitmap, BitmapFormat, BitmapHandle, BitmapInfo, BitmapSource};
|
||||
pub use swf;
|
||||
|
||||
pub trait RenderBackend: Downcast {
|
||||
|
@ -79,10 +78,10 @@ pub trait RenderBackend: Downcast {
|
|||
})
|
||||
}
|
||||
|
||||
fn begin_frame(&mut self, clear: Color);
|
||||
fn begin_frame(&mut self, clear: swf::Color);
|
||||
fn render_bitmap(&mut self, bitmap: BitmapHandle, transform: &Transform, smoothing: bool);
|
||||
fn render_shape(&mut self, shape: ShapeHandle, transform: &Transform);
|
||||
fn draw_rect(&mut self, color: Color, matrix: &Matrix);
|
||||
fn draw_rect(&mut self, color: swf::Color, matrix: &Matrix);
|
||||
fn end_frame(&mut self);
|
||||
fn push_mask(&mut self);
|
||||
fn activate_mask(&mut self);
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
use crate::backend::render::bitmap::{Bitmap, BitmapHandle, BitmapInfo, BitmapSource};
|
||||
use crate::backend::render::{Error, RenderBackend, ShapeHandle};
|
||||
use crate::matrix::Matrix;
|
||||
use crate::shape_utils::DistilledShape;
|
||||
use crate::transform::Transform;
|
||||
use ruffle_render::bitmap::{Bitmap, BitmapHandle, BitmapInfo, BitmapSource};
|
||||
use swf::Color;
|
||||
|
||||
pub struct NullBitmapSource;
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
//! Video decoder backends
|
||||
|
||||
use crate::backend::render::{BitmapInfo, RenderBackend};
|
||||
use crate::backend::render::RenderBackend;
|
||||
use generational_arena::{Arena, Index};
|
||||
use ruffle_render::bitmap::BitmapInfo;
|
||||
use swf::{VideoCodec, VideoDeblocking};
|
||||
|
||||
mod software;
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
//! Pure software video decoding backend.
|
||||
|
||||
use crate::backend::render::{Bitmap, BitmapFormat, BitmapHandle, BitmapInfo, RenderBackend};
|
||||
use crate::backend::render::RenderBackend;
|
||||
use crate::backend::video::{
|
||||
DecodedFrame, EncodedFrame, Error, FrameDependency, VideoBackend, VideoStreamHandle,
|
||||
};
|
||||
use generational_arena::Arena;
|
||||
use ruffle_render::bitmap::{Bitmap, BitmapFormat, BitmapHandle, BitmapInfo};
|
||||
use swf::{VideoCodec, VideoDeblocking};
|
||||
|
||||
mod decoders;
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
use gc_arena::Collect;
|
||||
|
||||
use crate::avm2::{Object as Avm2Object, Value as Avm2Value};
|
||||
use crate::backend::render::{Bitmap, BitmapFormat, BitmapHandle, RenderBackend};
|
||||
use crate::backend::render::RenderBackend;
|
||||
use crate::bitmap::color_transform_params::ColorTransformParams;
|
||||
use crate::bitmap::turbulence::Turbulence;
|
||||
use bitflags::bitflags;
|
||||
use ruffle_render::bitmap::{Bitmap, BitmapFormat, BitmapHandle};
|
||||
use std::ops::Range;
|
||||
|
||||
/// An implementation of the Lehmer/Park-Miller random number generator
|
||||
|
|
|
@ -5,12 +5,12 @@ use crate::avm2::{
|
|||
Activation as Avm2Activation, ClassObject as Avm2ClassObject, Object as Avm2Object,
|
||||
StageObject as Avm2StageObject, Value as Avm2Value,
|
||||
};
|
||||
use crate::backend::render::BitmapHandle;
|
||||
use crate::context::{RenderContext, UpdateContext};
|
||||
use crate::display_object::{DisplayObjectBase, DisplayObjectPtr, TDisplayObject};
|
||||
use crate::prelude::*;
|
||||
use crate::vminterface::{AvmType, Instantiator};
|
||||
use gc_arena::{Collect, Gc, GcCell, MutationContext};
|
||||
use ruffle_render::bitmap::BitmapHandle;
|
||||
use std::cell::{Ref, RefMut};
|
||||
|
||||
/// A Bitmap display object is a raw bitamp on the stage.
|
||||
|
|
|
@ -4,7 +4,6 @@ use crate::avm1::{Object as Avm1Object, StageObject as Avm1StageObject};
|
|||
use crate::avm2::{
|
||||
Activation as Avm2Activation, Object as Avm2Object, StageObject as Avm2StageObject,
|
||||
};
|
||||
use crate::backend::render::BitmapInfo;
|
||||
use crate::backend::video::{EncodedFrame, VideoStreamHandle};
|
||||
use crate::bounding_box::BoundingBox;
|
||||
use crate::context::{RenderContext, UpdateContext};
|
||||
|
@ -13,6 +12,7 @@ use crate::prelude::*;
|
|||
use crate::tag_utils::{SwfMovie, SwfSlice};
|
||||
use crate::vminterface::{AvmObject, AvmType, Instantiator};
|
||||
use gc_arena::{Collect, GcCell, MutationContext};
|
||||
use ruffle_render::bitmap::BitmapInfo;
|
||||
use std::borrow::{Borrow, BorrowMut};
|
||||
use std::cell::{Ref, RefMut};
|
||||
use std::collections::{BTreeMap, BTreeSet};
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
use crate::backend::render::{BitmapInfo, BitmapSource, ShapeHandle};
|
||||
use crate::backend::render::ShapeHandle;
|
||||
use crate::bounding_box::BoundingBox;
|
||||
use crate::context::RenderContext;
|
||||
use crate::shape_utils::{DistilledShape, DrawCommand, DrawPath};
|
||||
use gc_arena::Collect;
|
||||
use ruffle_render::bitmap::{BitmapInfo, BitmapSource};
|
||||
use std::cell::Cell;
|
||||
use swf::{FillStyle, LineStyle, Twips};
|
||||
|
||||
|
|
|
@ -330,10 +330,10 @@ impl<'gc> MovieLibrary<'gc> {
|
|||
}
|
||||
}
|
||||
|
||||
impl<'gc> render::BitmapSource for MovieLibrary<'gc> {
|
||||
fn bitmap(&self, id: u16) -> Option<render::BitmapInfo> {
|
||||
impl<'gc> ruffle_render::bitmap::BitmapSource for MovieLibrary<'gc> {
|
||||
fn bitmap(&self, id: u16) -> Option<ruffle_render::bitmap::BitmapInfo> {
|
||||
self.get_bitmap(id).and_then(|bitmap| {
|
||||
Some(render::BitmapInfo {
|
||||
Some(ruffle_render::bitmap::BitmapInfo {
|
||||
handle: bitmap.bitmap_handle()?,
|
||||
width: bitmap.width(),
|
||||
height: bitmap.height(),
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
[package]
|
||||
name = "ruffle_render"
|
||||
version = "0.1.0"
|
||||
authors = ["Ruffle LLC <ruffle@ruffle.rs>"]
|
||||
edition = "2021"
|
||||
license = "MIT OR Apache-2.0"
|
||||
|
||||
[dependencies]
|
||||
swf = {path = "../swf"}
|
||||
gc-arena = { git = "https://github.com/ruffle-rs/gc-arena" }
|
||||
log = "0.4"
|
||||
|
|
@ -11,6 +11,7 @@ log = "0.4"
|
|||
ruffle_web_common = { path = "../../web/common" }
|
||||
wasm-bindgen = "=0.2.82"
|
||||
fnv = "1.0.7"
|
||||
ruffle_render = { path = ".." }
|
||||
|
||||
[dependencies.ruffle_core]
|
||||
path = "../../core"
|
||||
|
|
|
@ -1,11 +1,10 @@
|
|||
use fnv::FnvHashMap;
|
||||
use ruffle_core::backend::render::{
|
||||
swf, Bitmap, BitmapFormat, BitmapHandle, BitmapSource, Color, NullBitmapSource, RenderBackend,
|
||||
ShapeHandle, Transform,
|
||||
};
|
||||
use ruffle_core::backend::render::{NullBitmapSource, RenderBackend, ShapeHandle, Transform};
|
||||
use ruffle_core::color_transform::ColorTransform;
|
||||
use ruffle_core::matrix::Matrix;
|
||||
use ruffle_core::shape_utils::{DistilledShape, DrawCommand, LineScaleMode, LineScales};
|
||||
use ruffle_core::swf::{self, Color};
|
||||
use ruffle_render::bitmap::{Bitmap, BitmapFormat, BitmapHandle, BitmapSource};
|
||||
use ruffle_web_common::{JsError, JsResult};
|
||||
use wasm_bindgen::{Clamped, JsCast};
|
||||
use web_sys::{
|
||||
|
|
|
@ -8,6 +8,7 @@ license = "MIT OR Apache-2.0"
|
|||
[dependencies]
|
||||
log = "0.4"
|
||||
lyon = "1.0.0"
|
||||
ruffle_render = { path = ".." }
|
||||
|
||||
[dependencies.ruffle_core]
|
||||
path = "../../core"
|
||||
|
|
|
@ -5,8 +5,9 @@ use lyon::tessellation::{
|
|||
FillTessellator, FillVertex, StrokeTessellator, StrokeVertex, StrokeVertexConstructor,
|
||||
};
|
||||
use lyon::tessellation::{FillOptions, StrokeOptions};
|
||||
use ruffle_core::backend::render::{swf, BitmapHandle, BitmapSource};
|
||||
use ruffle_core::shape_utils::{DistilledShape, DrawCommand, DrawPath};
|
||||
use ruffle_core::swf;
|
||||
use ruffle_render::bitmap::{BitmapHandle, BitmapSource};
|
||||
|
||||
pub struct ShapeTessellator {
|
||||
fill_tess: FillTessellator,
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
pub mod bitmap;
|
|
@ -10,6 +10,7 @@ js-sys = "0.3.59"
|
|||
log = "0.4"
|
||||
ruffle_render_common_tess = { path = "../common_tess" }
|
||||
ruffle_web_common = { path = "../../web/common" }
|
||||
ruffle_render = { path = ".." }
|
||||
wasm-bindgen = "=0.2.82"
|
||||
bytemuck = { version = "1.10.0", features = ["derive"] }
|
||||
fnv = "1.0.7"
|
||||
|
|
|
@ -1,11 +1,9 @@
|
|||
use bytemuck::{Pod, Zeroable};
|
||||
use fnv::FnvHashMap;
|
||||
use ruffle_core::backend::render::{
|
||||
Bitmap, BitmapFormat, BitmapHandle, BitmapSource, Color, NullBitmapSource, RenderBackend,
|
||||
ShapeHandle, Transform,
|
||||
};
|
||||
use ruffle_core::backend::render::{NullBitmapSource, RenderBackend, ShapeHandle, Transform};
|
||||
use ruffle_core::shape_utils::DistilledShape;
|
||||
use ruffle_core::swf;
|
||||
use ruffle_core::swf::{self, Color};
|
||||
use ruffle_render::bitmap::{Bitmap, BitmapFormat, BitmapHandle, BitmapSource};
|
||||
use ruffle_render_common_tess::{
|
||||
Gradient as TessGradient, GradientType, ShapeTessellator, Vertex as TessVertex,
|
||||
};
|
||||
|
|
|
@ -10,6 +10,7 @@ wgpu = "0.13.0"
|
|||
log = "0.4"
|
||||
ruffle_core = { path = "../../core", default-features = false }
|
||||
ruffle_render_common_tess = { path = "../common_tess" }
|
||||
ruffle_render = { path = ".." }
|
||||
bytemuck = { version = "1.10.0", features = ["derive"] }
|
||||
raw-window-handle = "0.4"
|
||||
clap = { version = "3.2.16", features = ["derive"], optional = true }
|
||||
|
|
|
@ -7,12 +7,11 @@ 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::{
|
||||
Bitmap, BitmapHandle, BitmapSource, Color, RenderBackend, ShapeHandle, Transform,
|
||||
};
|
||||
use ruffle_core::backend::render::{RenderBackend, ShapeHandle, Transform};
|
||||
use ruffle_core::color_transform::ColorTransform;
|
||||
use ruffle_core::shape_utils::DistilledShape;
|
||||
use ruffle_core::swf;
|
||||
use ruffle_core::swf::{self, Color};
|
||||
use ruffle_render::bitmap::{Bitmap, BitmapHandle, BitmapSource};
|
||||
use ruffle_render_common_tess::{
|
||||
DrawType as TessDrawType, Gradient as TessGradient, GradientType, ShapeTessellator,
|
||||
Vertex as TessVertex,
|
||||
|
|
Loading…
Reference in New Issue