private void GetThumbnail() { var url = catalogItem?.GetThumbnailUrl(); if (url == loadedThumbnailURL) { return; } if (catalogItem == null || string.IsNullOrEmpty(url)) { return; } string newLoadedThumbnailURL = url; var newLoadedThumbnailPromise = new AssetPromise_Texture(url); newLoadedThumbnailPromise.OnSuccessEvent += SetThumbnail; newLoadedThumbnailPromise.OnFailEvent += x => { Debug.Log($"Error downloading: {url}"); }; AssetPromiseKeeper_Texture.i.Keep(newLoadedThumbnailPromise); AssetPromiseKeeper_Texture.i.Forget(loadedThumbnailPromise); loadedThumbnailPromise = newLoadedThumbnailPromise; loadedThumbnailURL = newLoadedThumbnailURL; }
internal void SetThumbnail(string thumbnailURL) { if (thumbnailURL == currentThumbnail) { animator.SetTrigger(LOADED_ANIM_TRIGGER); return; } currentThumbnail = thumbnailURL; if (thumbnailPromise != null) { thumbnailPromise.ClearEvents(); AssetPromiseKeeper_Texture.i.Forget(thumbnailPromise); } if (string.IsNullOrEmpty(currentThumbnail)) { thumbnailImage.gameObject.SetActive(false); animator.SetTrigger(LOADED_ANIM_TRIGGER); return; } thumbnailPromise = new AssetPromise_Texture(currentThumbnail); thumbnailPromise.OnSuccessEvent += OnThumbnailReady; thumbnailPromise.OnFailEvent += x => { thumbnailImage.gameObject.SetActive(false); animator.SetTrigger(LOADED_ANIM_TRIGGER); Debug.LogError($"Error downloading quest panel entry thumbnail: {currentThumbnail}"); }; AssetPromiseKeeper_Texture.i.Keep(thumbnailPromise); }
void ISceneCardView.SetThumbnail(string thumbnailUrl) { if (this.thumbnailUrl == thumbnailUrl) { return; } this.thumbnailUrl = thumbnailUrl; isLoadingThumbnail = true; loadingAnimator.SetBool(isLoadingAnimation, isLoadingThumbnail); if (thumbnailPromise != null) { AssetPromiseKeeper_Texture.i.Forget(thumbnailPromise); thumbnailPromise = null; } if (string.IsNullOrEmpty(thumbnailUrl)) { ((ISceneCardView)this).SetThumbnail((Texture2D)null); return; } thumbnailPromise = new AssetPromise_Texture(thumbnailUrl); thumbnailPromise.OnSuccessEvent += texture => ((ISceneCardView)this).SetThumbnail(texture.texture); thumbnailPromise.OnFailEvent += texture => ((ISceneCardView)this).SetThumbnail((Texture2D)null); AssetPromiseKeeper_Texture.i.Keep(thumbnailPromise); }
private void GetThumbnail() { SetLoadingActive(true); if (catalogItem == null) { return; } var url = catalogItem.GetThumbnailUrl(); if (string.IsNullOrEmpty(url) || url == loadedThumbnailURL) { return; } ClearThumbnailPromise(); loadedThumbnailPromise = new AssetPromise_Texture(url); loadedThumbnailPromise.OnSuccessEvent += x => { loadedThumbnailURL = url; SetThumbnail(x); }; loadedThumbnailPromise.OnFailEvent += x => { Debug.Log($"Error downloading: {url}"); SetLoadingActive(false); }; AssetPromiseKeeper_Texture.i.Keep(loadedThumbnailPromise); }
private void GetThumbnail() { var newCurrentThumbnailPromise = ThumbnailsManager.GetThumbnail(currentThumbnailUrl, ThumbnailReady); ThumbnailsManager.ForgetThumbnail(currentThumbnailPromise); currentThumbnailPromise = newCurrentThumbnailPromise; }
internal void SetIcon(string iconURL) { if (iconPromise != null) { iconPromise.ClearEvents(); AssetPromiseKeeper_Texture.i.Forget(iconPromise); } if (string.IsNullOrEmpty(iconURL)) { iconImage.gameObject.SetActive(false); return; } iconPromise = new AssetPromise_Texture(iconURL); iconPromise.OnSuccessEvent += assetTexture => { iconImage.gameObject.SetActive(true); iconImage.texture = assetTexture.texture; }; iconPromise.OnFailEvent += assetTexture => { iconImage.gameObject.SetActive(false); Debug.Log($"Error downloading quest tracker entry icon: {iconURL}"); }; AssetPromiseKeeper_Texture.i.Keep(iconPromise); }
public void SetThumbnail(string url) { if (url == thumbnailUrl) { return; } isLoadingThumbnail = true; loadingAnimator.SetBool(isLoadingAnimation, isLoadingThumbnail); thumbnailUrl = url; var prevPromise = thumbnailPromise; if (string.IsNullOrEmpty(url)) { SetThumbnail(defaultThumbnail); } else { thumbnailPromise = new AssetPromise_Texture(url); thumbnailPromise.OnSuccessEvent += asset => SetThumbnail(asset.texture); thumbnailPromise.OnFailEvent += asset => SetThumbnail(defaultThumbnail); AssetPromiseKeeper_Texture.i.Keep(thumbnailPromise); } if (prevPromise != null) { AssetPromiseKeeper_Texture.i.Forget(prevPromise); } }
private void SetCatalogItemToShortcut(CatalogItem catalogItem) { if (catalogItem == null) { return; } var url = catalogItem.GetThumbnailUrl(); if (string.IsNullOrEmpty(url)) { return; } ClearThumbnailPromise(quickBarShortcutsThumbnailPromises[lastIndexDroped]); quickBarShortcutsThumbnailPromises[lastIndexDroped] = new AssetPromise_Texture(url); quickBarShortcutsThumbnailPromises[lastIndexDroped].OnSuccessEvent += x => { SetQuickBarShortcut(catalogItem, lastIndexDroped, x.texture); }; quickBarShortcutsThumbnailPromises[lastIndexDroped].OnFailEvent += x => { Debug.Log($"Error downloading: {url}"); }; AssetPromiseKeeper_Texture.i.Keep(quickBarShortcutsThumbnailPromises[lastIndexDroped]); }
private void GetThumbnail(SceneObject sceneObject) { var url = sceneObject?.GetComposedThumbnailUrl(); if (sceneObject == null || string.IsNullOrEmpty(url)) { return; } if (string.Equals(sceneObject.asset_pack_id, BuilderInWorldSettings.ASSETS_COLLECTIBLES)) { url = sceneObject.thumbnail; } string newLoadedThumbnailURL = url; var newLoadedThumbnailPromise = new AssetPromise_Texture(url); newLoadedThumbnailPromise.OnSuccessEvent += SetThumbnail; newLoadedThumbnailPromise.OnFailEvent += x => { Debug.Log($"Error downloading: {url}"); }; AssetPromiseKeeper_Texture.i.Keep(newLoadedThumbnailPromise); AssetPromiseKeeper_Texture.i.Forget(loadedThumbnailPromise); loadedThumbnailPromise = newLoadedThumbnailPromise; loadedThumbnailURL = newLoadedThumbnailURL; }
private void ClearThumbnailPromise() { if (loadedThumbnailPromise != null) { loadedThumbnailPromise.ClearEvents(); AssetPromiseKeeper_Texture.i.Forget(loadedThumbnailPromise); loadedThumbnailPromise = null; } }
private void ClearThumbnailPromise(AssetPromise_Texture thumbnailToClear) { if (thumbnailToClear != null) { thumbnailToClear.ClearEvents(); AssetPromiseKeeper_Texture.i.Forget(thumbnailToClear); thumbnailToClear = null; } }
private void GetThumbnail() { string url = collectible.ComposeThumbnailUrl(); //NOTE(Brian): Get before forget to prevent referenceCount == 0 and asset unload var newThumbnailPromise = ThumbnailsManager.GetThumbnail(url, OnThumbnailReady); ForgetThumbnail(); thumbnailPromise = newThumbnailPromise; }
IEnumerator FetchNFTImage() { if (spinner != null) { spinner.SetActive(true); } string thumbnailImageURL = null; string previewImageURL = null; string originalImageURL = null; yield return(NFTHelper.FetchNFTInfo(darURLRegistry, darURLAsset, (nftInfo) => { thumbnailImageURL = nftInfo.thumbnailUrl; previewImageURL = nftInfo.previewImageUrl; originalImageURL = nftInfo.originalImageUrl; }, (error) => { Debug.LogError($"Didn't find any asset image for '{darURLRegistry}/{darURLAsset}' for the NFTShape.\n{error}"); OnLoadingAssetFail?.Invoke(); })); yield return(new DCL.WaitUntil(() => (CommonScriptableObjects.playerUnityPosition - transform.position).sqrMagnitude < 900f)); // We download the "preview" 256px image bool foundDCLImage = false; if (!string.IsNullOrEmpty(previewImageURL)) { lastURLUsed = previewImageURL; yield return(WrappedTextureUtils.Fetch(previewImageURL, (downloadedTex, texturePromise) => { foundDCLImage = true; this.texturePromise = texturePromise; SetFrameImage(downloadedTex, resizeFrameMesh: true); }, Asset_Gif.MaxSize.DONT_RESIZE)); } //We fall back to the nft original image which can have a really big size if (!foundDCLImage && !string.IsNullOrEmpty(originalImageURL)) { lastURLUsed = originalImageURL; yield return(WrappedTextureUtils.Fetch(originalImageURL, (downloadedTex, texturePromise) => { foundDCLImage = true; this.texturePromise = texturePromise; SetFrameImage(downloadedTex, resizeFrameMesh: true); }, Asset_Gif.MaxSize._256)); } FinishLoading(foundDCLImage); }
public static void ForgetThumbnail(AssetPromise_Texture promise) { if (promise == null) { return; } //Debug.Log("Forget thumbnail " + promise.asset.id); AssetPromiseKeeper_Texture.i.Forget(promise); }
public void RestorePreviewAsset() { if (hqTexture != null) { AssetPromiseKeeper_Texture.i.Forget(hqTexture); hqTexture = null; } textureUpdateCallback?.Invoke(previewAsset.texture); }
private void OnDestroy() { isDestroyed = true; if (thumbnailPromise != null) { AssetPromiseKeeper_Texture.i.Forget(thumbnailPromise); thumbnailPromise = null; } }
private void CleanUpPromise() { if (texturePromise == null) { return; } AssetPromiseKeeper_Texture.i.Forget(texturePromise); texturePromise.Cleanup(); texturePromise = null; }
private void ForgetThumbnail() { if (currentThumbnailPromise == null) { return; } ThumbnailsManager.ForgetThumbnail(currentThumbnailPromise); ThumbnailReady(null); currentThumbnailPromise = null; }
public void Dispose() { if (hqTexture == null) { return; } AssetPromiseKeeper_Texture.i.Forget(hqTexture); hqTexture = null; textureUpdateCallback = null; }
public void Dispose() { if (!isDestroyed) { Destroy(gameObject); } if (thumbnailPromise != null) { AssetPromiseKeeper_Texture.i.Forget(thumbnailPromise); thumbnailPromise = null; } }
private void OnDestroy() { if (texturePromise != null) { AssetPromiseKeeper_Texture.i.Forget(texturePromise); texturePromise = null; } else { imageAsset?.Dispose(); } }
public void ClearThumbnail() { if (profile != null) { profile.OnFaceSnapshotReadyEvent -= SetThumbnail; } if (thumbnailPromise != null) { AssetPromiseKeeper_Texture.i.Forget(thumbnailPromise); thumbnailPromise = null; } userThumbnail.texture = null; }
private void GetThumbnail() { if (currentModel == null) { return; } //NOTE(Brian): Get before forget to prevent referenceCount == 0 and asset unload var newThumbnailPromise = ThumbnailsManager.GetThumbnail(currentModel.thumbnail, UpdateItemThumbnail); ThumbnailsManager.ForgetThumbnail(thumbnailPromise); thumbnailPromise = newThumbnailPromise; }
public IEnumerator FetchTextures() { if (mainTexturePromise != null) { AssetPromiseKeeper_Texture.i.Forget(mainTexturePromise); } if (maskTexturePromise != null) { AssetPromiseKeeper_Texture.i.Forget(maskTexturePromise); } mainTexture = null; maskTexture = null; var representation = wearableItem.GetRepresentation(bodyShape.bodyShapeId); string mainTextureHash = representation?.contents?.FirstOrDefault(x => x.key == representation?.mainFile)?.hash; if (mainTextureHash == null) { mainTextureHash = representation?.contents?.FirstOrDefault(x => !x.key.ToLower().Contains("_mask.png"))?.hash; } string maskhash = representation?.contents?.FirstOrDefault(x => x.key.ToLower().Contains("_mask.png"))?.hash; if (!string.IsNullOrEmpty(mainTextureHash)) { mainTexturePromise = new AssetPromise_Texture(wearableItem.baseUrl + mainTextureHash); mainTexturePromise.OnSuccessEvent += (x) => mainTexture = x.texture; mainTexturePromise.OnFailEvent += (x) => mainTexture = null; AssetPromiseKeeper_Texture.i.Keep(mainTexturePromise); } if (!string.IsNullOrEmpty(maskhash)) { maskTexturePromise = new AssetPromise_Texture(wearableItem.baseUrl + maskhash); maskTexturePromise.OnSuccessEvent += (x) => maskTexture = x.texture; maskTexturePromise.OnFailEvent += (x) => maskTexture = null; AssetPromiseKeeper_Texture.i.Keep(maskTexturePromise); } yield return(mainTexturePromise); yield return(maskTexturePromise); PrepareWearable(); }
public void Dispose() { scenesViewController.OnSceneSelected -= OnSelectScene; if (promiseAvatarThumbnail != null) { AssetPromiseKeeper_Texture.i.Forget(promiseAvatarThumbnail); } if (promiseSceneThumbnail != null) { AssetPromiseKeeper_Texture.i.Forget(promiseSceneThumbnail); } promiseAvatarThumbnail = null; promiseSceneThumbnail = null; }
private IEnumerator FetchNFTImage(NFTInfo nftInfo) { spinnerNftImage.SetActive(true); ITexture nftImageAsset = null; yield return(WrappedTextureUtils.Fetch(nftInfo.previewImageUrl, (downloadedTex, texturePromise) => { nftImageAsset = downloadedTex; this.texturePromise = texturePromise; })); if (nftImageAsset == null) { yield return(WrappedTextureUtils.Fetch(nftInfo.originalImageUrl, (downloadedTex, texturePromise) => { nftImageAsset = downloadedTex; this.texturePromise = texturePromise; }, Asset_Gif.MaxSize._256)); } if (nftImageAsset != null) { imageAsset = nftImageAsset; imageNft.texture = nftImageAsset.texture; if (nftImageAsset is Asset_Gif gifAsset) { gifAsset.OnFrameTextureChanged += (texture) => { imageNft.texture = texture; }; gifAsset.Play(); } else { if (!backgroundColorSet) { SetSmartBackgroundColor(nftImageAsset.texture); } } SetNFTImageSize(nftImageAsset.texture); imageNft.gameObject.SetActive(true); spinnerNftImage.SetActive(false); } }
public void FetchAndSetHQAsset(string url, Action onSuccess, Action onFail) { hqTexture = new AssetPromise_Texture(url); hqTexture.OnSuccessEvent += (asset) => { textureUpdateCallback?.Invoke(asset.texture); onSuccess?.Invoke(); }; hqTexture.OnFailEvent += (asset) => { hqTexture = null; onFail?.Invoke(); }; AssetPromiseKeeper_Texture.i.Keep(hqTexture); }
public void OverrideAvatar(AvatarModel newModel, Texture2D newFaceSnapshot) { if (model?.snapshots != null) { if (thumbnailPromise != null) { ThumbnailsManager.ForgetThumbnail(thumbnailPromise); thumbnailPromise = null; } OnFaceSnapshotReady(null); } model.avatar.CopyFrom(newModel); this.faceSnapshot = newFaceSnapshot; OnUpdate?.Invoke(this); }
public void UpdateData(UserProfileModel newModel, bool downloadAssets = true) { faceSnapshot = null; if (newModel == null) { model = null; return; } model.userId = newModel.userId; model.ethAddress = newModel.ethAddress; model.parcelsWithAccess = newModel.parcelsWithAccess; model.tutorialStep = newModel.tutorialStep; model.hasClaimedName = newModel.hasClaimedName; model.name = newModel.name; model.email = newModel.email; model.description = newModel.description; model.avatar.CopyFrom(newModel.avatar); model.snapshots = newModel.snapshots; model.hasConnectedWeb3 = newModel.hasConnectedWeb3; model.inventory = newModel.inventory; model.blocked = newModel.blocked; model.muted = newModel.muted; if (model.inventory != null) { SetInventory(model.inventory); } if (downloadAssets && model.snapshots != null) { //NOTE(Brian): Get before forget to prevent referenceCount == 0 and asset unload var newThumbnailPromise = ThumbnailsManager.GetThumbnail(model.snapshots.face256, OnFaceSnapshotReady); ThumbnailsManager.ForgetThumbnail(thumbnailPromise); thumbnailPromise = newThumbnailPromise; } else { ThumbnailsManager.ForgetThumbnail(thumbnailPromise); thumbnailPromise = null; } OnUpdate?.Invoke(this); }
private void GetThumbnail(DCLBuilderInWorldEntity entity) { var url = entity.GetSceneObjectAssociated()?.GetComposedThumbnailUrl(); if (string.IsNullOrEmpty(url)) { return; } string newLoadedThumbnailURL = url; var newLoadedThumbnailPromise = new AssetPromise_Texture(url); newLoadedThumbnailPromise.OnSuccessEvent += SetThumbnail; newLoadedThumbnailPromise.OnFailEvent += x => { Debug.Log($"Error downloading: {url}"); }; AssetPromiseKeeper_Texture.i.Keep(newLoadedThumbnailPromise); }