With canvas there is no solution. It uses a non webgl canvas which doesn’t use effects.
For paster it is indeed copied from the c2 runtime, but it is modified to draw to a rectangle instead of the whole screen. Shortcuts were taken for some of the more elaborate parts of drawing effects. For one the effect parameters just use some default values instead of proper calculated values. And two, it just ignored how multiple effects were applied. As I recall the runtime would do some framebuffer juggling to draw the effect to a texture, then take that texture and draw the next effect to another, and so on.
Anyways the c2 runtime does it with some temporary screen sized textures. Paster object’s can be any size, and we’d need temporary textures of the same size. So I had three possible solutions. Doubling or tripling the vram per instance, dynamically creating the temp textures, or some hybrid approach to try and reuse textures between multiple instances.
Or the short version, it’s a missing feature that would require a full solution to be written.