@next2d/core 1.18.12 → 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.
Files changed (152) hide show
  1. package/package.json +20 -28
  2. package/src/Canvas/service/CanvasBootOffscreenCanvasService.d.ts +10 -0
  3. package/src/Canvas/service/CanvasBootOffscreenCanvasService.js +19 -0
  4. package/src/Canvas/service/CanvasInitializeService.d.ts +11 -0
  5. package/src/Canvas/service/CanvasInitializeService.js +23 -0
  6. package/src/Canvas/service/CanvasSetPositionService.d.ts +9 -0
  7. package/src/Canvas/service/CanvasSetPositionService.js +30 -0
  8. package/src/Canvas/usecase/CanvasPointerDownEventUseCase.d.ts +10 -0
  9. package/src/Canvas/usecase/CanvasPointerDownEventUseCase.js +57 -0
  10. package/src/Canvas/usecase/CanvasPointerLeaveEventUseCase.d.ts +10 -0
  11. package/src/Canvas/usecase/CanvasPointerLeaveEventUseCase.js +23 -0
  12. package/src/Canvas/usecase/CanvasPointerMoveEventUseCase.d.ts +10 -0
  13. package/src/Canvas/usecase/CanvasPointerMoveEventUseCase.js +30 -0
  14. package/src/Canvas/usecase/CanvasPointerUpEventUseCase.d.ts +10 -0
  15. package/src/Canvas/usecase/CanvasPointerUpEventUseCase.js +29 -0
  16. package/src/Canvas/usecase/CanvasRegisterEventUseCase.d.ts +10 -0
  17. package/src/Canvas/usecase/CanvasRegisterEventUseCase.js +39 -0
  18. package/src/Canvas/usecase/CanvasWheelEventUseCase.d.ts +11 -0
  19. package/src/Canvas/usecase/CanvasWheelEventUseCase.js +32 -0
  20. package/src/Canvas.d.ts +5 -0
  21. package/src/Canvas.js +16 -0
  22. package/src/CoreUtil.d.ts +116 -0
  23. package/src/CoreUtil.js +165 -0
  24. package/src/Display.d.ts +3 -0
  25. package/{dist → src}/Display.js +5 -7
  26. package/src/Events.d.ts +3 -0
  27. package/{dist → src}/Events.js +3 -2
  28. package/src/Filters.d.ts +3 -0
  29. package/src/Geom.d.ts +3 -0
  30. package/{dist → src}/Geom.js +2 -3
  31. package/src/Media.d.ts +3 -0
  32. package/src/Net.d.ts +3 -0
  33. package/{dist → src}/Net.js +2 -3
  34. package/src/Next2D/service/VideoSyncService.d.ts +11 -0
  35. package/src/Next2D/service/VideoSyncService.js +50 -0
  36. package/src/Next2D/usecase/CaptureToCanvasUseCase.d.ts +12 -0
  37. package/src/Next2D/usecase/CaptureToCanvasUseCase.js +92 -0
  38. package/src/Next2D/usecase/CreateRootMovieClipUseCase.d.ts +15 -0
  39. package/src/Next2D/usecase/CreateRootMovieClipUseCase.js +46 -0
  40. package/src/Next2D/usecase/LoadUseCase.d.ts +12 -0
  41. package/src/Next2D/usecase/LoadUseCase.js +66 -0
  42. package/src/Next2D.d.ts +138 -0
  43. package/src/Next2D.js +209 -0
  44. package/src/Player/service/PlayerAppendElementService.d.ts +9 -0
  45. package/src/Player/service/PlayerAppendElementService.js +22 -0
  46. package/src/Player/service/PlayerApplyContainerElementStyleService.d.ts +12 -0
  47. package/src/Player/service/PlayerApplyContainerElementStyleService.js +44 -0
  48. package/src/Player/service/PlayerCreateContainerElementService.d.ts +9 -0
  49. package/src/Player/service/PlayerCreateContainerElementService.js +28 -0
  50. package/src/Player/service/PlayerDoubleClickEventService.d.ts +10 -0
  51. package/src/Player/service/PlayerDoubleClickEventService.js +24 -0
  52. package/src/Player/service/PlayerKeyDownEventService.d.ts +10 -0
  53. package/src/Player/service/PlayerKeyDownEventService.js +24 -0
  54. package/src/Player/service/PlayerKeyUpEventService.d.ts +10 -0
  55. package/src/Player/service/PlayerKeyUpEventService.js +23 -0
  56. package/src/Player/service/PlayerLoadingAnimationService.d.ts +10 -0
  57. package/src/Player/service/PlayerLoadingAnimationService.js +33 -0
  58. package/src/Player/service/PlayerPointerDownEventService.d.ts +10 -0
  59. package/src/Player/service/PlayerPointerDownEventService.js +47 -0
  60. package/src/Player/service/PlayerPointerMoveEventService.d.ts +10 -0
  61. package/src/Player/service/PlayerPointerMoveEventService.js +86 -0
  62. package/src/Player/service/PlayerPointerUpEventService.d.ts +10 -0
  63. package/src/Player/service/PlayerPointerUpEventService.js +35 -0
  64. package/src/Player/service/PlayerRemoveCachePostMessageService.d.ts +9 -0
  65. package/src/Player/service/PlayerRemoveCachePostMessageService.js +37 -0
  66. package/src/Player/service/PlayerRemoveLoadingElementService.d.ts +9 -0
  67. package/src/Player/service/PlayerRemoveLoadingElementService.js +18 -0
  68. package/src/Player/service/PlayerRenderingPostMessageService.d.ts +14 -0
  69. package/src/Player/service/PlayerRenderingPostMessageService.js +74 -0
  70. package/src/Player/service/PlayerResizePostMessageService.d.ts +10 -0
  71. package/src/Player/service/PlayerResizePostMessageService.js +40 -0
  72. package/src/Player/service/PlayerSetCurrentMousePointService.d.ts +10 -0
  73. package/src/Player/service/PlayerSetCurrentMousePointService.js +33 -0
  74. package/src/Player/service/PlayerStopService.d.ts +9 -0
  75. package/src/Player/service/PlayerStopService.js +18 -0
  76. package/src/Player/service/PlayerTransferCanvasPostMessageService.d.ts +13 -0
  77. package/src/Player/service/PlayerTransferCanvasPostMessageService.js +80 -0
  78. package/src/Player/usecase/PlayerBootUseCase.d.ts +11 -0
  79. package/src/Player/usecase/PlayerBootUseCase.js +30 -0
  80. package/src/Player/usecase/PlayerHitTestUseCase.d.ts +9 -0
  81. package/src/Player/usecase/PlayerHitTestUseCase.js +35 -0
  82. package/src/Player/usecase/PlayerPlayUseCase.d.ts +9 -0
  83. package/src/Player/usecase/PlayerPlayUseCase.js +26 -0
  84. package/src/Player/usecase/PlayerReadyCompleteUseCase.d.ts +5 -0
  85. package/src/Player/usecase/PlayerReadyCompleteUseCase.js +16 -0
  86. package/src/Player/usecase/PlayerRegisterEventUseCase.d.ts +9 -0
  87. package/src/Player/usecase/PlayerRegisterEventUseCase.js +15 -0
  88. package/src/Player/usecase/PlayerResizeEventUseCase.d.ts +9 -0
  89. package/src/Player/usecase/PlayerResizeEventUseCase.js +78 -0
  90. package/src/Player/usecase/PlayerResizeRegisterUseCase.d.ts +9 -0
  91. package/src/Player/usecase/PlayerResizeRegisterUseCase.js +20 -0
  92. package/src/Player/usecase/PlayerTickerUseCase.d.ts +10 -0
  93. package/src/Player/usecase/PlayerTickerUseCase.js +50 -0
  94. package/src/Player.d.ts +193 -0
  95. package/src/Player.js +314 -0
  96. package/src/RendererWorker.d.ts +5 -0
  97. package/src/RendererWorker.js +2 -0
  98. package/src/Text.d.ts +3 -0
  99. package/{dist → src}/Text.js +3 -2
  100. package/src/UI.d.ts +3 -0
  101. package/{dist → src}/UI.js +1 -2
  102. package/{dist → src}/index.d.ts +1 -0
  103. package/{dist → src}/index.js +1 -0
  104. package/src/interface/ICaptureMessage.d.ts +8 -0
  105. package/src/interface/ICaptureMessage.js +1 -0
  106. package/src/interface/ICaptureOptions.d.ts +7 -0
  107. package/src/interface/ICaptureOptions.js +1 -0
  108. package/src/interface/IDisplay.d.ts +15 -0
  109. package/src/interface/IDisplay.js +1 -0
  110. package/src/interface/IDisplayObject.d.ts +2 -0
  111. package/src/interface/IDisplayObject.js +1 -0
  112. package/src/interface/IEvents.d.ts +13 -0
  113. package/src/interface/IEvents.js +1 -0
  114. package/src/interface/IFilters.d.ts +12 -0
  115. package/src/interface/IFilters.js +1 -0
  116. package/src/interface/IGeom.d.ts +7 -0
  117. package/src/interface/IGeom.js +1 -0
  118. package/src/interface/IMedia.d.ts +7 -0
  119. package/src/interface/IMedia.js +1 -0
  120. package/src/interface/INet.d.ts +4 -0
  121. package/src/interface/INet.js +1 -0
  122. package/src/interface/IPlayerHitObject.d.ts +7 -0
  123. package/src/interface/IPlayerHitObject.js +1 -0
  124. package/src/interface/IPlayerOptions.d.ts +7 -0
  125. package/src/interface/IPlayerOptions.js +1 -0
  126. package/src/interface/IRemoveCacheMessage.d.ts +4 -0
  127. package/src/interface/IRemoveCacheMessage.js +1 -0
  128. package/src/interface/IRenderMessage.d.ts +6 -0
  129. package/src/interface/IRenderMessage.js +1 -0
  130. package/src/interface/IResizeMessage.d.ts +4 -0
  131. package/src/interface/IResizeMessage.js +1 -0
  132. package/src/interface/IStageData.d.ts +6 -0
  133. package/src/interface/IStageData.js +1 -0
  134. package/src/interface/IText.d.ts +6 -0
  135. package/src/interface/IText.js +1 -0
  136. package/src/interface/IUI.d.ts +5 -0
  137. package/src/interface/IUI.js +1 -0
  138. package/src/renderer.worker.inline.js +1 -0
  139. package/dist/Display.d.ts +0 -3
  140. package/dist/Events.d.ts +0 -3
  141. package/dist/Filters.d.ts +0 -3
  142. package/dist/Geom.d.ts +0 -3
  143. package/dist/Media.d.ts +0 -3
  144. package/dist/Net.d.ts +0 -3
  145. package/dist/Next2D.d.ts +0 -62
  146. package/dist/Next2D.js +0 -198
  147. package/dist/Player.d.ts +0 -336
  148. package/dist/Player.js +0 -1879
  149. package/dist/Text.d.ts +0 -3
  150. package/dist/UI.d.ts +0 -3
  151. /package/{dist → src}/Filters.js +0 -0
  152. /package/{dist → src}/Media.js +0 -0
