Exemplo n.º 1
0
        public static FtexsFileChunk ReadFtexsFileChunk(Stream inputStream, int baseOffset)
        {
            FtexsFileChunk result = new FtexsFileChunk();

            result.Read(inputStream, baseOffset);
            return(result);
        }
Exemplo n.º 2
0
        public static FtexsFileChunk ReadFtexsFileSingleChunk(
            Stream inputStream,
            int fileSize)
        {
            FtexsFileChunk result = new FtexsFileChunk();

            result.ReadSingleChunk(inputStream, fileSize);
            return(result);
        }
Exemplo n.º 3
0
        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);
            }
        }
Exemplo n.º 4
0
 public void AddChunk(FtexsFileChunk chunk)
 {
     _chunks.Add(chunk);
 }
Exemplo n.º 5
0
 public static FtexsFileChunk ReadFtexsFileChunk(Stream inputStream, bool absoluteOffset, bool flipEndian = false)
 {
     FtexsFileChunk result = new FtexsFileChunk();
     result.Read(inputStream, absoluteOffset, flipEndian);
     return result;
 }
Exemplo n.º 6
0
 public void AddChunk(FtexsFileChunk chunk)
 {
     _chunks.Add(chunk);
 }
Exemplo n.º 7
0
 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;
 }
Exemplo n.º 8
0
 public static FtexsFileChunk ReadFtexsFileChunk(Stream inputStream, bool absoluteOffset)
 {
     FtexsFileChunk result = new FtexsFileChunk();
     result.Read(inputStream, absoluteOffset);
     return result;
 }