Search in sources :

Example 1 with PVRTexture

use of org.andengine.opengl.texture.compressed.pvr.PVRTexture 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)

Aggregations

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 BitmapTexture (org.andengine.opengl.texture.bitmap.BitmapTexture)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 IInputStreamOpener (org.andengine.util.adt.io.in.IInputStreamOpener)1 TexturePackParseException (org.andengine.util.texturepack.exception.TexturePackParseException)1