GO-OpenGL LoadMatrixd и GetDoublev выпускают - PullRequest
0 голосов
/ 19 января 2011
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();

1 Ответ

1 голос
/ 19 января 2011

Вы должны вызвать sdl.SetVideoMode (), прежде чем сможете использовать функции Matrix.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...