package org.anddev.andengine.opengl.texture; import java.io.IOException; import javax.microedition.khronos.opengles.GL10; import org.anddev.andengine.opengl.texture.source.ITextureAtlasSource; import org.anddev.andengine.util.Debug; /** * (c) 2010 Nicolas Gramlich * (c) 2011 Zynga Inc. * * @author Nicolas Gramlich * @since 15:01:03 - 11.07.2011 */ public interface ITexture { // =========================================================== // Constants // =========================================================== // =========================================================== // Methods // =========================================================== public int getWidth(); public int getHeight(); public int getHardwareTextureID(); public boolean isLoadedToHardware(); public void setLoadedToHardware(final boolean pLoadedToHardware); public boolean isUpdateOnHardwareNeeded(); public void setUpdateOnHardwareNeeded(final boolean pUpdateOnHardwareNeeded); public void loadToHardware(final GL10 pGL) throws IOException; public void unloadFromHardware(final GL10 pGL); public void reloadToHardware(final GL10 pGL) throws IOException; public void bind(final GL10 pGL); public TextureOptions getTextureOptions(); public boolean hasTextureStateListener(); public ITextureStateListener getTextureStateListener(); // =========================================================== // Methods for/from SuperClass/Interfaces // =========================================================== public static interface ITextureStateListener { // =========================================================== // Final Fields // =========================================================== // =========================================================== // Methods // =========================================================== public void onLoadedToHardware(final ITexture pTexture); public void onUnloadedFromHardware(final ITexture pTexture); // =========================================================== // Inner and Anonymous Classes // =========================================================== public static class TextureStateAdapter<T extends ITextureAtlasSource> implements ITextureStateListener { @Override public void onLoadedToHardware(final ITexture pTexture) { } @Override public void onUnloadedFromHardware(final ITexture pTexture) { } } public static class DebugTextureStateListener<T extends ITextureAtlasSource> implements ITextureStateListener { @Override public void onLoadedToHardware(final ITexture pTexture) { Debug.d("Texture loaded: " + pTexture.toString()); } @Override public void onUnloadedFromHardware(final ITexture pTexture) { Debug.d("Texture unloaded: " + pTexture.toString()); } } } }