wonder.js
Version:
126 lines (122 loc) • 13.7 kB
JavaScript
'use strict';
var Curry = require("bs-platform/lib/js/curry.js");
var Sinon = require("wonder-bs-sinon/lib/js/src/sinon.js");
var Sinon$1 = require("sinon");
var Caml_option = require("bs-platform/lib/js/caml_option.js");
var Wonder_jest = require("wonder-bs-jest/lib/js/src/wonder_jest.js");
var CameraTool$Wonderjs = require("../../../tool/service/camera/CameraTool.js");
var FakeGlTool$Wonderjs = require("../../../tool/gl/FakeGlTool.js");
var DirectorTool$Wonderjs = require("../../../tool/core/DirectorTool.js");
var TransformAPI$Wonderjs = require("../../../../src/api/TransformAPI.js");
var GameObjectAPI$Wonderjs = require("../../../../src/api/GameObjectAPI.js");
var MainStateTool$Wonderjs = require("../../../tool/service/state/MainStateTool.js");
var TransformTool$Wonderjs = require("../../../tool/service/transform/TransformTool.js");
var RenderJobsTool$Wonderjs = require("../../../tool/job/no_worker/loop/RenderJobsTool.js");
var GLSLLocationTool$Wonderjs = require("../../../tool/service/location/GLSLLocationTool.js");
var LoopRenderJobTool$Wonderjs = require("../../../tool/job/no_worker/loop/LoopRenderJobTool.js");
var RenderBasicJobTool$Wonderjs = require("../../../tool/job/render_basic/RenderBasicJobTool.js");
Wonder_jest.describe("test defer dispose", (function (param) {
var sandbox = Sinon.getSandboxDefaultVal(/* () */0);
var state = /* record */[/* contents */MainStateTool$Wonderjs.createState(/* () */0)];
beforeEach((function () {
sandbox[0] = Sinon$1.sandbox.create();
state[0] = RenderJobsTool$Wonderjs.initWithJobConfig(sandbox, LoopRenderJobTool$Wonderjs.buildNoWorkerJobConfig(/* () */0));
return /* () */0;
}));
afterEach((function () {
return Curry._1(Sinon.restoreSandbox, sandbox[0]);
}));
return Wonder_jest.describe("defer dispose to the time which before update_transform job", (function (param) {
return Wonder_jest.describe("test defer batch dispose gameObject", (function (param) {
Wonder_jest.test("dispose before update_transform", (function (param) {
var match = RenderBasicJobTool$Wonderjs.prepareGameObject(sandbox, state[0]);
var gameObject1 = match[1];
var state$1 = match[0];
var transform1 = GameObjectAPI$Wonderjs.unsafeGetGameObjectTransformComponent(gameObject1, state$1);
var match$1 = RenderBasicJobTool$Wonderjs.prepareGameObject(sandbox, state$1);
var state$2 = match$1[0];
var transform2 = GameObjectAPI$Wonderjs.unsafeGetGameObjectTransformComponent(match$1[1], state$2);
var match$2 = CameraTool$Wonderjs.createCameraGameObject(state$2);
var state$3 = FakeGlTool$Wonderjs.setFakeGl(FakeGlTool$Wonderjs.buildFakeGl(sandbox, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0), match$2[0]);
var state$4 = TransformAPI$Wonderjs.setTransformLocalPosition(transform2, /* tuple */[
4,
5,
6
], TransformAPI$Wonderjs.setTransformLocalPosition(transform1, /* tuple */[
1,
2,
3
], TransformAPI$Wonderjs.setTransformParent(transform1, transform2, state$3)));
var state$5 = GameObjectAPI$Wonderjs.batchDisposeGameObject(/* array */[gameObject1], state$4);
var state$6 = DirectorTool$Wonderjs.runWithDefaultTime(RenderJobsTool$Wonderjs.init(state$5));
return Curry._2(Wonder_jest.Expect[/* Operators */25][/* = */5], Wonder_jest.Expect[/* expect */0](TransformTool$Wonderjs.getLocalToWorldMatrixTypeArray(transform2, state$6)), new Float32Array(/* array */[
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
4,
5,
6,
1
]));
}));
return Wonder_jest.describe("dispose before render", (function (param) {
return Wonder_jest.test("not send disposed one's uniform data", (function (param) {
var match = RenderBasicJobTool$Wonderjs.prepareGameObject(sandbox, state[0]);
var gameObject1 = match[1];
var state$1 = match[0];
var transform1 = GameObjectAPI$Wonderjs.unsafeGetGameObjectTransformComponent(gameObject1, state$1);
var match$1 = RenderBasicJobTool$Wonderjs.prepareGameObject(sandbox, state$1);
var state$2 = match$1[0];
var transform2 = GameObjectAPI$Wonderjs.unsafeGetGameObjectTransformComponent(match$1[1], state$2);
var match$2 = CameraTool$Wonderjs.createCameraGameObject(state$2);
var uniformMatrix4fv = Sinon.createEmptyStubWithJsObjSandbox(sandbox);
var getUniformLocation = GLSLLocationTool$Wonderjs.getUniformLocation(0, sandbox, "u_mMatrix");
var state$3 = FakeGlTool$Wonderjs.setFakeGl(FakeGlTool$Wonderjs.buildFakeGl(sandbox, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, Caml_option.some(getUniformLocation), undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, Caml_option.some(uniformMatrix4fv), undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, /* () */0), match$2[0]);
var state$4 = TransformAPI$Wonderjs.setTransformLocalPosition(transform2, /* tuple */[
4,
5,
6
], TransformAPI$Wonderjs.setTransformLocalPosition(transform1, /* tuple */[
1,
2,
3
], TransformAPI$Wonderjs.setTransformParent(transform1, transform2, state$3)));
var state$5 = GameObjectAPI$Wonderjs.batchDisposeGameObject(/* array */[gameObject1], state$4);
DirectorTool$Wonderjs.runWithDefaultTime(RenderJobsTool$Wonderjs.init(state$5));
return Sinon.toCalledWith(/* array */[
0,
false,
new Float32Array(/* array */[
1,
0,
0,
0,
0,
1,
0,
0,
0,
0,
1,
0,
1,
2,
3,
1
])
], Wonder_jest.Expect[/* not__ */24](Wonder_jest.Expect[/* expect */0](uniformMatrix4fv)));
}));
}));
}));
}));
}));
/* Not a pure module */