public static void UniformMatrix2(int location, bool transpose, ref Matrix2 matrix) { unsafe { fixed(float *matrix_ptr = &matrix.Row0.X) { GL.UniformMatrix2(location, 1, transpose, matrix_ptr); } } }