0
我目前正在使用NDK移植遊戲。我正在使用本機OpenGL,並且在使用glGet *函數時遇到問題。glGetIntegerv/glGetFloatv Android NDK
下面的代碼片段:
m_camera.SetViewMatrix(); //just to make sure nothings left from the last render
int viewport[4];
glGetIntegerv(GL_VIEWPORT, viewport);
float proj[16];
glGetFloatv(GL_PROJECTION_MATRIX, proj);
float model[16];
glGetFloatv(GL_MODELVIEW_MATRIX, model);
m_currentRay.Create(x, y, 0.0f, 1.0f, model, proj, viewport);
一切看起來不錯,但它似乎像glGet *功能根本不工作,並且不返回任何值。
我甚至試圖初始化變量到某些值,但是當glGet *函數被調用時,變量是不變的。例如:
int viewport[4];
viewport[0] = 1;
viewport[1] = 2;
viewport[2] = 3;
viewport[3] = 4;
當和glGetIntegerv(GL_VIEWPORT,視口);被稱爲,視口仍然是一樣的。這同樣適用於所有變量。
的幾個注意事項:
- 我調試在HTC野火
- 使用GLES 1.0
- 的Android SDK 2.2版本(API第8版)
任何幫助,將不勝感激。
謝謝!
對於獲取矩陣,檢查您的設備是否有GL_OES_matrix_get擴展 – ognian 2011-03-24 13:46:43
感謝您的答覆,但我認爲這是爲GLES 1.1,開始認爲glGetIntegerv/glGetFloatv既是GLES 1.1也是,並且Wildfire只支持1.0。 – MomTarsh 2011-03-24 17:18:01
我認爲就是這樣;一些Android設備僅支持非常舊的版本的GLES。我對GL_OES_matrix_get的閱讀是關於能夠在僅提供固定點接口的ES 1.1版本上獲得浮點矩陣,但我猜如果它是在ES 1.0之上實現的,那麼它仍然會解決問題。 – Tommy 2011-03-24 20:47:10