diff options
author | Mic Bowman | 2013-05-24 13:18:16 -0700 |
---|---|---|
committer | Mic Bowman | 2013-05-24 13:18:16 -0700 |
commit | 681fbda4b6b9700421b82dc639f954c60871542e (patch) | |
tree | db292ba79bf73f77c9fa9e72262d299a7115c201 /OpenSim/Region/ClientStack | |
parent | change a hull debugging message to Debug instead of Info (diff) | |
download | opensim-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.cs | 27 |
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 | ||