bytev-charts-beta
Version:
基于echarts和JavaScript及ES6封装的一个可以直接调用的图表组件库,内置主题设计,简单快捷,且支持用户自定义配置; npm 安装方式: npm install bytev-charts 若启动提示还需额外install插件,则运行 npm install @babel/runtime-corejs2 即可;
61 lines (48 loc) • 1.74 kB
JavaScript
import _classCallCheck from "@babel/runtime-corejs2/helpers/classCallCheck";
import _createClass from "@babel/runtime-corejs2/helpers/createClass";
import "core-js/modules/es.function.bind.js";
import _WeakMap from "@babel/runtime-corejs2/core-js/weak-map";
var WebGPUGeometries = /*#__PURE__*/function () {
function WebGPUGeometries(attributes, info) {
_classCallCheck(this, WebGPUGeometries);
this.attributes = attributes;
this.info = info;
this.geometries = new _WeakMap();
}
_createClass(WebGPUGeometries, [{
key: "update",
value: function update(geometry) {
if (this.geometries.has(geometry) === false) {
var disposeCallback = onGeometryDispose.bind(this);
this.geometries.set(geometry, disposeCallback);
this.info.memory.geometries++;
geometry.addEventListener('dispose', disposeCallback);
}
var geometryAttributes = geometry.attributes;
for (var name in geometryAttributes) {
this.attributes.update(geometryAttributes[name]);
}
var index = geometry.index;
if (index !== null) {
this.attributes.update(index, true);
}
}
}]);
return WebGPUGeometries;
}();
function onGeometryDispose(event) {
var geometry = event.target;
var disposeCallback = this.geometries.get(geometry);
this.geometries["delete"](geometry);
this.info.memory.geometries--;
geometry.removeEventListener('dispose', disposeCallback); //
var index = geometry.index;
var geometryAttributes = geometry.attributes;
if (index !== null) {
this.attributes.remove(index);
}
for (var name in geometryAttributes) {
this.attributes.remove(geometryAttributes[name]);
}
}
export default WebGPUGeometries;