wonder.js
Version:
45 lines (40 loc) • 2.95 kB
JavaScript
'use strict';
var Caml_option = require("bs-platform/lib/js/caml_option.js");
var MostUtils$Wonderjs = require("../../../../asset/utils/MostUtils.js");
var MessageService$Wonderjs = require("../../../../service/primitive/worker/MessageService.js");
var StateRenderWorkerService$Wonderjs = require("../../../../service/state/render_worker/state/StateRenderWorkerService.js");
var InitInitBasicMaterialService$Wonderjs = require("../../../../service/state/init_shader/init_material/init_basicMaterial/material/InitInitBasicMaterialService.js");
var InitMaterialRenderWorkerJobUtils$Wonderjs = require("./utils/InitMaterialRenderWorkerJobUtils.js");
var CreateTypeArrayAllBasicMaterialService$Wonderjs = require("../../../../service/record/all/material/basic/CreateTypeArrayAllBasicMaterialService.js");
var RecordBasicMaterialRenderWorkerService$Wonderjs = require("../../../../service/state/render_worker/material/basic/RecordBasicMaterialRenderWorkerService.js");
var CreateInitBasicMaterialStateRenderWorkerService$Wonderjs = require("../../../../service/state/render_worker/material/basic/CreateInitBasicMaterialStateRenderWorkerService.js");
function _createTypeArrays(buffer, basicMaterialCount, state) {
var match = CreateTypeArrayAllBasicMaterialService$Wonderjs.createTypeArrays(buffer, basicMaterialCount);
var basicMaterialRecord = RecordBasicMaterialRenderWorkerService$Wonderjs.getRecord(state);
state[/* basicMaterialRecord */12] = /* record */[
/* shaderIndices */Caml_option.some(match[0]),
/* colors */Caml_option.some(match[1]),
/* isDepthTests */Caml_option.some(match[2]),
/* alphas */Caml_option.some(match[3]),
/* index */basicMaterialRecord[/* index */4],
/* disposedIndexArray */basicMaterialRecord[/* disposedIndexArray */5],
/* isSourceInstanceMap */basicMaterialRecord[/* isSourceInstanceMap */6]
];
return state;
}
function execJob(param, e, stateData) {
return MostUtils$Wonderjs.callFunc((function (param) {
var state = StateRenderWorkerService$Wonderjs.unsafeGetState(stateData);
var data = MessageService$Wonderjs.getRecord(e);
var basicMaterialData = data.basicMaterialData;
var basicMaterialCount = data.bufferData.basicMaterialCount;
StateRenderWorkerService$Wonderjs.setState(stateData, InitMaterialRenderWorkerJobUtils$Wonderjs.initMaterials(/* tuple */[
CreateInitBasicMaterialStateRenderWorkerService$Wonderjs.createInitMaterialState,
InitInitBasicMaterialService$Wonderjs.init
], RecordBasicMaterialRenderWorkerService$Wonderjs.getRecord(state)[/* isSourceInstanceMap */6], _createTypeArrays(basicMaterialData.buffer, basicMaterialCount, state)));
return e;
}));
}
exports._createTypeArrays = _createTypeArrays;
exports.execJob = execJob;
/* MostUtils-Wonderjs Not a pure module */