A collection of textures.
Inheritance: Glare.Assets.FolderAsset
Ejemplo n.º 1
0
        internal TextureArchiveRecord(TextureArchive archive, BinaryReader reader, ByteOrder order)
            : base(archive, "")
        {
            Offset = reader.ReadInt32(order);
            Size   = reader.ReadInt32(order);

            if (Archive.Platform == DSPlatform.PS3)
            {
                int format = reader.ReadInt16(order);
                Id            = reader.ReadInt16(order);
                Ps3Dimensions = new Vector2i(reader.ReadUInt16(order), reader.ReadUInt16(order));

                switch (format)
                {
                case 0: Ps3Format = Glare.Graphics.Formats.DXT1; break;

                case 0x0500: Ps3Format = Glare.Graphics.Formats.DXT5; break;

                case 0x0900: Ps3Format = Glare.Graphics.Formats.Vector4nb; break;

                default: throw new NotSupportedException(string.Format("PS3 format 0x{0:X4} (dimensions {1}, data size {2}) is not known.", format, Ps3Dimensions, Size));
                }

                Unknowns.ReadInt32s(reader, 1);
                reader.RequireZeroes(4);
            }
            else
            {
                Id = reader.ReadInt32(order);
            }

            Name = reader.ReadStringzAtUInt32(order, Alexandria.Engines.DarkSouls.Archive.ShiftJis);
            reader.RequireZeroes(4);
        }
Ejemplo n.º 2
0
        internal TextureArchiveRecord(TextureArchive archive, BinaryReader reader, ByteOrder order)
            : base(archive, "")
        {
            Offset = reader.ReadInt32(order);
            Size = reader.ReadInt32(order);

            if (Archive.Platform == DSPlatform.PS3) {
                int format = reader.ReadInt16(order);
                Id = reader.ReadInt16(order);
                Ps3Dimensions = new Vector2i(reader.ReadUInt16(order), reader.ReadUInt16(order));

                switch (format) {
                    case 0: Ps3Format = Glare.Graphics.Formats.DXT1; break;
                    case 0x0500: Ps3Format = Glare.Graphics.Formats.DXT5; break;
                    case 0x0900: Ps3Format = Glare.Graphics.Formats.Vector4nb; break;
                    default: throw new NotSupportedException(string.Format("PS3 format 0x{0:X4} (dimensions {1}, data size {2}) is not known.", format, Ps3Dimensions, Size));
                }

                Unknowns.ReadInt32s(reader, 1);
                reader.RequireZeroes(4);
            } else {
                Id = reader.ReadInt32(order);
            }

            Name = reader.ReadStringzAtUInt32(order, Alexandria.Engines.DarkSouls.Archive.ShiftJis);
            reader.RequireZeroes(4);
        }