From 983b7e3fa268571dbf2295676bb3939cbcbbfec7 Mon Sep 17 00:00:00 2001 From: MathMan05 Date: Wed, 31 Jul 2024 23:24:37 -0500 Subject: [PATCH] improve performance even more of that function --- .dist/channel.js | 79 +++++++++++++++++++++++----------------------- webpage/channel.ts | 73 +++++++++++++++++++++--------------------- 2 files changed, 77 insertions(+), 75 deletions(-) diff --git a/.dist/channel.js b/.dist/channel.js index e1d0dec..1d273a2 100644 --- a/.dist/channel.js +++ b/.dist/channel.js @@ -910,51 +910,52 @@ Channel.setupcontextmenu(); export { Channel }; { let last; + const dud = document.createElement("p"); + dud.classList.add("svgtheme"); + document.body.append(dud); + const css = window.getComputedStyle(dud); function fixsvgtheme() { - const things = document.getElementsByClassName("svgtheme"); //console.log(things); - if (things.length) { - const thing = window.getComputedStyle(things[0]).color.replace("rgb(", "").replace(")", "").split(","); - //sconsole.log(thing); - const r = +thing[0] / 255; - const g = +thing[1] / 255; - const b = +thing[2] / 255; - const max = Math.max(r, g, b); - const min = Math.min(r, g, b); - const l = (max + min) / 2; - let s; - let h; - if (max !== min) { - if (l <= .5) { - s = (max - min) / (max + min); - } - else { - s = (max - min) / (2.0 - max - min); - } - if (r === max) { - h = (g - b) / (max - min); - } - else if (g === max) { - h = 2 + (b - r) / (max - min); - } - else if (b === max) { - h = 4 + (r - g) / (max - min); - } + const thing = css.color.replace("rgb(", "").replace(")", "").split(","); + //sconsole.log(thing); + const r = +thing[0] / 255; + const g = +thing[1] / 255; + const b = +thing[2] / 255; + const max = Math.max(r, g, b); + const min = Math.min(r, g, b); + const l = (max + min) / 2; + let s; + let h; + if (max !== min) { + if (l <= .5) { + s = (max - min) / (max + min); } else { - s = 0; - h = 0; + s = (max - min) / (2.0 - max - min); } - const rot = Math.floor(h * 60) + "deg"; - const invert = .5 - (s / 2) + ""; - const brightness = Math.floor((l * 200)) + "%"; - const current = rot + invert + brightness; - if (current !== last) { - last = current; - document.documentElement.style.setProperty('--rot', rot); - document.documentElement.style.setProperty('--invert', invert); - document.documentElement.style.setProperty('--brightness', brightness); + if (r === max) { + h = (g - b) / (max - min); } + else if (g === max) { + h = 2 + (b - r) / (max - min); + } + else if (b === max) { + h = 4 + (r - g) / (max - min); + } + } + else { + s = 0; + h = 0; + } + const rot = Math.floor(h * 60) + "deg"; + const invert = .5 - (s / 2) + ""; + const brightness = Math.floor((l * 200)) + "%"; + const current = rot + invert + brightness; + if (current !== last) { + last = current; + document.documentElement.style.setProperty('--rot', rot); + document.documentElement.style.setProperty('--invert', invert); + document.documentElement.style.setProperty('--brightness', brightness); } } setInterval(fixsvgtheme, 100); diff --git a/webpage/channel.ts b/webpage/channel.ts index f806013..d2b9a16 100644 --- a/webpage/channel.ts +++ b/webpage/channel.ts @@ -901,48 +901,49 @@ Channel.setupcontextmenu(); export {Channel}; { let last:string; + const dud=document.createElement("p") + dud.classList.add("svgtheme") + document.body.append(dud); + const css=window.getComputedStyle(dud); function fixsvgtheme(){ - const things=document.getElementsByClassName("svgtheme"); //console.log(things); - if(things.length){ - const thing=window.getComputedStyle(things[0]).color.replace("rgb(","").replace(")","").split(","); - //sconsole.log(thing); - const r=+thing[0]/255; - const g=+thing[1]/255; - const b=+thing[2]/255; - const max=Math.max(r,g,b); - const min=Math.min(r,g,b); - const l=(max+min)/2; + const thing=css.color.replace("rgb(","").replace(")","").split(","); + //sconsole.log(thing); + const r=+thing[0]/255; + const g=+thing[1]/255; + const b=+thing[2]/255; + const max=Math.max(r,g,b); + const min=Math.min(r,g,b); + const l=(max+min)/2; - let s:number; - let h:number; - if(max!==min){ - if(l<=.5){ - s=(max-min)/(max+min); - }else{ - s=(max-min)/(2.0-max-min); - } - if(r===max){ - h=(g-b)/(max-min); - }else if(g===max){ - h=2+(b-r)/(max-min); - }else if(b===max){ - h=4+(r-g)/(max-min); - } + let s:number; + let h:number; + if(max!==min){ + if(l<=.5){ + s=(max-min)/(max+min); }else{ - s=0; - h=0; + s=(max-min)/(2.0-max-min); } - const rot=Math.floor(h*60)+"deg"; - const invert=.5-(s/2)+""; - const brightness=Math.floor((l*200))+"%"; - const current=rot+invert+brightness; - if(current!==last){ - last=current; - document.documentElement.style.setProperty('--rot', rot); - document.documentElement.style.setProperty('--invert', invert); - document.documentElement.style.setProperty('--brightness', brightness); + if(r===max){ + h=(g-b)/(max-min); + }else if(g===max){ + h=2+(b-r)/(max-min); + }else if(b===max){ + h=4+(r-g)/(max-min); } + }else{ + s=0; + h=0; + } + const rot=Math.floor(h*60)+"deg"; + const invert=.5-(s/2)+""; + const brightness=Math.floor((l*200))+"%"; + const current=rot+invert+brightness; + if(current!==last){ + last=current; + document.documentElement.style.setProperty('--rot', rot); + document.documentElement.style.setProperty('--invert', invert); + document.documentElement.style.setProperty('--brightness', brightness); } } setInterval(fixsvgtheme,100);