@next2d/core 1.18.12 → 2.0.0
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/package.json +20 -28
- package/src/Canvas/service/CanvasBootOffscreenCanvasService.d.ts +10 -0
- package/src/Canvas/service/CanvasBootOffscreenCanvasService.js +19 -0
- package/src/Canvas/service/CanvasInitializeService.d.ts +11 -0
- package/src/Canvas/service/CanvasInitializeService.js +23 -0
- package/src/Canvas/service/CanvasSetPositionService.d.ts +9 -0
- package/src/Canvas/service/CanvasSetPositionService.js +30 -0
- package/src/Canvas/usecase/CanvasPointerDownEventUseCase.d.ts +10 -0
- package/src/Canvas/usecase/CanvasPointerDownEventUseCase.js +57 -0
- package/src/Canvas/usecase/CanvasPointerLeaveEventUseCase.d.ts +10 -0
- package/src/Canvas/usecase/CanvasPointerLeaveEventUseCase.js +23 -0
- package/src/Canvas/usecase/CanvasPointerMoveEventUseCase.d.ts +10 -0
- package/src/Canvas/usecase/CanvasPointerMoveEventUseCase.js +30 -0
- package/src/Canvas/usecase/CanvasPointerUpEventUseCase.d.ts +10 -0
- package/src/Canvas/usecase/CanvasPointerUpEventUseCase.js +29 -0
- package/src/Canvas/usecase/CanvasRegisterEventUseCase.d.ts +10 -0
- package/src/Canvas/usecase/CanvasRegisterEventUseCase.js +39 -0
- package/src/Canvas/usecase/CanvasWheelEventUseCase.d.ts +11 -0
- package/src/Canvas/usecase/CanvasWheelEventUseCase.js +32 -0
- package/src/Canvas.d.ts +5 -0
- package/src/Canvas.js +16 -0
- package/src/CoreUtil.d.ts +116 -0
- package/src/CoreUtil.js +165 -0
- package/src/Display.d.ts +3 -0
- package/{dist → src}/Display.js +5 -7
- package/src/Events.d.ts +3 -0
- package/{dist → src}/Events.js +3 -2
- package/src/Filters.d.ts +3 -0
- package/src/Geom.d.ts +3 -0
- package/{dist → src}/Geom.js +2 -3
- package/src/Media.d.ts +3 -0
- package/src/Net.d.ts +3 -0
- package/{dist → src}/Net.js +2 -3
- package/src/Next2D/service/VideoSyncService.d.ts +11 -0
- package/src/Next2D/service/VideoSyncService.js +50 -0
- package/src/Next2D/usecase/CaptureToCanvasUseCase.d.ts +12 -0
- package/src/Next2D/usecase/CaptureToCanvasUseCase.js +92 -0
- package/src/Next2D/usecase/CreateRootMovieClipUseCase.d.ts +15 -0
- package/src/Next2D/usecase/CreateRootMovieClipUseCase.js +46 -0
- package/src/Next2D/usecase/LoadUseCase.d.ts +12 -0
- package/src/Next2D/usecase/LoadUseCase.js +66 -0
- package/src/Next2D.d.ts +138 -0
- package/src/Next2D.js +209 -0
- package/src/Player/service/PlayerAppendElementService.d.ts +9 -0
- package/src/Player/service/PlayerAppendElementService.js +22 -0
- package/src/Player/service/PlayerApplyContainerElementStyleService.d.ts +12 -0
- package/src/Player/service/PlayerApplyContainerElementStyleService.js +44 -0
- package/src/Player/service/PlayerCreateContainerElementService.d.ts +9 -0
- package/src/Player/service/PlayerCreateContainerElementService.js +28 -0
- package/src/Player/service/PlayerDoubleClickEventService.d.ts +10 -0
- package/src/Player/service/PlayerDoubleClickEventService.js +24 -0
- package/src/Player/service/PlayerKeyDownEventService.d.ts +10 -0
- package/src/Player/service/PlayerKeyDownEventService.js +24 -0
- package/src/Player/service/PlayerKeyUpEventService.d.ts +10 -0
- package/src/Player/service/PlayerKeyUpEventService.js +23 -0
- package/src/Player/service/PlayerLoadingAnimationService.d.ts +10 -0
- package/src/Player/service/PlayerLoadingAnimationService.js +33 -0
- package/src/Player/service/PlayerPointerDownEventService.d.ts +10 -0
- package/src/Player/service/PlayerPointerDownEventService.js +47 -0
- package/src/Player/service/PlayerPointerMoveEventService.d.ts +10 -0
- package/src/Player/service/PlayerPointerMoveEventService.js +86 -0
- package/src/Player/service/PlayerPointerUpEventService.d.ts +10 -0
- package/src/Player/service/PlayerPointerUpEventService.js +35 -0
- package/src/Player/service/PlayerRemoveCachePostMessageService.d.ts +9 -0
- package/src/Player/service/PlayerRemoveCachePostMessageService.js +37 -0
- package/src/Player/service/PlayerRemoveLoadingElementService.d.ts +9 -0
- package/src/Player/service/PlayerRemoveLoadingElementService.js +18 -0
- package/src/Player/service/PlayerRenderingPostMessageService.d.ts +14 -0
- package/src/Player/service/PlayerRenderingPostMessageService.js +74 -0
- package/src/Player/service/PlayerResizePostMessageService.d.ts +10 -0
- package/src/Player/service/PlayerResizePostMessageService.js +40 -0
- package/src/Player/service/PlayerSetCurrentMousePointService.d.ts +10 -0
- package/src/Player/service/PlayerSetCurrentMousePointService.js +33 -0
- package/src/Player/service/PlayerStopService.d.ts +9 -0
- package/src/Player/service/PlayerStopService.js +18 -0
- package/src/Player/service/PlayerTransferCanvasPostMessageService.d.ts +13 -0
- package/src/Player/service/PlayerTransferCanvasPostMessageService.js +80 -0
- package/src/Player/usecase/PlayerBootUseCase.d.ts +11 -0
- package/src/Player/usecase/PlayerBootUseCase.js +30 -0
- package/src/Player/usecase/PlayerHitTestUseCase.d.ts +9 -0
- package/src/Player/usecase/PlayerHitTestUseCase.js +35 -0
- package/src/Player/usecase/PlayerPlayUseCase.d.ts +9 -0
- package/src/Player/usecase/PlayerPlayUseCase.js +26 -0
- package/src/Player/usecase/PlayerReadyCompleteUseCase.d.ts +5 -0
- package/src/Player/usecase/PlayerReadyCompleteUseCase.js +16 -0
- package/src/Player/usecase/PlayerRegisterEventUseCase.d.ts +9 -0
- package/src/Player/usecase/PlayerRegisterEventUseCase.js +15 -0
- package/src/Player/usecase/PlayerResizeEventUseCase.d.ts +9 -0
- package/src/Player/usecase/PlayerResizeEventUseCase.js +78 -0
- package/src/Player/usecase/PlayerResizeRegisterUseCase.d.ts +9 -0
- package/src/Player/usecase/PlayerResizeRegisterUseCase.js +20 -0
- package/src/Player/usecase/PlayerTickerUseCase.d.ts +10 -0
- package/src/Player/usecase/PlayerTickerUseCase.js +50 -0
- package/src/Player.d.ts +193 -0
- package/src/Player.js +314 -0
- package/src/RendererWorker.d.ts +5 -0
- package/src/RendererWorker.js +7 -0
- package/src/Text.d.ts +3 -0
- package/{dist → src}/Text.js +3 -2
- package/src/UI.d.ts +3 -0
- package/{dist → src}/UI.js +1 -2
- package/{dist → src}/index.d.ts +1 -0
- package/{dist → src}/index.js +1 -0
- package/src/interface/ICaptureMessage.d.ts +8 -0
- package/src/interface/ICaptureMessage.js +1 -0
- package/src/interface/ICaptureOptions.d.ts +7 -0
- package/src/interface/ICaptureOptions.js +1 -0
- package/src/interface/IDisplay.d.ts +15 -0
- package/src/interface/IDisplay.js +1 -0
- package/src/interface/IDisplayObject.d.ts +2 -0
- package/src/interface/IDisplayObject.js +1 -0
- package/src/interface/IEvents.d.ts +13 -0
- package/src/interface/IEvents.js +1 -0
- package/src/interface/IFilters.d.ts +12 -0
- package/src/interface/IFilters.js +1 -0
- package/src/interface/IGeom.d.ts +7 -0
- package/src/interface/IGeom.js +1 -0
- package/src/interface/IMedia.d.ts +7 -0
- package/src/interface/IMedia.js +1 -0
- package/src/interface/INet.d.ts +4 -0
- package/src/interface/INet.js +1 -0
- package/src/interface/IPlayerHitObject.d.ts +7 -0
- package/src/interface/IPlayerHitObject.js +1 -0
- package/src/interface/IPlayerOptions.d.ts +7 -0
- package/src/interface/IPlayerOptions.js +1 -0
- package/src/interface/IRemoveCacheMessage.d.ts +4 -0
- package/src/interface/IRemoveCacheMessage.js +1 -0
- package/src/interface/IRenderMessage.d.ts +6 -0
- package/src/interface/IRenderMessage.js +1 -0
- package/src/interface/IResizeMessage.d.ts +4 -0
- package/src/interface/IResizeMessage.js +1 -0
- package/src/interface/IStageData.d.ts +6 -0
- package/src/interface/IStageData.js +1 -0
- package/src/interface/IText.d.ts +6 -0
- package/src/interface/IText.js +1 -0
- package/src/interface/IUI.d.ts +5 -0
- package/src/interface/IUI.js +1 -0
- package/dist/Display.d.ts +0 -3
- package/dist/Events.d.ts +0 -3
- package/dist/Filters.d.ts +0 -3
- package/dist/Geom.d.ts +0 -3
- package/dist/Media.d.ts +0 -3
- package/dist/Net.d.ts +0 -3
- package/dist/Next2D.d.ts +0 -62
- package/dist/Next2D.js +0 -198
- package/dist/Player.d.ts +0 -336
- package/dist/Player.js +0 -1879
- package/dist/Text.d.ts +0 -3
- package/dist/UI.d.ts +0 -3
- /package/{dist → src}/Filters.js +0 -0
- /package/{dist → src}/Media.js +0 -0
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { stage } from "@next2d/display";
|
|
2
|
+
import { $getSelectedTextField } from "@next2d/text";
|
|
3
|
+
import { PointerEvent } from "@next2d/events";
|
|
4
|
+
import { $player } from "../../Player";
|
|
5
|
+
import { $hitObject, $hitMatrix, $setRollOverDisplayObject, $getRollOverDisplayObject, $clamp } from "../../CoreUtil";
|
|
6
|
+
/**
|
|
7
|
+
* @description ポインタームーブイベントを処理します。
|
|
8
|
+
* Processes the pointer move event.
|
|
9
|
+
*
|
|
10
|
+
* @return {void}
|
|
11
|
+
* @method
|
|
12
|
+
* @protected
|
|
13
|
+
*/
|
|
14
|
+
export const execute = () => {
|
|
15
|
+
const dropTarget = stage.dropTarget;
|
|
16
|
+
if (dropTarget) {
|
|
17
|
+
const point = dropTarget.parent
|
|
18
|
+
? dropTarget.parent.globalToLocal(stage.pointer)
|
|
19
|
+
: dropTarget.globalToLocal(stage.pointer);
|
|
20
|
+
let dragX = 0;
|
|
21
|
+
let dragY = 0;
|
|
22
|
+
if (!dropTarget.$lockCenter) {
|
|
23
|
+
dragX = point.x + dropTarget.$offsetX;
|
|
24
|
+
dragY = point.y + dropTarget.$offsetY;
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
dragX = point.x - dropTarget.width / 2;
|
|
28
|
+
dragY = point.y - dropTarget.height / 2;
|
|
29
|
+
}
|
|
30
|
+
const bounds = dropTarget.$boundedRect;
|
|
31
|
+
if (bounds) {
|
|
32
|
+
dragX = $clamp(dragX, bounds.left, bounds.right);
|
|
33
|
+
dragY = $clamp(dragY, bounds.top, bounds.bottom);
|
|
34
|
+
}
|
|
35
|
+
// set move xy
|
|
36
|
+
dropTarget.x = dragX;
|
|
37
|
+
dropTarget.y = dragY;
|
|
38
|
+
}
|
|
39
|
+
// text field
|
|
40
|
+
const selectedTextField = $getSelectedTextField();
|
|
41
|
+
if (selectedTextField && $player.mouseState === "down") {
|
|
42
|
+
selectedTextField.setFocusIndex($hitObject.x - $hitMatrix[4], $hitObject.y - $hitMatrix[5], true);
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
const rollOverDisplayObject = $getRollOverDisplayObject();
|
|
46
|
+
const displayObject = $hitObject.hit;
|
|
47
|
+
if (displayObject) {
|
|
48
|
+
// pointerMove
|
|
49
|
+
if (displayObject.willTrigger(PointerEvent.POINTER_MOVE)) {
|
|
50
|
+
displayObject.dispatchEvent(new PointerEvent(PointerEvent.POINTER_MOVE));
|
|
51
|
+
}
|
|
52
|
+
// rollOut and rollOver
|
|
53
|
+
if (rollOverDisplayObject) {
|
|
54
|
+
if (rollOverDisplayObject.instanceId !== displayObject.instanceId) {
|
|
55
|
+
// rollOut
|
|
56
|
+
if (rollOverDisplayObject.willTrigger(PointerEvent.POINTER_OUT)) {
|
|
57
|
+
rollOverDisplayObject.dispatchEvent(new PointerEvent(PointerEvent.POINTER_OUT));
|
|
58
|
+
}
|
|
59
|
+
// rollOver
|
|
60
|
+
if (displayObject.willTrigger(PointerEvent.POINTER_OVER)) {
|
|
61
|
+
displayObject.dispatchEvent(new PointerEvent(PointerEvent.POINTER_OVER));
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
// rollOver
|
|
67
|
+
if (displayObject.willTrigger(PointerEvent.POINTER_OVER)) {
|
|
68
|
+
displayObject.dispatchEvent(new PointerEvent(PointerEvent.POINTER_OVER));
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
// set rollOver DisplayObject
|
|
72
|
+
$setRollOverDisplayObject(displayObject);
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
// rollOut
|
|
76
|
+
if (rollOverDisplayObject) {
|
|
77
|
+
if (rollOverDisplayObject.willTrigger(PointerEvent.POINTER_OUT)) {
|
|
78
|
+
rollOverDisplayObject.dispatchEvent(new PointerEvent(PointerEvent.POINTER_OUT));
|
|
79
|
+
}
|
|
80
|
+
$setRollOverDisplayObject(null);
|
|
81
|
+
}
|
|
82
|
+
if (stage.hasEventListener(PointerEvent.POINTER_MOVE)) {
|
|
83
|
+
stage.dispatchEvent(new PointerEvent(PointerEvent.POINTER_MOVE));
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { stage } from "@next2d/display";
|
|
2
|
+
import { PointerEvent } from "@next2d/events";
|
|
3
|
+
import { $hitObject } from "../../CoreUtil";
|
|
4
|
+
/**
|
|
5
|
+
* @description ポインターアップイベントを処理します。
|
|
6
|
+
* Processes the pointer up event.
|
|
7
|
+
*
|
|
8
|
+
* @return {void}
|
|
9
|
+
* @method
|
|
10
|
+
* @protected
|
|
11
|
+
*/
|
|
12
|
+
export const execute = () => {
|
|
13
|
+
const dropTarget = stage.dropTarget;
|
|
14
|
+
const displayObject = $hitObject.hit;
|
|
15
|
+
if (displayObject) {
|
|
16
|
+
if (displayObject.willTrigger(PointerEvent.POINTER_UP)) {
|
|
17
|
+
displayObject.dispatchEvent(new PointerEvent(PointerEvent.POINTER_UP));
|
|
18
|
+
}
|
|
19
|
+
if (dropTarget
|
|
20
|
+
&& dropTarget.instanceId !== displayObject.instanceId
|
|
21
|
+
&& dropTarget.willTrigger(PointerEvent.POINTER_UP)) {
|
|
22
|
+
dropTarget.dispatchEvent(new PointerEvent(PointerEvent.POINTER_UP));
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
if (dropTarget && dropTarget.willTrigger(PointerEvent.POINTER_UP)) {
|
|
27
|
+
dropTarget.dispatchEvent(new PointerEvent(PointerEvent.POINTER_UP));
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
if (stage.willTrigger(PointerEvent.POINTER_UP)) {
|
|
31
|
+
stage.dispatchEvent(new PointerEvent(PointerEvent.POINTER_UP));
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { $cacheStore } from "@next2d/cache";
|
|
2
|
+
import { $rendererWorker } from "../../RendererWorker";
|
|
3
|
+
/**
|
|
4
|
+
* @description リサイズメッセージ
|
|
5
|
+
* Resize message
|
|
6
|
+
*
|
|
7
|
+
* @type {object}
|
|
8
|
+
* @private
|
|
9
|
+
*/
|
|
10
|
+
const message = {
|
|
11
|
+
"command": "removeCache",
|
|
12
|
+
"buffer": null
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* @description Transferableオブジェクト
|
|
16
|
+
* Transferable object
|
|
17
|
+
*
|
|
18
|
+
* @type {Transferable[]}
|
|
19
|
+
* @private
|
|
20
|
+
*/
|
|
21
|
+
const options = [];
|
|
22
|
+
/**
|
|
23
|
+
* @description worker側のキャッシュキーを削除する
|
|
24
|
+
* Remove the cache key on the worker side
|
|
25
|
+
*
|
|
26
|
+
* @return {void}
|
|
27
|
+
* @method
|
|
28
|
+
* @protected
|
|
29
|
+
*/
|
|
30
|
+
export const execute = () => {
|
|
31
|
+
const buffer = new Float32Array($cacheStore.$removeIds);
|
|
32
|
+
$cacheStore.$removeIds.length = 0;
|
|
33
|
+
message.buffer = buffer;
|
|
34
|
+
options[0] = buffer.buffer;
|
|
35
|
+
// postMessage
|
|
36
|
+
$rendererWorker.postMessage(message, options);
|
|
37
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { $getMainElement } from "../../CoreUtil";
|
|
2
|
+
/**
|
|
3
|
+
* @description ローディングのelementを削除
|
|
4
|
+
* Remove the loading element
|
|
5
|
+
*
|
|
6
|
+
* @return {void}
|
|
7
|
+
* @method
|
|
8
|
+
* @public
|
|
9
|
+
*/
|
|
10
|
+
export const execute = () => {
|
|
11
|
+
const element = $getMainElement();
|
|
12
|
+
if (!element) {
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
while (element.firstChild) {
|
|
16
|
+
element.removeChild(element.firstChild);
|
|
17
|
+
}
|
|
18
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @type {Float32Array}
|
|
3
|
+
* @private
|
|
4
|
+
*/
|
|
5
|
+
export declare const $COLOR_ARRAY_IDENTITY: Float32Array;
|
|
6
|
+
/**
|
|
7
|
+
* @description レンダリングデータを生成してworkerに送る
|
|
8
|
+
* Generate rendering data and send it to the worker
|
|
9
|
+
*
|
|
10
|
+
* @return {void}
|
|
11
|
+
* @method
|
|
12
|
+
* @protected
|
|
13
|
+
*/
|
|
14
|
+
export declare const execute: () => void;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { $rendererWorker } from "../../RendererWorker";
|
|
2
|
+
import { stage } from "@next2d/display";
|
|
3
|
+
import { renderQueue } from "@next2d/render-queue";
|
|
4
|
+
import { $renderMatrix } from "../../CoreUtil";
|
|
5
|
+
/**
|
|
6
|
+
* @type {Float32Array}
|
|
7
|
+
* @private
|
|
8
|
+
*/
|
|
9
|
+
export const $COLOR_ARRAY_IDENTITY = new Float32Array([1, 1, 1, 1, 0, 0, 0, 0]);
|
|
10
|
+
/**
|
|
11
|
+
* @type {ImageBitmap[]}
|
|
12
|
+
* @private
|
|
13
|
+
*/
|
|
14
|
+
const $imageBitmaps = [];
|
|
15
|
+
/**
|
|
16
|
+
* @description レンダリングメッセージ
|
|
17
|
+
* Rendering message
|
|
18
|
+
*
|
|
19
|
+
* @type {object}
|
|
20
|
+
* @private
|
|
21
|
+
*/
|
|
22
|
+
const $message = {
|
|
23
|
+
"command": "render",
|
|
24
|
+
"buffer": null,
|
|
25
|
+
"length": 0,
|
|
26
|
+
"imageBitmaps": null
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* @description Transferableオブジェクト
|
|
30
|
+
* Transferable object
|
|
31
|
+
*
|
|
32
|
+
* @type {Transferable[]}
|
|
33
|
+
* @private
|
|
34
|
+
*/
|
|
35
|
+
const $options = [];
|
|
36
|
+
// 受け取りイベントを登録
|
|
37
|
+
$rendererWorker.addEventListener("message", (event) => {
|
|
38
|
+
if (event.data.message !== "render") {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
const buffer = event.data.buffer;
|
|
42
|
+
if (renderQueue.buffer.length > buffer.length) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
renderQueue.buffer = buffer;
|
|
46
|
+
});
|
|
47
|
+
/**
|
|
48
|
+
* @description レンダリングデータを生成してworkerに送る
|
|
49
|
+
* Generate rendering data and send it to the worker
|
|
50
|
+
*
|
|
51
|
+
* @return {void}
|
|
52
|
+
* @method
|
|
53
|
+
* @protected
|
|
54
|
+
*/
|
|
55
|
+
export const execute = () => {
|
|
56
|
+
renderQueue.offset = 0;
|
|
57
|
+
$options.length = 0;
|
|
58
|
+
$imageBitmaps.length = 0;
|
|
59
|
+
stage.$generateRenderQueue(stage, $imageBitmaps, $renderMatrix, $COLOR_ARRAY_IDENTITY);
|
|
60
|
+
if (!renderQueue.offset) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
// update buffer
|
|
64
|
+
$message.buffer = renderQueue.buffer;
|
|
65
|
+
$message.length = renderQueue.offset;
|
|
66
|
+
$options.push(renderQueue.buffer.buffer);
|
|
67
|
+
// postMessage
|
|
68
|
+
$message.imageBitmaps = null;
|
|
69
|
+
if ($imageBitmaps.length) {
|
|
70
|
+
$message.imageBitmaps = $imageBitmaps;
|
|
71
|
+
$options.push(...$imageBitmaps);
|
|
72
|
+
}
|
|
73
|
+
$rendererWorker.postMessage($message, $options);
|
|
74
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { $player } from "../../Player";
|
|
2
|
+
import { $rendererWorker } from "../../RendererWorker";
|
|
3
|
+
/**
|
|
4
|
+
* @description リサイズメッセージ
|
|
5
|
+
* Resize message
|
|
6
|
+
*
|
|
7
|
+
* @type {object}
|
|
8
|
+
* @private
|
|
9
|
+
*/
|
|
10
|
+
const message = {
|
|
11
|
+
"command": "resize",
|
|
12
|
+
"buffer": null
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* @description Transferableオブジェクト
|
|
16
|
+
* Transferable object
|
|
17
|
+
*
|
|
18
|
+
* @type {Transferable[]}
|
|
19
|
+
* @private
|
|
20
|
+
*/
|
|
21
|
+
const options = [];
|
|
22
|
+
/**
|
|
23
|
+
* @description 画面リサイズ情報をworkerに送る
|
|
24
|
+
* Send screen resize information to worker
|
|
25
|
+
*
|
|
26
|
+
* @param {boolean} [cache_clear=true]
|
|
27
|
+
* @return {void}
|
|
28
|
+
* @method
|
|
29
|
+
* @protected
|
|
30
|
+
*/
|
|
31
|
+
export const execute = (cache_clear = true) => {
|
|
32
|
+
// postMessage
|
|
33
|
+
message.buffer = new Float32Array([
|
|
34
|
+
$player.rendererWidth,
|
|
35
|
+
$player.rendererHeight,
|
|
36
|
+
cache_clear ? 1 : 0
|
|
37
|
+
]);
|
|
38
|
+
options[0] = message.buffer.buffer;
|
|
39
|
+
$rendererWorker.postMessage(message, options);
|
|
40
|
+
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { $player } from "../../Player";
|
|
2
|
+
import { stage } from "@next2d/display";
|
|
3
|
+
import { $getMainElement, $devicePixelRatio } from "../../CoreUtil";
|
|
4
|
+
/**
|
|
5
|
+
* @description 現在のマウスの位置を取得します。
|
|
6
|
+
* Get the current mouse position.
|
|
7
|
+
*
|
|
8
|
+
* @param {PointerEvent} event
|
|
9
|
+
* @return {void}
|
|
10
|
+
* @method
|
|
11
|
+
* @protected
|
|
12
|
+
*/
|
|
13
|
+
export const execute = (event) => {
|
|
14
|
+
let x = window.scrollX;
|
|
15
|
+
let y = window.scrollY;
|
|
16
|
+
const div = $getMainElement();
|
|
17
|
+
if (div) {
|
|
18
|
+
const rect = div.getBoundingClientRect();
|
|
19
|
+
x += rect.left;
|
|
20
|
+
y += rect.top;
|
|
21
|
+
}
|
|
22
|
+
const canvas = event.target;
|
|
23
|
+
if (canvas) {
|
|
24
|
+
const rect = canvas.getBoundingClientRect();
|
|
25
|
+
x += rect.left;
|
|
26
|
+
y += rect.top;
|
|
27
|
+
}
|
|
28
|
+
const tx = ($player.rendererWidth - stage.stageWidth * $player.rendererScale) / 2;
|
|
29
|
+
const ty = ($player.rendererHeight - stage.stageHeight * $player.rendererScale) / 2;
|
|
30
|
+
const scale = $player.rendererScale / $devicePixelRatio;
|
|
31
|
+
stage.pointer.x = (event.pageX - x) / scale - tx / $player.rendererScale;
|
|
32
|
+
stage.pointer.y = (event.pageY - y) / scale - ty / $player.rendererScale;
|
|
33
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { $player } from "../../Player";
|
|
2
|
+
import { SoundMixer } from "@next2d/media";
|
|
3
|
+
/**
|
|
4
|
+
* @description Playerの定期処理を停止
|
|
5
|
+
* Stop the regular processing of the Player
|
|
6
|
+
*
|
|
7
|
+
* @return {void}
|
|
8
|
+
* @method
|
|
9
|
+
* @protected
|
|
10
|
+
*/
|
|
11
|
+
export const execute = () => {
|
|
12
|
+
if ($player.timerId > -1) {
|
|
13
|
+
cancelAnimationFrame($player.timerId);
|
|
14
|
+
}
|
|
15
|
+
$player.stopFlag = true;
|
|
16
|
+
$player.timerId = -1;
|
|
17
|
+
SoundMixer.stopAll();
|
|
18
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { DisplayObject } from "@next2d/display";
|
|
2
|
+
/**
|
|
3
|
+
* @description レンダリングデータを生成してworkerに送る
|
|
4
|
+
* Generate rendering data and send it to the worker
|
|
5
|
+
*
|
|
6
|
+
* @param {D} display_object
|
|
7
|
+
* @param {Float32Array} matrix
|
|
8
|
+
* @param {Float32Array} color_transform
|
|
9
|
+
* @return {Promise<HTMLCanvasElement>}
|
|
10
|
+
* @method
|
|
11
|
+
* @protected
|
|
12
|
+
*/
|
|
13
|
+
export declare const execute: <D extends DisplayObject>(display_object: D, matrix: Float32Array, color_transform: Float32Array, transferred_canvas: HTMLCanvasElement) => Promise<HTMLCanvasElement>;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { stage } from "@next2d/display";
|
|
2
|
+
import { renderQueue } from "@next2d/render-queue";
|
|
3
|
+
import { $rendererWorker } from "../../RendererWorker";
|
|
4
|
+
/**
|
|
5
|
+
* @description キャプチャーメッセージ
|
|
6
|
+
* Capture message
|
|
7
|
+
*
|
|
8
|
+
* @type {object}
|
|
9
|
+
* @private
|
|
10
|
+
*/
|
|
11
|
+
const $message = {
|
|
12
|
+
"command": "capture",
|
|
13
|
+
"buffer": null,
|
|
14
|
+
"width": 0,
|
|
15
|
+
"height": 0,
|
|
16
|
+
"length": 0,
|
|
17
|
+
"imageBitmaps": null
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* @description Transferableオブジェクト
|
|
21
|
+
* Transferable object
|
|
22
|
+
*
|
|
23
|
+
* @type {Transferable[]}
|
|
24
|
+
* @private
|
|
25
|
+
*/
|
|
26
|
+
const $options = [];
|
|
27
|
+
/**
|
|
28
|
+
* @type {ImageBitmap[]}
|
|
29
|
+
* @private
|
|
30
|
+
*/
|
|
31
|
+
const $imageBitmaps = [];
|
|
32
|
+
/**
|
|
33
|
+
* @description レンダリングデータを生成してworkerに送る
|
|
34
|
+
* Generate rendering data and send it to the worker
|
|
35
|
+
*
|
|
36
|
+
* @param {D} display_object
|
|
37
|
+
* @param {Float32Array} matrix
|
|
38
|
+
* @param {Float32Array} color_transform
|
|
39
|
+
* @return {Promise<HTMLCanvasElement>}
|
|
40
|
+
* @method
|
|
41
|
+
* @protected
|
|
42
|
+
*/
|
|
43
|
+
export const execute = async (display_object, matrix, color_transform, transferred_canvas) => {
|
|
44
|
+
return await new Promise((resolve) => {
|
|
45
|
+
renderQueue.offset = 0;
|
|
46
|
+
$options.length = 0;
|
|
47
|
+
$imageBitmaps.length = 0;
|
|
48
|
+
stage.$generateRenderQueue(display_object, $imageBitmaps, matrix, color_transform);
|
|
49
|
+
if (!renderQueue.offset) {
|
|
50
|
+
return resolve(transferred_canvas);
|
|
51
|
+
}
|
|
52
|
+
// update buffer
|
|
53
|
+
$message.buffer = renderQueue.buffer;
|
|
54
|
+
$message.width = transferred_canvas.width;
|
|
55
|
+
$message.height = transferred_canvas.height;
|
|
56
|
+
$message.length = renderQueue.offset;
|
|
57
|
+
$options.push(renderQueue.buffer.buffer);
|
|
58
|
+
// postMessage
|
|
59
|
+
$message.imageBitmaps = null;
|
|
60
|
+
if ($imageBitmaps.length) {
|
|
61
|
+
$message.imageBitmaps = $imageBitmaps;
|
|
62
|
+
$options.push(...$imageBitmaps);
|
|
63
|
+
}
|
|
64
|
+
const drawCanvas = (event) => {
|
|
65
|
+
if (event.data.message !== "capture") {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
const buffer = event.data.buffer;
|
|
69
|
+
if (renderQueue.buffer.length < buffer.length) {
|
|
70
|
+
renderQueue.buffer = buffer;
|
|
71
|
+
}
|
|
72
|
+
const context = transferred_canvas.getContext("2d");
|
|
73
|
+
context.drawImage(event.data.imageBitmap, 0, 0);
|
|
74
|
+
$rendererWorker.removeEventListener("message", drawCanvas);
|
|
75
|
+
return resolve(transferred_canvas);
|
|
76
|
+
};
|
|
77
|
+
$rendererWorker.addEventListener("message", drawCanvas);
|
|
78
|
+
$rendererWorker.postMessage($message, $options);
|
|
79
|
+
});
|
|
80
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { IPlayerOptions } from "../../interface/IPlayerOptions";
|
|
2
|
+
/**
|
|
3
|
+
* @description Playerの初期起動処理
|
|
4
|
+
* Initial startup processing of Player
|
|
5
|
+
*
|
|
6
|
+
* @param {IPlayerOptions} [options=null]
|
|
7
|
+
* @return {void}
|
|
8
|
+
* @method
|
|
9
|
+
* @protected
|
|
10
|
+
*/
|
|
11
|
+
export declare const execute: (options?: IPlayerOptions | null) => void;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { $player } from "../../Player";
|
|
2
|
+
import { execute as playerCreateContainerElementService } from "../service/PlayerCreateContainerElementService";
|
|
3
|
+
import { execute as playerApplyContainerElementStyleService } from "../service/PlayerApplyContainerElementStyleService";
|
|
4
|
+
import { execute as playerLoadingAnimationService } from "../service/PlayerLoadingAnimationService";
|
|
5
|
+
import { execute as playerResizeEventService } from "./PlayerResizeEventUseCase";
|
|
6
|
+
import { execute as playerResizeRegisterService } from "./PlayerResizeRegisterUseCase";
|
|
7
|
+
/**
|
|
8
|
+
* @description Playerの初期起動処理
|
|
9
|
+
* Initial startup processing of Player
|
|
10
|
+
*
|
|
11
|
+
* @param {IPlayerOptions} [options=null]
|
|
12
|
+
* @return {void}
|
|
13
|
+
* @method
|
|
14
|
+
* @protected
|
|
15
|
+
*/
|
|
16
|
+
export const execute = (options = null) => {
|
|
17
|
+
$player.setOptions(options);
|
|
18
|
+
// create element
|
|
19
|
+
const element = playerCreateContainerElementService();
|
|
20
|
+
// apply base style
|
|
21
|
+
playerApplyContainerElementStyleService(element, $player.fixedWidth, $player.fixedHeight);
|
|
22
|
+
// start loading
|
|
23
|
+
playerLoadingAnimationService(element);
|
|
24
|
+
// register resize event
|
|
25
|
+
if (!$player.fixedWidth && !$player.fixedHeight) {
|
|
26
|
+
playerResizeRegisterService();
|
|
27
|
+
}
|
|
28
|
+
// initialize resize
|
|
29
|
+
playerResizeEventService();
|
|
30
|
+
};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { $player } from "../../Player";
|
|
2
|
+
import { stage } from "@next2d/display";
|
|
3
|
+
import { $hitContext, $hitObject, $hitMatrix, $getCanvas } from "../../CoreUtil";
|
|
4
|
+
/**
|
|
5
|
+
* @type {string}
|
|
6
|
+
* @private
|
|
7
|
+
*/
|
|
8
|
+
let $currentCursor = "auto";
|
|
9
|
+
/**
|
|
10
|
+
* @description Playerの当たり判定
|
|
11
|
+
* Player hit test
|
|
12
|
+
*
|
|
13
|
+
* @return {void}
|
|
14
|
+
* @method
|
|
15
|
+
* @protected
|
|
16
|
+
*/
|
|
17
|
+
export const execute = () => {
|
|
18
|
+
if ($player.stopFlag) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
$hitObject.x = stage.pointer.x;
|
|
22
|
+
$hitObject.y = stage.pointer.y;
|
|
23
|
+
$hitObject.pointer = "auto";
|
|
24
|
+
$hitObject.hit = null;
|
|
25
|
+
// reset
|
|
26
|
+
$hitContext.beginPath();
|
|
27
|
+
$hitContext.setTransform(1, 0, 0, 1, 0, 0);
|
|
28
|
+
// ヒット判定
|
|
29
|
+
stage.$mouseHit($hitContext, $hitMatrix, $hitObject);
|
|
30
|
+
// カーソルの表示を更新
|
|
31
|
+
if ($player.mouseState === "up"
|
|
32
|
+
&& $currentCursor !== $hitObject.pointer) {
|
|
33
|
+
$getCanvas().style.cursor = $currentCursor = $hitObject.pointer;
|
|
34
|
+
}
|
|
35
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { $player } from "../../Player";
|
|
2
|
+
import { stage } from "@next2d/display";
|
|
3
|
+
import { execute as playerTickerUseCase } from "./PlayerTickerUseCase";
|
|
4
|
+
/**
|
|
5
|
+
* @description Playerの再生を開始
|
|
6
|
+
* Start playing the Player
|
|
7
|
+
*
|
|
8
|
+
* @return {void}
|
|
9
|
+
* @method
|
|
10
|
+
* @protected
|
|
11
|
+
*/
|
|
12
|
+
export const execute = () => {
|
|
13
|
+
if (!$player.stopFlag) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
$player.stopFlag = false;
|
|
17
|
+
stage.changed = true;
|
|
18
|
+
if ($player.timerId > -1) {
|
|
19
|
+
cancelAnimationFrame($player.timerId);
|
|
20
|
+
}
|
|
21
|
+
$player.fps = 1000 / stage.frameRate | 0;
|
|
22
|
+
$player.startTime = performance.now();
|
|
23
|
+
$player.timerId = requestAnimationFrame((timestamp) => {
|
|
24
|
+
playerTickerUseCase(timestamp);
|
|
25
|
+
});
|
|
26
|
+
};
|