renderFilter method
void
renderFilter(
- RenderState renderState,
- RenderTextureQuad renderTextureQuad,
- int pass
override
Implementation
@override
void renderFilter(
RenderState renderState, RenderTextureQuad renderTextureQuad, int pass) {
final renderContext = renderState.renderContext as RenderContextWebGL;
final renderTexture = renderTextureQuad.renderTexture;
final passCount = _renderPassSources.length;
final passScale = pow(0.5, pass >> 1);
final pixelRatio = sqrt(renderState.globalMatrix.det.abs());
final pixelRatioScale = pixelRatio * passScale;
final renderProgram = renderContext.getRenderProgram(
r'$BlurFilterProgram', BlurFilterProgram.new);
renderContext.activateRenderProgram(renderProgram);
renderContext.activateRenderTexture(renderTexture);
renderProgram.configure(
pass == passCount - 1 ? renderState.globalAlpha : 1.0,
pass.isEven ? pixelRatioScale * blurX / renderTexture.width : 0.0,
pass.isEven ? 0.0 : pixelRatioScale * blurY / renderTexture.height);
renderProgram.renderTextureQuad(renderState, renderTextureQuad);
renderProgram.flush();
}