stop inlining throttled function to keep them stable
This commit is contained in:
parent
bf3fac68db
commit
aedcee6c7e
@ -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 = <
|
export const renderInteractiveScene = <
|
||||||
U extends typeof _renderInteractiveScene,
|
U extends typeof _renderInteractiveScene,
|
||||||
T extends boolean = false,
|
T extends boolean = false,
|
||||||
@ -1056,16 +1065,7 @@ export const renderInteractiveScene = <
|
|||||||
throttle?: T,
|
throttle?: T,
|
||||||
): T extends true ? void : ReturnType<U> => {
|
): T extends true ? void : ReturnType<U> => {
|
||||||
if (throttle) {
|
if (throttle) {
|
||||||
/** throttled to animation framerate */
|
renderInteractiveSceneThrottled(renderConfig);
|
||||||
const renderFuncThrottled = throttleRAF(
|
|
||||||
(config) => {
|
|
||||||
const ret = _renderInteractiveScene(config);
|
|
||||||
config.callback?.(ret);
|
|
||||||
},
|
|
||||||
{ trailing: true },
|
|
||||||
);
|
|
||||||
|
|
||||||
renderFuncThrottled(renderConfig);
|
|
||||||
return undefined as T extends true ? void : ReturnType<U>;
|
return undefined as T extends true ? void : ReturnType<U>;
|
||||||
}
|
}
|
||||||
const ret = _renderInteractiveScene(renderConfig);
|
const ret = _renderInteractiveScene(renderConfig);
|
||||||
@ -1073,20 +1073,20 @@ export const renderInteractiveScene = <
|
|||||||
return ret as T extends true ? void : ReturnType<U>;
|
return ret as T extends true ? void : ReturnType<U>;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const renderStaticScene = (
|
|
||||||
renderConfig: StaticSceneRenderConfig,
|
|
||||||
throttle?: boolean,
|
|
||||||
) => {
|
|
||||||
if (throttle) {
|
|
||||||
/** throttled to animation framerate */
|
/** throttled to animation framerate */
|
||||||
const renderFuncThrottled = throttleRAF(
|
const renderStaticSceneThrottled = throttleRAF(
|
||||||
(config) => {
|
(config: StaticSceneRenderConfig) => {
|
||||||
_renderStaticScene(config);
|
_renderStaticScene(config);
|
||||||
},
|
},
|
||||||
{ trailing: true },
|
{ trailing: true },
|
||||||
);
|
);
|
||||||
|
|
||||||
renderFuncThrottled(renderConfig);
|
export const renderStaticScene = (
|
||||||
|
renderConfig: StaticSceneRenderConfig,
|
||||||
|
throttle?: boolean,
|
||||||
|
) => {
|
||||||
|
if (throttle) {
|
||||||
|
renderStaticSceneThrottled(renderConfig);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user