doesn't sizeof(glm::vec3) work in this case? I'm pretty sure we use this construct elsewhere. I guess it's possible that on some systems the glm::vec3 would get aligned to different than 3 floats, but in such a case won't the memcpy also be problematic.