来源是:
public static int loadTexture ( Bitmap bitmap )
{
//long time1 = System.currentTimeMillis();
int[] textureId = new int[1];
GLES20.glGenTextures ( 1, textureId, 0 );
GLES20.glBindTexture ( GLES20.GL_TEXTURE_2D, textureId[0] );
GLES20.glTexParameteri ( GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER, GLES20.GL_LINEAR );
GLES20.glTexParameteri ( GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MAG_FILTER, GLES20.GL_LINEAR );
GLES20.glTexParameteri ( GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_S, GLES20.GL_CLAMP_TO_EDGE );
GLES20.glTexParameteri ( GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_T, GLES20.GL_CLAMP_TO_EDGE );
GLES20.glEnable(GLES20.GL_BLEND);
GLES20.glBlendFunc(GLES20.GL_ONE, GLES20.GL_ONE_MINUS_SRC_ALPHA);
try{
GLUtils.texImage2D(GLES20.GL_TEXTURE_2D, 0, bitmap, 0);
}
catch(Exception ex)
{
ex.printStackTrace();
}
return textureId[0];
}
我想在方法GLUtils.texImage2D(GLES20.GL_TEXTURE_2D,0,位图,0)中回收位图,并释放内存,请帮我怎么做?
答案 0 :(得分:2)
要从OpenGL中删除纹理,请使用:
GLES20.glDeleteTextures(1, textureId, 0);
要释放位图本身,请使用:
bitmap.recycle();
一旦将位图加载到OpenGL中,就可以对其进行回收。