Revision control

++ void MAIN()
++ {
++ mat2 rotMat = mat2(cosAlpha, sinAlpha, -sinAlpha, cosAlpha);
++
++ vec2 uv0 = TEXTURE_UV / brushSize * 1000.0;
++ uv0 = (uv0.yx * rotMat).yx;
++
++ vec2 uv1 = texture(noiseSample, fract(uv0)).xy - 0.5;
++ uv1*= vec2(1.0, 0.01);
++ uv1*= rotMat;
++ uv1.y *= FRAMEBUFFER_Y_UP;
++ vec2 uv2 = INPUT_UV + uv1 * 0.1 * brushLength;
++
++ vec2 halfPixelSize = 0.5 / INPUT_SIZE;
++ FRAGCOLOR = texture(INPUT, clamp(uv2, halfPixelSize, 1.0 - halfPixelSize));
++ }