swf: Extract filters to separate files
For better code organization.
This commit is contained in:
parent
f504804379
commit
f5dcbb883e
107
swf/src/types.rs
107
swf/src/types.rs
|
@ -9,14 +9,30 @@ use enum_map::Enum;
|
||||||
use std::fmt::{self, Display, Formatter};
|
use std::fmt::{self, Display, Formatter};
|
||||||
use std::str::FromStr;
|
use std::str::FromStr;
|
||||||
|
|
||||||
|
mod bevel_filter;
|
||||||
|
mod blur_filter;
|
||||||
mod color;
|
mod color;
|
||||||
|
mod color_matrix_filter;
|
||||||
|
mod convolution_filter;
|
||||||
|
mod drop_shadow_filter;
|
||||||
mod fixed;
|
mod fixed;
|
||||||
|
mod glow_filter;
|
||||||
|
mod gradient_bevel_filter;
|
||||||
|
mod gradient_glow_filter;
|
||||||
mod matrix;
|
mod matrix;
|
||||||
mod rectangle;
|
mod rectangle;
|
||||||
mod twips;
|
mod twips;
|
||||||
|
|
||||||
|
pub use bevel_filter::BevelFilter;
|
||||||
|
pub use blur_filter::BlurFilter;
|
||||||
pub use color::Color;
|
pub use color::Color;
|
||||||
|
pub use color_matrix_filter::ColorMatrixFilter;
|
||||||
|
pub use convolution_filter::ConvolutionFilter;
|
||||||
|
pub use drop_shadow_filter::DropShadowFilter;
|
||||||
pub use fixed::{Fixed16, Fixed8};
|
pub use fixed::{Fixed16, Fixed8};
|
||||||
|
pub use glow_filter::GlowFilter;
|
||||||
|
pub use gradient_bevel_filter::GradientBevelFilter;
|
||||||
|
pub use gradient_glow_filter::GradientGlowFilter;
|
||||||
pub use matrix::Matrix;
|
pub use matrix::Matrix;
|
||||||
pub use rectangle::Rectangle;
|
pub use rectangle::Rectangle;
|
||||||
pub use twips::Twips;
|
pub use twips::Twips;
|
||||||
|
@ -355,97 +371,6 @@ pub enum Filter {
|
||||||
GradientBevelFilter(Box<GradientBevelFilter>),
|
GradientBevelFilter(Box<GradientBevelFilter>),
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Debug, Eq, PartialEq)]
|
|
||||||
pub struct DropShadowFilter {
|
|
||||||
pub color: Color,
|
|
||||||
pub blur_x: Fixed16,
|
|
||||||
pub blur_y: Fixed16,
|
|
||||||
pub angle: Fixed16,
|
|
||||||
pub distance: Fixed16,
|
|
||||||
pub strength: Fixed8,
|
|
||||||
pub is_inner: bool,
|
|
||||||
pub is_knockout: bool,
|
|
||||||
pub num_passes: u8,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Clone, Debug, Eq, PartialEq)]
|
|
||||||
pub struct BlurFilter {
|
|
||||||
pub blur_x: Fixed16,
|
|
||||||
pub blur_y: Fixed16,
|
|
||||||
pub num_passes: u8,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Clone, Debug, Eq, PartialEq)]
|
|
||||||
pub struct GlowFilter {
|
|
||||||
pub color: Color,
|
|
||||||
pub blur_x: Fixed16,
|
|
||||||
pub blur_y: Fixed16,
|
|
||||||
pub strength: Fixed8,
|
|
||||||
pub is_inner: bool,
|
|
||||||
pub is_knockout: bool,
|
|
||||||
pub num_passes: u8,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Clone, Debug, Eq, PartialEq)]
|
|
||||||
pub struct BevelFilter {
|
|
||||||
pub shadow_color: Color,
|
|
||||||
pub highlight_color: Color,
|
|
||||||
pub blur_x: Fixed16,
|
|
||||||
pub blur_y: Fixed16,
|
|
||||||
pub angle: Fixed16,
|
|
||||||
pub distance: Fixed16,
|
|
||||||
pub strength: Fixed8,
|
|
||||||
pub is_inner: bool,
|
|
||||||
pub is_knockout: bool,
|
|
||||||
pub is_on_top: bool,
|
|
||||||
pub num_passes: u8,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Clone, Debug, Eq, PartialEq)]
|
|
||||||
pub struct GradientGlowFilter {
|
|
||||||
pub colors: Vec<GradientRecord>,
|
|
||||||
pub blur_x: Fixed16,
|
|
||||||
pub blur_y: Fixed16,
|
|
||||||
pub angle: Fixed16,
|
|
||||||
pub distance: Fixed16,
|
|
||||||
pub strength: Fixed8,
|
|
||||||
pub is_inner: bool,
|
|
||||||
pub is_knockout: bool,
|
|
||||||
pub is_on_top: bool,
|
|
||||||
pub num_passes: u8,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Clone, Debug, Eq, PartialEq)]
|
|
||||||
pub struct ConvolutionFilter {
|
|
||||||
pub num_matrix_rows: u8,
|
|
||||||
pub num_matrix_cols: u8,
|
|
||||||
pub matrix: Vec<Fixed16>,
|
|
||||||
pub divisor: Fixed16,
|
|
||||||
pub bias: Fixed16,
|
|
||||||
pub default_color: Color,
|
|
||||||
pub is_clamped: bool,
|
|
||||||
pub is_preserve_alpha: bool,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Clone, Debug, Eq, PartialEq)]
|
|
||||||
pub struct ColorMatrixFilter {
|
|
||||||
pub matrix: [Fixed16; 20],
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Clone, Debug, Eq, PartialEq)]
|
|
||||||
pub struct GradientBevelFilter {
|
|
||||||
pub colors: Vec<GradientRecord>,
|
|
||||||
pub blur_x: Fixed16,
|
|
||||||
pub blur_y: Fixed16,
|
|
||||||
pub angle: Fixed16,
|
|
||||||
pub distance: Fixed16,
|
|
||||||
pub strength: Fixed8,
|
|
||||||
pub is_inner: bool,
|
|
||||||
pub is_knockout: bool,
|
|
||||||
pub is_on_top: bool,
|
|
||||||
pub num_passes: u8,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Default, Clone, Copy, Debug, Eq, FromPrimitive, PartialEq, Enum)]
|
#[derive(Default, Clone, Copy, Debug, Eq, FromPrimitive, PartialEq, Enum)]
|
||||||
pub enum BlendMode {
|
pub enum BlendMode {
|
||||||
#[default]
|
#[default]
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
use crate::{Color, Fixed16, Fixed8};
|
||||||
|
|
||||||
|
#[derive(Clone, Debug, Eq, PartialEq)]
|
||||||
|
pub struct BevelFilter {
|
||||||
|
pub shadow_color: Color,
|
||||||
|
pub highlight_color: Color,
|
||||||
|
pub blur_x: Fixed16,
|
||||||
|
pub blur_y: Fixed16,
|
||||||
|
pub angle: Fixed16,
|
||||||
|
pub distance: Fixed16,
|
||||||
|
pub strength: Fixed8,
|
||||||
|
pub is_inner: bool,
|
||||||
|
pub is_knockout: bool,
|
||||||
|
pub is_on_top: bool,
|
||||||
|
pub num_passes: u8,
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
use crate::Fixed16;
|
||||||
|
|
||||||
|
#[derive(Clone, Debug, Eq, PartialEq)]
|
||||||
|
pub struct BlurFilter {
|
||||||
|
pub blur_x: Fixed16,
|
||||||
|
pub blur_y: Fixed16,
|
||||||
|
pub num_passes: u8,
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
use crate::Fixed16;
|
||||||
|
|
||||||
|
#[derive(Clone, Debug, Eq, PartialEq)]
|
||||||
|
pub struct ColorMatrixFilter {
|
||||||
|
pub matrix: [Fixed16; 20],
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
use crate::{Color, Fixed16};
|
||||||
|
|
||||||
|
#[derive(Clone, Debug, Eq, PartialEq)]
|
||||||
|
pub struct ConvolutionFilter {
|
||||||
|
pub num_matrix_rows: u8,
|
||||||
|
pub num_matrix_cols: u8,
|
||||||
|
pub matrix: Vec<Fixed16>,
|
||||||
|
pub divisor: Fixed16,
|
||||||
|
pub bias: Fixed16,
|
||||||
|
pub default_color: Color,
|
||||||
|
pub is_clamped: bool,
|
||||||
|
pub is_preserve_alpha: bool,
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
use crate::{Color, Fixed16, Fixed8};
|
||||||
|
|
||||||
|
#[derive(Clone, Debug, Eq, PartialEq)]
|
||||||
|
pub struct DropShadowFilter {
|
||||||
|
pub color: Color,
|
||||||
|
pub blur_x: Fixed16,
|
||||||
|
pub blur_y: Fixed16,
|
||||||
|
pub angle: Fixed16,
|
||||||
|
pub distance: Fixed16,
|
||||||
|
pub strength: Fixed8,
|
||||||
|
pub is_inner: bool,
|
||||||
|
pub is_knockout: bool,
|
||||||
|
pub num_passes: u8,
|
||||||
|
}
|
|
@ -0,0 +1,12 @@
|
||||||
|
use crate::{Color, Fixed16, Fixed8};
|
||||||
|
|
||||||
|
#[derive(Clone, Debug, Eq, PartialEq)]
|
||||||
|
pub struct GlowFilter {
|
||||||
|
pub color: Color,
|
||||||
|
pub blur_x: Fixed16,
|
||||||
|
pub blur_y: Fixed16,
|
||||||
|
pub strength: Fixed8,
|
||||||
|
pub is_inner: bool,
|
||||||
|
pub is_knockout: bool,
|
||||||
|
pub num_passes: u8,
|
||||||
|
}
|
|
@ -0,0 +1,15 @@
|
||||||
|
use crate::{Fixed16, Fixed8, GradientRecord};
|
||||||
|
|
||||||
|
#[derive(Clone, Debug, Eq, PartialEq)]
|
||||||
|
pub struct GradientBevelFilter {
|
||||||
|
pub colors: Vec<GradientRecord>,
|
||||||
|
pub blur_x: Fixed16,
|
||||||
|
pub blur_y: Fixed16,
|
||||||
|
pub angle: Fixed16,
|
||||||
|
pub distance: Fixed16,
|
||||||
|
pub strength: Fixed8,
|
||||||
|
pub is_inner: bool,
|
||||||
|
pub is_knockout: bool,
|
||||||
|
pub is_on_top: bool,
|
||||||
|
pub num_passes: u8,
|
||||||
|
}
|
|
@ -0,0 +1,15 @@
|
||||||
|
use crate::{Fixed16, Fixed8, GradientRecord};
|
||||||
|
|
||||||
|
#[derive(Clone, Debug, Eq, PartialEq)]
|
||||||
|
pub struct GradientGlowFilter {
|
||||||
|
pub colors: Vec<GradientRecord>,
|
||||||
|
pub blur_x: Fixed16,
|
||||||
|
pub blur_y: Fixed16,
|
||||||
|
pub angle: Fixed16,
|
||||||
|
pub distance: Fixed16,
|
||||||
|
pub strength: Fixed8,
|
||||||
|
pub is_inner: bool,
|
||||||
|
pub is_knockout: bool,
|
||||||
|
pub is_on_top: bool,
|
||||||
|
pub num_passes: u8,
|
||||||
|
}
|
Loading…
Reference in New Issue