avm2: Added a bunch of missing filter classes
This commit is contained in:
parent
42f3ee923f
commit
7476b3b0e0
|
@ -957,10 +957,10 @@ pub fn apply_filter<'gc>(
|
|||
Namespace::package("flash.filters"),
|
||||
"GradientGlowFilter",
|
||||
))?;
|
||||
let shader_filter = activation.resolve_class(&Multiname::new(
|
||||
Namespace::package("flash.filters"),
|
||||
"ShaderFilter",
|
||||
))?;
|
||||
// let shader_filter = activation.resolve_class(&Multiname::new(
|
||||
// Namespace::package("flash.filters"),
|
||||
// "ShaderFilter",
|
||||
// ))?;
|
||||
let filter = if filter.is_of_type(color_matrix_filter, activation) {
|
||||
let mut matrix = [0.0; 20];
|
||||
if let Some(object) = filter
|
||||
|
@ -1073,14 +1073,14 @@ pub fn apply_filter<'gc>(
|
|||
"with gradient glow filter"
|
||||
);
|
||||
Filter::default()
|
||||
} else if filter.is_of_type(shader_filter, activation) {
|
||||
avm2_stub_method!(
|
||||
activation,
|
||||
"flash.display.BitmapData",
|
||||
"applyFilter",
|
||||
"with shader filter"
|
||||
);
|
||||
Filter::default()
|
||||
// } else if filter.is_of_type(shader_filter, activation) {
|
||||
// avm2_stub_method!(
|
||||
// activation,
|
||||
// "flash.display.BitmapData",
|
||||
// "applyFilter",
|
||||
// "with shader filter"
|
||||
// );
|
||||
// Filter::default()
|
||||
} else {
|
||||
tracing::error!("BitmapData.applyFilter received unknown filter");
|
||||
Filter::default()
|
||||
|
|
|
@ -0,0 +1,61 @@
|
|||
package flash.filters {
|
||||
public final class BevelFilter extends BitmapFilter {
|
||||
public var angle : Number;
|
||||
public var blurX : Number;
|
||||
public var blurY : Number;
|
||||
public var distance : Number;
|
||||
public var highlightAlpha : Number;
|
||||
public var highlightColor : uint;
|
||||
public var knockout : Boolean;
|
||||
public var quality : int;
|
||||
public var shadowAlpha : Number;
|
||||
public var shadowColor : uint;
|
||||
public var strength : Number;
|
||||
public var type : String;
|
||||
|
||||
public function BevelFilter(
|
||||
distance:Number = 4.0,
|
||||
angle:Number = 45,
|
||||
highlightColor:uint = 0xFFFFFF,
|
||||
highlightAlpha:Number = 1.0,
|
||||
shadowColor:uint = 0x000000,
|
||||
shadowAlpha:Number = 1.0,
|
||||
blurX:Number = 4.0,
|
||||
blurY:Number = 4.0,
|
||||
strength:Number = 1,
|
||||
quality:int = 1,
|
||||
type:String = "inner",
|
||||
knockout:Boolean = false
|
||||
) {
|
||||
this.angle = angle;
|
||||
this.blurX = blurX;
|
||||
this.blurY = blurY;
|
||||
this.distance = distance;
|
||||
this.highlightAlpha = highlightAlpha;
|
||||
this.highlightColor = highlightColor;
|
||||
this.knockout = knockout;
|
||||
this.quality = quality;
|
||||
this.shadowAlpha = shadowAlpha;
|
||||
this.shadowColor = shadowColor;
|
||||
this.strength = strength;
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
override public function clone(): BitmapFilter {
|
||||
return new BevelFilter(
|
||||
this.distance,
|
||||
this.angle,
|
||||
this.highlightColor,
|
||||
this.highlightAlpha,
|
||||
this.shadowColor,
|
||||
this.shadowAlpha,
|
||||
this.blurX,
|
||||
this.blurY,
|
||||
this.strength,
|
||||
this.quality,
|
||||
this.type,
|
||||
this.knockout
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,39 @@
|
|||
package flash.filters {
|
||||
public final class ConvolutionFilter extends BitmapFilter {
|
||||
public var alpha : Number;
|
||||
public var bias : Number;
|
||||
public var clamp : Boolean;
|
||||
public var color : uint;
|
||||
public var divisor : Number;
|
||||
public var matrix : Array;
|
||||
public var matrixX : Number;
|
||||
public var matrixY : Number;
|
||||
public var preserveAlpha : Boolean;
|
||||
|
||||
public function ConvolutionFilter(
|
||||
matrixX:Number = 0,
|
||||
matrixY:Number = 0,
|
||||
matrix:Array = null,
|
||||
divisor:Number = 1.0,
|
||||
bias:Number = 0.0,
|
||||
preserveAlpha:Boolean = true,
|
||||
clamp:Boolean = true,
|
||||
color:uint = 0,
|
||||
alpha:Number = 0.0
|
||||
) {
|
||||
this.alpha = alpha;
|
||||
this.bias = bias;
|
||||
this.clamp = clamp;
|
||||
this.color = color;
|
||||
this.divisor = divisor;
|
||||
this.matrix = matrix;
|
||||
this.matrixX = matrixX;
|
||||
this.matrixY = matrixY;
|
||||
this.preserveAlpha = preserveAlpha;
|
||||
}
|
||||
|
||||
override public function clone(): BitmapFilter {
|
||||
return new ConvolutionFilter(this.matrixX, this.matrixY, this.matrixull, this.divisor, this.bias, this.preserveAlpharue, this.clamprue, this.color, this.alpha);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,57 @@
|
|||
package flash.filters {
|
||||
public final class GradientBevelFilter extends BitmapFilter {
|
||||
public var alphas : Array;
|
||||
public var angle : Number;
|
||||
public var blurX : Number;
|
||||
public var blurY : Number;
|
||||
public var colors : Array;
|
||||
public var distance : Number;
|
||||
public var knockout : Boolean;
|
||||
public var quality : int;
|
||||
public var ratios : Array;
|
||||
public var strength : Number;
|
||||
public var type : String;
|
||||
|
||||
public function GradientBevelFilter(
|
||||
distance:Number = 4.0,
|
||||
angle:Number = 45,
|
||||
colors:Array = null,
|
||||
alphas:Array = null,
|
||||
ratios:Array = null,
|
||||
blurX:Number = 4.0,
|
||||
blurY:Number = 4.0,
|
||||
strength:Number = 1,
|
||||
quality:int = 1,
|
||||
type:String = "inner",
|
||||
knockout:Boolean = false
|
||||
) {
|
||||
this.distance = distance;
|
||||
this.angle = angle;
|
||||
this.colors = colors;
|
||||
this.alphas = alphas;
|
||||
this.ratios = ratios;
|
||||
this.blurX = blurX;
|
||||
this.blurY = blurY;
|
||||
this.strength = strength;
|
||||
this.quality = quality;
|
||||
this.type = type;
|
||||
this.knockout = knockout;
|
||||
}
|
||||
|
||||
override public function clone(): BitmapFilter {
|
||||
return new GradientBevelFilter(
|
||||
this.distance,
|
||||
this.angle,
|
||||
this.colors,
|
||||
this.alphas,
|
||||
this.ratios,
|
||||
this.blurX,
|
||||
this.blurY,
|
||||
this.strength,
|
||||
this.quality,
|
||||
this.type,
|
||||
this.knockout
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,46 @@
|
|||
package flash.filters {
|
||||
public final class GradientGlowFilter extends BitmapFilter {
|
||||
public var alphas : Array;
|
||||
public var angle : Number;
|
||||
public var blurX : Number;
|
||||
public var blurY : Number;
|
||||
public var colors : Array;
|
||||
public var distance : Number;
|
||||
public var knockout : Boolean;
|
||||
public var quality : int;
|
||||
public var ratios : Array;
|
||||
public var strength : Number;
|
||||
public var type : String;
|
||||
|
||||
public function GradientGlowFilter(
|
||||
distance:Number = 4.0,
|
||||
angle:Number = 45,
|
||||
colors:Array = null,
|
||||
alphas:Array = null,
|
||||
ratios:Array = null,
|
||||
blurX:Number = 4.0,
|
||||
blurY:Number = 4.0,
|
||||
strength:Number = 1,
|
||||
quality:int = 1,
|
||||
type:String = "inner",
|
||||
knockout:Boolean = false
|
||||
)
|
||||
{
|
||||
this.distance = distance;
|
||||
this.angle = angle;
|
||||
this.colors = colors;
|
||||
this.alphas = alphas;
|
||||
this.ratios = ratios;
|
||||
this.blurX = blurX;
|
||||
this.blurY = blurY;
|
||||
this.strength = strength;
|
||||
this.quality = quality;
|
||||
this.type = type;
|
||||
this.knockout = knockout;
|
||||
}
|
||||
|
||||
override public function clone(): BitmapFilter {
|
||||
return new GradientGlowFilter(this.distance, this.angle, this.colors, this.alphas, this.ratios, this.blurX, this.blurY, this.strength, this.quality, this.type, this.knockout);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -133,12 +133,16 @@ include "flash/errors/StackOverflowError.as"
|
|||
include "flash/filters/BitmapFilter.as"
|
||||
include "flash/filters/BitmapFilterQuality.as"
|
||||
include "flash/filters/BitmapFilterType.as"
|
||||
include "flash/filters/BevelFilter.as"
|
||||
include "flash/filters/ConvolutionFilter.as"
|
||||
include "flash/filters/GradientBevelFilter.as"
|
||||
include "flash/filters/BlurFilter.as"
|
||||
include "flash/filters/ColorMatrixFilter.as"
|
||||
include "flash/filters/DisplacementMapFilter.as"
|
||||
include "flash/filters/DisplacementMapFilterMode.as"
|
||||
include "flash/filters/DropShadowFilter.as"
|
||||
include "flash/filters/GlowFilter.as"
|
||||
include "flash/filters/GradientGlowFilter.as"
|
||||
|
||||
include "flash/geom/ColorTransform.as"
|
||||
include "flash/geom/Matrix.as"
|
||||
|
|
Loading…
Reference in New Issue