isf 0.1.0

Parsing, Deserialization and Serialization of the Interactive Shader Format.
Documentation
/*{
    "CATEGORIES": [
        "Retro",
        "Stylize",
        "Color Effect"
    ],
    "CREDIT": "VIDVOX",
    "DESCRIPTION": "Posterizes an image",
    "INPUTS": [
        {
            "NAME": "inputImage",
            "TYPE": "image"
        },
        {
            "DEFAULT": 1.25,
            "LABEL": "Gamma",
            "MAX": 2,
            "MIN": 0.5,
            "NAME": "gamma",
            "TYPE": "float"
        },
        {
            "DEFAULT": 6,
            "LABEL": "Quality",
            "MAX": 32,
            "MIN": 3,
            "NAME": "numColors",
            "TYPE": "float"
        }
    ],
    "ISFVSN": "2"
}
*/

void main()	{
	
    vec4	c = IMG_THIS_PIXEL(inputImage);

 	c.rgb = pow(c.rgb, vec3(gamma, gamma, gamma));
 	c.rgb = c.rgb * numColors;
 	c.rgb = floor(c.rgb);
 	c.rgb = c.rgb / numColors;
 	c.rgb = pow(c.rgb, vec3(1.0/gamma));

	gl_FragColor = c;
}