render method
void
render(
- Canvas canvas,
- Vector2 size,
- ValueSetter<
Canvas> renderTree, - ValueSetter<
PostProcess?> updateContext,
override
This method is called to render the post process, to be called by the "owner" of the post process, like a CameraComponent or a PostProcessComponent.
Implementation
@override
void render(
Canvas canvas,
Vector2 size,
ValueSetter<Canvas> renderTree,
ValueSetter<PostProcess?> updateContext,
) {
// Build the stack of post processes in reverse order
final stack = postProcesses.reversed.toList();
// Start with the original renderTree
void runNext(Canvas c) {
if (stack.isEmpty) {
renderTree(c);
return;
}
final postProcess = stack.removeAt(0);
postProcess.render(c, size, runNext, updateContext);
}
canvas.save();
runNext(canvas);
canvas.restore();
}