Allow using vsync
This commit is contained in:
@@ -149,9 +149,14 @@ async function main(canvas: OffscreenCanvas) {
|
||||
console.log("a")
|
||||
}
|
||||
|
||||
requestAnimationFrame(render)
|
||||
|
||||
// self.clearInterval(interval)
|
||||
// interval = self.setInterval(() => requestAnimationFrame(render), 1000 / shaderOptions.framerate)
|
||||
self.clearTimeout(timeout)
|
||||
if (shaderOptions.framerate == 0) {
|
||||
return render
|
||||
}
|
||||
timeout = self.setTimeout(() => {
|
||||
requestAnimationFrame(render)
|
||||
}, 1000 / shaderOptions.framerate)
|
||||
@@ -163,6 +168,10 @@ self.addEventListener("message", (e) => {
|
||||
if (data.command == "initShader") {
|
||||
canvas = data.canvas
|
||||
shaderOptions.quality = data.shaderOptions.quality
|
||||
shaderOptions.framerate = data.shaderOptions.framerate
|
||||
if (shaderOptions.framerate == 65) {
|
||||
shaderOptions.framerate == Infinity
|
||||
}
|
||||
screen.devicePixelRatio = data.screen.devicePixelRatio
|
||||
screen.width = data.screen.width
|
||||
screen.height = data.screen.height
|
||||
|
||||
@@ -39,18 +39,19 @@ const close = () => {
|
||||
<span>Shader Quality</span>
|
||||
</div>
|
||||
<div class="dialog-body">
|
||||
<input type="range" min="1" max="10" v-model="settingsStore.shaderQuality">
|
||||
<input type="range" min="1" max="10" v-model="settingsStore.shaderQuality"
|
||||
:disabled="settingsStore.shaderFramerate == 0">
|
||||
</div>
|
||||
<div class="dialog-footer">
|
||||
<span>{{ _window.innerWidth * _devicePixelRatio * settingsStore.shaderQuality / 10 }}x{{ _window.innerHeight *
|
||||
_devicePixelRatio * settingsStore.shaderQuality / 10 }}</span>
|
||||
<span>{{ Math.floor(_window.innerWidth * _devicePixelRatio * settingsStore.shaderQuality / 10) }}x{{
|
||||
Math.floor(_window.innerHeight *
|
||||
_devicePixelRatio * settingsStore.shaderQuality / 10) }}</span>
|
||||
</div>
|
||||
<div class="dialog-header">
|
||||
<span>Shader Framerate</span>
|
||||
</div>
|
||||
<div class="dialog-body">
|
||||
<input type="range" min="0" max="65" step="5" v-model="settingsStore.shaderFramerate"
|
||||
:disabled="settingsStore.shaderQuality == 0">
|
||||
<input type="range" min="0" max="65" step="5" v-model="settingsStore.shaderFramerate">
|
||||
</div>
|
||||
<div class="dialog-footer">
|
||||
<span v-if="settingsStore.shaderFramerate == 65">vsync</span>
|
||||
|
||||
@@ -8,9 +8,9 @@ enum CardStyles {
|
||||
export const useSettingsStore = defineStore("settingstore", {
|
||||
state: () => ({
|
||||
cardStyle: CardStyles.HERON,
|
||||
shaderQuality: 0,
|
||||
shaderFramerate: 10,
|
||||
shaderPixelated: false
|
||||
shaderQuality: 3,
|
||||
shaderFramerate: 0,
|
||||
shaderPixelated: true
|
||||
}),
|
||||
actions: {
|
||||
switchCardStyles() {
|
||||
|
||||
Reference in New Issue
Block a user