wonder.js
Version:
77 lines (70 loc) • 3.65 kB
JavaScript
;
var Curry = require("bs-platform/lib/js/curry.js");
var Log$WonderLog = require("wonder-log/lib/js/src/Log.js");
var Contract$WonderLog = require("wonder-log/lib/js/src/Contract.js");
var ArrayService$Wonderjs = require("../../../../../atom/ArrayService.js");
var StateDataMain$Wonderjs = require("../../../../main/data/StateDataMain.js");
var IsDebugMainService$Wonderjs = require("../../../../main/state/IsDebugMainService.js");
var ArrayService$WonderCommonlib = require("wonder-commonlib/lib/js/src/ArrayService.js");
var DisposeMaterialService$Wonderjs = require("../../../../../record/main/material/DisposeMaterialService.js");
var JudgeAllInstanceService$Wonderjs = require("../../../../../record/all/instance/JudgeAllInstanceService.js");
var GetDataRenderConfigService$Wonderjs = require("../../../../../record/all/renderConfig/GetDataRenderConfigService.js");
function _initMaterialShader(gl, param, param$1, param$2) {
var state = param$2[2];
var renderConfigRecord = param$2[1];
var materialIndex = param[0];
var shaders = GetDataRenderConfigService$Wonderjs.getShaders(renderConfigRecord);
param$1[2](materialIndex, Curry._4(param$1[0], materialIndex, /* tuple */[
gl,
param$1[4](materialIndex, /* tuple */[
param[1],
param[2]
], /* tuple */[
shaders,
Curry._1(param$1[3], shaders),
GetDataRenderConfigService$Wonderjs.getShaderLibs(renderConfigRecord)
], state)
], param$1[1], state), param$2[0]);
return state;
}
var initMaterial = _initMaterialShader;
function reInitMaterial(gl, param, param$1, param$2) {
var state = param$2[2];
var renderConfigRecord = param$2[1];
var materialIndex = param[0];
var shaders = GetDataRenderConfigService$Wonderjs.getShaders(renderConfigRecord);
param$1[2](materialIndex, Curry._4(param$1[0], materialIndex, /* tuple */[
gl,
param$1[4](materialIndex, /* tuple */[
param[1],
param[2]
], /* tuple */[
shaders,
Curry._1(param$1[3], shaders),
GetDataRenderConfigService$Wonderjs.getShaderLibs(renderConfigRecord)
], state)
], param$1[1], state), param$2[0]);
return state;
}
function init(gl, param, initMaterialFunc, param$1) {
var disposedIndexArray = param$1[1];
var isSupportInstance = param[1];
var isSourceInstanceMap = param[0];
Contract$WonderLog.requireCheck((function (param) {
return Contract$WonderLog.test(Log$WonderLog.buildAssertMessage("not dispose any material before init", "do"), (function (param) {
return Contract$WonderLog.assertTrue(DisposeMaterialService$Wonderjs.isNotDisposed(disposedIndexArray));
}));
}), IsDebugMainService$Wonderjs.getIsDebug(StateDataMain$Wonderjs.stateData));
return ArrayService$WonderCommonlib.reduceOneParam((function (state, materialIndex) {
return initMaterialFunc(gl, /* tuple */[
materialIndex,
JudgeAllInstanceService$Wonderjs.unsafeGetIsSourceInstance(materialIndex, isSourceInstanceMap),
isSupportInstance
], state);
}), param$1[2], ArrayService$Wonderjs.range(0, param$1[0] - 1 | 0));
}
exports._initMaterialShader = _initMaterialShader;
exports.initMaterial = initMaterial;
exports.reInitMaterial = reInitMaterial;
exports.init = init;
/* Log-WonderLog Not a pure module */