Tweaks to assetcache to make texture downloading better (I hope)
parent
f6706e6cf8
commit
6e35ff2822
|
@ -534,7 +534,7 @@ namespace OpenSim.Framework.Communications.Caches
|
||||||
/// <param name="imageID"></param>
|
/// <param name="imageID"></param>
|
||||||
public void AddTextureRequest(IClientAPI userInfo, LLUUID imageID, uint packetNumber)
|
public void AddTextureRequest(IClientAPI userInfo, LLUUID imageID, uint packetNumber)
|
||||||
{
|
{
|
||||||
//Console.WriteLine("texture request for " + imageID.ToStringHyphenated());
|
//Console.WriteLine("texture request for " + imageID.ToStringHyphenated() + " packetnumber= " + packetNumber);
|
||||||
//check to see if texture is in local cache, if not request from asset server
|
//check to see if texture is in local cache, if not request from asset server
|
||||||
if (!this.AvatarRecievedTextures.ContainsKey(userInfo.AgentId))
|
if (!this.AvatarRecievedTextures.ContainsKey(userInfo.AgentId))
|
||||||
{
|
{
|
||||||
|
@ -570,8 +570,9 @@ namespace OpenSim.Framework.Communications.Caches
|
||||||
|
|
||||||
if (imag.Data.LongLength > 600)
|
if (imag.Data.LongLength > 600)
|
||||||
{
|
{
|
||||||
|
//Console.WriteLine("{0}", imag.Data.LongLength);
|
||||||
//over 600 bytes so split up file
|
//over 600 bytes so split up file
|
||||||
req.NumPackets = 1 + (int)(imag.Data.Length - 600) / 1000;
|
req.NumPackets = 2 + (int)(imag.Data.Length - 601) / 1000;
|
||||||
//Console.WriteLine("texture is " + imag.Data.Length + " which we will send in " +req.NumPackets +" packets");
|
//Console.WriteLine("texture is " + imag.Data.Length + " which we will send in " +req.NumPackets +" packets");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -698,8 +699,7 @@ namespace OpenSim.Framework.Communications.Caches
|
||||||
{
|
{
|
||||||
SendPacket();
|
SendPacket();
|
||||||
counter++;
|
counter++;
|
||||||
|
if ((request.PacketCounter >= request.NumPackets) | counter > 100 | (request.NumPackets == 1))
|
||||||
if ((request.PacketCounter > request.NumPackets) | (counter > 100) | (request.NumPackets == 1))
|
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -709,13 +709,13 @@ namespace OpenSim.Framework.Communications.Caches
|
||||||
public void SendPacket()
|
public void SendPacket()
|
||||||
{
|
{
|
||||||
AssetRequest req = request;
|
AssetRequest req = request;
|
||||||
// Console.WriteLine("sending " + req.ImageInfo.FullID);
|
//Console.WriteLine("sending " + req.ImageInfo.FullID);
|
||||||
if (req.PacketCounter == 0)
|
if (req.PacketCounter == 0)
|
||||||
{
|
{
|
||||||
//first time for this request so send imagedata packet
|
//first time for this request so send imagedata packet
|
||||||
if (req.NumPackets == 1)
|
if (req.NumPackets == 1)
|
||||||
{
|
{
|
||||||
//only one packet so send whole file
|
//Console.WriteLine("only one packet so send whole file");
|
||||||
ImageDataPacket im = new ImageDataPacket();
|
ImageDataPacket im = new ImageDataPacket();
|
||||||
im.Header.Reliable = false;
|
im.Header.Reliable = false;
|
||||||
im.ImageID.Packets = 1;
|
im.ImageID.Packets = 1;
|
||||||
|
@ -727,7 +727,7 @@ namespace OpenSim.Framework.Communications.Caches
|
||||||
req.PacketCounter++;
|
req.PacketCounter++;
|
||||||
//req.ImageInfo.l= time;
|
//req.ImageInfo.l= time;
|
||||||
//System.Console.WriteLine("sent texture: " + req.ImageInfo.FullID);
|
//System.Console.WriteLine("sent texture: " + req.ImageInfo.FullID);
|
||||||
// Console.WriteLine("sending packet 1 for " + req.ImageInfo.FullID.ToStringHyphenated());
|
//Console.WriteLine("sending single packet for " + req.ImageInfo.FullID.ToStringHyphenated());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -744,27 +744,28 @@ namespace OpenSim.Framework.Communications.Caches
|
||||||
|
|
||||||
req.PacketCounter++;
|
req.PacketCounter++;
|
||||||
//req.ImageInfo.last_used = time;
|
//req.ImageInfo.last_used = time;
|
||||||
//System.Console.WriteLine("sent first packet of texture:
|
//System.Console.WriteLine("sent first packet of texture: " + req.ImageInfo.FullID);
|
||||||
// Console.WriteLine("sending packet 1 for " + req.ImageInfo.FullID.ToStringHyphenated());
|
//Console.WriteLine("sending packet 1 for " + req.ImageInfo.FullID.ToStringHyphenated());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
//Console.WriteLine("sending packet" + req.PacketCounter + "for " + req.ImageInfo.FullID.ToStringHyphenated());
|
//Console.WriteLine("sending packet " + req.PacketCounter + " for " + req.ImageInfo.FullID.ToStringHyphenated());
|
||||||
//send imagepacket
|
//send imagepacket
|
||||||
//more than one packet so split file up
|
//more than one packet so split file up
|
||||||
ImagePacketPacket im = new ImagePacketPacket();
|
ImagePacketPacket im = new ImagePacketPacket();
|
||||||
im.Header.Reliable = false;
|
im.Header.Reliable = false;
|
||||||
im.ImageID.Packet = (ushort)(req.PacketCounter);
|
im.ImageID.Packet = (ushort)(req.PacketCounter);
|
||||||
im.ImageID.ID = req.ImageInfo.FullID;
|
im.ImageID.ID = req.ImageInfo.FullID;
|
||||||
int size = req.ImageInfo.Data.Length - 600 - (1000 * (req.PacketCounter - 1));
|
int size = req.ImageInfo.Data.Length - 600 - (1000 * (req.PacketCounter-1));
|
||||||
if (size > 1000) size = 1000;
|
if (size > 1000) size = 1000;
|
||||||
|
//Console.WriteLine("length= {0} counter= {1} size= {2}",req.ImageInfo.Data.Length, req.PacketCounter, size);
|
||||||
im.ImageData.Data = new byte[size];
|
im.ImageData.Data = new byte[size];
|
||||||
Array.Copy(req.ImageInfo.Data, 600 + (1000 * (req.PacketCounter - 1)), im.ImageData.Data, 0, size);
|
Array.Copy(req.ImageInfo.Data, 600 + (1000 * (req.PacketCounter-1)), im.ImageData.Data, 0, size);
|
||||||
req.RequestUser.OutPacket(im);
|
req.RequestUser.OutPacket(im);
|
||||||
req.PacketCounter++;
|
req.PacketCounter++;
|
||||||
//req.ImageInfo.last_used = time;
|
//req.ImageInfo.last_used = time;
|
||||||
//System.Console.WriteLine("sent a packet of texture: "+req.image_info.FullID);
|
//System.Console.WriteLine("sent a packet of texture: "+req.ImageInfo.FullID);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue