我正在研究一个Android OpenGL ES 2.0程序的着色器。这是错误消息。我谷歌了,却一无所获。
java.lang.IllegalArgumentException: length - offset < count*4 < needed
at android.opengl.GLES20.glUniformMatrix2fv(Native Method)
这适用于我的Droid Bionic,但不适用于我的三星Galaxy Tab Pro。有问题的实际内容如下:
GLES20.glUniformMatrix2fv(m_u_texture_position, 1, false, m_u_texture_position_floats, 0);
m_u_texture_position_floats是一个2元素的浮点数组。有谁知道这是为什么?
答案 0 :(得分:0)
glUniformMatrix2fv()
设置mat2
类型的统一的值。 mat2
是一个2乘2的矩阵,因此它需要4个浮点数。
对于包含2个值的统一变量,着色器代码中的类型应为vec2
,您将使用glUniform2fv()
来设置值:
GLES20.glUniform2fv(m_u_texture_position, 1, m_u_texture_position_floats, 0);