更改线程中多边形的纹理

时间:2012-02-28 13:36:00

标签: android multithreading opengl-es

在我的应用程序的某些方面(对于android),我需要改变多边形的纹理。

为此,我必须从assets文件夹加载一个位图,然后我将位图传递给我的多边形的“loadBitmap”方法,该方法会改变纹理。

它运行正常,但我需要将代码移动到一个线程中,因为位图的加载时间在从资源文件夹加载位图时冻结了我的opengl多边形。

因为我实现了一个调用它来改变纹理的线程,但是当我使用线程时我的纹理是空的(白色),这是错误的,但是如果我不使用线程它就有效,这是我的线程代码:

public class addNextPage extends Thread
{
    GL10 gl;
    public addNextPage(GL10 gl) {
        super();
        this.gl = gl;
    }       
    public void run() 
    {
        super.run();

        Bitmap bm=loadImage(pages.get(0));
        auxSquare.loadBitmap(context, gl, bm);  
        squares.set(3,auxSquare);

        currentPage+=1;                 
        //vuelvo a recolocar los squares
        int posCont=-2; //el primer polígono está a la izquierda, no se ve.
        for (int i=0;i<squares.size();i++){
            if (squares.get(i)!=null)
                squares.get(i).setPosition(posCont,0);
            posCont+=2;
        }           
    }
}

0 个答案:

没有答案