@akashic/headless-driver 1.11.37 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1728 -0
- package/README.md +30 -0
- package/lib/ExecuteVmScriptV1.d.ts +2 -2
- package/lib/ExecuteVmScriptV1.js +2 -2
- package/lib/ExecuteVmScriptV2.d.ts +2 -2
- package/lib/ExecuteVmScriptV2.js +2 -2
- package/lib/ExecuteVmScriptV3.d.ts +2 -2
- package/lib/ExecuteVmScriptV3.js +2 -2
- package/lib/Looper.d.ts +24 -0
- package/lib/Looper.js +79 -0
- package/lib/index.d.ts +3 -11
- package/lib/index.js +8 -12
- package/lib/play/AMFlowClientManager.d.ts +1 -1
- package/lib/play/Play.d.ts +1 -1
- package/lib/play/PlayManager.d.ts +5 -5
- package/lib/play/amflow/AMFlowClient.d.ts +4 -4
- package/lib/play/amflow/AMFlowStore.d.ts +3 -3
- package/lib/play/amflow/index.d.ts +4 -0
- package/lib/play/amflow/index.js +20 -0
- package/lib/play/amflow/types.d.ts +2 -2
- package/lib/play/index.d.ts +5 -0
- package/lib/play/index.js +21 -0
- package/lib/runner/Platform.d.ts +25 -0
- package/lib/runner/Platform.js +34 -0
- package/lib/runner/Runner.d.ts +110 -0
- package/lib/runner/Runner.js +101 -0
- package/lib/runner/RunnerManager.d.ts +6 -6
- package/lib/runner/RunnerManager.js +2 -2
- package/lib/runner/index.d.ts +7 -0
- package/lib/runner/index.js +23 -0
- package/lib/runner/types.d.ts +15 -0
- package/lib/runner/types.js +2 -0
- package/lib/runner/v1/RunnerV1.d.ts +26 -0
- package/lib/runner/v1/RunnerV1.js +230 -0
- package/lib/runner/v1/index.d.ts +3 -0
- package/lib/runner/v1/index.js +23 -0
- package/lib/runner/v1/platform/NullAudioPlayer.d.ts +3 -0
- package/lib/runner/v1/platform/NullAudioPlayer.js +7 -0
- package/lib/runner/v1/platform/NullGlyphFactory.d.ts +6 -0
- package/lib/runner/v1/platform/NullGlyphFactory.js +18 -0
- package/lib/runner/v1/platform/NullRenderer.d.ts +16 -0
- package/lib/runner/v1/platform/NullRenderer.js +46 -0
- package/lib/runner/v1/platform/NullSurface.d.ts +7 -0
- package/lib/runner/v1/platform/NullSurface.js +18 -0
- package/lib/runner/v1/platform/NullVideoPlayer.d.ts +4 -0
- package/lib/runner/v1/platform/NullVideoPlayer.js +10 -0
- package/lib/runner/v1/platform/PlatformV1.d.ts +22 -0
- package/lib/runner/v1/platform/PlatformV1.js +67 -0
- package/lib/runner/v1/platform/ResourceFactory.d.ts +18 -0
- package/lib/runner/v1/platform/ResourceFactory.js +53 -0
- package/lib/runner/v1/platform/assets/NodeScriptAsset.d.ts +16 -0
- package/lib/runner/v1/platform/assets/NodeScriptAsset.js +36 -0
- package/lib/runner/v1/platform/assets/NodeTextAsset.d.ts +11 -0
- package/lib/runner/v1/platform/assets/NodeTextAsset.js +23 -0
- package/lib/runner/v1/platform/assets/NullAudioAsset.d.ts +4 -0
- package/lib/runner/v1/platform/assets/NullAudioAsset.js +10 -0
- package/lib/runner/v1/platform/assets/NullImageAsset.d.ts +6 -0
- package/lib/runner/v1/platform/assets/NullImageAsset.js +18 -0
- package/lib/runner/v1/platform/assets/NullVideoAsset.d.ts +10 -0
- package/lib/runner/v1/platform/assets/NullVideoAsset.js +25 -0
- package/lib/runner/v2/RunnerV2.d.ts +26 -0
- package/lib/runner/v2/RunnerV2.js +229 -0
- package/lib/runner/v2/index.d.ts +3 -0
- package/lib/runner/v2/index.js +23 -0
- package/lib/runner/v2/platform/NullAudioPlayer.d.ts +3 -0
- package/lib/runner/v2/platform/NullAudioPlayer.js +7 -0
- package/lib/runner/v2/platform/NullGlyphFactory.d.ts +6 -0
- package/lib/runner/v2/platform/NullGlyphFactory.js +18 -0
- package/lib/runner/v2/platform/NullRenderer.d.ts +20 -0
- package/lib/runner/v2/platform/NullRenderer.js +58 -0
- package/lib/runner/v2/platform/NullSurface.d.ts +7 -0
- package/lib/runner/v2/platform/NullSurface.js +18 -0
- package/lib/runner/v2/platform/NullVideoPlayer.d.ts +4 -0
- package/lib/runner/v2/platform/NullVideoPlayer.js +10 -0
- package/lib/runner/v2/platform/PlatformV2.d.ts +23 -0
- package/lib/runner/v2/platform/PlatformV2.js +70 -0
- package/lib/runner/v2/platform/ResourceFactory.d.ts +18 -0
- package/lib/runner/v2/platform/ResourceFactory.js +53 -0
- package/lib/runner/v2/platform/assets/NodeScriptAsset.d.ts +16 -0
- package/lib/runner/v2/platform/assets/NodeScriptAsset.js +36 -0
- package/lib/runner/v2/platform/assets/NodeTextAsset.d.ts +11 -0
- package/lib/runner/v2/platform/assets/NodeTextAsset.js +23 -0
- package/lib/runner/v2/platform/assets/NullAudioAsset.d.ts +4 -0
- package/lib/runner/v2/platform/assets/NullAudioAsset.js +10 -0
- package/lib/runner/v2/platform/assets/NullImageAsset.d.ts +6 -0
- package/lib/runner/v2/platform/assets/NullImageAsset.js +18 -0
- package/lib/runner/v2/platform/assets/NullVideoAsset.d.ts +10 -0
- package/lib/runner/v2/platform/assets/NullVideoAsset.js +25 -0
- package/lib/runner/v3/RunnerV3.d.ts +38 -0
- package/lib/runner/v3/RunnerV3.js +245 -0
- package/lib/runner/v3/engineFiles.d.ts +2 -0
- package/lib/runner/v3/engineFiles.js +31 -0
- package/lib/runner/v3/index.d.ts +5 -0
- package/lib/runner/v3/index.js +25 -0
- package/lib/runner/v3/platform/NodeCanvasResourceFactory.d.ts +22 -0
- package/lib/runner/v3/platform/NodeCanvasResourceFactory.js +57 -0
- package/lib/runner/v3/platform/NullResourceFactory.d.ts +21 -0
- package/lib/runner/v3/platform/NullResourceFactory.js +54 -0
- package/lib/runner/v3/platform/PlatformV3.d.ts +23 -0
- package/lib/runner/v3/platform/PlatformV3.js +94 -0
- package/lib/runner/v3/platform/assets/Asset.d.ts +14 -0
- package/lib/runner/v3/platform/assets/Asset.js +30 -0
- package/lib/runner/v3/platform/assets/NodeScriptAsset.d.ts +19 -0
- package/lib/runner/v3/platform/assets/NodeScriptAsset.js +48 -0
- package/lib/runner/v3/platform/assets/NodeTextAsset.d.ts +14 -0
- package/lib/runner/v3/platform/assets/NodeTextAsset.js +35 -0
- package/lib/runner/v3/platform/audios/NullAudioAsset.d.ts +15 -0
- package/lib/runner/v3/platform/audios/NullAudioAsset.js +28 -0
- package/lib/runner/v3/platform/audios/NullAudioPlayer.d.ts +17 -0
- package/lib/runner/v3/platform/audios/NullAudioPlayer.js +34 -0
- package/lib/runner/v3/platform/graphics/canvas/CompositeOperationConverter.d.ts +6 -0
- package/lib/runner/v3/platform/graphics/canvas/CompositeOperationConverter.js +78 -0
- package/lib/runner/v3/platform/graphics/canvas/NodeCanvasGlyph.d.ts +16 -0
- package/lib/runner/v3/platform/graphics/canvas/NodeCanvasGlyph.js +25 -0
- package/lib/runner/v3/platform/graphics/canvas/NodeCanvasGlyphFactory.d.ts +24 -0
- package/lib/runner/v3/platform/graphics/canvas/NodeCanvasGlyphFactory.js +204 -0
- package/lib/runner/v3/platform/graphics/canvas/NodeCanvasImageAsset.d.ts +16 -0
- package/lib/runner/v3/platform/graphics/canvas/NodeCanvasImageAsset.js +78 -0
- package/lib/runner/v3/platform/graphics/canvas/NodeCanvasRenderer.d.ts +26 -0
- package/lib/runner/v3/platform/graphics/canvas/NodeCanvasRenderer.js +72 -0
- package/lib/runner/v3/platform/graphics/canvas/NodeCanvasSurface.d.ts +14 -0
- package/lib/runner/v3/platform/graphics/canvas/NodeCanvasSurface.js +25 -0
- package/lib/runner/v3/platform/graphics/null/NullGlyph.d.ts +16 -0
- package/lib/runner/v3/platform/graphics/null/NullGlyph.js +25 -0
- package/lib/runner/v3/platform/graphics/null/NullGlyphFactory.d.ts +14 -0
- package/lib/runner/v3/platform/graphics/null/NullGlyphFactory.js +22 -0
- package/lib/runner/v3/platform/graphics/null/NullImageAsset.d.ts +13 -0
- package/lib/runner/v3/platform/graphics/null/NullImageAsset.js +24 -0
- package/lib/runner/v3/platform/graphics/null/NullRenderer.d.ts +21 -0
- package/lib/runner/v3/platform/graphics/null/NullRenderer.js +60 -0
- package/lib/runner/v3/platform/graphics/null/NullSurface.d.ts +14 -0
- package/lib/runner/v3/platform/graphics/null/NullSurface.js +26 -0
- package/lib/runner/v3/platform/videos/NullVideoAsset.d.ts +20 -0
- package/lib/runner/v3/platform/videos/NullVideoAsset.js +37 -0
- package/lib/runner/v3/platform/videos/NullVideoPlayer.d.ts +14 -0
- package/lib/runner/v3/platform/videos/NullVideoPlayer.js +25 -0
- package/lib/runner/v3/requireEngineFiles.d.ts +5 -0
- package/lib/runner/v3/requireEngineFiles.js +21 -0
- package/package.json +33 -25
|
@@ -13,13 +13,13 @@ exports.RunnerManager = void 0;
|
|
|
13
13
|
const fs = require("fs");
|
|
14
14
|
const path = require("path");
|
|
15
15
|
const url = require("url");
|
|
16
|
-
const requireEngineFiles_1 = require("@akashic/headless-driver-runner-v3/lib/requireEngineFiles");
|
|
17
16
|
const vm2_1 = require("vm2");
|
|
17
|
+
const ExecVmScriptV3 = require("..//ExecuteVmScriptV3");
|
|
18
18
|
const ExecVmScriptV1 = require("../ExecuteVmScriptV1");
|
|
19
19
|
const ExecVmScriptV2 = require("../ExecuteVmScriptV2");
|
|
20
|
-
const ExecVmScriptV3 = require("../ExecuteVmScriptV3");
|
|
21
20
|
const Logger_1 = require("../Logger");
|
|
22
21
|
const utils_1 = require("../utils");
|
|
22
|
+
const requireEngineFiles_1 = require("./v3/requireEngineFiles");
|
|
23
23
|
/**
|
|
24
24
|
* Runner を管理するマネージャ。
|
|
25
25
|
*/
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./v1"), exports);
|
|
18
|
+
__exportStar(require("./v2"), exports);
|
|
19
|
+
__exportStar(require("./v3"), exports);
|
|
20
|
+
__exportStar(require("./Platform"), exports);
|
|
21
|
+
__exportStar(require("./Runner"), exports);
|
|
22
|
+
__exportStar(require("./RunnerManager"), exports);
|
|
23
|
+
__exportStar(require("./types"), exports);
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare type RunnerExecutionMode = "active" | "passive";
|
|
2
|
+
export declare type RunnerRenderingMode = "none" | "canvas";
|
|
3
|
+
export declare type RunnerAdvanceConditionFunc = () => boolean;
|
|
4
|
+
export interface RunnerPointEvent {
|
|
5
|
+
type: "down" | "move" | "up";
|
|
6
|
+
identifier: number;
|
|
7
|
+
offset: {
|
|
8
|
+
x: number;
|
|
9
|
+
y: number;
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
export interface RunnerPlayer {
|
|
13
|
+
id: string;
|
|
14
|
+
name: string;
|
|
15
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { akashicEngine as g, gameDriver as gdr } from "aev1";
|
|
2
|
+
import type { RunnerStartParameters } from "../Runner";
|
|
3
|
+
import { Runner } from "../Runner";
|
|
4
|
+
import type { RunnerPointEvent } from "../types";
|
|
5
|
+
import { PlatformV1 } from "./platform/PlatformV1";
|
|
6
|
+
export declare type RunnerV1Game = g.Game;
|
|
7
|
+
export declare class RunnerV1 extends Runner {
|
|
8
|
+
readonly engineVersion: string;
|
|
9
|
+
readonly g: typeof g;
|
|
10
|
+
platform: PlatformV1 | null;
|
|
11
|
+
private driver;
|
|
12
|
+
private fps;
|
|
13
|
+
private running;
|
|
14
|
+
start(params?: RunnerStartParameters): Promise<RunnerV1Game | null>;
|
|
15
|
+
stop(): void;
|
|
16
|
+
pause(): void;
|
|
17
|
+
resume(): void;
|
|
18
|
+
step(): void;
|
|
19
|
+
protected _stepMinimal(): void;
|
|
20
|
+
advance(ms: number): Promise<void>;
|
|
21
|
+
changeGameDriverState(param: gdr.GameDriverInitializeParameterObject): Promise<void>;
|
|
22
|
+
firePointEvent(event: RunnerPointEvent): void;
|
|
23
|
+
getPrimarySurface(): never;
|
|
24
|
+
private initGameDriver;
|
|
25
|
+
private onSendedToExternal;
|
|
26
|
+
}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.RunnerV1 = void 0;
|
|
13
|
+
const aev1_1 = require("aev1");
|
|
14
|
+
const Runner_1 = require("../Runner");
|
|
15
|
+
const PlatformV1_1 = require("./platform/PlatformV1");
|
|
16
|
+
class RunnerV1 extends Runner_1.Runner {
|
|
17
|
+
constructor() {
|
|
18
|
+
super(...arguments);
|
|
19
|
+
this.engineVersion = "1";
|
|
20
|
+
this.g = aev1_1.akashicEngine;
|
|
21
|
+
this.platform = null;
|
|
22
|
+
this.driver = null;
|
|
23
|
+
this.fps = null;
|
|
24
|
+
this.running = false;
|
|
25
|
+
}
|
|
26
|
+
start(params) {
|
|
27
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
28
|
+
let game = null;
|
|
29
|
+
const paused = !!(params === null || params === void 0 ? void 0 : params.paused);
|
|
30
|
+
try {
|
|
31
|
+
game = yield this.initGameDriver();
|
|
32
|
+
if (!paused) {
|
|
33
|
+
this.resume();
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
catch (e) {
|
|
37
|
+
this.onError(e);
|
|
38
|
+
}
|
|
39
|
+
return game;
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
stop() {
|
|
43
|
+
if (this.driver) {
|
|
44
|
+
this.driver.stopGame();
|
|
45
|
+
this.driver = null;
|
|
46
|
+
}
|
|
47
|
+
this.running = false;
|
|
48
|
+
}
|
|
49
|
+
pause() {
|
|
50
|
+
if (this.platform == null) {
|
|
51
|
+
this.errorTrigger.fire(new Error("Cannot call Runner#pause() before initialized"));
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
this.platform.pauseLoopers();
|
|
55
|
+
this.running = false;
|
|
56
|
+
}
|
|
57
|
+
resume() {
|
|
58
|
+
if (this.platform == null) {
|
|
59
|
+
this.errorTrigger.fire(new Error("Cannot call Runner#resume() before initialized"));
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
this.platform.resumeLoopers();
|
|
63
|
+
this.running = true;
|
|
64
|
+
}
|
|
65
|
+
step() {
|
|
66
|
+
if (this.fps == null || this.platform == null) {
|
|
67
|
+
this.errorTrigger.fire(new Error("Cannot call Runner#step() before initialized"));
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
if (this.running) {
|
|
71
|
+
this.errorTrigger.fire(new Error("Cannot call Runner#step() in running"));
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
this.platform.advanceLoopers(Math.ceil(1000 / this.fps));
|
|
75
|
+
}
|
|
76
|
+
_stepMinimal() {
|
|
77
|
+
if (this.fps == null || this.platform == null) {
|
|
78
|
+
this.errorTrigger.fire(new Error("RunnerV1#_stepHalf(): Cannot call Runner#step() before initialized"));
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
if (this.running) {
|
|
82
|
+
this.errorTrigger.fire(new Error("RunnerV1#_stepHalf(): Cannot call Runner#step() in running"));
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
// NOTE: 現状 PDI の API 仕様により this.step() では厳密なフレーム更新ができない。そこで、一フレームの 1/2 の時間で進行することでフレームが飛んでしまうことを防止する。
|
|
86
|
+
this.platform.advanceLoopers(1000 / this.fps / 2);
|
|
87
|
+
}
|
|
88
|
+
advance(ms) {
|
|
89
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
90
|
+
if (this.fps == null || this.platform == null || this.driver == null) {
|
|
91
|
+
this.errorTrigger.fire(new Error("Cannot call Runner#advance() before initialized"));
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
if (this.running) {
|
|
95
|
+
this.errorTrigger.fire(new Error("Cannot call Runner#advance() in running"));
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
const { loopMode, skipThreshold } = this.driver.getLoopConfiguration();
|
|
99
|
+
// NOTE: skip の通知タイミングを一度に制限するため skipThreshold を一時的に変更する。
|
|
100
|
+
yield this.changeGameDriverState({
|
|
101
|
+
loopConfiguration: {
|
|
102
|
+
loopMode,
|
|
103
|
+
skipThreshold: Math.ceil(ms / this.fps) + 1
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
const delta = Math.ceil(1000 / this.fps);
|
|
107
|
+
let progress = 0;
|
|
108
|
+
while (progress <= ms) {
|
|
109
|
+
// NOTE: game-driver の内部実装により Looper 経由で一度に進める時間に制限がある。
|
|
110
|
+
// そのため一度に進める時間を fps に応じて分割する。
|
|
111
|
+
this.platform.advanceLoopers(delta);
|
|
112
|
+
progress += delta;
|
|
113
|
+
}
|
|
114
|
+
yield this.changeGameDriverState({
|
|
115
|
+
loopConfiguration: {
|
|
116
|
+
loopMode,
|
|
117
|
+
skipThreshold
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
changeGameDriverState(param) {
|
|
123
|
+
return new Promise((resolve, reject) => {
|
|
124
|
+
if (!this.driver) {
|
|
125
|
+
reject(new Error("Game is not started"));
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
this.driver.changeState(param, (err) => (err ? reject(err) : resolve()));
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
firePointEvent(event) {
|
|
132
|
+
if (this.platform == null) {
|
|
133
|
+
this.errorTrigger.fire(new Error("Cannot call Runner#firePointEvent() before initialized"));
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
let type;
|
|
137
|
+
if (event.type === "down") {
|
|
138
|
+
type = 0 /* Down */;
|
|
139
|
+
}
|
|
140
|
+
else if (event.type === "move") {
|
|
141
|
+
type = 1 /* Move */;
|
|
142
|
+
}
|
|
143
|
+
else if (event.type === "up") {
|
|
144
|
+
type = 2 /* Up */;
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
this.errorTrigger.fire(new Error(`RunnerV1#firePointEvent(): unknown event type: ${event.type}`));
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
this.platform.firePointEvent({
|
|
151
|
+
type,
|
|
152
|
+
identifier: event.identifier,
|
|
153
|
+
offset: event.offset
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
getPrimarySurface() {
|
|
157
|
+
throw new Error("RunnerV1#getPrimarySurface(): Not supported");
|
|
158
|
+
}
|
|
159
|
+
initGameDriver() {
|
|
160
|
+
return new Promise((resolve, reject) => {
|
|
161
|
+
if (this.driver) {
|
|
162
|
+
this.driver.destroy();
|
|
163
|
+
this.driver = null;
|
|
164
|
+
}
|
|
165
|
+
const player = {
|
|
166
|
+
id: this.player ? this.player.id : undefined,
|
|
167
|
+
name: this.player ? this.player.name : undefined
|
|
168
|
+
};
|
|
169
|
+
const executionMode = this.executionMode === "active" ? aev1_1.gameDriver.ExecutionMode.Active : aev1_1.gameDriver.ExecutionMode.Passive;
|
|
170
|
+
this.platform = new PlatformV1_1.PlatformV1({
|
|
171
|
+
configurationBaseUrl: this.configurationBaseUrl,
|
|
172
|
+
assetBaseUrl: this.assetBaseUrl,
|
|
173
|
+
amflow: this.amflow,
|
|
174
|
+
trusted: this.trusted,
|
|
175
|
+
renderingMode: this.renderingMode,
|
|
176
|
+
sendToExternalHandler: (data) => this.onSendedToExternal(data),
|
|
177
|
+
errorHandler: (e) => this.onError(e),
|
|
178
|
+
loadFileHandler: (url, callback) => this.loadFileHandler(url, callback)
|
|
179
|
+
});
|
|
180
|
+
this.pause();
|
|
181
|
+
const driver = new aev1_1.gameDriver.GameDriver({
|
|
182
|
+
platform: this.platform,
|
|
183
|
+
player,
|
|
184
|
+
errorHandler: (e) => this.onError(e)
|
|
185
|
+
});
|
|
186
|
+
this.driver = driver;
|
|
187
|
+
let result = null;
|
|
188
|
+
// TODO: パラメータを外部から変更可能にする
|
|
189
|
+
driver.initialize({
|
|
190
|
+
configurationUrl: this.configurationUrl,
|
|
191
|
+
configurationBase: this.configurationBaseUrl,
|
|
192
|
+
assetBase: this.assetBaseUrl,
|
|
193
|
+
driverConfiguration: {
|
|
194
|
+
playId: this.playId,
|
|
195
|
+
playToken: this.playToken,
|
|
196
|
+
executionMode
|
|
197
|
+
},
|
|
198
|
+
loopConfiguration: {
|
|
199
|
+
loopMode: aev1_1.gameDriver.LoopMode.Realtime
|
|
200
|
+
},
|
|
201
|
+
gameArgs: this.gameArgs
|
|
202
|
+
}, (e) => {
|
|
203
|
+
if (e) {
|
|
204
|
+
reject(e);
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
if (!result) {
|
|
208
|
+
// GameDriver の内部実装上ここに来ることはないはずだが念のため確認
|
|
209
|
+
return reject(new Error("Game is null."));
|
|
210
|
+
}
|
|
211
|
+
driver.startGame();
|
|
212
|
+
resolve(result);
|
|
213
|
+
});
|
|
214
|
+
driver.gameCreatedTrigger.handle((game) => {
|
|
215
|
+
if (this.externalValue) {
|
|
216
|
+
Object.keys(this.externalValue).forEach((key) => {
|
|
217
|
+
game.external[key] = this.externalValue[key];
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
this.fps = game.fps;
|
|
221
|
+
result = game;
|
|
222
|
+
return true;
|
|
223
|
+
});
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
onSendedToExternal(data) {
|
|
227
|
+
this.sendToExternalTrigger.fire(data);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
exports.RunnerV1 = RunnerV1;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.RunnerV1_pdi = exports.RunnerV1_gdr = exports.RunnerV1_g = void 0;
|
|
18
|
+
__exportStar(require("./RunnerV1"), exports);
|
|
19
|
+
__exportStar(require("./platform/PlatformV1"), exports);
|
|
20
|
+
var aev1_1 = require("aev1");
|
|
21
|
+
Object.defineProperty(exports, "RunnerV1_g", { enumerable: true, get: function () { return aev1_1.akashicEngine; } });
|
|
22
|
+
Object.defineProperty(exports, "RunnerV1_gdr", { enumerable: true, get: function () { return aev1_1.gameDriver; } });
|
|
23
|
+
Object.defineProperty(exports, "RunnerV1_pdi", { enumerable: true, get: function () { return aev1_1.pdi; } });
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NullGlyphFactory = void 0;
|
|
4
|
+
const aev1_1 = require("aev1");
|
|
5
|
+
const NullSurface_1 = require("./NullSurface");
|
|
6
|
+
class NullGlyphFactory extends aev1_1.akashicEngine.GlyphFactory {
|
|
7
|
+
constructor() {
|
|
8
|
+
super(...arguments);
|
|
9
|
+
this.dummySurface = new NullSurface_1.NullSurface(0, 0);
|
|
10
|
+
}
|
|
11
|
+
create(code) {
|
|
12
|
+
return new aev1_1.akashicEngine.Glyph(code, 0, 0, 0, 0, 0, 0, this.fontSize, this.dummySurface, true);
|
|
13
|
+
}
|
|
14
|
+
measureMinimumFontSize() {
|
|
15
|
+
return 1;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.NullGlyphFactory = NullGlyphFactory;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { akashicEngine as g } from "aev1";
|
|
2
|
+
export declare class NullRenderer extends g.Renderer {
|
|
3
|
+
clear(): void;
|
|
4
|
+
drawImage(_surface: g.Surface, _offsetX: number, _offsetY: number, _width: number, _height: number, _destOffsetX: number, _destOffsetY: number): void;
|
|
5
|
+
drawSprites(_surface: g.Surface, _offsetX: number[], _offsetY: number[], _width: number[], _height: number[], _canvasOffsetX: number[], _canvasOffsetY: number[], _count: number): void;
|
|
6
|
+
drawSystemText(_text: string, _x: number, _y: number, _maxWidth: number, _fontSize: number, _textAlign: g.TextAlign, _textBaseline: g.TextBaseline, _textColor: string, _fontFamily: g.FontFamily, _strokeWidth: number, _strokeColor: string, _strokeOnly: boolean): void;
|
|
7
|
+
translate(_x: number, _y: number): void;
|
|
8
|
+
transform(_matrix: number[]): void;
|
|
9
|
+
opacity(_opacity: number): void;
|
|
10
|
+
save(): void;
|
|
11
|
+
restore(): void;
|
|
12
|
+
fillRect(_x: number, _y: number, _width: number, _height: number, _cssColor: string): void;
|
|
13
|
+
setCompositeOperation(_operation: g.CompositeOperation): void;
|
|
14
|
+
setTransform(_matrix: number[]): void;
|
|
15
|
+
setOpacity(_opacity: number): void;
|
|
16
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NullRenderer = void 0;
|
|
4
|
+
const aev1_1 = require("aev1");
|
|
5
|
+
class NullRenderer extends aev1_1.akashicEngine.Renderer {
|
|
6
|
+
clear() {
|
|
7
|
+
//
|
|
8
|
+
}
|
|
9
|
+
drawImage(_surface, _offsetX, _offsetY, _width, _height, _destOffsetX, _destOffsetY) {
|
|
10
|
+
//
|
|
11
|
+
}
|
|
12
|
+
drawSprites(_surface, _offsetX, _offsetY, _width, _height, _canvasOffsetX, _canvasOffsetY, _count) {
|
|
13
|
+
//
|
|
14
|
+
}
|
|
15
|
+
drawSystemText(_text, _x, _y, _maxWidth, _fontSize, _textAlign, _textBaseline, _textColor, _fontFamily, _strokeWidth, _strokeColor, _strokeOnly) {
|
|
16
|
+
//
|
|
17
|
+
}
|
|
18
|
+
translate(_x, _y) {
|
|
19
|
+
//
|
|
20
|
+
}
|
|
21
|
+
transform(_matrix) {
|
|
22
|
+
//
|
|
23
|
+
}
|
|
24
|
+
opacity(_opacity) {
|
|
25
|
+
//
|
|
26
|
+
}
|
|
27
|
+
save() {
|
|
28
|
+
//
|
|
29
|
+
}
|
|
30
|
+
restore() {
|
|
31
|
+
//
|
|
32
|
+
}
|
|
33
|
+
fillRect(_x, _y, _width, _height, _cssColor) {
|
|
34
|
+
//
|
|
35
|
+
}
|
|
36
|
+
setCompositeOperation(_operation) {
|
|
37
|
+
//
|
|
38
|
+
}
|
|
39
|
+
setTransform(_matrix) {
|
|
40
|
+
//
|
|
41
|
+
}
|
|
42
|
+
setOpacity(_opacity) {
|
|
43
|
+
//
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
exports.NullRenderer = NullRenderer;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NullSurface = void 0;
|
|
4
|
+
const aev1_1 = require("aev1");
|
|
5
|
+
const NullRenderer_1 = require("./NullRenderer");
|
|
6
|
+
class NullSurface extends aev1_1.akashicEngine.Surface {
|
|
7
|
+
constructor(width, height, drawable, isDynamic) {
|
|
8
|
+
super(width, height, drawable, isDynamic);
|
|
9
|
+
this._renderer = new NullRenderer_1.NullRenderer();
|
|
10
|
+
}
|
|
11
|
+
renderer() {
|
|
12
|
+
return this._renderer;
|
|
13
|
+
}
|
|
14
|
+
isPlaying() {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.NullSurface = NullSurface;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NullVideoplayerAsset = void 0;
|
|
4
|
+
const aev1_1 = require("aev1");
|
|
5
|
+
class NullVideoplayerAsset extends aev1_1.akashicEngine.VideoPlayer {
|
|
6
|
+
isDummy() {
|
|
7
|
+
return true;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.NullVideoplayerAsset = NullVideoplayerAsset;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { akashicEngine as g, pdi } from "aev1";
|
|
2
|
+
import { Looper } from "../../../Looper";
|
|
3
|
+
import type { PlatformParameters } from "../../Platform";
|
|
4
|
+
import { Platform } from "../../Platform";
|
|
5
|
+
export declare class PlatformV1 extends Platform implements pdi.Platform {
|
|
6
|
+
private resFac;
|
|
7
|
+
private rendererReq;
|
|
8
|
+
private primarySurface;
|
|
9
|
+
private eventHandler;
|
|
10
|
+
private loopers;
|
|
11
|
+
private isLooperPaused;
|
|
12
|
+
constructor(param: PlatformParameters);
|
|
13
|
+
getResourceFactory(): g.ResourceFactory;
|
|
14
|
+
setRendererRequirement(requirement: pdi.RendererRequirement): void;
|
|
15
|
+
setPlatformEventHandler(handler: pdi.PlatformEventHandler): void;
|
|
16
|
+
getPrimarySurface(): g.Surface;
|
|
17
|
+
createLooper(fun: (deltaTime: number) => number): Looper;
|
|
18
|
+
advanceLoopers(ms: number): void;
|
|
19
|
+
pauseLoopers(): void;
|
|
20
|
+
resumeLoopers(): void;
|
|
21
|
+
firePointEvent(event: pdi.PointEvent): void;
|
|
22
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PlatformV1 = void 0;
|
|
4
|
+
const Looper_1 = require("../../../Looper");
|
|
5
|
+
const Platform_1 = require("../../Platform");
|
|
6
|
+
const NullSurface_1 = require("./NullSurface");
|
|
7
|
+
const ResourceFactory_1 = require("./ResourceFactory");
|
|
8
|
+
class PlatformV1 extends Platform_1.Platform {
|
|
9
|
+
constructor(param) {
|
|
10
|
+
super(param);
|
|
11
|
+
this.rendererReq = null;
|
|
12
|
+
this.primarySurface = null;
|
|
13
|
+
this.eventHandler = null;
|
|
14
|
+
this.loopers = [];
|
|
15
|
+
this.isLooperPaused = false;
|
|
16
|
+
this.resFac = new ResourceFactory_1.ResourceFactory({
|
|
17
|
+
errorHandler: (e) => this.errorHandler(e),
|
|
18
|
+
loadFileHandler: param.loadFileHandler
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
getResourceFactory() {
|
|
22
|
+
return this.resFac;
|
|
23
|
+
}
|
|
24
|
+
setRendererRequirement(requirement) {
|
|
25
|
+
this.rendererReq = requirement;
|
|
26
|
+
this.primarySurface = new NullSurface_1.NullSurface(this.rendererReq.primarySurfaceWidth, this.rendererReq.primarySurfaceHeight, null);
|
|
27
|
+
}
|
|
28
|
+
setPlatformEventHandler(handler) {
|
|
29
|
+
this.eventHandler = handler;
|
|
30
|
+
}
|
|
31
|
+
getPrimarySurface() {
|
|
32
|
+
if (this.primarySurface == null) {
|
|
33
|
+
throw new Error("PlatformV1#getPrimarySurface(): Primary surface has not been initialized yet");
|
|
34
|
+
}
|
|
35
|
+
return this.primarySurface;
|
|
36
|
+
}
|
|
37
|
+
createLooper(fun) {
|
|
38
|
+
const looper = new Looper_1.Looper(fun, (e) => this.errorHandler(e));
|
|
39
|
+
if (this.isLooperPaused) {
|
|
40
|
+
looper.debugStop();
|
|
41
|
+
}
|
|
42
|
+
this.loopers.push(looper);
|
|
43
|
+
return looper;
|
|
44
|
+
}
|
|
45
|
+
advanceLoopers(ms) {
|
|
46
|
+
for (let i = 0; i < this.loopers.length; i++) {
|
|
47
|
+
this.loopers[i].debugStep(ms);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
pauseLoopers() {
|
|
51
|
+
this.isLooperPaused = true;
|
|
52
|
+
for (let i = 0; i < this.loopers.length; i++) {
|
|
53
|
+
this.loopers[i].debugStop();
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
resumeLoopers() {
|
|
57
|
+
this.isLooperPaused = false;
|
|
58
|
+
for (let i = 0; i < this.loopers.length; i++) {
|
|
59
|
+
this.loopers[i].debugStart();
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
firePointEvent(event) {
|
|
63
|
+
var _a;
|
|
64
|
+
(_a = this.eventHandler) === null || _a === void 0 ? void 0 : _a.onPointEvent(event);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
exports.PlatformV1 = PlatformV1;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { akashicEngine as g } from "aev1";
|
|
2
|
+
export interface ResourceFactoryParameters {
|
|
3
|
+
loadFileHandler: (url: string, callback: (err: Error | null, data?: string) => void) => void;
|
|
4
|
+
errorHandler: (err: any) => void;
|
|
5
|
+
}
|
|
6
|
+
export declare class ResourceFactory extends g.ResourceFactory {
|
|
7
|
+
private loadFileHandler;
|
|
8
|
+
private errorHandler;
|
|
9
|
+
constructor({ loadFileHandler, errorHandler }: ResourceFactoryParameters);
|
|
10
|
+
createImageAsset(id: string, assetPath: string, width: number, height: number): g.ImageAsset;
|
|
11
|
+
createVideoAsset(id: string, assetPath: string, width: number, height: number, system: g.VideoSystem, loop: boolean, useRealSize: boolean): g.VideoAsset;
|
|
12
|
+
createAudioAsset(id: string, assetPath: string, duration: number, system: g.AudioSystem, loop: boolean, hint: g.AudioAssetHint): g.AudioAsset;
|
|
13
|
+
createAudioPlayer(system: g.AudioSystem): g.AudioPlayer;
|
|
14
|
+
createTextAsset(id: string, assetPath: string): g.TextAsset;
|
|
15
|
+
createScriptAsset(id: string, assetPath: string): g.ScriptAsset;
|
|
16
|
+
createSurface(width: number, height: number): g.Surface;
|
|
17
|
+
createGlyphFactory(fontFamily: g.FontFamily | string | (g.FontFamily | string)[], fontSize: number, baselineHeight?: number, fontColor?: string, strokeWidth?: number, strokeColor?: string, strokeOnly?: boolean, fontWeight?: g.FontWeight): g.GlyphFactory;
|
|
18
|
+
}
|