UNPKG

wonder.js

Version:
247 lines (228 loc) 13.1 kB
'use strict'; var Curry = require("bs-platform/lib/js/curry.js"); var Sinon = require("wonder-bs-sinon/lib/js/src/sinon.js"); var Caml_array = require("bs-platform/lib/js/caml_array.js"); var Caml_option = require("bs-platform/lib/js/caml_option.js"); var SinonTool$Wonderjs = require("../../../integration/no_worker/tool/sinon/SinonTool.js"); var DomService$Wonderjs = require("../../../../src/service/primitive/DomService.js"); var MainStateTool$Wonderjs = require("../state/MainStateTool.js"); var ParseSettingService$Wonderjs = require("../../../../src/service/record/main/setting/ParseSettingService.js"); var BufferSettingService$Wonderjs = require("../../../../src/service/record/main/setting/BufferSettingService.js"); var OperateSettingService$Wonderjs = require("../../../../src/service/record/main/setting/OperateSettingService.js"); var ConfigDataLoaderSystem$Wonderjs = require("../../../../src/asset/ConfigDataLoaderSystem.js"); var CreateStateMainService$Wonderjs = require("../../../../src/service/state/main/state/CreateStateMainService.js"); function createGetContextStub(fakeGl, sandbox) { return Sinon.returns(fakeGl, Curry._1(Sinon.createEmptyStub, sandbox[0])); } function buildFakeGl(sandbox) { return { viewport: Curry._1(Sinon.createEmptyStub, sandbox[0]), getParameter: Sinon.returns(0, Curry._1(Sinon.createEmptyStub, sandbox[0])), getShaderPrecisionFormat: Sinon.returns({ precision: 1 }, Curry._1(Sinon.createEmptyStub, sandbox[0])), getExtension: Sinon.returns(1, Curry._1(Sinon.createEmptyStub, sandbox[0])) }; } function buildFakeCanvasWithSize(gl, sandbox, $staropt$star, $staropt$star$1, $staropt$star$2, param) { var id = $staropt$star !== undefined ? $staropt$star : "a"; var width = $staropt$star$1 !== undefined ? $staropt$star$1 : 1; var height = $staropt$star$2 !== undefined ? $staropt$star$2 : 1; return { id: id, nodeType: 1, style: { left: "", top: "", width: "", height: "", position: "static" }, width: width, height: height, getContext: createGetContextStub(gl, sandbox) }; } function buildFakeCanvas(id, gl, sandbox) { return buildFakeCanvasWithSize(gl, sandbox, id, undefined, undefined, /* () */0); } function buildFakeDomForNotPassCanvasId(sandbox) { var fakeGl = buildFakeGl(sandbox); var canvasDom = buildFakeCanvas("a", fakeGl, sandbox); var div = { innerHTML: "", firstChild: canvasDom }; var body = { prepend: Curry._1(Sinon.createEmptyStub, sandbox[0]), style: { cssText: "" } }; var createElementStub = Curry._3(SinonTool$Wonderjs.createMethodStub, sandbox[0], document, "createElement"); Sinon.returns(div, Sinon.withOneArg("div", createElementStub)); Sinon.returns(canvasDom, Sinon.withOneArg("canvas", createElementStub)); Sinon.returns(/* :: */[ body, /* [] */0 ], Sinon.withOneArg("body", Curry._3(Sinon.createMethodStub, sandbox[0], document, "querySelectorAll"))); return /* tuple */[ canvasDom, fakeGl, div, body ]; } function buildFakeDiv(canvasDom) { return DomService$Wonderjs.buildDom("<div></div>"); } function buildFakeCanvasForNotPassCanvasIdWithCanvas(sandbox, canvasDom) { var div = DomService$Wonderjs.buildDom("<div></div>"); var body = { prepend: Curry._1(Sinon.createEmptyStub, sandbox[0]), style: { cssText: "" } }; var createElementStub = Curry._3(SinonTool$Wonderjs.createMethodStub, sandbox[0], document, "createElement"); Sinon.returns(div, Sinon.withOneArg("div", createElementStub)); Sinon.returns(canvasDom, Sinon.withOneArg("canvas", createElementStub)); Sinon.returns(/* :: */[ body, /* [] */0 ], Sinon.withOneArg("body", Curry._3(SinonTool$Wonderjs.createMethodStub, sandbox[0], document, "querySelectorAll"))); return canvasDom; } function buildSetting(isDebug, canvasId, buffer, context, useHardwareInstance, useWorker) { if (canvasId !== undefined) { return "\n {\n \"is_debug\": " + (String(isDebug) + (",\n \"canvas_id\": \"" + (String(Caml_option.valFromOption(canvasId)) + ("\",\n \"context\": " + (String(context) + (",\n \"buffer\": " + (String(buffer) + (",\n \"gpu\": {\n \"use_hardware_instance\": " + (String(useHardwareInstance) + ("\n },\n \"worker\": {\n \"use_worker\": " + (String(useWorker) + "\n }\n}\n "))))))))))); } else { return "\n {\n \"is_debug\": " + (String(isDebug) + (",\n \"context\": " + (String(context) + (",\n \"buffer\": " + (String(buffer) + (",\n \"gpu\": {\n \"use_hardware_instance\": " + (String(useHardwareInstance) + ("\n },\n \"worker\": {\n \"use_worker\": " + (String(useWorker) + "\n }\n}\n "))))))))); } } function buildBufferConfigStr($staropt$star, $staropt$star$1, $staropt$star$2, $staropt$star$3, $staropt$star$4, $staropt$star$5, $staropt$star$6, $staropt$star$7, $staropt$star$8, $staropt$star$9, $staropt$star$10, $staropt$star$11, $staropt$star$12, param) { var geometryPointCount = $staropt$star !== undefined ? $staropt$star : 300; var geometryCount = $staropt$star$1 !== undefined ? $staropt$star$1 : 30; var transformCount = $staropt$star$2 !== undefined ? $staropt$star$2 : 50; var basicMaterialCount = $staropt$star$3 !== undefined ? $staropt$star$3 : 48; var lightMaterialCount = $staropt$star$4 !== undefined ? $staropt$star$4 : 48; var directionLightCount = $staropt$star$5 !== undefined ? $staropt$star$5 : 50; var pointLightCount = $staropt$star$6 !== undefined ? $staropt$star$6 : 50; var meshRendererCount = $staropt$star$7 !== undefined ? $staropt$star$7 : 50; var basicSourceTextureCount = $staropt$star$8 !== undefined ? $staropt$star$8 : 48; var arrayBufferViewSourceTextureCount = $staropt$star$9 !== undefined ? $staropt$star$9 : 48; var cubemapTextureCount = $staropt$star$10 !== undefined ? $staropt$star$10 : 48; var sourceInstanceCount = $staropt$star$11 !== undefined ? $staropt$star$11 : 2; var objectInstanceCountPerSourceInstance = $staropt$star$12 !== undefined ? $staropt$star$12 : 100; return "\n {\n \"geometry_point_count\": " + (String(geometryPointCount) + (",\n \"geometry_count\": " + (String(geometryCount) + (",\n \"transform_count\": " + (String(transformCount) + (",\n \"basic_material_count\": " + (String(basicMaterialCount) + (",\n \"light_material_count\": " + (String(lightMaterialCount) + (",\n \"direction_light_count\": " + (String(directionLightCount) + (",\n \"point_light_count\": " + (String(pointLightCount) + (",\n \"meshRenderer_count\": " + (String(meshRendererCount) + (",\n \"basic_source_texture_count\": " + (String(basicSourceTextureCount) + (",\n \"arrayBuffer_view_source_texture_count\": " + (String(arrayBufferViewSourceTextureCount) + (",\n \"cubemap_texture_count\": " + (String(cubemapTextureCount) + (",\n \"instance_buffer\": {\n \"sourceInstance_count\": " + (String(sourceInstanceCount) + (",\n\"objectInstance_count_per_source_instance\": " + (String(objectInstanceCountPerSourceInstance) + "\n }\n }\n "))))))))))))))))))))))))); } function setToStateData(state, isDebug, canvasId, context, useHardwareInstance, useWorker, buffer) { var stateData = MainStateTool$Wonderjs.getStateData(/* () */0); return MainStateTool$Wonderjs.setState(ConfigDataLoaderSystem$Wonderjs._createRecordWithState(ConfigDataLoaderSystem$Wonderjs._setSetting(stateData, state, ParseSettingService$Wonderjs.convertToRecord(JSON.parse(buildSetting(isDebug, canvasId, buffer, context, useHardwareInstance, useWorker)))))); } function createStateAndSetToStateData($staropt$star, $staropt$star$1, $staropt$star$2, $staropt$star$3, $staropt$star$4, $staropt$star$5, param) { var isDebug = $staropt$star !== undefined ? $staropt$star : "true"; var canvasId = $staropt$star$1 !== undefined ? Caml_option.valFromOption($staropt$star$1) : undefined; var context = $staropt$star$2 !== undefined ? $staropt$star$2 : "\n {\n \"alpha\": true,\n \"depth\": true,\n \"stencil\": false,\n \"antialias\": true,\n \"premultiplied_alpha\": true,\n \"preserve_drawing_buffer\": false\n }\n "; var useHardwareInstance = $staropt$star$3 !== undefined ? $staropt$star$3 : "false"; var useWorker = $staropt$star$4 !== undefined ? $staropt$star$4 : "false"; var buffer = $staropt$star$5 !== undefined ? $staropt$star$5 : buildBufferConfigStr(undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0); return setToStateData(CreateStateMainService$Wonderjs.createState(/* () */0), isDebug, canvasId, context, useHardwareInstance, useWorker, buffer); } function setMemory(state, $staropt$star, param) { var maxDisposeCount = $staropt$star !== undefined ? $staropt$star : 1000; var newrecord = Caml_array.caml_array_dup(state); var init = state[/* settingRecord */0]; var init$1 = OperateSettingService$Wonderjs.unsafeGetMemory(state[/* settingRecord */0]); newrecord[/* settingRecord */0] = /* record */[ /* canvasId */init[/* canvasId */0], /* memory *//* record */[ /* maxDisposeCount */maxDisposeCount, /* maxTypeArrayPoolSize */init$1[/* maxTypeArrayPoolSize */1], /* maxBigTypeArrayPoolSize */init$1[/* maxBigTypeArrayPoolSize */2] ], /* buffer */init[/* buffer */2], /* isDebug */init[/* isDebug */3], /* context */init[/* context */4], /* gpu */init[/* gpu */5], /* worker */init[/* worker */6] ]; return newrecord; } function setBufferSize(state, $staropt$star, param) { var geometryPointCount = $staropt$star !== undefined ? $staropt$star : 100; var newrecord = Caml_array.caml_array_dup(state); var init = state[/* settingRecord */0]; var init$1 = BufferSettingService$Wonderjs.unsafeGetBuffer(state[/* settingRecord */0]); newrecord[/* settingRecord */0] = /* record */[ /* canvasId */init[/* canvasId */0], /* memory */init[/* memory */1], /* buffer *//* record */[ /* geometryPointCount */geometryPointCount, /* geometryCount */init$1[/* geometryCount */1], /* transformCount */init$1[/* transformCount */2], /* basicMaterialCount */init$1[/* basicMaterialCount */3], /* lightMaterialCount */init$1[/* lightMaterialCount */4], /* directionLightCount */init$1[/* directionLightCount */5], /* pointLightCount */init$1[/* pointLightCount */6], /* basicSourceTextureCount */init$1[/* basicSourceTextureCount */7], /* arrayBufferViewSourceTextureCount */init$1[/* arrayBufferViewSourceTextureCount */8], /* cubemapTextureCount */init$1[/* cubemapTextureCount */9], /* meshRendererCount */init$1[/* meshRendererCount */10], /* instanceBuffer */init$1[/* instanceBuffer */11] ], /* isDebug */init[/* isDebug */3], /* context */init[/* context */4], /* gpu */init[/* gpu */5], /* worker */init[/* worker */6] ]; return newrecord; } function unsafeGetGPU(state) { return OperateSettingService$Wonderjs.unsafeGetGPU(state[/* settingRecord */0]); } function setGPU(config, state) { var newrecord = Caml_array.caml_array_dup(state); var init = state[/* settingRecord */0]; newrecord[/* settingRecord */0] = /* record */[ /* canvasId */init[/* canvasId */0], /* memory */init[/* memory */1], /* buffer */init[/* buffer */2], /* isDebug */init[/* isDebug */3], /* context */init[/* context */4], /* gpu */config, /* worker */init[/* worker */6] ]; return newrecord; } function setUseWorker(isUseWorker, state) { var newrecord = Caml_array.caml_array_dup(state); var init = state[/* settingRecord */0]; newrecord[/* settingRecord */0] = /* record */[ /* canvasId */init[/* canvasId */0], /* memory */init[/* memory */1], /* buffer */init[/* buffer */2], /* isDebug */init[/* isDebug */3], /* context */init[/* context */4], /* gpu */init[/* gpu */5], /* worker *//* record */[/* useWorker */isUseWorker] ]; return newrecord; } exports.createGetContextStub = createGetContextStub; exports.buildFakeGl = buildFakeGl; exports.buildFakeCanvasWithSize = buildFakeCanvasWithSize; exports.buildFakeCanvas = buildFakeCanvas; exports.buildFakeDomForNotPassCanvasId = buildFakeDomForNotPassCanvasId; exports.buildFakeDiv = buildFakeDiv; exports.buildFakeCanvasForNotPassCanvasIdWithCanvas = buildFakeCanvasForNotPassCanvasIdWithCanvas; exports.buildSetting = buildSetting; exports.buildBufferConfigStr = buildBufferConfigStr; exports.setToStateData = setToStateData; exports.createStateAndSetToStateData = createStateAndSetToStateData; exports.setMemory = setMemory; exports.setBufferSize = setBufferSize; exports.unsafeGetGPU = unsafeGetGPU; exports.setGPU = setGPU; exports.setUseWorker = setUseWorker; /* Sinon Not a pure module */