/// <summary> /// Initializer only to be called by the <see cref="RwNodeFactory"/>. /// </summary> internal RwRasterDataStructNode(RwNodeFactory.RwNodeHeader header, BinaryReader reader) : base(header) { long start = reader.BaseStream.Position; if (RasterInfoStructNode.Format.HasFlagUnchecked(RwRasterFormats.HasHeaders)) { mImageHeader = new PS2StandardImageHeader(reader); } if (PS2PixelFormatHelper.IsIndexedPixelFormat(RasterInfoStructNode.Tex0Register.TexturePixelFormat)) { ReadIndices(reader); if (RasterInfoStructNode.Format.HasFlagUnchecked(RwRasterFormats.HasHeaders)) { mPaletteHeader = new PS2StandardImageHeader(reader); } ReadPalette(reader); } else { ReadPixels(reader); } long end = reader.BaseStream.Position; mMipMapData = reader.ReadBytes((int)((start + Size) - end)); }
/// <summary> /// Initializer only to be called by the <see cref="RWNodeFactory"/>. /// </summary> internal RWRasterData(RWNodeFactory.RWNodeInfo header, BinaryReader reader) : base(header) { long start = reader.BaseStream.Position; if (RasterInfo.Format.HasFlagUnchecked(RWRasterFormats.HasHeaders)) _imageHeader = new PS2StandardImageHeader(reader); if (PS2PixelFormatHelper.IsIndexedPixelFormat(RasterInfo.Tex0Register.TexturePixelFormat)) { ReadIndices(reader); if (RasterInfo.Format.HasFlagUnchecked(RWRasterFormats.HasHeaders)) _paletteHeader = new PS2StandardImageHeader(reader); ReadPalette(reader); } else { ReadPixels(reader); } long end = reader.BaseStream.Position; _mipMapData = reader.ReadBytes((int)((start + Size) - end)); }