UNPKG

wonder.js

Version:
68 lines (63 loc) 5.39 kB
'use strict'; var Most = require("most"); var Curry = require("bs-platform/lib/js/curry.js"); var ArrayService$Wonderjs = require("../../../../service/atom/ArrayService.js"); var OptionService$Wonderjs = require("../../../../service/atom/OptionService.js"); var MessageService$Wonderjs = require("../../../../service/primitive/worker/MessageService.js"); var AssetIMGUIAPI$WonderImgui = require("wonder-imgui/lib/js/src/api/AssetIMGUIAPI.js"); var ManageIMGUIAPI$WonderImgui = require("wonder-imgui/lib/js/src/api/ManageIMGUIAPI.js"); var SkinAllIMGUIService$Wonderjs = require("../../../../service/record/all/imgui/SkinAllIMGUIService.js"); var AllDeviceManagerService$Wonderjs = require("../../../../service/record/all/device/AllDeviceManagerService.js"); var StateRenderWorkerService$Wonderjs = require("../../../../service/state/render_worker/state/StateRenderWorkerService.js"); var CustomControlAllIMGUIService$Wonderjs = require("../../../../service/record/all/imgui/CustomControlAllIMGUIService.js"); var ExtendIMGUIRenderWorkerService$Wonderjs = require("../../../../service/state/render_worker/imgui/ExtendIMGUIRenderWorkerService.js"); var ImageBitmapRenderWorkerService$Wonderjs = require("../../../../service/state/render_worker/texture/ImageBitmapRenderWorkerService.js"); var RecordIMGUIRenderWorkerService$Wonderjs = require("../../../../service/state/render_worker/imgui/RecordIMGUIRenderWorkerService.js"); function _getFlipY(state) { return false; } function execJob(param, e, stateData) { var data = MessageService$Wonderjs.getRecord(e); var imguiData = data.imguiData; var match = OptionService$Wonderjs.isJsonSerializedValueNone(imguiData.fntData) || OptionService$Wonderjs.isJsonSerializedValueNone(imguiData.bitmapImageData); if (match) { return Most.just(e); } else { var state = StateRenderWorkerService$Wonderjs.unsafeGetState(stateData); var extendData = imguiData.extendData; var customControlData = extendData.customControlData; var funcMap = Curry._1(ExtendIMGUIRenderWorkerService$Wonderjs.ExtendData[/* CustomControl */0][/* deserializeFuncMap */1], customControlData.funcMap); var skinData = extendData.skinData; var allSkinDataMap = Curry._1(ExtendIMGUIRenderWorkerService$Wonderjs.ExtendData[/* Skin */1][/* deserializeAllSkinDataMap */1], skinData.allSkinDataMap); return Most.map((function (param) { return e; }), Most.fromPromise(ImageBitmapRenderWorkerService$Wonderjs.createImageBitmapFromImageData(OptionService$Wonderjs.unsafeGetJsonSerializedValue(imguiData.bitmapImageData), _getFlipY, state).then((function (imageBitmap) { var state = StateRenderWorkerService$Wonderjs.unsafeGetState(stateData); var imguiRecord = AssetIMGUIAPI$WonderImgui.setFntData(JSON.parse(OptionService$Wonderjs.unsafeGetJsonSerializedValue(imguiData.fntData)), AssetIMGUIAPI$WonderImgui.setBitmap(imageBitmap, RecordIMGUIRenderWorkerService$Wonderjs.getRecord(state))); state[/* imguiRecord */29] = imguiRecord; return Promise.resolve(StateRenderWorkerService$Wonderjs.setState(stateData, state)); }))).concat(Most.fromPromise(Most.reduce((function (customImageArr, imageData) { return ArrayService$Wonderjs.push(imageData, customImageArr); }), /* array */[], Most.mergeArray(imguiData.customTextureSourceDataArr.map((function (param) { var imageType = param[2]; var id = param[1]; return Most.fromPromise(ImageBitmapRenderWorkerService$Wonderjs.createImageBitmapFromImageData(param[0], _getFlipY, state).then((function (imageBitmap) { return Promise.resolve(/* tuple */[ imageBitmap, id, imageType ]); }))); })))).then((function (customImageArr) { var state = StateRenderWorkerService$Wonderjs.unsafeGetState(stateData); state[/* imguiRecord */29] = SkinAllIMGUIService$Wonderjs.mergeAllSkinDataMapsToWonderImguiIMGUIRecord(allSkinDataMap, CustomControlAllIMGUIService$Wonderjs.registerAllCustomControlsToWonderImguiIMGUIRecord(funcMap, ManageIMGUIAPI$WonderImgui.init(AllDeviceManagerService$Wonderjs.unsafeGetGl(state[/* deviceManagerRecord */4]), /* tuple */[ imguiData.canvasWidth, imguiData.canvasHeight ], AssetIMGUIAPI$WonderImgui.setCustomImageArr(customImageArr, state[/* imguiRecord */29])))); return Promise.resolve(StateRenderWorkerService$Wonderjs.setState(stateData, state)); }))))); } } exports._getFlipY = _getFlipY; exports.execJob = execJob; /* most Not a pure module */