I tried something, maybe this is what you looking for ?
void main()
{
// Sprite Area
vec2 uv= vTex;
uv -= 0.5;
// offset
uv -= offset;
// scale
uv = scale * uv;
// rotate
uv = cos(rotate) * uv + sin(rotate) * vec2(uv.y, -uv.x);
uv += 0.5;
// center image in canvas - Not works on C2
//uv += 0.5;
// Fix the tile thing
uv = fract(uv);
gl_FragColor = texture2D(samplerFront, uv);
}