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 4d749d8c69.

Re-open mantis 0007474 for further work before final commit.
inv-download
BlueWall 2015-03-04 14:36:26 -05:00
parent 9921c24c8f
commit 96b87407f1
2 changed files with 19 additions and 2 deletions

View File

@ -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;
}
@ -383,10 +384,17 @@ namespace OpenSim.Region.ClientStack.LindenUDP
HasAsset = true;
if (asset == null || asset.Data == null)
{
if (m_imageManager.MissingImage != null)
{
m_asset = m_imageManager.MissingImage.Data;
}
else
{
m_asset = null;
IsDecoded = true;
}
}
else
{
m_asset = asset.Data;

View File

@ -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
/// </summary>
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;
}