场景更新()与无效()
sceneUpdated() vs invalidate()
viewer.impl.sceneUpdated()
和 viewer.impl.invalidate()
有什么区别?我一直看到它们可以互换使用,但一直无法弄清楚为什么。
在 invalidate()
的情况下,我看到它使用了接受 1 到 3 个布尔参数以及每种可能的组合,并且似乎每次都给出相同的结果。
viewer.impl.invalidate
基本上是:
invalidate(needsClear, needsRender, overlayDirty)
//needsClear - full render - not (currently) interruptible, runs until completion, "locks" application, needs to re-render the whole scene from start
//needRender - progressive render - show a bit more each tick, runs unless interrupted by a move, control, etc.
//overlayDirty - overlay (like rollover highlighting etc) needs to be re-rendered
而sceneUpdated(objectsMoved, skipRepaint)
基本上就是
this.invalidate(!skipRepaint, false, !skipRepaint);
此外,场景边界正在更新并重新渲染阴影。
viewer.impl.sceneUpdated()
和 viewer.impl.invalidate()
有什么区别?我一直看到它们可以互换使用,但一直无法弄清楚为什么。
在 invalidate()
的情况下,我看到它使用了接受 1 到 3 个布尔参数以及每种可能的组合,并且似乎每次都给出相同的结果。
viewer.impl.invalidate
基本上是:
invalidate(needsClear, needsRender, overlayDirty)
//needsClear - full render - not (currently) interruptible, runs until completion, "locks" application, needs to re-render the whole scene from start
//needRender - progressive render - show a bit more each tick, runs unless interrupted by a move, control, etc.
//overlayDirty - overlay (like rollover highlighting etc) needs to be re-rendered
而sceneUpdated(objectsMoved, skipRepaint)
基本上就是
this.invalidate(!skipRepaint, false, !skipRepaint);
此外,场景边界正在更新并重新渲染阴影。