(GraFormat): fixed stride calculation.

This commit is contained in:
morkt 2016-03-06 15:13:06 +04:00
parent 66dc447ddb
commit ecce8f59ef

View File

@ -26,9 +26,7 @@
using System; using System;
using System.ComponentModel.Composition; using System.ComponentModel.Composition;
using System.IO; using System.IO;
using System.Windows;
using System.Windows.Media; using System.Windows.Media;
using System.Windows.Media.Imaging;
using GameRes.Compression; using GameRes.Compression;
namespace GameRes.Formats.MnoViolet namespace GameRes.Formats.MnoViolet
@ -78,15 +76,12 @@ namespace GameRes.Formats.MnoViolet
public override ImageData Read (Stream stream, ImageMetaData info) public override ImageData Read (Stream stream, ImageMetaData info)
{ {
var meta = info as GraMetaData; var meta = (GraMetaData)info;
if (null == meta)
throw new ArgumentException ("GraFormat.Read should be supplied with GraMetaData", "info");
stream.Position = 0x14; stream.Position = 0x14;
using (var reader = new LzssReader (stream, meta.PackedSize, meta.UnpackedSize)) using (var reader = new LzssReader (stream, meta.PackedSize, meta.UnpackedSize))
{ {
reader.Unpack(); reader.Unpack();
int stride = (int)info.Width*info.BPP/8; int stride = ((int)info.Width*info.BPP/8 + 3) & ~3;
PixelFormat format; PixelFormat format;
if (24 == info.BPP) if (24 == info.BPP)
format = PixelFormats.Bgr24; format = PixelFormats.Bgr24;