Exemplo n.º 1
0
        protected override Bitmap OnGetBitmap(int imageIndex, int paletteIndex)
        {
            VtxpImageHeader imageHeader = ImageHeaders[imageIndex];

            bool isIndexed = (imageHeader.PaletteOffset != 0);

            ImageBinary imageBinary = new ImageBinary();

            imageBinary.Width           = imageHeader.Width;
            imageBinary.Height          = imageHeader.Height;
            imageBinary.InputEndianness = Endian.LittleEndian;

            if (isIndexed)
            {
                imageBinary.InputPaletteFormat = PSVita.GetPaletteFormat(imageHeader.TextureFormat);
                imageBinary.AddInputPalette(imageHeader.PaletteData);
            }

            imageBinary.InputPixelFormat = PSVita.GetPixelDataFormat(imageHeader.TextureFormat);
            imageBinary.AddInputPixels(imageHeader.PixelData);

            if (imageHeader.TextureType == VtxpTextureType.Swizzled)
            {
                imageBinary.InputPixelFormat |= PixelDataFormat.PixelOrderingSwizzledVita;
            }

            return(imageBinary.GetBitmap());
        }
Exemplo n.º 2
0
        protected override void OnOpen(EndianBinaryReader reader)
        {
            MagicNumber     = Encoding.ASCII.GetString(reader.ReadBytes(4));
            Unknown0x04     = reader.ReadUInt32();
            NumImages       = reader.ReadUInt32();
            UnkTablePointer = reader.ReadUInt32();
            Padding         = reader.ReadBytes(16);

            ImageHeaders = new VtxpImageHeader[NumImages];
            for (int i = 0; i < ImageHeaders.Length; i++)
            {
                ImageHeaders[i] = new VtxpImageHeader(reader);
            }
        }