Exemplo n.º 1
0
        ISpriteFrame[] ParseFrames(Stream s)
        {
            var start          = s.Position;
            var templateWidth  = s.ReadUInt32();
            var templateHeight = s.ReadUInt32();
            var tileWidth      = s.ReadInt32();
            var tileHeight     = s.ReadInt32();
            var size           = new Size(tileWidth, tileHeight);
            var offsets        = new uint[templateWidth * templateHeight];

            for (var i = 0; i < offsets.Length; i++)
            {
                offsets[i] = s.ReadUInt32();
            }

            // Depth information are stored as a second set of frames (like split shadows)
            var stride = offsets.Length;
            var tiles  = new ISpriteFrame[stride * 2];

            for (var j = 0; j < templateHeight; j++)
            {
                for (var i = 0; i < templateWidth; i++)
                {
                    var k = j * templateWidth + i;
                    s.Position = offsets[k];

                    var frame = new TmpTSFrame(s, size, i, j);
                    tiles[k]          = frame;
                    tiles[k + stride] = new TmpTSDepthFrame(frame);
                }
            }

            s.Position = start;
            return(tiles);
        }
Exemplo n.º 2
0
        TmpTSFrame[] ParseFrames(Stream s)
        {
            var start          = s.Position;
            var templateWidth  = s.ReadUInt32();
            var templateHeight = s.ReadUInt32();
            var tileWidth      = s.ReadInt32();
            var tileHeight     = s.ReadInt32();
            var size           = new Size(tileWidth, tileHeight);
            var offsets        = new uint[templateWidth * templateHeight];

            for (var i = 0; i < offsets.Length; i++)
            {
                offsets[i] = s.ReadUInt32();
            }

            var tiles = new TmpTSFrame[offsets.Length];

            for (var i = 0; i < offsets.Length; i++)
            {
                s.Position = offsets[i];
                tiles[i]   = new TmpTSFrame(s, size);
            }

            s.Position = start;
            return(tiles);
        }
Exemplo n.º 3
0
 public TmpTSDepthFrame(TmpTSFrame parent)
 {
     this.parent = parent;
 }
Exemplo n.º 4
0
			public TmpTSDepthFrame(TmpTSFrame parent)
			{
				this.parent = parent;
			}
Exemplo n.º 5
0
		ISpriteFrame[] ParseFrames(Stream s)
		{
			var start = s.Position;
			var templateWidth = s.ReadUInt32();
			var templateHeight = s.ReadUInt32();
			var tileWidth = s.ReadInt32();
			var tileHeight = s.ReadInt32();
			var size = new Size(tileWidth, tileHeight);
			var offsets = new uint[templateWidth * templateHeight];
			for (var i = 0; i < offsets.Length; i++)
				offsets[i] = s.ReadUInt32();

			// Depth information are stored as a second set of frames (like split shadows)
			var stride = offsets.Length;
			var tiles = new ISpriteFrame[stride * 2];

			for (var j = 0; j < templateHeight; j++)
			{
				for (var i = 0; i < templateWidth; i++)
				{
					var k = j * templateWidth + i;
					s.Position = offsets[k];

					var frame = new TmpTSFrame(s, size, i, j);
					tiles[k] = frame;
					tiles[k + stride] = new TmpTSDepthFrame(frame);
				}
			}

			s.Position = start;
			return tiles;
		}