AlphaMaskFilter class
class AlphaMaskFilter extends BitmapFilter {
final BitmapData _alphaBitmapData;
final Matrix _matrix;
AlphaMaskFilter(BitmapData alphaBitmapData, [Matrix matrix]) :
_alphaBitmapData = alphaBitmapData,
_matrix = (matrix != null) ? matrix : new Matrix.fromIdentity();
Matrix get matrix => _matrix;
BitmapFilter clone() => new AlphaMaskFilter(_alphaBitmapData, _matrix.clone());
Rectangle get overlap => new Rectangle.zero();
//-----------------------------------------------------------------------------------------------
void apply(BitmapData bitmapData, [Rectangle rectangle]) {
RenderTextureQuad renderTextureQuad = rectangle == null
? bitmapData.renderTextureQuad
: bitmapData.renderTextureQuad.cut(rectangle);
int width = renderTextureQuad.textureWidth;
int height = renderTextureQuad.textureHeight;
Matrix matrix = renderTextureQuad.drawMatrix;
CanvasElement canvas = renderTextureQuad.renderTexture.canvas;
RenderContextCanvas renderContext = new RenderContextCanvas(canvas, Color.Transparent);
CanvasRenderingContext2D context = renderContext.rawContext;
context.save();
context.setTransform(matrix.a, matrix.b, matrix.c, matrix.d, matrix.tx, matrix.ty);
context.rect(0, 0, width, height);
context.clip();
context.globalCompositeOperation = CompositeOperation.DESTINATION_IN;
matrix.prepend(this.matrix);
renderContext.renderQuad(_alphaBitmapData.renderTextureQuad, matrix, 1.0);
context.restore();
}
}
Extends
BitmapFilter > AlphaMaskFilter
Constructors
new AlphaMaskFilter(BitmapData alphaBitmapData, [Matrix matrix]) #
Creates a new Object instance.
Object instances have no meaningful state, and are only useful through their identity. An Object instance is equal to itself only.
docs inherited from Object
AlphaMaskFilter(BitmapData alphaBitmapData, [Matrix matrix]) : _alphaBitmapData = alphaBitmapData, _matrix = (matrix != null) ? matrix : new Matrix.fromIdentity();
Properties
Methods
void apply(BitmapData bitmapData, [Rectangle rectangle]) #
void apply(BitmapData bitmapData, [Rectangle rectangle]) {
RenderTextureQuad renderTextureQuad = rectangle == null
? bitmapData.renderTextureQuad
: bitmapData.renderTextureQuad.cut(rectangle);
int width = renderTextureQuad.textureWidth;
int height = renderTextureQuad.textureHeight;
Matrix matrix = renderTextureQuad.drawMatrix;
CanvasElement canvas = renderTextureQuad.renderTexture.canvas;
RenderContextCanvas renderContext = new RenderContextCanvas(canvas, Color.Transparent);
CanvasRenderingContext2D context = renderContext.rawContext;
context.save();
context.setTransform(matrix.a, matrix.b, matrix.c, matrix.d, matrix.tx, matrix.ty);
context.rect(0, 0, width, height);
context.clip();
context.globalCompositeOperation = CompositeOperation.DESTINATION_IN;
matrix.prepend(this.matrix);
renderContext.renderQuad(_alphaBitmapData.renderTextureQuad, matrix, 1.0);
context.restore();
}
BitmapFilter clone() #
BitmapFilter clone() => new AlphaMaskFilter(_alphaBitmapData, _matrix.clone());