我正在尝试将加载屏幕添加到我的应用中,因为需要一些时间来加载纹理。这就是我以前做的......
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
super.onSurfaceCreated(gl, config);
if(firstTimeCreate) {
load(); //load settings
Assets.LoadTextures(this);
firstTimeCreate = false;}
else {
//When screen is resumed....
Assets.reloadTextures();}
这样在应用程序恢复后,else语句将生效并重新加载所有内容......我试图将其改编为此
else {
//When screen is resumed....
Thread aThread = new Thread()
{
public void run(){
boolean once = true;
while(once)
{
Assets.reloadTexutres();
once = false;
}
}
};
aThread.start();
}
然而,现在看来OpenGL无法绑定纹理,因为屏幕是白色的。通过向此方法添加线程会出现什么问题?在让OpenGL开始尝试渲染之前,是否需要等待所有纹理加载,如果是这样,我如何加载一个然后呈现加载屏幕,直到其余部分完成?
由于
答案 0 :(得分:0)
将OpenGL ES上下文分配给一个线程。所以,如果你想在一个线程中创建上下文并在另一个线程中使用它,你应该调用eglMakeCurrent(...)
函数。