Search in sources :

Example 1 with BitmapTexture

use of org.andengine.opengl.texture.bitmap.BitmapTexture in project AndEngine by nicolasgramlich.

the class TexturePackParser method parseTexture.

private ITexture parseTexture(final Attributes pAttributes) throws TexturePackParseException {
    final String file = SAXUtils.getAttributeOrThrow(pAttributes, TexturePackParser.TAG_TEXTURE_ATTRIBUTE_FILE);
    if (this.mTextureManager.hasMappedTexture(file)) {
        return this.mTextureManager.getMappedTexture(file);
    }
    final String type = SAXUtils.getAttributeOrThrow(pAttributes, TexturePackParser.TAG_TEXTURE_ATTRIBUTE_TYPE);
    final PixelFormat pixelFormat = TexturePackParser.parsePixelFormat(pAttributes);
    final TextureOptions textureOptions = this.parseTextureOptions(pAttributes);
    final ITexture texture;
    if (type.equals(TexturePackParser.TAG_TEXTURE_ATTRIBUTE_TYPE_VALUE_BITMAP)) {
        try {
            texture = new BitmapTexture(this.mTextureManager, new IInputStreamOpener() {

                @Override
                public InputStream open() throws IOException {
                    return TexturePackParser.this.onGetInputStream(file);
                }
            }, BitmapTextureFormat.fromPixelFormat(pixelFormat), textureOptions);
        } catch (final IOException e) {
            throw new TexturePackParseException(e);
        }
    } else if (type.equals(TexturePackParser.TAG_TEXTURE_ATTRIBUTE_TYPE_VALUE_PVR)) {
        try {
            texture = new PVRTexture(this.mTextureManager, PVRTextureFormat.fromPixelFormat(pixelFormat), new SmartPVRTexturePixelBufferStrategy(DataConstants.BYTES_PER_MEGABYTE / 8), textureOptions) {

                @Override
                protected InputStream onGetInputStream() throws IOException {
                    return TexturePackParser.this.onGetInputStream(file);
                }
            };
        } catch (final IOException e) {
            throw new TexturePackParseException(e);
        }
    } else if (type.equals(TexturePackParser.TAG_TEXTURE_ATTRIBUTE_TYPE_VALUE_PVRGZ)) {
        try {
            texture = new PVRGZTexture(this.mTextureManager, PVRTextureFormat.fromPixelFormat(pixelFormat), new SmartPVRTexturePixelBufferStrategy(DataConstants.BYTES_PER_MEGABYTE / 8), textureOptions) {

                @Override
                protected InputStream onGetInputStream() throws IOException {
                    return TexturePackParser.this.onGetInputStream(file);
                }
            };
        } catch (final IOException e) {
            throw new TexturePackParseException(e);
        }
    } else if (type.equals(TexturePackParser.TAG_TEXTURE_ATTRIBUTE_TYPE_VALUE_PVRCCZ)) {
        try {
            texture = new PVRCCZTexture(this.mTextureManager, PVRTextureFormat.fromPixelFormat(pixelFormat), new SmartPVRTexturePixelBufferStrategy(DataConstants.BYTES_PER_MEGABYTE / 8), textureOptions) {

                @Override
                protected InputStream onGetInputStream() throws IOException {
                    return TexturePackParser.this.onGetInputStream(file);
                }
            };
        } catch (final IOException e) {
            throw new TexturePackParseException(e);
        }
    } else {
        throw new TexturePackParseException(new IllegalArgumentException("Unsupported pTextureFormat: '" + type + "'."));
    }
    this.mTextureManager.addMappedTexture(file, texture);
    return texture;
}
Also used : PVRGZTexture(org.andengine.opengl.texture.compressed.pvr.PVRGZTexture) InputStream(java.io.InputStream) PVRTexture(org.andengine.opengl.texture.compressed.pvr.PVRTexture) SmartPVRTexturePixelBufferStrategy(org.andengine.opengl.texture.compressed.pvr.pixelbufferstrategy.SmartPVRTexturePixelBufferStrategy) IOException(java.io.IOException) TexturePackParseException(org.andengine.util.texturepack.exception.TexturePackParseException) PVRCCZTexture(org.andengine.opengl.texture.compressed.pvr.PVRCCZTexture) IInputStreamOpener(org.andengine.util.adt.io.in.IInputStreamOpener) PixelFormat(org.andengine.opengl.texture.PixelFormat) TextureOptions(org.andengine.opengl.texture.TextureOptions) ITexture(org.andengine.opengl.texture.ITexture) BitmapTexture(org.andengine.opengl.texture.bitmap.BitmapTexture)

Example 2 with BitmapTexture

use of org.andengine.opengl.texture.bitmap.BitmapTexture in project AndEngine by nicolasgramlich.

the class TextureManager method getTexture.

public synchronized ITexture getTexture(final String pID, final AssetManager pAssetManager, final String pAssetPath, final TextureOptions pTextureOptions) throws IOException {
    if (this.hasMappedTexture(pID)) {
        return this.getMappedTexture(pID);
    } else {
        final ITexture texture = new BitmapTexture(this, new AssetInputStreamOpener(pAssetManager, pAssetPath), pTextureOptions);
        this.loadTexture(texture);
        this.addMappedTexture(pID, texture);
        return texture;
    }
}
Also used : AssetInputStreamOpener(org.andengine.util.adt.io.in.AssetInputStreamOpener) BitmapTexture(org.andengine.opengl.texture.bitmap.BitmapTexture)

Aggregations

BitmapTexture (org.andengine.opengl.texture.bitmap.BitmapTexture)2 IOException (java.io.IOException)1 InputStream (java.io.InputStream)1 ITexture (org.andengine.opengl.texture.ITexture)1 PixelFormat (org.andengine.opengl.texture.PixelFormat)1 TextureOptions (org.andengine.opengl.texture.TextureOptions)1 PVRCCZTexture (org.andengine.opengl.texture.compressed.pvr.PVRCCZTexture)1 PVRGZTexture (org.andengine.opengl.texture.compressed.pvr.PVRGZTexture)1 PVRTexture (org.andengine.opengl.texture.compressed.pvr.PVRTexture)1 SmartPVRTexturePixelBufferStrategy (org.andengine.opengl.texture.compressed.pvr.pixelbufferstrategy.SmartPVRTexturePixelBufferStrategy)1 AssetInputStreamOpener (org.andengine.util.adt.io.in.AssetInputStreamOpener)1 IInputStreamOpener (org.andengine.util.adt.io.in.IInputStreamOpener)1 TexturePackParseException (org.andengine.util.texturepack.exception.TexturePackParseException)1