命令glUniformMatrix4fv上的Android OpenGL20错误
我在以下命令中遇到错误:命令glUniformMatrix4fv上的Android OpenGL20错误,android,opengl-es,matrix,opengl-es-2.0,Android,Opengl Es,Matrix,Opengl Es 2.0,我在以下命令中遇到错误: @Override public void onDrawFrame(GL10 gl) { Matrix.multiplyMM(mMVPMatrix, 0, mProjMatrix, 0, mVMatrix, 0); // ******************************************************************* GLES20.glUniformMatrix4fv(muMVPMatrixHandle,
@Override
public void onDrawFrame(GL10 gl) {
Matrix.multiplyMM(mMVPMatrix, 0, mProjMatrix, 0, mVMatrix, 0);
// *******************************************************************
GLES20.glUniformMatrix4fv(muMVPMatrixHandle, 1, false, mMVPMatrix, 0);
// *******************************************************************
Utils.checkGlError("glUniformMatrix4fv muMVPMatrixHandle");
GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT | GLES20.GL_DEPTH_BUFFER_BIT);
Utils.checkGlError("glClear GL_COLOR_BUFFER_BIT");
GLES20.glFrontFace(GLES20.GL_CW);
Utils.checkGlError("glFrontFace GL_CW");
GLES20.glUseProgram(mProgram);
Utils.checkGlError("glUseProgram mProgram");
drawFrame();
}
我也不知道问题出在哪里!这部分代码取自android开发指南上的一个示例。。。
当我调试代码时,我可以看到muMVPMatrixHandle不是-1,它是一个有效值,而且mMVPMatrix似乎也是有效的。
如果有帮助,错误代码为1282…这主要是猜测,但我认为在将值分配到着色器之前应该移动glUseProgram(mProgram)。通过将glUseProgram命令移动到Glusniformmatrix4fv命令上方解决了此问题。编辑:harism,刚刚在解决问题后看到你的评论。但这确实起到了作用,所以请进行投票:)这主要是一个猜测,但我认为在将值分配到着色器之前,应该移动glUseProgram(mProgram)。通过将glUseProgram命令移动到Glusniformmatrix4fv命令上方解决了此问题。编辑:harism,刚刚在解决问题后看到你的评论。但这确实起到了作用,所以请投赞成票:)