Возможно, вы включили другой массив с glEnableClientState
в другой точке вашей программы и не отключили его.Поэтому glDrawArrays
пытается прочитать из другого массива, который вызывает проблему.
РЕДАКТИРОВАТЬ: : Может также оказаться, что код, который вы нам показали, не является реальным кодом, и вы вызываете glVertexPointer
в совершенно ином месте, чем glDrawArrays
.Когда вы указываете data
в качестве указателя вершины, вы только говорите ему брать вершины из data
, когда вызывается glDrawArrays
.Данные вершин не копируются, поэтому data
должен существовать при вызове glDrawArrays
(в данный момент это локальная переменная, но с предоставленным вами фрагментом кода это должно работать).
РЕДАКТИРОВАТЬ: Я также предполагаю, что вы не используете какие-либо объекты буфера, поскольку это также может быть проблемой, если буфер вершин связан при вызове glVertexPointer
.