@@ -0,0 +1,10 @@
1
+ import type { DisplayObject } from "@next2d/display";
2
+ /**
3
+ * @description ポインタームーブイベントを処理します。
4
+ * Processes the pointer move event.
5
+ *
6
+ * @return {void}
7
+ * @method
8
+ * @protected
9
+ */
10
+ export declare const execute: <D extends DisplayObject>() => void;
@@ -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,10 @@
1
+ import type { DisplayObject } from "@next2d/display";
2
+ /**
3
+ * @description ポインターアップイベントを処理します。
4
+ * Processes the pointer up event.
5
+ *
6
+ * @return {void}
7
+ * @method
8
+ * @protected
9
+ */
10
+ export declare const execute: <D extends DisplayObject>() => void;
@@ -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,9 @@
1
+ /**
2
+ * @description worker側のキャッシュキーを削除する
3
+ * Remove the cache key on the worker side
4
+ *
5
+ * @return {void}
6
+ * @method
7
+ * @protected
8
+ */
9
+ export declare const execute: () => void;
@@ -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,9 @@
1
+ /**
2
+ * @description ローディングのelementを削除
3
+ * Remove the loading element
4
+ *
5
+ * @return {void}
6
+ * @method
7
+ * @public
8
+ */
9
+ export declare const execute: () => void;
@@ -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,10 @@
1
+ /**
2
+ * @description 画面リサイズ情報をworkerに送る
3
+ * Send screen resize information to worker
4
+ *
5
+ * @param {boolean} [cache_clear=true]
6
+ * @return {void}
7
+ * @method
8
+ * @protected
9
+ */
10
+ export declare const execute: (cache_clear?: boolean) => void;
@@ -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,10 @@
1
+ /**
2
+ * @description 現在のマウスの位置を取得します。
3
+ * Get the current mouse position.
4
+ *
5
+ * @param {PointerEvent} event
6
+ * @return {void}
7
+ * @method
8
+ * @protected
9
+ */
10
+ export declare const execute: (event: PointerEvent) => void;
@@ -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,9 @@
1
+ /**
2
+ * @description Playerの定期処理を停止
3
+ * Stop the regular processing of the Player
4
+ *
5
+ * @return {void}
6
+ * @method
7
+ * @protected
8
+ */
9
+ export declare const execute: () => void;
@@ -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,9 @@
1
+ /**
2
+ * @description Playerの当たり判定
3
+ * Player hit test
4
+ *
5
+ * @return {void}
6
+ * @method
7
+ * @protected
8
+ */
9
+ export declare const execute: () => void;
@@ -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,9 @@
1
+ /**
2
+ * @description Playerの再生を開始
3
+ * Start playing the Player
4
+ *
5
+ * @return {void}
6
+ * @method
7
+ * @protected
8
+ */
9
+ export declare const execute: () => void;
@@ -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
+ };
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @description Playerの起動準備完了時のユースーケース
3
+ * Use case when Player is ready to start
4
+ */
5
+ export declare const execute: () => void;