private ThumbnailState SubmitGeneratorTask(string path) { var state = new ThumbnailState() { icon = Icon.ExtractAssociatedIcon(path) }; iconCache[path] = state; Task.Run(() => { semaphore.Wait(); using (MemoryStream ms = new MemoryStream(File.ReadAllBytes(path))) { using (var img = Image.FromStream(ms)) { var thumb = (Bitmap)img.GetThumbnailImage(32, 32, () => false, IntPtr.Zero); var icon = Icon.FromHandle(thumb.GetHicon()); state.icon = icon; IconThumbnailLoaded(this, new EventArgs()); semaphore.Release(); return(icon); } } }); return(state); }
private static void SetMainCanvasThumbnail(bool isVR, ThumbnailState thumbnailState) { string gameObjectLookup = isVR ? "MainCanvas/Panel" : "FreeHScene/Canvas/Panel"; var parent = GameObject.Find(gameObjectLookup); Image[] children = parent.transform.GetComponentsInChildren <Image>(true); foreach (Image child in children) { if (child.gameObject.name == "MapThumbnail" && child.transform.parent.gameObject.name != "Dark") { if (thumbnailState == ThumbnailState.Default) { child.overrideSprite = defaultImage.ToSprite(); child.gameObject.name = child.gameObject.name + " " + GUID; } } else if (child.gameObject.name == "MapThumbnail" + " " + GUID && child.transform.parent.gameObject.name != "Dark" && thumbnailState == ThumbnailState.Unset) { child.overrideSprite = null; } } }