2011-01-18 6 views
0
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 

GetDoublevの後にmの内容は変更されません。私はいくつかのCコードを移植しようとしています(これは基本的に動作します)。私は間違って何をしていますか?要求されたようGO-OpenGL LoadMatrixdとGetDoublevの問題

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(); 
+0

Cコードを投稿できますか? – nmichaels

+0

'm:= new([16] float64)'は配列を0に初期化するか、その時点で初期化されていませんか? –

+0

私はLoadMatrixdを呼び出す前に行列をアイデンティティに設定しています –

答えて

1

あなたはマトリックス機能を使用することができます前に、あなたはsdl.SetVideoMode()を呼び出す必要があります。

関連する問題