UNPKG

wonder.js

Version:
65 lines (57 loc) 3.4 kB
'use strict'; var Log$WonderLog = require("wonder-log/lib/js/src/Log.js"); var Contract$WonderLog = require("wonder-log/lib/js/src/Contract.js"); var StateDataMain$Wonderjs = require("../../../state/main/data/StateDataMain.js"); var ArrayMapService$Wonderjs = require("../../../atom/ArrayMapService.js"); var IsDebugMainService$Wonderjs = require("../../../state/main/state/IsDebugMainService.js"); var DefaultTypeArrayValueService$Wonderjs = require("../../../primitive/buffer/DefaultTypeArrayValueService.js"); var MutableSparseMapService$WonderCommonlib = require("wonder-commonlib/lib/js/src/MutableSparseMapService.js"); var HandleUniformShaderCachableService$Wonderjs = require("../sender/uniform/HandleUniformShaderCachableService.js"); var HandleUniformShaderNoCachableService$Wonderjs = require("../sender/uniform/HandleUniformShaderNoCachableService.js"); var HandleUniformShaderCachableFunctionService$Wonderjs = require("../sender/uniform/HandleUniformShaderCachableFunctionService.js"); function genereateShaderIndex(record) { var index = record[/* index */0]; record[/* index */0] = index + 1 | 0; return Contract$WonderLog.ensureCheck((function (r) { var defaultShaderIndex = DefaultTypeArrayValueService$Wonderjs.getDefaultShaderIndex(/* () */0); return Contract$WonderLog.test(Log$WonderLog.buildAssertMessage("not equal default shader index:" + (String(defaultShaderIndex) + " "), "equal"), (function (param) { return Contract$WonderLog.Operators[/* <>= */3](r, defaultShaderIndex); })); }), IsDebugMainService$Wonderjs.getIsDebug(StateDataMain$Wonderjs.stateData), index); } function _hasMaterialUseShader(shaderIndex, material, materialsMap) { var match = MutableSparseMapService$WonderCommonlib.get(shaderIndex, materialsMap); if (match !== undefined) { return match.length > 0; } else { return false; } } function _removeShaderIndexUsedInSendUniformShaderDataJob(shaderIndex, glslSenderRecord) { return HandleUniformShaderNoCachableService$Wonderjs.removeData(shaderIndex, HandleUniformShaderCachableService$Wonderjs.removeData(shaderIndex, HandleUniformShaderCachableFunctionService$Wonderjs.removeData(shaderIndex, glslSenderRecord))); } function removeShaderIndexFromMaterial(shaderIndex, material, shaderRecord, glslSenderRecord) { var materialsMap = shaderRecord[/* materialsMap */3]; ArrayMapService$Wonderjs.removeValue(shaderIndex, material, materialsMap); var match = _hasMaterialUseShader(shaderIndex, material, materialsMap); if (match) { return /* tuple */[ shaderRecord, glslSenderRecord ]; } else { return /* tuple */[ shaderRecord, _removeShaderIndexUsedInSendUniformShaderDataJob(shaderIndex, glslSenderRecord) ]; } } function isDefaultShaderIndex(shaderIndex) { return shaderIndex === DefaultTypeArrayValueService$Wonderjs.getDefaultShaderIndex(/* () */0); } exports.genereateShaderIndex = genereateShaderIndex; exports._hasMaterialUseShader = _hasMaterialUseShader; exports._removeShaderIndexUsedInSendUniformShaderDataJob = _removeShaderIndexUsedInSendUniformShaderDataJob; exports.removeShaderIndexFromMaterial = removeShaderIndexFromMaterial; exports.isDefaultShaderIndex = isDefaultShaderIndex; /* Log-WonderLog Not a pure module */