abstraction layer for shaders