装入统一的矩阵1104 GL_Invalid_Operation的Andr​​oid 2.0 OpenGLES [英] Load Uniform Matrix 1104 GL_Invalid_Operation Android OpenGLES 2.0

查看:614
本文介绍了装入统一的矩阵1104 GL_Invalid_Operation的Andr​​oid 2.0 OpenGLES的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的工作落实渲染到纹理在Android 4.3以上版本(OpenGLES 2.0)

I am working on implementing rendering to texture on Android 4.3+ (OpenGLES 2.0)

我收到我的并条机()方法,以下错误:

I am getting the following error in my DrawFrame() method:

01-15 13:40:07.545: W/Adreno-ES20(23709): <__load_uniform_matrix:1104>: GL_INVALID_OPERATION
01-15 13:40:07.545: E/com.hpp.STextureRender(23709): glDrawArrays: glError 1282
01-15 13:40:07.545: D/io.hpp.CaptureManager(23709): Error encountered in drawFrame = glDrawArrays: glError 1282
01-15 13:40:07.545: W/System.err(23709): java.lang.RuntimeException: glDrawArrays: glError 1282
01-15 13:40:07.545: W/System.err(23709):    at com.hpp.openGL.STextureRender.checkGlError(STextureRender.java:524)
01-15 13:40:07.545: W/System.err(23709):    at com.hpp.openGL.STextureRender.drawFrame(STextureRender.java:316)
01-15 13:40:07.545: W/System.err(23709):    at com.harmonicprocesses.penelopefree.openGL.MyGLRenderer.drawFrame(MyGLRenderer.java:286)
01-15 13:40:07.545: W/System.err(23709):    at com.harmonicprocesses.penelopefree.camera.CaptureManager.drawFrame(CaptureManager.java:446)
01-15 13:40:07.545: W/System.err(23709):    at com.harmonicprocesses.penelopefree.camera.CaptureManager.access$7(CaptureManager.java:444)
01-15 13:40:07.555: W/System.err(23709):    at com.harmonicprocesses.penelopefree.camera.CaptureManager$6.run(CaptureManager.java:278)
01-15 13:40:07.555: W/System.err(23709):    at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1463)
01-15 13:40:07.555: W/System.err(23709):    at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1240)

莫非这个问题从茎建立 EGL14.eglChooseConfig(mEGLDisplay,configsAttribs,0,CONFIGS,0,configs.length,numConfigs,0);

private int[] version, configsAttribs = {
        EGL14.EGL_RED_SIZE, 8,
        EGL14.EGL_GREEN_SIZE, 8,
        EGL14.EGL_BLUE_SIZE, 8,
        EGL14.EGL_RENDERABLE_TYPE, EGL14.EGL_OPENGL_ES2_BIT,
        EGL_RECORDABLE_ANDROID, 1,
        EGL14.EGL_NONE

但是使用连接到FBO以下质地

But using the following texture connected to the FBO

    // generate the textures
    GLES20.glTexImage2D(GLES20.GL_TEXTURE_2D, 0, GLES20.GL_RGBA, rain.width, rain.height, 0, GLES20.GL_RGBA, GLES20.GL_UNSIGNED_SHORT_4_4_4_4, juliaTexBuff);

注意RGBA4444的discrepency在EGL而不是RGBA8888?

Notice the discrepency of RGBA4444 as opposed to RGBA8888 in EGL?

推荐答案

但问题是调用glUseProgram之前加载一个统一的变量中。如果我把包含glGetUniform4fv(块后调用)它显然失败,因为它不知道是哪里的制服是因为程序被加载。

The problem was during loading a uniform variable before calling glUseProgram. If I put the call after the block that contained glGetUniform4fv() it obviously fails because it doesn't know where the uniform is because the program is loaded.

这篇关于装入统一的矩阵1104 GL_Invalid_Operation的Andr​​oid 2.0 OpenGLES的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