From aedcee6c7eef37cdc4caf7c65c956603e7103b62 Mon Sep 17 00:00:00 2001 From: dwelle Date: Thu, 10 Aug 2023 23:45:01 +0200 Subject: [PATCH] stop inlining throttled function to keep them stable --- src/renderer/renderScene.ts | 38 ++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/src/renderer/renderScene.ts b/src/renderer/renderScene.ts index b19bf4ce4..bb6853db0 100644 --- a/src/renderer/renderScene.ts +++ b/src/renderer/renderScene.ts @@ -1048,6 +1048,15 @@ const _renderStaticScene = ({ }); }; +/** throttled to animation framerate */ +const renderInteractiveSceneThrottled = throttleRAF( + (config: InteractiveSceneRenderConfig) => { + const ret = _renderInteractiveScene(config); + config.callback?.(ret); + }, + { trailing: true }, +); + export const renderInteractiveScene = < U extends typeof _renderInteractiveScene, T extends boolean = false, @@ -1056,16 +1065,7 @@ export const renderInteractiveScene = < throttle?: T, ): T extends true ? void : ReturnType => { if (throttle) { - /** throttled to animation framerate */ - const renderFuncThrottled = throttleRAF( - (config) => { - const ret = _renderInteractiveScene(config); - config.callback?.(ret); - }, - { trailing: true }, - ); - - renderFuncThrottled(renderConfig); + renderInteractiveSceneThrottled(renderConfig); return undefined as T extends true ? void : ReturnType; } const ret = _renderInteractiveScene(renderConfig); @@ -1073,20 +1073,20 @@ export const renderInteractiveScene = < return ret as T extends true ? void : ReturnType; }; +/** throttled to animation framerate */ +const renderStaticSceneThrottled = throttleRAF( + (config: StaticSceneRenderConfig) => { + _renderStaticScene(config); + }, + { trailing: true }, +); + export const renderStaticScene = ( renderConfig: StaticSceneRenderConfig, throttle?: boolean, ) => { if (throttle) { - /** throttled to animation framerate */ - const renderFuncThrottled = throttleRAF( - (config) => { - _renderStaticScene(config); - }, - { trailing: true }, - ); - - renderFuncThrottled(renderConfig); + renderStaticSceneThrottled(renderConfig); return; }