这里先把每帧都执行的入口找到
这里主要关注点是
this._dataSourceDisplay.update(time)
其初始化在Viewer里面
DataSourceDisplay.prototype.update = function(time) {
visualizers = this._defaultDataSource._visualizers;
vLength = visualizers.length;
for (x = 0; x < vLength; x++) {
result = visualizers[x].update(time) && result;
}
}
下面开始与之相关的每一帧的执行逻辑:
当新加入一个entity的时候
每一个GeometryVisualizer都绑定一个具体的Updater,将Entity对应的RectangleGraphics解析为RectangleGeometryUpdater的GeometryOptions
最终是将每一批次中材质相同的mesh
上述entity转primitive个人感觉不是重点,一般也很少使用entity,都是构建primitive为主
最终还是构造成primitive,加到scene的primitives中 primitives的每一帧的update是在上文中
primitives.add(primitive);