【发布时间】:2010-08-18 01:38:49
【问题描述】:
我是openGL和android开发的新手,所以如果我的问题很琐碎,请原谅我。
我正在尝试构建一个简单的小应用程序,该应用程序在三个 EditTexts 中接收用户的输入,表示要在 GLSurfaceView 中显示的 RGB 颜色的每个组件的 0 - 100% 值。
问题是我需要这个才能使用 openGL ES 2.0,并且我需要使用统一的值将数据传递到着色程序中,这样一旦我开始工作,我就可以继续我真正想要完成的工作。
运行我编写的内容后,我可以让 GLSurfaceView 正确显示第一个纯色,但每当我更改任何值并调用重建着色程序中的统一插槽时,我都会在 LogCat 中收到此错误:
ERROR/libEGL(14316):在没有当前上下文的情况下调用 OpenGL ES API(每个线程记录一次)
当然 GLSurfaceView 仍然是初始颜色。
我一直在寻找解决这个问题的方法,据我所知,我可能需要在设置渲染器之前在某处设置 EGLContext。但是,我在 API 演示中没有看到任何关于此的内容,而且我可以在网上找到的唯一信息是在 GLSurfaceView 甚至可用之前编写的。
我还需要设置 EGLContext 还是我错过了其他东西?
可能有帮助的其他信息:
-使用 XML 文件来设置 UI(据我所知,在代码中这样做没有帮助)
-当我尝试在单独的程序中从 sd 卡加载新纹理时遇到同样的问题。我可以让第一个纹理正常工作,但是当使用相同的方法加载第二个纹理时,我得到相同的错误并且没有任何变化。
【问题讨论】:
-
你在使用多线程吗?
标签: android .net-2.0 opengl-es