aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ClientStack
diff options
context:
space:
mode:
authorMic Bowman2013-05-24 13:18:16 -0700
committerMic Bowman2013-05-24 13:18:16 -0700
commit681fbda4b6b9700421b82dc639f954c60871542e (patch)
treedb292ba79bf73f77c9fa9e72262d299a7115c201 /OpenSim/Region/ClientStack
parentchange a hull debugging message to Debug instead of Info (diff)
downloadopensim-SC-681fbda4b6b9700421b82dc639f954c60871542e.zip
opensim-SC-681fbda4b6b9700421b82dc639f954c60871542e.tar.gz
opensim-SC-681fbda4b6b9700421b82dc639f954c60871542e.tar.bz2
opensim-SC-681fbda4b6b9700421b82dc639f954c60871542e.tar.xz
This is an experimental patch that adds support for comparing texture
hashes for the purpose of accurately responding to AgentTextureCached packets. There is a change to IClientAPI to report the wearbles hashes that come in through the SetAppearance packet. Added storage of the texture hashes in the appearance. While these are added to the Pack/Unpack (with support for missing values) routines (which means Simian will store them properly), they are not currently persisted in Robust.
Diffstat (limited to 'OpenSim/Region/ClientStack')
-rw-r--r--OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs27
1 files changed, 22 insertions, 5 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index e014471..dd8ef9c 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -6214,7 +6214,16 @@ namespace OpenSim.Region.ClientStack.LindenUDP
6214 if (appear.ObjectData.TextureEntry.Length > 1) 6214 if (appear.ObjectData.TextureEntry.Length > 1)
6215 te = new Primitive.TextureEntry(appear.ObjectData.TextureEntry, 0, appear.ObjectData.TextureEntry.Length); 6215 te = new Primitive.TextureEntry(appear.ObjectData.TextureEntry, 0, appear.ObjectData.TextureEntry.Length);
6216 6216
6217 handlerSetAppearance(sender, te, visualparams); 6217 List<CachedTextureRequestArg> hashes = new List<CachedTextureRequestArg>();
6218 for (int i = 0; i < appear.WearableData.Length; i++)
6219 {
6220 CachedTextureRequestArg arg = new CachedTextureRequestArg();
6221 arg.BakedTextureIndex = appear.WearableData[i].TextureIndex;
6222 arg.WearableHashID = appear.WearableData[i].CacheID;
6223 hashes.Add(arg);
6224 }
6225
6226 handlerSetAppearance(sender, te, visualparams, hashes);
6218 } 6227 }
6219 catch (Exception e) 6228 catch (Exception e)
6220 { 6229 {
@@ -11487,12 +11496,20 @@ namespace OpenSim.Region.ClientStack.LindenUDP
11487 requestArgs.Add(arg); 11496 requestArgs.Add(arg);
11488 } 11497 }
11489 11498
11490 CachedTextureRequest handlerCachedTextureRequest = OnCachedTextureRequest; 11499 try
11491 if (handlerCachedTextureRequest != null) 11500 {
11501 CachedTextureRequest handlerCachedTextureRequest = OnCachedTextureRequest;
11502 if (handlerCachedTextureRequest != null)
11503 {
11504 handlerCachedTextureRequest(simclient,cachedtex.AgentData.SerialNum,requestArgs);
11505 }
11506 }
11507 catch (Exception e)
11492 { 11508 {
11493 handlerCachedTextureRequest(simclient,cachedtex.AgentData.SerialNum,requestArgs); 11509 m_log.ErrorFormat("[CLIENT VIEW]: AgentTextureCached packet handler threw an exception, {0}", e);
11510 return false;
11494 } 11511 }
11495 11512
11496 return true; 11513 return true;
11497 } 11514 }
11498 11515