Skip to content

Commit e667a25

Browse files
authored
feat: add dynamic fps option (#3)
1 parent c7ed144 commit e667a25

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

src/compact/index.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ export function createFrame<T extends string = PhaseIDs>(
4444
let shouldRunFrame = false
4545
let isStopped = false
4646

47-
const frameInterval = 1000 / (fps || 60)
47+
let frameInterval = 1000 / 60
4848
const maxDeltaTime = 40
4949
let lastFrameTime = 0
5050
let lastPauseTime: number | null = null
@@ -177,6 +177,13 @@ export function createFrame<T extends string = PhaseIDs>(
177177
get state(): Readonly<FrameState> {
178178
return state
179179
},
180+
get fps(): number | false | undefined {
181+
return fps
182+
},
183+
set fps(v) {
184+
frameInterval = 1000 / (v || 60)
185+
fps = v
186+
},
180187
} as Frame<T>
181188

182189
framePhases.forEach((id) => {

src/compact/types.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ export type Frame<T extends string> = {
3333
stop: () => void
3434
cancel: (callback?: PhaseCallback) => void
3535
get state(): Readonly<FrameState>
36+
get fps(): number | false | undefined
37+
set fps(v: number | false | undefined)
3638
} & FramePhases<T>
3739

3840
export interface FrameOptions<T extends string> {

0 commit comments

Comments
 (0)