void SpriteShader::SetParameter(const std::string ¶meterName, const Matrix2 &value) { if(pimpl->uniforms.find(parameterName) == pimpl->uniforms.end()) throw std::runtime_error("Couldn't find the named SpriteEffect parameter: " + parameterName); auto &uniformData = pimpl->uniforms[parameterName]; if(uniformData.type != GL_FLOAT_MAT2) throw std::runtime_error("Type mismatch for named SpriteEffect paramater: " + parameterName); glUniformMatrix2fv(uniformData.location, 1, GL_FALSE, value.Transpose()); }