1

ソースはこれです:

 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、bitmap、0)でビットマップをリサイクルし、メモリを解放したいのですが、その方法を教えてください。

4

1 に答える 1

2

OpenGLからテクスチャを削除するには、次を使用します。

GLES20.glDeleteTextures(1, textureId, 0);

ビットマップ自体を解放するには、次を使用します。

bitmap.recycle();

OpenGLにロードされたら、ビットマップをリサイクルできます。

于 2013-03-04T16:35:31.517 に答える