UNPKG

wonder.js

Version:
122 lines (113 loc) 6.39 kB
'use strict'; var Caml_array = require("bs-platform/lib/js/caml_array.js"); var Caml_int32 = require("bs-platform/lib/js/caml_int32.js"); var OptionService$Wonderjs = require("../../../../atom/OptionService.js"); var ArrayService$WonderCommonlib = require("wonder-commonlib/lib/js/src/ArrayService.js"); var BufferSettingService$Wonderjs = require("../../../../record/main/setting/BufferSettingService.js"); var CopyTypeArrayService$Wonderjs = require("../../../../primitive/copy/CopyTypeArrayService.js"); var ShaderIndicesService$Wonderjs = require("../../../../primitive/material/ShaderIndicesService.js"); var BufferMaterialService$Wonderjs = require("../../../../record/main/material/BufferMaterialService.js"); var DefaultTypeArrayValueService$Wonderjs = require("../../../../primitive/buffer/DefaultTypeArrayValueService.js"); var BufferAllBasicMaterialService$Wonderjs = require("../../../../record/all/material/basic/BufferAllBasicMaterialService.js"); var MutableSparseMapService$WonderCommonlib = require("wonder-commonlib/lib/js/src/MutableSparseMapService.js"); var CreateTypeArrayAllBasicMaterialService$Wonderjs = require("../../../../record/all/material/basic/CreateTypeArrayAllBasicMaterialService.js"); var OperateTypeArrayAllBasicMaterialService$Wonderjs = require("../../../../record/all/material/basic/OperateTypeArrayAllBasicMaterialService.js"); function getRecord(param) { return OptionService$Wonderjs.unsafeGet(param[/* basicMaterialRecord */15]); } function setAllTypeArrDataToDefault(basicMaterialCount, defaultShaderIndex, defaultColor, param) { var defaultIsDepthTest = BufferMaterialService$Wonderjs.getDefaultIsDepthTest(/* () */0); var defaultAlpha = BufferAllBasicMaterialService$Wonderjs.getDefaultAlpha(/* () */0); var match = ArrayService$WonderCommonlib.reduceOneParam((function (param, index) { return /* tuple */[ ShaderIndicesService$Wonderjs.setShaderIndex(index, defaultShaderIndex, param[0]), OperateTypeArrayAllBasicMaterialService$Wonderjs.setColor(index, defaultColor, param[1]), OperateTypeArrayAllBasicMaterialService$Wonderjs.setIsDepthTest(index, defaultIsDepthTest, param[2]), OperateTypeArrayAllBasicMaterialService$Wonderjs.setAlpha(index, defaultAlpha, param[3]) ]; }), /* tuple */[ param[0], param[1], param[2], param[3] ], ArrayService$WonderCommonlib.range(0, basicMaterialCount - 1 | 0)); return /* tuple */[ match[0], match[1], match[2], match[3] ]; } function _setAllTypeArrDataToDefault(basicMaterialCount, defaultShaderIndex, defaultColor, param) { return /* tuple */[ param[0], setAllTypeArrDataToDefault(basicMaterialCount, defaultShaderIndex, defaultColor, /* tuple */[ param[1], param[2], param[3], param[4] ]) ]; } function _initBufferData(basicMaterialCount, defaultShaderIndex, defaultColor) { var buffer = BufferAllBasicMaterialService$Wonderjs.createBuffer(basicMaterialCount); var match = CreateTypeArrayAllBasicMaterialService$Wonderjs.createTypeArrays(buffer, basicMaterialCount); return _setAllTypeArrDataToDefault(basicMaterialCount, defaultShaderIndex, defaultColor, /* tuple */[ buffer, match[0], match[1], match[2], match[3] ]); } function create(state) { var defaultShaderIndex = DefaultTypeArrayValueService$Wonderjs.getDefaultShaderIndex(/* () */0); var defaultColor = /* array */[ 1, 1, 1 ]; var match = _initBufferData(BufferSettingService$Wonderjs.getBasicMaterialCount(state[/* settingRecord */0]), defaultShaderIndex, defaultColor); var match$1 = match[1]; state[/* basicMaterialRecord */15] = /* record */[ /* index */0, /* buffer */match[0], /* shaderIndices */match$1[0], /* colors */match$1[1], /* isDepthTests */match$1[2], /* alphas */match$1[3], /* defaultColor */defaultColor, /* gameObjectsMap */MutableSparseMapService$WonderCommonlib.createEmpty(/* () */0), /* disposedIndexArray */ArrayService$WonderCommonlib.createEmpty(/* () */0), /* nameMap */MutableSparseMapService$WonderCommonlib.createEmpty(/* () */0), /* materialArrayForWorkerInit */ArrayService$WonderCommonlib.createEmpty(/* () */0) ]; return state; } function deepCopyForRestore(state) { var record = getRecord(state); var index = record[/* index */0]; var materialArrayForWorkerInit = record[/* materialArrayForWorkerInit */10]; var newrecord = Caml_array.caml_array_dup(state); newrecord[/* basicMaterialRecord */15] = /* record */[ /* index */index, /* buffer */record[/* buffer */1], /* shaderIndices */CopyTypeArrayService$Wonderjs.copyUint32ArrayWithEndIndex(Caml_int32.imul(index, BufferAllBasicMaterialService$Wonderjs.getShaderIndicesSize(/* () */0)), record[/* shaderIndices */2]), /* colors */CopyTypeArrayService$Wonderjs.copyFloat32ArrayWithEndIndex(Caml_int32.imul(index, BufferAllBasicMaterialService$Wonderjs.getColorsSize(/* () */0)), record[/* colors */3]), /* isDepthTests */CopyTypeArrayService$Wonderjs.copyUint8ArrayWithEndIndex(Caml_int32.imul(index, BufferAllBasicMaterialService$Wonderjs.getIsDepthTestsSize(/* () */0)), record[/* isDepthTests */4]), /* alphas */CopyTypeArrayService$Wonderjs.copyFloat32ArrayWithEndIndex(Caml_int32.imul(index, BufferAllBasicMaterialService$Wonderjs.getAlphasSize(/* () */0)), record[/* alphas */5]), /* defaultColor */record[/* defaultColor */6], /* gameObjectsMap */CopyTypeArrayService$Wonderjs.deepCopyMutableSparseMapOfArray(record[/* gameObjectsMap */7]), /* disposedIndexArray */record[/* disposedIndexArray */8].slice(), /* nameMap */MutableSparseMapService$WonderCommonlib.copy(record[/* nameMap */9]), /* materialArrayForWorkerInit */materialArrayForWorkerInit.slice() ]; return newrecord; } exports.getRecord = getRecord; exports.setAllTypeArrDataToDefault = setAllTypeArrDataToDefault; exports._setAllTypeArrDataToDefault = _setAllTypeArrDataToDefault; exports._initBufferData = _initBufferData; exports.create = create; exports.deepCopyForRestore = deepCopyForRestore; /* OptionService-Wonderjs Not a pure module */