UNPKG

wonder.js

Version:
76 lines (68 loc) 5.04 kB
'use strict'; var ArrayService$WonderCommonlib = require("wonder-commonlib/lib/js/src/ArrayService.js"); var AllGLSLLocationService$Wonderjs = require("../../service/record/all/location/AllGLSLLocationService.js"); var AllDeviceManagerService$Wonderjs = require("../../service/record/all/device/AllDeviceManagerService.js"); var UseProgramRenderService$Wonderjs = require("../../service/state/render/program/UseProgramRenderService.js"); var OperateCameraRenderService$Wonderjs = require("../../service/state/render/camera/OperateCameraRenderService.js"); var HandleUniformShaderCachableService$Wonderjs = require("../../service/record/all/sender/uniform/HandleUniformShaderCachableService.js"); var HandleUniformShaderNoCachableService$Wonderjs = require("../../service/record/all/sender/uniform/HandleUniformShaderNoCachableService.js"); var CreateGetRenederDataSubStateRenderService$Wonderjs = require("../../service/state/render/sub/get_render_data/CreateGetRenederDataSubStateRenderService.js"); var CreateSendRenederDataSubStateRenderService$Wonderjs = require("../../service/state/render/sub/send_render_data/CreateSendRenederDataSubStateRenderService.js"); var HandleUniformShaderCachableFunctionService$Wonderjs = require("../../service/record/all/sender/uniform/HandleUniformShaderCachableFunctionService.js"); var _useProgram = UseProgramRenderService$Wonderjs.useByShaderIndex; function _sendNoCachableData(gl, renderState) { return HandleUniformShaderNoCachableService$Wonderjs.reduceiValidShaderSendNoCachableData(renderState[/* glslSenderRecord */3], (function (renderState, dataArr, shaderIndex) { var renderState$1 = UseProgramRenderService$Wonderjs.useByShaderIndex(gl, shaderIndex, renderState); ArrayService$WonderCommonlib.reduceOneParam((function (getRenderDataSubState, param) { var pos = param[/* pos */0]; var match = AllGLSLLocationService$Wonderjs.isUniformLocationExist(pos); if (match) { param[/* sendDataFunc */2](gl, pos, param[/* getDataFunc */1](getRenderDataSubState)); } return getRenderDataSubState; }), CreateGetRenederDataSubStateRenderService$Wonderjs.createState(renderState$1), dataArr); return renderState$1; }), renderState); } function _sendCachableData(gl, renderState) { return HandleUniformShaderCachableService$Wonderjs.reduceiValidShaderSendCachableData(renderState[/* glslSenderRecord */3], (function (renderState, dataArr, shaderIndex) { var renderState$1 = UseProgramRenderService$Wonderjs.useByShaderIndex(gl, shaderIndex, renderState); ArrayService$WonderCommonlib.reduceOneParam((function (getRenderDataSubState, param) { param[/* sendDataFunc */4](gl, param[/* shaderCacheMap */0], /* tuple */[ param[/* name */1], param[/* pos */2] ], param[/* getDataFunc */3](getRenderDataSubState)); return getRenderDataSubState; }), CreateGetRenederDataSubStateRenderService$Wonderjs.createState(renderState$1), dataArr); return renderState$1; }), renderState); } function _sendCachableFunctionData(gl, renderState) { return HandleUniformShaderCachableFunctionService$Wonderjs.reduceiValidShaderSendCachableFunctionData(renderState[/* glslSenderRecord */3], (function (renderState, dataArr, shaderIndex) { var renderState$1 = UseProgramRenderService$Wonderjs.useByShaderIndex(gl, shaderIndex, renderState); ArrayService$WonderCommonlib.reduceOneParam((function (sendRenderDataSubState, param) { param[/* sendCachableFunctionDataFunc */3](gl, /* tuple */[ param[/* program */0], param[/* shaderCacheMap */1], param[/* locationMap */2] ], sendRenderDataSubState); return sendRenderDataSubState; }), CreateSendRenederDataSubStateRenderService$Wonderjs.createState(renderState$1), dataArr); return renderState$1; }), renderState); } function execJob(renderState) { var match = !OperateCameraRenderService$Wonderjs.hasCameraRecord(renderState); if (match) { return renderState; } else { var gl = AllDeviceManagerService$Wonderjs.unsafeGetGl(renderState[/* deviceManagerRecord */20]); return _sendCachableFunctionData(gl, _sendCachableData(gl, _sendNoCachableData(gl, renderState))); } } exports._useProgram = _useProgram; exports._sendNoCachableData = _sendNoCachableData; exports._sendCachableData = _sendCachableData; exports._sendCachableFunctionData = _sendCachableFunctionData; exports.execJob = execJob; /* AllDeviceManagerService-Wonderjs Not a pure module */