add matrix support for SetUniform()