From 96b87407f14f77e18219631d2aeb604accbde847 Mon Sep 17 00:00:00 2001 From: BlueWall Date: Wed, 4 Mar 2015 14:36:26 -0500 Subject: [PATCH] Revert "removed replacement texture in UDP Texture code. The replacement texture introduces false data into viewer cache. Removing that decreases the necessity for clearing the viewer cache. The viewer knows with ImageNotInDatabase that it is missing and can therefore know what to do about it a lot better than the sim does." This reverts commit 4d749d8c6986498547f9a61406105e93445960b4. Re-open mantis 0007474 for further work before final commit. --- OpenSim/Region/ClientStack/Linden/UDP/J2KImage.cs | 12 ++++++++++-- .../Region/ClientStack/Linden/UDP/LLImageManager.cs | 9 +++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/OpenSim/Region/ClientStack/Linden/UDP/J2KImage.cs b/OpenSim/Region/ClientStack/Linden/UDP/J2KImage.cs index 42d09eba76..4d0568d9a2 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/J2KImage.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/J2KImage.cs @@ -247,6 +247,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP if (m_asset == null) { + m_log.Warn("[J2KIMAGE]: Sending ImageNotInDatabase for texture " + TextureID); client.SendImageNotFound(TextureID); return true; } @@ -384,8 +385,15 @@ namespace OpenSim.Region.ClientStack.LindenUDP if (asset == null || asset.Data == null) { - m_asset = null; - IsDecoded = true; + if (m_imageManager.MissingImage != null) + { + m_asset = m_imageManager.MissingImage.Data; + } + else + { + m_asset = null; + IsDecoded = true; + } } else { diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLImageManager.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLImageManager.cs index bdb33dd726..41dd4d115a 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLImageManager.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLImageManager.cs @@ -54,6 +54,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private bool m_shuttingdown; + private AssetBase m_missingImage; private IAssetService m_assetCache; private IJ2KDecoder m_j2kDecodeModule; @@ -72,11 +73,19 @@ namespace OpenSim.Region.ClientStack.LindenUDP /// public IClientAPI Client { get; private set; } + public AssetBase MissingImage { get { return m_missingImage; } } + public LLImageManager(IClientAPI client, IAssetService pAssetCache, IJ2KDecoder pJ2kDecodeModule) { Client = client; m_assetCache = pAssetCache; + if (pAssetCache != null) + m_missingImage = pAssetCache.Get("5748decc-f629-461c-9a36-a35a221fe21f"); + + if (m_missingImage == null) + m_log.Error("[ClientView] - Couldn't set missing image asset, falling back to missing image packet. This is known to crash the client"); + m_j2kDecodeModule = pJ2kDecodeModule; }