mat2 rotator(float theta)
{
	return mat2(cos(theta),-sin(theta), sin(theta), cos(theta));
}

void mainImage( out vec4 fragColor, in vec2 fragCoord )
{
    vec2 uv = vec2(-1. + 2. * fragCoord/iResolution.xy);

    uv.x *= iResolution.x / iResolution.y;
	uv *= 3.;
	float dark_x = 2.;
    float dark_y = 2.;



    vec3 color;

    for(int i = 0; i < 3; ++i)
    {
        // right
        if(uv.x > 0.5)
        {
            //top
            if(uv.y >= 0.5)
            {
                color = vec3(0.2,0.2,1.);
                color *= dark_x;
            }
            //bottom
            else
            {
                color = vec3(1.,0.3,0.3);
                color *= dark_y;
            }
        }
        else
        {
            //top
            if(uv.y >= 0.5)
            {
                color = 1. - vec3(1.,0.2,0.2);
                color *= dark_y;
            }
            //bottom
            else
            {
                color = 1. -  vec3(0.2,0.2,1.);
                color *= dark_x;
            }
        }


        uv /= dot(uv,uv);

        vec2 mouse = -1. + 2. * iMouse.xy / iResolution.xy;
        uv += mouse;
        uv = fract(uv.xy + vec2(-sin(iTime),cos(iTime))) *2. - 1.;

	}




    // Output to screen
    fragColor = vec4(color,0.);
}
