modified setupshaders to work from an array of struct instead of just using hardcoded lines of createshaders.