OpenGL ES Framework: Texture
用法:初始化后,在需要绑定的地方,比如onDrawFrame里边调用Texture.bind()函数。
public class Texture
{
private String fileName;
private AssetManager asset;
private GL10 gl;
private int minFilter;
private int magFilter;
private int textureId;
public Texture(GL10 gl, AssetManager asset, String fileName)
{
this.fileName = fileName;
this.asset = asset;
this.gl = gl;
load();
}
private void load()
{
int textureIds[] = new int[1];
gl.glGenTextures(1, textureIds, 0);
textureId = textureIds[0];
try
{
Bitmap bitmap = BitmapFactory.decodeStream(asset.open(fileName));
gl.glBindTexture(GL10.GL_TEXTURE_2D, textureId);
GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bitmap, 0);
setFilters(GL10.GL_NEAREST, GL10.GL_NEAREST);
gl.glBindTexture(GL10.GL_TEXTURE_2D, 0);
} catch (IOException e)
{
e.printStackTrace();
}
}
public void setFilters(int minFilter, int magFilter)
{
this.minFilter = minFilter;
this.magFilter = magFilter;
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, minFilter);
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, magFilter);
}
public void bind()
{
gl.glEnable(GL10.GL_TEXTURE_2D);
gl.glBindTexture(GL10.GL_TEXTURE_2D, textureId);
}
public void dispose()
{
gl.glBindTexture(GL10.GL_TEXTURE_2D, textureId);
int[] textureIds = {textureId};
gl.glDeleteTextures(1, textureIds, 0);
}
}
 
 
                    
                 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号