From 8a6fe805652838ea723019c62192dc592c821ac8 Mon Sep 17 00:00:00 2001 From: Fen Dweller Date: Sun, 28 Jun 2020 10:20:36 -0400 Subject: [PATCH] Preload entity images --- macrovision.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/macrovision.js b/macrovision.js index 6755bb7e..c2c7ee25 100644 --- a/macrovision.js +++ b/macrovision.js @@ -10,6 +10,8 @@ let clickTimeout = null; let dragOffsetX = null; let dragOffsetY = null; +let preloaded = new Set(); + let panning = false; let panReady = true; let panOffsetX = null; @@ -1452,6 +1454,16 @@ function checkEntity(entity) { function displayEntity(entity, view, x, y, selectEntity = false, refresh = false) { checkEntity(entity); + // preload all of the entity's views + + Object.values(entity.views).forEach(view => { + if (!preloaded.has(view.image.source)) { + let img = new Image(); + img.src = view.image.source; + preloaded.add(view.image.source); + } + }); + const box = document.createElement("div"); box.classList.add("entity-box"); @@ -2984,6 +2996,12 @@ function prepareEntities() { } else { select.classList.remove("nsfw"); } + + // preload the entity's first image + + const entity = entityList[select.selectedIndex].constructor(); + let img = new Image(); + img.src = entity.currentView.image.source; }) const button = document.createElement("button");