我正在制作一款安卓游戏,我需要帮助。如何将 gl 和 this.context 发送到该主题?
这是代码:
new Thread(new Runnable() {
public void run() {
Building b=new Building();
b=new Building();
b.loadGLTexture(gl, this.context);
first=0;
bulid++;
bubbles.add(b);
}
}).start();
答案 0 :(得分:0)
你能再澄清一下你的问题了吗?你从哪里得到gl
?
作为OpenGL E.S. (以及OpenGL本身)是一个有状态的图形库,你不应该在渲染线程以外的另一个线程中使用gl
。
创建GLSurface时,正在创建新线程。现有的将继续存在(并处理onTouchEvent()
次呼叫)。
在渲染线程之外的任何其他线程中使用gl
可能会搞乱状态机,并且不会处理您的GL调用,因为新线程不使用相同的OpenGL上下文。
答案 1 :(得分:0)
您可以创建一个内部类:
public class ClassName implements Runnable{
GL10 mGl;
Context mContext;
public ClassName(GL10 mGl, Context mContext){
this.mGl = mGl;
this.mContext = mContext;
}
public void run() {
Building b=new Building();
b=new Building();
b.loadGLTexture(mGl, mContext);
first=0;
bulid++;
bubbles.add(b);
}
}
并在代码中使用此Runnable实现:
new Thread(new ClassName(gl, this.context)).start();