gl: reset shader object when detecting context changes