wonder.js
Version:
47 lines (42 loc) • 3.08 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 InitInitLightMaterialService$Wonderjs = require("../../../../service/state/init_shader/init_material/init_lightMaterial/material/InitInitLightMaterialService.js");
var InitMaterialRenderWorkerJobUtils$Wonderjs = require("./utils/InitMaterialRenderWorkerJobUtils.js");
var CreateTypeArrayAllLightMaterialService$Wonderjs = require("../../../../service/record/all/material/light/CreateTypeArrayAllLightMaterialService.js");
var RecordLightMaterialRenderWorkerService$Wonderjs = require("../../../../service/state/render_worker/material/light/RecordLightMaterialRenderWorkerService.js");
var CreateInitLightMaterialStateRenderWorkerService$Wonderjs = require("../../../../service/state/render_worker/material/light/CreateInitLightMaterialStateRenderWorkerService.js");
function _createTypeArrays(buffer, lightMaterialCount, state) {
var match = CreateTypeArrayAllLightMaterialService$Wonderjs.createTypeArrays(buffer, lightMaterialCount);
var lightMaterialRecord = RecordLightMaterialRenderWorkerService$Wonderjs.getRecord(state);
state[/* lightMaterialRecord */13] = /* record */[
/* shaderIndices */Caml_option.some(match[0]),
/* diffuseColors */Caml_option.some(match[1]),
/* specularColors */Caml_option.some(match[2]),
/* shininess */Caml_option.some(match[3]),
/* diffuseTextureIndices */Caml_option.some(match[4]),
/* specularTextureIndices */Caml_option.some(match[5]),
/* index */lightMaterialRecord[/* index */6],
/* disposedIndexArray */lightMaterialRecord[/* disposedIndexArray */7],
/* isSourceInstanceMap */lightMaterialRecord[/* isSourceInstanceMap */8]
];
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 lightMaterialData = data.lightMaterialData;
var lightMaterialCount = data.bufferData.lightMaterialCount;
StateRenderWorkerService$Wonderjs.setState(stateData, InitMaterialRenderWorkerJobUtils$Wonderjs.initMaterials(/* tuple */[
CreateInitLightMaterialStateRenderWorkerService$Wonderjs.createInitMaterialState,
InitInitLightMaterialService$Wonderjs.init
], RecordLightMaterialRenderWorkerService$Wonderjs.getRecord(state)[/* isSourceInstanceMap */8], _createTypeArrays(lightMaterialData.buffer, lightMaterialCount, state)));
return e;
}));
}
exports._createTypeArrays = _createTypeArrays;
exports.execJob = execJob;
/* MostUtils-Wonderjs Not a pure module */