gpt4 book ai didi

android - 为什么我得到 "call to OpenGL ES API with no current context"?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:07:21 25 4
gpt4 key购买 nike

我是 openGL 和 android 开发的新手,所以如果我的问题很琐碎,请原谅我。

我正在尝试构建一个简单的小应用程序,该应用程序在三个 EditText 中接受用户的输入,这些 EditText 表示要在 GLSurfaceView 中显示的 RGB 颜色的每个组件的 0 - 100% 值。

要注意的是,我需要它来使用 openGL ES 2.0,并且我需要使用统一值将数据传递到着色程序,这样一旦我让它工作,我就可以继续我真正想要完成的事情。

运行我编写的内容后,我可以让 GLSurfaceView 正确显示第一个纯色,但是每当我更改任何值并调用重建着色程序中的统一插槽时,我都会在 LogCat 中收到此错误:

错误/libEGL(14316):在没有当前上下文的情况下调用 OpenGL ES API(每个线程记录一次)

当然 GLSurfaceView 保持初始颜色。

我一直在寻找这个问题的解决方案,据我所知,我可能需要在设置渲染器之前在某处设置 EGLContext。但是,我在 API 演示中看不到任何关于此的信息,而且我在网上能找到的唯一信息是在 GLSurfaceView 可用之前编写的。

我还需要设置 EGLContext 还是我错过了其他东西?


可能有帮助的其他信息:

-使用 XML 文件来设置 UI(据我所知,在代码中这样做没有帮助)

- 当我尝试在单独的程序中从 SD 卡加载新纹理时遇到同样的问题。我可以让第一个纹理正常工作,但是当使用相同的方法加载第二个时,我得到相同的错误并且没有任何变化。

最佳答案

您不是从 OpenGL 线程调用它。如果另一个线程正在尝试使用 OpenGL 执行某些操作,请将其排队并在您的 OpenGL 线程期间调用它。

关于android - 为什么我得到 "call to OpenGL ES API with no current context"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3508348/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com