First-party support for the ISF shader format

ISF is a simple format wrapping glsl code with a definition of the buffers and interactive controls it requires.

The isf-touchdesigner tox by marcinbiegun is a great effort which allows the use of many simple ISF shaders, but there are a few aspects of the ISF format which are difficult if not impossible to support.

Specifically, an arbitrary number of passes, persistent buffers, and buffers of differing size and format. Some ISF shaders will do a first pass to do some per-frame calculations and store the results in e.g. a low-res float buffer, before doing multiple passes at full resolution to produce the output texture.

The ISF parser tox support two passes and a single persistent buffer using a feedback object, but even if it were rewritten to use GLSLMulti and hardcoded for some large number of buffers, it seems impossible to flexibly support the complete range of possible pass configurations.

Full first-party ISF support seems pretty similar to the existing GLSL Multi, but supporting buffers of differing size and format, and dynamically allocating and persisting them in response to the ISF definition.

ISF solves the problem of porting and integrating shader code to different software, and it would be great to see it fully supported.