aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework
diff options
context:
space:
mode:
authorJustin Clarke Casey2008-10-29 18:38:10 +0000
committerJustin Clarke Casey2008-10-29 18:38:10 +0000
commit8a3157aa6a83b7b84811cd4675ba9fc8e6fbd32e (patch)
tree76fe871eb5c1f1602fd7df1ec2cdeb89602ecb51 /OpenSim/Framework
parentViewer side normals and UV fixes on profile cuts. Sync with primmesher.dll fo... (diff)
downloadopensim-SC_OLD-8a3157aa6a83b7b84811cd4675ba9fc8e6fbd32e.zip
opensim-SC_OLD-8a3157aa6a83b7b84811cd4675ba9fc8e6fbd32e.tar.gz
opensim-SC_OLD-8a3157aa6a83b7b84811cd4675ba9fc8e6fbd32e.tar.bz2
opensim-SC_OLD-8a3157aa6a83b7b84811cd4675ba9fc8e6fbd32e.tar.xz
* Check in (disabled) results of not persisting avatar textures but rather sending ImageNotFound to clients if avatar textures are missing
* Whilst this does automatically get the client to rebake, on crossing a region border the 'local' assets are left behind * There may be a cunning solution (such as squirting the assets on region crossing, or having them fetched from the original region) but instead I'm going to opt for the easy solution of keeping them in the asset database, for now
Diffstat (limited to 'OpenSim/Framework')
-rw-r--r--OpenSim/Framework/Communications/Cache/AssetCache.cs18
-rw-r--r--OpenSim/Framework/IClientAPI.cs6
2 files changed, 20 insertions, 4 deletions
diff --git a/OpenSim/Framework/Communications/Cache/AssetCache.cs b/OpenSim/Framework/Communications/Cache/AssetCache.cs
index 1ae7eb7..e1e42cf 100644
--- a/OpenSim/Framework/Communications/Cache/AssetCache.cs
+++ b/OpenSim/Framework/Communications/Cache/AssetCache.cs
@@ -350,11 +350,21 @@ namespace OpenSim.Framework.Communications.Cache
350 350
351 // According to http://wiki.secondlife.com/wiki/AssetUploadRequest, Local signifies that the 351 // According to http://wiki.secondlife.com/wiki/AssetUploadRequest, Local signifies that the
352 // information is stored locally. It could disappear, in which case we could send the 352 // information is stored locally. It could disappear, in which case we could send the
353 // ImageNotInDatabase packet to tell the client this. However, when this was enabled in 353 // ImageNotInDatabase packet to tell the client this.
354 // TextureNotFoundSender it ended up crashing clients - we need to go back and try this again. 354 //
355 // However, this doesn't quite appear to work with local textures that are part of an avatar's
356 // appearance texture set. Whilst sending an ImageNotInDatabase does trigger an automatic rebake
357 // and reupload by the client, if those assets aren't pushed to the asset server anyway, then
358 // on crossing onto another region server, other avatars can no longer get the required textures.
359 // There doesn't appear to be any signal from the sim to the newly region border crossed client
360 // asking it to reupload its local texture assets to that region server.
361 //
362 // One can think of other cunning ways around this. For instance, on a region crossing or teleport,
363 // the original sim could squirt local assets to the new sim. Or the new sim could have pointers
364 // to the original sim to fetch the 'local' assets (this is getting more complicated).
365 //
366 // But for now, we're going to take the easy way out and store local assets globally.
355 // 367 //
356 // In the mean time, we're just going to push local assets to the permanent store instead.
357 // TODO: Need to come back and address this.
358 // TODO: Also, Temporary is now deprecated. We should start ignoring it and not passing it out from LLClientView. 368 // TODO: Also, Temporary is now deprecated. We should start ignoring it and not passing it out from LLClientView.
359 if (!asset.Temporary || asset.Local) 369 if (!asset.Temporary || asset.Local)
360 { 370 {
diff --git a/OpenSim/Framework/IClientAPI.cs b/OpenSim/Framework/IClientAPI.cs
index c8a54a7..538a2e7 100644
--- a/OpenSim/Framework/IClientAPI.cs
+++ b/OpenSim/Framework/IClientAPI.cs
@@ -829,6 +829,12 @@ namespace OpenSim.Framework
829 /// <param name="imageUuid"></param> 829 /// <param name="imageUuid"></param>
830 /// <param name="imageData"></param> 830 /// <param name="imageData"></param>
831 void SendImageNextPart(ushort partNumber, UUID imageUuid, byte[] imageData); 831 void SendImageNextPart(ushort partNumber, UUID imageUuid, byte[] imageData);
832
833 /// <summary>
834 /// Tell the client that the requested texture cannot be found
835 /// </summary>
836 /// <param name="imageId"></param>
837 void SendImageNotFound(UUID imageid);
832 838
833 void SendShutdownConnectionNotice(); 839 void SendShutdownConnectionNotice();
834 840