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