gl.MatrixMode(gl.MODELVIEW)
gl.PushMatrix()
m := new([16]float64)
setIdentity(m)
gl.LoadMatrixd((*gl.GLdouble)(&m[0]))
gl.Rotated(90, 0, 1, 0)
gl.GetDoublev(gl.MODELVIEW_MATRIX, (*gl.GLdouble)(&m[0]))
gl.PopMatrix()
fmt.Printf("%f", m[0])
// m[0] == forward.x
Содержимое m не меняется после GetDoublev. Я пытаюсь портировать некоторый код C (который работает, и это в основном это). Что я делаю не так?
Код C по запросу:
//m is float[16] set to identity
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
glLoadMatrixf(m);
glRotatef(90, 0,1,0);
glGetFloatv(GL_MODELVIEW_MATRIX, m);
glPopMatrix();