Skip to content

Commit 6426856

Browse files
committed
chore: tell dont ask fix
1 parent f196a38 commit 6426856

File tree

4 files changed

+8
-4
lines changed

4 files changed

+8
-4
lines changed

playground/src/pages/rendering-modes/index.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ setTimeout(() => {
1313
<template>
1414
<TresCanvas
1515
:clear-color="clearColor"
16-
render-mode="manual"
16+
render-mode="on-demand"
1717
@render="() => console.log('onRender')"
1818
>
1919
<Scene />

playground/src/pages/rendering-modes/scene.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { OrbitControls } from '@tresjs/cientos'
55
const { invalidate, advance } = useTres()
66
77
function onControlChange() {
8-
advance()
8+
invalidate()
99
}
1010
1111
const positionX = ref(0)

src/composables/useTresContextProvider/index.ts

+5-1
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ export interface TresContext {
4545
* If set to 'always', the scene will be rendered every frame
4646
*/
4747
renderMode: Ref<'always' | 'on-demand' | 'manual'>
48+
canBeInvalidated: ComputedRef<boolean>
4849
internal: InternalState
4950
/**
5051
* Invalidates the current frame when renderMode === 'on-demand'
@@ -147,6 +148,8 @@ export function useTresContextProvider({
147148
disableRender,
148149
})
149150

151+
const renderMode = ref<'always' | 'on-demand' | 'manual'>(rendererOptions.renderMode || 'always')
152+
150153
const toProvide: TresContext = {
151154
sizes,
152155
scene: localScene,
@@ -167,7 +170,8 @@ export function useTresContextProvider({
167170
accumulator: [],
168171
},
169172
},
170-
renderMode: ref(rendererOptions.renderMode || 'always'),
173+
renderMode,
174+
canBeInvalidated: computed(() => renderMode.value === 'on-demand' && internal.frames.value === 0),
171175
internal,
172176
advance,
173177
extend,

src/core/nodeOps.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ export function invalidateInstance(instance: TresObject) {
2828

2929
if (!ctx) return
3030

31-
if (ctx.renderMode.value === 'on-demand' && ctx.internal.frames.value === 0) {
31+
if (ctx.canBeInvalidated.value) {
3232
ctx.invalidate()
3333
}
3434

0 commit comments

Comments
 (0)