As far as I can tell, Videosync’s ISF Shader device uses GLSL v1.50 (OpenGL v3.2). Running this shader—
/*{
"DESCRIPTION": "Determinant test",
"ISFVSN": "2.0",
"INPUTS": []
}*/
void main()
{
vec2 uv = gl_FragCoord.xy / RENDERSIZE;
// `determinant` is available in GLSL v1.50 (OpenGL v3.2) and later.
float d = determinant(mat2(uv.x, uv.y, 0.5 * uv.y, 0.5 * uv.x));
// `floatBitsToUint` and `uintBitsToFloat` are available in GLSL v3.30
// (OpenGL v3.3) and later.
// d = uintBitsToFloat(floatBitsToUint(d));
gl_FragColor.xyz = 0.5 + 0.5 * cos(TIME + d + vec3(0., 2., 4.));
gl_FragColor.a = 1.;
}
—shows that the determinant built-in is available, and that was introduced in GLSL v1.50.
Some more recent shaders (for example here) work by packing data into gl_FragColor using floatBitsToUint and uintBitsToFloat, which were introduced in GLSL v3.30 (OpenGL v3.3). Unfortunately, these functions are not available in Videosync’s OpenGL engine, and as far as I know they can’t be implemented in GLSL, so converting these shaders to be used in the ISF Shader device is impossible.
The jit.gl.isf object in Max does support shaders that use floatBitsToUint and uintBitsToFloat (the latest version of Max 9 uses GLSL v4.10 / OpenGL 4.1), but loading an ISF shader in Max and using Syphon to get the rendered output into Videosync isn’t nearly as straightforward as simply loading a shader into the ISF Shader device.
Are there any plans to support a more recent version of OpenGL in Videosync?