wonder.js
Version:
61 lines (53 loc) • 3.5 kB
JavaScript
;
var ArrayService$WonderCommonlib = require("wonder-commonlib/lib/js/src/ArrayService.js");
var PoolVboBufferService$Wonderjs = require("./PoolVboBufferService.js");
var DisposeComponentService$Wonderjs = require("../../../primitive/component/DisposeComponentService.js");
function disposeGeometryBufferData(geometry, record) {
return /* record */[
/* geometryVertexBufferMap */DisposeComponentService$Wonderjs.disposeSparseMapData(geometry, record[/* geometryVertexBufferMap */0]),
/* geometryTexCoordBufferMap */DisposeComponentService$Wonderjs.disposeSparseMapData(geometry, record[/* geometryTexCoordBufferMap */1]),
/* geometryNormalBufferMap */DisposeComponentService$Wonderjs.disposeSparseMapData(geometry, record[/* geometryNormalBufferMap */2]),
/* geometryElementArrayBufferMap */DisposeComponentService$Wonderjs.disposeSparseMapData(geometry, record[/* geometryElementArrayBufferMap */3]),
/* matrixInstanceBufferMap */record[/* matrixInstanceBufferMap */4],
/* vertexArrayBufferPool */record[/* vertexArrayBufferPool */5],
/* elementArrayBufferPool */record[/* elementArrayBufferPool */6],
/* matrixInstanceBufferPool */record[/* matrixInstanceBufferPool */7]
];
}
function disposeInstanceBufferData(sourceInstance, record) {
return /* record */[
/* geometryVertexBufferMap */record[/* geometryVertexBufferMap */0],
/* geometryTexCoordBufferMap */record[/* geometryTexCoordBufferMap */1],
/* geometryNormalBufferMap */record[/* geometryNormalBufferMap */2],
/* geometryElementArrayBufferMap */record[/* geometryElementArrayBufferMap */3],
/* matrixInstanceBufferMap */DisposeComponentService$Wonderjs.disposeSparseMapData(sourceInstance, record[/* matrixInstanceBufferMap */4]),
/* vertexArrayBufferPool */record[/* vertexArrayBufferPool */5],
/* elementArrayBufferPool */record[/* elementArrayBufferPool */6],
/* matrixInstanceBufferPool */record[/* matrixInstanceBufferPool */7]
];
}
function _disposeVboBuffer(needDisposeVboBufferArr, param, vboBufferRecord) {
var disposeBufferDataFunc = param[1];
var addBufferToPoolFunc = param[0];
return ArrayService$WonderCommonlib.reduceOneParam((function (vboBufferRecord, component) {
return disposeBufferDataFunc(component, addBufferToPoolFunc(component, vboBufferRecord));
}), vboBufferRecord, needDisposeVboBufferArr);
}
function disposeGeometryVboBuffer(geometryNeedDisposeVboBufferArr, vboBufferRecord) {
return _disposeVboBuffer(geometryNeedDisposeVboBufferArr, /* tuple */[
PoolVboBufferService$Wonderjs.addGeometryBufferToPool,
disposeGeometryBufferData
], vboBufferRecord);
}
function disposeSourceInstanceVboBuffer(sourceInstanceNeedDisposeVboBufferArr, vboBufferRecord) {
return _disposeVboBuffer(sourceInstanceNeedDisposeVboBufferArr, /* tuple */[
PoolVboBufferService$Wonderjs.addInstanceBufferToPool,
disposeInstanceBufferData
], vboBufferRecord);
}
exports.disposeGeometryBufferData = disposeGeometryBufferData;
exports.disposeInstanceBufferData = disposeInstanceBufferData;
exports._disposeVboBuffer = _disposeVboBuffer;
exports.disposeGeometryVboBuffer = disposeGeometryVboBuffer;
exports.disposeSourceInstanceVboBuffer = disposeSourceInstanceVboBuffer;
/* PoolVboBufferService-Wonderjs Not a pure module */