Few useful macros added
No reading outside of current UV

Shader can be used on a SubTexture, so we need to manually constrain
all texture reads to the UV region used.