apply method
Implementation
@override
void apply(BitmapData bitmapData, [Rectangle<num>? rectangle]) {
final renderTextureQuad = rectangle == null
? bitmapData.renderTextureQuad
: bitmapData.renderTextureQuad.cut(rectangle);
final matrix = renderTextureQuad.drawMatrix;
final vxList = renderTextureQuad.vxList;
final canvas = renderTextureQuad.renderTexture.canvas;
final renderContext = RenderContextCanvas(canvas);
final renderState = RenderState(renderContext, matrix);
final context = renderContext.rawContext;
context.save();
context.globalCompositeOperation = 'destination-in';
context.setTransform(
matrix.a, matrix.b, matrix.c, matrix.d, matrix.tx, matrix.ty);
context.rect(
vxList[0], vxList[1], vxList[8] - vxList[0], vxList[9] - vxList[1]);
context.clip();
renderState.globalMatrix.prepend(this.matrix);
renderState.renderTextureQuad(this.bitmapData.renderTextureQuad);
context.restore();
}