public bool UpdateUniform(String name, OpenTK.Matrix4[] matArray)
        {
            var data = new List<float>();
            foreach (var mat in matArray)
            {
                // Col 1
                data.Add(mat.M11);
                data.Add(mat.M21);
                data.Add(mat.M31);
                data.Add(mat.M41);

                // Col 2
                data.Add(mat.M12);
                data.Add(mat.M22);
                data.Add(mat.M32);
                data.Add(mat.M42);

                // Col 3
                data.Add(mat.M13);
                data.Add(mat.M23);
                data.Add(mat.M33);
                data.Add(mat.M43);
            }

            GL.Uniform4(uniforms[name], matArray.Count() * 3, data.ToArray());
            CheckError();

            return true;
        }