public static FtexsFileChunk ReadFtexsFileChunk(Stream inputStream, int baseOffset) { FtexsFileChunk result = new FtexsFileChunk(); result.Read(inputStream, baseOffset); return(result); }
public static FtexsFileChunk ReadFtexsFileSingleChunk( Stream inputStream, int fileSize) { FtexsFileChunk result = new FtexsFileChunk(); result.ReadSingleChunk(inputStream, fileSize); return(result); }
public void Read(Stream inputStream, short chunkCount, int baseOffset, int fileSize) { if (chunkCount == 0) { FtexsFileChunk chunk = FtexsFileChunk.ReadFtexsFileSingleChunk( inputStream, fileSize); AddChunk(chunk); } for (int i = 0; i < chunkCount; i++) { FtexsFileChunk chunk = FtexsFileChunk.ReadFtexsFileChunk(inputStream, baseOffset); AddChunk(chunk); } }
public void AddChunk(FtexsFileChunk chunk) { _chunks.Add(chunk); }
public static FtexsFileChunk ReadFtexsFileChunk(Stream inputStream, bool absoluteOffset, bool flipEndian = false) { FtexsFileChunk result = new FtexsFileChunk(); result.Read(inputStream, absoluteOffset, flipEndian); return result; }
private static List<FtexsFileChunk> GetFtexsChunks(FtexFileMipMapInfo mipMapInfo, byte[] mipMapData) { List<FtexsFileChunk> ftexsFileChunks = new List<FtexsFileChunk>(); const int maxChunkSize = short.MaxValue; int requiredChunks = (int)Math.Ceiling((double)mipMapData.Length / maxChunkSize); int mipMapDataOffset = 0; for (int i = 0; i < requiredChunks; i++) { FtexsFileChunk chunk = new FtexsFileChunk(); int chunkSize = Math.Min(mipMapData.Length - mipMapDataOffset, maxChunkSize); byte[] chunkData = new byte[chunkSize]; Array.Copy(mipMapData, mipMapDataOffset, chunkData, 0, chunkSize); chunk.SetData(chunkData, false, chunkSize); ftexsFileChunks.Add(chunk); mipMapDataOffset += chunkSize; } return ftexsFileChunks; }
public static FtexsFileChunk ReadFtexsFileChunk(Stream inputStream, bool absoluteOffset) { FtexsFileChunk result = new FtexsFileChunk(); result.Read(inputStream, absoluteOffset); return result; }