Feat : Add shader quality slider

This commit is contained in:
2024-05-19 18:55:13 +02:00
parent 2c2342580b
commit e18a8dce49
2 changed files with 8 additions and 12 deletions
-5
View File
@@ -28,11 +28,6 @@ void main(){
float f=fbm(st+r); float f=fbm(st+r);
<<<<<<< Updated upstream
=======
>>>>>>> Stashed changes
vec3 color=mix(u_color_start,u_color_end,f*.3); vec3 color=mix(u_color_start,u_color_end,f*.3);
gl_FragColor=vec4(color,1.); gl_FragColor=vec4(color,1.);
+8 -7
View File
@@ -110,20 +110,21 @@ async function main(canvas: HTMLCanvasElement, fragmentShader2: string) {
6, // num vertices to process 6, // num vertices to process
); );
} }
clearInterval(interval.value) clearInterval(interval.value)
interval.value = setInterval(() => requestAnimationFrame(render), targetFramerate) interval.value = setInterval(() => requestAnimationFrame(render), targetFramerate)
} }
async function reloadShader() { async function reloadShader() {
if (!canvas.value) { return } nextTick(() => {
let fragmentShader2 = fragmentShader.replace("#define FBM_OCTAVES 6", "#define FBM_OCTAVES " + settingsStore.shaderQuality); if (!canvas.value) { return }
clearInterval(interval.value) let fragmentShader2 = fragmentShader.replace("#define FBM_OCTAVES 6", "#define FBM_OCTAVES " + settingsStore.shaderQuality);
main(canvas.value, fragmentShader2); clearInterval(interval.value)
main(canvas.value, fragmentShader2);
})
} }
watch(() => settingsStore.shaderQuality, (newValue, oldValue) => { watch(() => settingsStore.shaderQuality, (newValue, oldValue) => {
if (newValue === oldValue) { return }
reloadShader() reloadShader()
}) })
@@ -140,7 +141,7 @@ onUnmounted(() => {
</script> </script>
<template> <template>
<canvas ref="canvas" id="background">test</canvas> <canvas v-if="settingsStore.shaderQuality != 0" ref="canvas" id="background">test</canvas>
</template> </template>
<style scoped> <style scoped>