User determined circular shift:

r

src((x+val(0,0,X-1))%X,(y+val(1,0,Y-1))%Y,0)

g

src((x+val(0,0,X-1))%X,(y+val(1,0,Y-1))%Y,1)

b

src((x+val(0,0,X-1))%X,(y+val(1,0,Y-1))%Y,2)