Esempio n. 1
0
        void ReadRootDirectory(MsfStream stream, IImageStream[] pages, uint pageSize)
        {
            uint streamNum = stream.Content.ReadUInt32();

            uint[] streamSizes = new uint[streamNum];
            for (int i = 0; i < streamSizes.Length; i++)
            {
                streamSizes[i] = stream.Content.ReadUInt32();
            }

            streams = new MsfStream[streamNum];
            for (int i = 0; i < streamSizes.Length; i++)
            {
                if (streamSizes[i] == 0xffffffff)
                {
                    streams[i] = null;
                    continue;
                }
                var pageCount   = RoundUpDiv(streamSizes[i], pageSize);
                var streamPages = new IImageStream[pageCount];
                for (int j = 0; j < streamPages.Length; j++)
                {
                    streamPages[j] = pages[stream.Content.ReadUInt32()];
                }
                streams[i] = new MsfStream(streamPages, streamSizes[i]);
            }
        }
Esempio n. 2
0
		void ReadRootDirectory(MsfStream stream, IImageStream[] pages, uint pageSize) {
			uint streamNum = stream.Content.ReadUInt32();
			uint[] streamSizes = new uint[streamNum];
			for (int i = 0; i < streamSizes.Length; i++)
				streamSizes[i] = stream.Content.ReadUInt32();

			streams = new MsfStream[streamNum];
			for (int i = 0; i < streamSizes.Length; i++) {
				if (streamSizes[i] == 0xffffffff) {
					streams[i] = null;
					continue;
				}
				var pageCount = RoundUpDiv(streamSizes[i], pageSize);
				var streamPages = new IImageStream[pageCount];
				for (int j = 0; j < streamPages.Length; j++)
					streamPages[j] = pages[stream.Content.ReadUInt32()];
				streams[i] = new MsfStream(streamPages, streamSizes[i]);
			}
		}