OpenGL ES API错误(无上下文)



我收到这个错误:

错误libEGL调用OpenGL ES API,没有当前上下文

我的类扩展了GLSurfaceView。我有一个方法Init(),它被调用(从主活动)来初始化一些东西。此方法总是在OnSurfaceCreated()之后调用。该方法调用一个本地库函数,该函数又调用一些opengl函数。

我已经改变了一些事情,所以现在我在方法onDraw()中初始化了一些东西,它就可以工作了。那么,opengl函数(来自java或本地代码)只能从具有GL10参数的java方法中调用吗?

我对多线程编程感到困惑,因为我来自于简单的单线程开发。什么时候从本机代码调用opengles函数是安全的(上下文可用)?仅从OnDraW()、onSurfaceCreated()、onSurfaceChanged()?

为什么从activity方法调用gl类的Init()方法,而上下文不可用?

您正在使用queuevent(可运行)吗?听上去,您正在从ui线程调用本机函数。通过使用queuevent,可以确保这些程序在glthread中运行并随后使用正确的上下文。看看这个:http://developer.android.com/reference/android/opengl/GLSurfaceView.html#queueEvent(java.lang.可运行)

最新更新