Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/164.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:从其他线程访问OpenGL_Android_C++_Opengl Es 2.0 - Fatal编程技术网

Android:从其他线程访问OpenGL

Android:从其他线程访问OpenGL,android,c++,opengl-es-2.0,Android,C++,Opengl Es 2.0,我正在使用Android上的NDK for OpenGL,我试图解决应用程序失去焦点时与GL相关的怪癖。我知道我可以设置一个标志告诉系统我想保持上下文,但这是不可靠的 我已经设置好从文件重新加载着色器,并在应用程序恢复时从本地内存重新上载顶点数据,但纹理给我带来了一些问题。我将代码设置为在onPause中从GL中提取纹理,然后在创建新上下文时将其推回。后来我意识到它不起作用,因为我试图在不同的线程上访问GL数据 是否有任何可靠的黑客可以让我访问这里的总账数据?或者甚至将上下文切换到另一个线程 作

我正在使用Android上的NDK for OpenGL,我试图解决应用程序失去焦点时与GL相关的怪癖。我知道我可以设置一个标志告诉系统我想保持上下文,但这是不可靠的

我已经设置好从文件重新加载着色器,并在应用程序恢复时从本地内存重新上载顶点数据,但纹理给我带来了一些问题。我将代码设置为在onPause中从GL中提取纹理,然后在创建新上下文时将其推回。后来我意识到它不起作用,因为我试图在不同的线程上访问GL数据

是否有任何可靠的黑客可以让我访问这里的总账数据?或者甚至将上下文切换到另一个线程


作为这个问题的延伸,在上下文被破坏之前,是否有任何方式可以得到通知?所以我只需要在绝对必要的时候做这个?

我最后做的是设置一个布尔值,告诉GL线程它将被放到后台。然后我让它反复暂停onPause线程5ms,直到GL线程指示它已经完成

不是很优雅,应用程序也不会转换出来,但它可以工作