2014-09-24 6 views
0

나는 안드로이드 OpenGL ES 2.0 프로그램의 쉐이더 작업을하고 있습니다. 이것은 오류 메시지입니다. 나는 그것을 google'd했고 아무것도 발견하지 못했다.glUniformMatrix2fv Android 갤럭시 탭 Pro with Android GLES20 - Droid Bionic에서 작동

java.lang.IllegalArgumentException: length - offset < count*4 < needed 
      at android.opengl.GLES20.glUniformMatrix2fv(Native Method) 

이것은 내 Droid Bionic에서 작동하지만 내 Samsung Galaxy Tab Pro에서는 작동하지 않습니다. 문제의 실제 행은 다음과 같습니다.

GLES20.glUniformMatrix2fv(m_u_texture_position, 1, false, m_u_texture_position_floats, 0); 

m_u_texture_position_floats는 2 요소 배열의 float입니다. 누구나 이것이 왜 있는지 압니까?

답변

0

glUniformMatrix2fv()mat2 유니폼의 값을 설정합니다. mat2은 2 x 2 매트릭스이므로 4 개의 부동 소수점이 필요합니다. 이 개 값으로 균일 한 변수에 대한

은 셰이더 코드의 유형은 vec2해야합니다, 당신은 값을 설정하는 glUniform2fv()를 사용합니다 :

GLES20.glUniform2fv(m_u_texture_position, 1, m_u_texture_position_floats, 0); 
+0

'1이 답변의 코드였다 일을 무엇을 '로 표시됩니다 : GLES20.glUniform2fv (m_u_texture_position, 1, m_u_texture_position_floats, 0);' –

+0

오른쪽, 이것은 수의 수가 아니고 벡터의 수입니다. 이제 해결되었습니다. –