diff --git a/components/AnimatedBackground.vue b/components/AnimatedBackground.vue index e063e52..e462b05 100644 --- a/components/AnimatedBackground.vue +++ b/components/AnimatedBackground.vue @@ -109,10 +109,9 @@ async function main(canvas: HTMLCanvasElement, fragmentShader2: string) { 0, // offset 6, // num vertices to process ); - interval.value = setTimeout(() => requestAnimationFrame(render), targetFramerate) } - clearTimeout(interval.value) - requestAnimationFrame(render) + clearInterval(interval.value) + interval.value = setInterval(() => requestAnimationFrame(render), targetFramerate) } @@ -120,6 +119,7 @@ async function reloadShader() { nextTick(() => { if (!canvas.value) { return } let fragmentShader2 = fragmentShader.replace("#define FBM_OCTAVES 6", "#define FBM_OCTAVES " + settingsStore.shaderQuality); + clearInterval(interval.value) main(canvas.value, fragmentShader2); }) @@ -128,6 +128,10 @@ watch(() => settingsStore.shaderQuality, (newValue, oldValue) => { reloadShader() }) +watch(() => settingsStore.shaderFramerate, (newValue, oldValue) => { + reloadShader() +}) + onMounted(async () => { diff --git a/components/GameBoard.vue b/components/GameBoard.vue index 931d7d6..6730d43 100644 --- a/components/GameBoard.vue +++ b/components/GameBoard.vue @@ -115,7 +115,7 @@ function showWinnerScreen() { #player_list { grid-area: player_list; - border-left: 3px solid black; + border-left: 5px solid black; height: 100%; background-image: url("/images/bg-darkgrass.png"); } diff --git a/components/OptionsDialog.vue b/components/OptionsDialog.vue index 82d0f01..acf088c 100644 --- a/components/OptionsDialog.vue +++ b/components/OptionsDialog.vue @@ -40,7 +40,21 @@ const switchCardStyle = () => {
+ Shader Quality + + + + +
+
+ Shader Framerate + + {{ settingsStore.shaderFramerate }} fps
diff --git a/stores/settingsStore.ts b/stores/settingsStore.ts index 876f28f..c0adc1c 100644 --- a/stores/settingsStore.ts +++ b/stores/settingsStore.ts @@ -7,8 +7,8 @@ const CARDS_DEFAULT_VALUE = 'heron'; export const useSettingsStore = defineStore("settingstore", { state: () => ({ cardStyle: "heron", - shaderQuality: 6, - shaderFramerate: 60, + shaderQuality: 0, + shaderFramerate: 10, }), persist: true });