improve "polymorphic" typing of shaders

add abstractions that allow removing dependencies to glew.h

(0) -100 -30 -10 -2 +2 +10 +30 tip

mercurial