template<typename T, unsigned N>
void ProgramData::uniform(Tag tag, const LinAl::Vector<T, N> &v)
-{ uniform(tag, TypeTraits<LinAl::Vector<T, N>>::type, 1, &v.x); }
+{ uniform(tag, TypeTraits<LinAl::Vector<T, N>>::type, 1, &v[0]); }
template<typename T, unsigned R, unsigned C>
void ProgramData::uniform(Tag tag, const LinAl::Matrix<T, R, C> &v)
template<typename T, unsigned N>
void ProgramData::uniform_array(Tag tag, unsigned n, const LinAl::Vector<T, N> *v)
-{ uniform(tag, TypeTraits<LinAl::Vector<T, N>>::type, n, &v[0].x); }
+{ uniform(tag, TypeTraits<LinAl::Vector<T, N>>::type, n, &v[0][0]); }
template<typename T, unsigned R, unsigned C>
void ProgramData::uniform_array(Tag tag, unsigned n, const LinAl::Matrix<T, R, C> *v)