/// <summary> /// Called by code which actually renders the dynamic texture to supply texture data. /// </summary> /// <param name="id"></param> /// <param name="data"></param> public void ReturnData(UUID id, byte [] data) { DynamicTextureUpdater updater = null; lock (Updaters) { if (Updaters.ContainsKey(id)) { updater = Updaters [id]; } } if (updater != null) { updater.DataReceived(data, m_scene); if (updater.UpdateTimer == 0) { lock (Updaters) { if (!Updaters.ContainsKey(updater.UpdaterID)) { Updaters.Remove(updater.UpdaterID); } } } } }
/// <summary> /// Called by code which actually renders the dynamic texture to supply texture data. /// </summary> /// <param name="updaterId"></param> /// <param name="texture"></param> public void ReturnData(UUID updaterId, IDynamicTexture texture) { DynamicTextureUpdater updater = null; if (Updaters.TryGetValue(updaterId, out updater)) { Scene scene; if (RegisteredScenes.TryGetValue(updater.SimUUID, out scene)) { UUID newTextureID = updater.DataReceived(texture.Data, scene); if (ReuseTextures && !updater.BlendWithOldTexture && texture.IsReuseable && (ReuseLowDataTextures || IsDataSizeReuseable(texture))) { m_reuseableDynamicTextures[GenerateReusableTextureKey(texture.InputCommands, texture.InputParams)] = newTextureID; } } } if (updater.UpdateTimer == 0) { Updaters.Remove(updater.UpdaterID); } }
/// <summary> /// Called by code which actually renders the dynamic texture to supply texture data. /// </summary> /// <param name="updaterId"></param> /// <param name="texture"></param> public void ReturnData(UUID updaterId, IDynamicTexture texture) { DynamicTextureUpdater updater = null; lock (Updaters) { if (Updaters.ContainsKey(updaterId)) { updater = Updaters[updaterId]; } } if (updater != null) { if (RegisteredScenes.ContainsKey(updater.SimUUID)) { Scene scene = RegisteredScenes[updater.SimUUID]; UUID newTextureID = updater.DataReceived(texture.Data, scene); if (ReuseTextures && !updater.BlendWithOldTexture && texture.IsReuseable && (ReuseLowDataTextures || IsDataSizeReuseable(texture))) { m_reuseableDynamicTextures.Store( GenerateReusableTextureKey(texture.InputCommands, texture.InputParams), newTextureID); } } } if (updater.UpdateTimer == 0) { lock (Updaters) { if (!Updaters.ContainsKey(updater.UpdaterID)) { Updaters.Remove(updater.UpdaterID); } } } }