shader code moved to shader.c/shader.h. Shader abstraction with shader structure