From c0beeb929e22509329781cdf85f7a5d90c4b0e36 Mon Sep 17 00:00:00 2001
From: Diva Canto
Date: Mon, 12 Oct 2009 17:00:01 -0700
Subject: * Fixes http://opensimulator.org/mantis/view.php?id=4225 * Fixes
http://opensimulator.org/mantis/view.php?id=3959 * Allows for viewing
inventory textures outside home grid
---
OpenSim/Region/ClientStack/LindenUDP/J2KImage.cs | 14 ++++++++++++++
1 file changed, 14 insertions(+)
(limited to 'OpenSim/Region/ClientStack/LindenUDP/J2KImage.cs')
diff --git a/OpenSim/Region/ClientStack/LindenUDP/J2KImage.cs b/OpenSim/Region/ClientStack/LindenUDP/J2KImage.cs
index 5877779..1bbe00f 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/J2KImage.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/J2KImage.cs
@@ -31,6 +31,7 @@ using OpenMetaverse;
using OpenMetaverse.Imaging;
using OpenSim.Framework;
using OpenSim.Region.Framework.Interfaces;
+using OpenSim.Region.Framework.Scenes.Hypergrid;
using OpenSim.Services.Interfaces;
using log4net;
using System.Reflection;
@@ -54,6 +55,8 @@ namespace OpenSim.Region.ClientStack.LindenUDP
public UUID TextureID;
public IJ2KDecoder J2KDecoder;
public IAssetService AssetService;
+ public UUID AgentID;
+ public IHyperAssetService HyperAssets;
public OpenJPEG.J2KLayerInfo[] Layers;
public bool IsDecoded;
public bool HasAsset;
@@ -370,6 +373,17 @@ namespace OpenSim.Region.ClientStack.LindenUDP
UUID assetID = UUID.Zero;
if (asset != null)
assetID = asset.FullID;
+ else if (HyperAssets != null)
+ {
+ // Try the user's inventory, but only if it's different from the regions'
+ string userAssets = HyperAssets.GetUserAssetServer(AgentID);
+ if ((userAssets != string.Empty) && (userAssets != HyperAssets.GetSimAssetServer()))
+ {
+ m_log.DebugFormat("[J2KIMAGE]: texture {0} not found in local asset storage. Trying user's storage.", id);
+ AssetService.Get(userAssets + "/" + id, this, AssetReceived);
+ return;
+ }
+ }
AssetDataCallback(assetID, asset);
--
cgit v1.1
From 63ed605eba7d4655bbbf956cef0d6e6b02b4a64e Mon Sep 17 00:00:00 2001
From: Diva Canto
Date: Mon, 12 Oct 2009 17:36:13 -0700
Subject: Stop the recurring texture requests for textures that truly don't
exist.
---
OpenSim/Region/ClientStack/LindenUDP/J2KImage.cs | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
(limited to 'OpenSim/Region/ClientStack/LindenUDP/J2KImage.cs')
diff --git a/OpenSim/Region/ClientStack/LindenUDP/J2KImage.cs b/OpenSim/Region/ClientStack/LindenUDP/J2KImage.cs
index 1bbe00f..bb98f24 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/J2KImage.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/J2KImage.cs
@@ -373,14 +373,14 @@ namespace OpenSim.Region.ClientStack.LindenUDP
UUID assetID = UUID.Zero;
if (asset != null)
assetID = asset.FullID;
- else if (HyperAssets != null)
+ else if ((HyperAssets != null) && (sender != HyperAssets))
{
// Try the user's inventory, but only if it's different from the regions'
string userAssets = HyperAssets.GetUserAssetServer(AgentID);
if ((userAssets != string.Empty) && (userAssets != HyperAssets.GetSimAssetServer()))
{
m_log.DebugFormat("[J2KIMAGE]: texture {0} not found in local asset storage. Trying user's storage.", id);
- AssetService.Get(userAssets + "/" + id, this, AssetReceived);
+ AssetService.Get(userAssets + "/" + id, HyperAssets, AssetReceived);
return;
}
}
--
cgit v1.1
From 0d2e6463d714bce8a6a628bd647c625feeeae8f6 Mon Sep 17 00:00:00 2001
From: John Hurliman
Date: Wed, 14 Oct 2009 11:43:31 -0700
Subject: * Minimized the number of times textures are pulled off the priority
queue * OnQueueEmpty is still called async, but will not be called for a
given category if the previous callback for that category is still running.
This is the most balanced behavior I could find, and seems to work well *
Added support for the old [ClientStack.LindenUDP] settings (including setting
the receive buffer size) and added the new token bucket and global throttle
settings * Added the AssetLoaderEnabled config variable to optionally disable
loading assets from XML every startup. This gives a dramatic improvement in
startup times for those who don't need the functionality every startup
---
OpenSim/Region/ClientStack/LindenUDP/J2KImage.cs | 25 +++++++++++++-----------
1 file changed, 14 insertions(+), 11 deletions(-)
(limited to 'OpenSim/Region/ClientStack/LindenUDP/J2KImage.cs')
diff --git a/OpenSim/Region/ClientStack/LindenUDP/J2KImage.cs b/OpenSim/Region/ClientStack/LindenUDP/J2KImage.cs
index 5877779..9ded390 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/J2KImage.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/J2KImage.cs
@@ -72,14 +72,20 @@ namespace OpenSim.Region.ClientStack.LindenUDP
m_imageManager = imageManager;
}
- public bool SendPackets(LLClientView client, int maxpack)
+ ///
+ /// Sends packets for this texture to a client until packetsToSend is
+ /// hit or the transfer completes
+ ///
+ /// Reference to the client that the packets are destined for
+ /// Maximum number of packets to send during this call
+ /// Number of packets sent during this call
+ /// True if the transfer completes at the current discard level, otherwise false
+ public bool SendPackets(LLClientView client, int packetsToSend, out int packetsSent)
{
- if (client == null)
- return false;
+ packetsSent = 0;
if (m_currentPacket <= m_stopPacket)
{
- int count = 0;
bool sendMore = true;
if (!m_sentInfo || (m_currentPacket == 0))
@@ -88,25 +94,22 @@ namespace OpenSim.Region.ClientStack.LindenUDP
m_sentInfo = true;
++m_currentPacket;
- ++count;
+ ++packetsSent;
}
if (m_currentPacket < 2)
{
m_currentPacket = 2;
}
- while (sendMore && count < maxpack && m_currentPacket <= m_stopPacket)
+ while (sendMore && packetsSent < packetsToSend && m_currentPacket <= m_stopPacket)
{
sendMore = SendPacket(client);
++m_currentPacket;
- ++count;
+ ++packetsSent;
}
-
- if (m_currentPacket > m_stopPacket)
- return true;
}
- return false;
+ return (m_currentPacket > m_stopPacket);
}
public void RunUpdate()
--
cgit v1.1