wonder.js
Version:
57 lines (50 loc) • 3.78 kB
JavaScript
'use strict';
var Caml_option = require("bs-platform/lib/js/caml_option.js");
var MostUtils$Wonderjs = require("../../../../asset/utils/MostUtils.js");
var WorkerService$Wonderjs = require("../../../../service/primitive/worker/WorkerService.js");
var JobConfigUtils$Wonderjs = require("../../utils/JobConfigUtils.js");
var DisposeJobUtils$Wonderjs = require("../../../utils/DisposeJobUtils.js");
var ArrayService$WonderCommonlib = require("wonder-commonlib/lib/js/src/ArrayService.js");
var StateDataMainService$Wonderjs = require("../../../../service/state/main/state/StateDataMainService.js");
var WorkerInstanceService$Wonderjs = require("../../../../service/record/main/workerInstance/WorkerInstanceService.js");
var DisposeTextureMainService$Wonderjs = require("../../../../service/state/main/texture/DisposeTextureMainService.js");
var RecordBasicSourceTextureMainService$Wonderjs = require("../../../../service/state/main/texture/source/basic_source/RecordBasicSourceTextureMainService.js");
var DisposeComponentGameObjectMainService$Wonderjs = require("../../../../service/state/main/gameObject/DisposeComponentGameObjectMainService.js");
var RecordArrayBufferViewSourceTextureMainService$Wonderjs = require("../../../../service/state/main/texture/source/arrayBufferView_source/RecordArrayBufferViewSourceTextureMainService.js");
function _buildData(operateType, param) {
return {
operateType: operateType,
geometryNeedDisposeVboBufferArr: param[0],
sourceInstanceNeedDisposeVboBufferArr: param[1],
needDisposedBasicSourceTextureIndexArray: param[2],
needDisposedArrayBufferViewTextureIndexArray: param[3]
};
}
function _sendDisposeData(operateType, needDisposeVboBufferArrTuple, state) {
return WorkerService$Wonderjs.postMessage(_buildData(operateType, needDisposeVboBufferArrTuple), WorkerInstanceService$Wonderjs.unsafeGetRenderWorker(state[/* workerInstanceRecord */39]));
}
var _clearData = DisposeTextureMainService$Wonderjs.clearNeedDisposedTextureIndexArray;
function execJob(flags, stateData) {
return MostUtils$Wonderjs.callFunc((function (param) {
var state = StateDataMainService$Wonderjs.unsafeGetState(stateData);
var operateType = JobConfigUtils$Wonderjs.getOperateType(flags);
var match = DisposeJobUtils$Wonderjs.execJob(DisposeComponentGameObjectMainService$Wonderjs.batchDisposeBasicMaterialComponentDataForWorker, DisposeComponentGameObjectMainService$Wonderjs.batchDisposeLightMaterialComponentDataForWorker, state);
var state$1 = match[0];
var needDisposedBasicSourceTextureIndexArray = ArrayService$WonderCommonlib.removeDuplicateItems(RecordBasicSourceTextureMainService$Wonderjs.getRecord(state$1)[/* needDisposedTextureIndexArray */14]);
var needDisposedArrayBufferViewTextureIndexArray = ArrayService$WonderCommonlib.removeDuplicateItems(RecordArrayBufferViewSourceTextureMainService$Wonderjs.getRecord(state$1)[/* needDisposedTextureIndexArray */16]);
_sendDisposeData(operateType, /* tuple */[
match[1],
match[2],
needDisposedBasicSourceTextureIndexArray,
needDisposedArrayBufferViewTextureIndexArray
], state$1);
var state$2 = DisposeTextureMainService$Wonderjs.clearNeedDisposedTextureIndexArray(state$1);
StateDataMainService$Wonderjs.setState(stateData, state$2);
return Caml_option.some(operateType);
}));
}
exports._buildData = _buildData;
exports._sendDisposeData = _sendDisposeData;
exports._clearData = _clearData;
exports.execJob = execJob;
/* MostUtils-Wonderjs Not a pure module */