|
|
|
@ -60,7 +60,7 @@ export class Viewer
|
|
|
|
|
|
|
|
|
|
private _Width: number;
|
|
|
|
|
private _Height: number;
|
|
|
|
|
private needUpdateEnts = new Set<Entity>();
|
|
|
|
|
private _NeedUpdateEnts = new Set<Entity>();//避免某些实体关闭自动更新后没有在渲染时刷新显示,导致显示的是错误的
|
|
|
|
|
isLayout = false;
|
|
|
|
|
ViewPorts: ViewportEntity[] = [];
|
|
|
|
|
LayoutScene = new Scene();
|
|
|
|
@ -120,7 +120,8 @@ export class Viewer
|
|
|
|
|
let self = this;
|
|
|
|
|
end(new Entity().Update, function ()
|
|
|
|
|
{
|
|
|
|
|
self.needUpdateEnts.add(this);
|
|
|
|
|
if (!(this as Entity).AutoUpdate)
|
|
|
|
|
self._NeedUpdateEnts.add(this);//避免错误的登记需要变更的实体
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
end(this.CameraCtrl, this.CameraCtrl.SwitchCamera, () =>
|
|
|
|
@ -314,10 +315,10 @@ export class Viewer
|
|
|
|
|
|
|
|
|
|
Render()
|
|
|
|
|
{
|
|
|
|
|
for (let e of this.needUpdateEnts)
|
|
|
|
|
e.Update(0);
|
|
|
|
|
for (let e of this._NeedUpdateEnts)
|
|
|
|
|
e.DeferUpdate();//使用Update(0) 会导致重复记录这个实体,造成性能损耗(或者错误的变更了实体版本)
|
|
|
|
|
|
|
|
|
|
this.needUpdateEnts.clear();
|
|
|
|
|
this._NeedUpdateEnts.clear();
|
|
|
|
|
|
|
|
|
|
if (this.isLayout)
|
|
|
|
|
{
|
|
|
|
|