@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,165 @@
1
+ /**
2
+ * @type {string}
3
+ * @const
4
+ */
5
+ export const $PREFIX = "__next2d__";
6
+ /**
7
+ * @type {number}
8
+ * @const
9
+ */
10
+ export const $devicePixelRatio = Math.min(2, window.devicePixelRatio);
11
+ /**
12
+ * @param {number} value
13
+ * @param {number} min
14
+ * @param {number} max
15
+ * @param {number} [default_value=null]
16
+ * @return {number}
17
+ * @method
18
+ * @static
19
+ */
20
+ export const $clamp = (value, min, max, default_value = null) => {
21
+ const number = +value;
22
+ return isNaN(number) && default_value !== null
23
+ ? default_value
24
+ : Math.min(Math.max(min, isNaN(number) ? 0 : number), max);
25
+ };
26
+ const canvas = document.createElement("canvas");
27
+ canvas.width = canvas.height = 1;
28
+ /**
29
+ * @type {CanvasRenderingContext2D}
30
+ * @const
31
+ */
32
+ export const $hitContext = canvas.getContext("2d");
33
+ /**
34
+ * @type {HTMLDivElement}
35
+ * @private
36
+ */
37
+ let $mainElement = null;
38
+ /**
39
+ * @description メインのコンテナになるDivElementを設定します。
40
+ * Set the DivElement to be the main container.
41
+ *
42
+ * @param {HTMLDivElement} element
43
+ * @method
44
+ * @protected
45
+ */
46
+ export const $setMainElement = (element) => {
47
+ $mainElement = element;
48
+ };
49
+ /**
50
+ * @type {HTMLCanvasElement | null}
51
+ * @private
52
+ */
53
+ let $canvas = null;
54
+ /**
55
+ * @description メインのCanvasになるCanvasElementを設定します。
56
+ * Set the CanvasElement to be the main canvas.
57
+ *
58
+ * @param {HTMLCanvasElement} element
59
+ * @method
60
+ * @protected
61
+ */
62
+ export const $setCanvas = (element) => {
63
+ $canvas = element;
64
+ };
65
+ /**
66
+ * @description メインのCanvasになるCanvasElementを取得します。
67
+ * Get the CanvasElement to be the main canvas.
68
+ *
69
+ * @return {HTMLCanvasElement}
70
+ * @method
71
+ * @protected
72
+ */
73
+ export const $getCanvas = () => {
74
+ return $canvas;
75
+ };
76
+ /**
77
+ * @description メインのコンテナになるDivElementを取得します。
78
+ * Get the DivElement to be the main container.
79
+ *
80
+ * @return {HTMLDivElement}
81
+ * @method
82
+ * @protected
83
+ */
84
+ export const $getMainElement = () => {
85
+ return $mainElement;
86
+ };
87
+ /**
88
+ * @description 描画用のmatrix情報
89
+ * Matrix information for drawing
90
+ *
91
+ * @type {Float32Array}
92
+ * @protected
93
+ */
94
+ export const $renderMatrix = new Float32Array([1, 0, 0, 1, 0, 0]);
95
+ /**
96
+ * @description マウス、タップ時の画面のmatrix情報
97
+ * Screen matrix information when mouse or tap is pressed
98
+ *
99
+ * @type {Float32Array}
100
+ * @protected
101
+ */
102
+ export const $hitMatrix = new Float32Array([1, 0, 0, 1, 0, 0]);
103
+ /**
104
+ * @description マウス、タップがヒットしたDisplayObjectを取得します。
105
+ * Get the DisplayObject that the mouse or tap hit.
106
+ *
107
+ * @type {IPlayerHitObject}
108
+ * @protected
109
+ */
110
+ export const $hitObject = {
111
+ "x": 0,
112
+ "y": 0,
113
+ "pointer": "",
114
+ "hit": null
115
+ };
116
+ /**
117
+ * @description マウス、タップがヒットしたDisplayObjectを取得します。
118
+ * Get the DisplayObject that the mouse or tap hit.
119
+ *
120
+ * @type {IDisplayObject<any> | null}
121
+ * @private
122
+ */
123
+ let $rollOverDisplayObject = null;
124
+ /**
125
+ * @description マウス、タップがヒットしたDisplayObjectを取得します。
126
+ * Get the DisplayObject that the mouse or tap hit.
127
+ *
128
+ * @param {IDisplayObject<any>} displayObject
129
+ * @return {void}
130
+ * @method
131
+ * @protected
132
+ */
133
+ export const $setRollOverDisplayObject = (displayObject) => {
134
+ $rollOverDisplayObject = displayObject;
135
+ };
136
+ /**
137
+ * @description マウス、タップがヒットしたDisplayObjectを取得します。
138
+ * Get the DisplayObject that the mouse or tap hit.
139
+ *
140
+ * @return {IDisplayObject<any>}
141
+ * @method
142
+ * @protected
143
+ */
144
+ export const $getRollOverDisplayObject = () => {
145
+ return $rollOverDisplayObject;
146
+ };
147
+ /**
148
+ * @description 指定された値を2の累乗に切り上げます。
149
+ * Rounds the specified value up to a power of two.
150
+ *
151
+ * @param {number} v
152
+ * @return {number}
153
+ * @method
154
+ * @protected
155
+ */
156
+ export const $upperPowerOfTwo = (v) => {
157
+ v--;
158
+ v |= v >> 1;
159
+ v |= v >> 2;
160
+ v |= v >> 4;
161
+ v |= v >> 8;
162
+ v |= v >> 16;
163
+ v++;
164
+ return v;
165
+ };
@@ -0,0 +1,3 @@
1
+ import type { IDisplay } from "./interface/IDisplay";
2
+ declare const display: IDisplay;
3
+ export { display };
@@ -1,19 +1,17 @@
1
- import { DisplayObject, InteractiveObject, DisplayObjectContainer, Sprite, MovieClip, BitmapData, BlendMode, FrameLabel, Graphics, Loader, LoaderInfo, Shape, Stage, TextField } from "@next2d/display";
1
+ import { Sprite, MovieClip, BitmapData, BlendMode, DisplayObject, DisplayObjectContainer, FrameLabel, Graphics, InteractiveObject, Loader, Shape, stage } from "@next2d/display";
2
2
  const display = {
3
- DisplayObject,
4
- InteractiveObject,
5
- DisplayObjectContainer,
6
3
  Sprite,
7
4
  MovieClip,
8
5
  BitmapData,
9
6
  BlendMode,
7
+ DisplayObject,
8
+ DisplayObjectContainer,
10
9
  FrameLabel,
11
10
  Graphics,
11
+ InteractiveObject,
12
12
  Loader,
13
- LoaderInfo,
14
13
  Shape,
15
- Stage,
16
- TextField
14
+ stage
17
15
  };
18
16
  Object.entries(display).forEach(([key, DisplayClass]) => {
19
17
  Object.defineProperty(display, key, {
@@ -0,0 +1,3 @@
1
+ import type { IEvents } from "./interface/IEvents";
2
+ declare const events: IEvents;
3
+ export { events };
@@ -1,4 +1,4 @@
1
- import { Event, EventDispatcher, EventPhase, FocusEvent, HTTPStatusEvent, IOErrorEvent, MouseEvent, ProgressEvent, VideoEvent } from "@next2d/events";
1
+ import { Event, EventDispatcher, EventPhase, FocusEvent, HTTPStatusEvent, IOErrorEvent, PointerEvent, JobEvent, ProgressEvent, VideoEvent } from "@next2d/events";
2
2
  const events = {
3
3
  Event,
4
4
  EventDispatcher,
@@ -6,7 +6,8 @@ const events = {
6
6
  FocusEvent,
7
7
  HTTPStatusEvent,
8
8
  IOErrorEvent,
9
- MouseEvent,
9
+ PointerEvent,
10
+ JobEvent,
10
11
  ProgressEvent,
11
12
  VideoEvent
12
13
  };
@@ -0,0 +1,3 @@
1
+ import type { IFilters } from "./interface/IFilters";
2
+ declare const filters: IFilters;
3
+ export { filters };
package/src/Geom.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ import type { IGeom } from "./interface/IGeom";
2
+ declare const geom: IGeom;
3
+ export { geom };
@@ -1,10 +1,9 @@
1
- import { ColorTransform, Matrix, Point, Rectangle, Transform } from "@next2d/geom";
1
+ import { ColorTransform, Matrix, Point, Rectangle } from "@next2d/geom";
2
2
  const geom = {
3
3
  ColorTransform,
4
4
  Matrix,
5
5
  Point,
6
- Rectangle,
7
- Transform
6
+ Rectangle
8
7
  };
9
8
  Object.entries(geom).forEach(([key, GeomClass]) => {
10
9
  Object.defineProperty(geom, key, {
package/src/Media.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ import type { IMedia } from "./interface/IMedia";
2
+ declare const media: IMedia;
3
+ export { media };
package/src/Net.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ import type { INet } from "./interface/INet";
2
+ declare const net: INet;
3
+ export { net };
@@ -1,7 +1,6 @@
1
- import { URLRequest, URLRequestHeader } from "@next2d/net";
1
+ import { URLRequest } from "@next2d/net";
2
2
  const net = {
3
- URLRequest,
4
- URLRequestHeader
3
+ URLRequest
5
4
  };
6
5
  Object.entries(net).forEach(([key, NetClass]) => {
7
6
  Object.defineProperty(net, key, {
@@ -0,0 +1,11 @@
1
+ import type { DisplayObject } from "@next2d/display";
2
+ /**
3
+ * @description DisplayObject の子要素に Video が含まれている場合、ロードが完了するまで待機します。
4
+ * If the child element of DisplayObject contains Video, wait until the loading is complete.
5
+ *
6
+ * @param {DisplayObject} display_object
7
+ * @return {Promise<void>}
8
+ * @method
9
+ * @protected
10
+ */
11
+ export declare const execute: <D extends DisplayObject>(display_object: D) => Promise<void>;
@@ -0,0 +1,50 @@
1
+ /**
2
+ * @description DisplayObject の子要素に Video が含まれている場合、ロードが完了するまで待機します。
3
+ * If the child element of DisplayObject contains Video, wait until the loading is complete.
4
+ *
5
+ * @param {DisplayObject} display_object
6
+ * @return {Promise<void>}
7
+ * @method
8
+ * @protected
9
+ */
10
+ export const execute = async (display_object) => {
11
+ switch (true) {
12
+ case display_object.isVideo:
13
+ break;
14
+ case display_object.isContainerEnabled:
15
+ {
16
+ const children = display_object.children;
17
+ for (let idx = 0; idx < children.length; ++idx) {
18
+ const displayObject = children[idx];
19
+ if (!displayObject) {
20
+ continue;
21
+ }
22
+ if (displayObject.isVideo) {
23
+ const muted = displayObject.muted;
24
+ displayObject.muted = true;
25
+ await displayObject.play();
26
+ displayObject.pause();
27
+ displayObject.muted = muted;
28
+ await new Promise((resolve) => {
29
+ const wait = async () => {
30
+ if (displayObject.loaded) {
31
+ displayObject.seek(0);
32
+ resolve();
33
+ }
34
+ else {
35
+ requestAnimationFrame(wait);
36
+ }
37
+ };
38
+ requestAnimationFrame(wait);
39
+ });
40
+ }
41
+ if (displayObject.isContainerEnabled) {
42
+ await execute(displayObject);
43
+ }
44
+ }
45
+ }
46
+ break;
47
+ default:
48
+ break;
49
+ }
50
+ };
@@ -0,0 +1,12 @@
1
+ import type { DisplayObject } from "@next2d/display";
2
+ import type { ICaptureOptions } from "../../interface/ICaptureOptions";
3
+ /**
4
+ * @description 指定した DisplayObject を Canvas に描画する
5
+ * Draw the specified DisplayObject in Canvas
6
+ *
7
+ * @param {D} display_object
8
+ * @param {ICaptureOptions} [opstions=null]
9
+ * @method
10
+ * @protected
11
+ */
12
+ export declare const execute: <D extends DisplayObject>(display_object: D, opstions?: ICaptureOptions | null) => Promise<HTMLCanvasElement>;
@@ -0,0 +1,92 @@
1
+ import { stage } from "@next2d/display";
2
+ import { $cacheStore } from "@next2d/cache";
3
+ import { $player } from "../../Player";
4
+ import { $devicePixelRatio } from "../../CoreUtil";
5
+ import { execute as playerResizePostMessageService } from "../../Player/service/PlayerResizePostMessageService";
6
+ import { execute as playerTransferCanvasPostMessageService } from "../../Player/service/PlayerTransferCanvasPostMessageService";
7
+ import { execute as videoSyncService } from "../service/VideoSyncService";
8
+ import { Matrix, ColorTransform } from "@next2d/geom";
9
+ /**
10
+ * @type {Float32Array}
11
+ * @private
12
+ */
13
+ const $MATRIX_ARRAY_IDENTITY = new Float32Array([1, 0, 0, 1, 0, 0]);
14
+ /**
15
+ * @type {Float32Array}
16
+ * @private
17
+ */
18
+ const $COLOR_ARRAY_IDENTITY = new Float32Array([1, 1, 1, 1, 0, 0, 0, 0]);
19
+ /**
20
+ * @description 指定した DisplayObject を Canvas に描画する
21
+ * Draw the specified DisplayObject in Canvas
22
+ *
23
+ * @param {D} display_object
24
+ * @param {ICaptureOptions} [opstions=null]
25
+ * @method
26
+ * @protected
27
+ */
28
+ export const execute = async (display_object, opstions = null) => {
29
+ if (opstions && opstions.videoSync) {
30
+ await videoSyncService(display_object);
31
+ }
32
+ const tColorTransform = opstions && opstions.colorTransform
33
+ ? opstions.colorTransform.rawData
34
+ : $COLOR_ARRAY_IDENTITY;
35
+ const rectangle = display_object.getBounds();
36
+ const translateMatrix = new Float32Array([
37
+ 1, 0, 0, 1, -rectangle.x, -rectangle.y
38
+ ]);
39
+ const tMatrix = opstions && opstions.matrix
40
+ ? Matrix.multiply(opstions.matrix.rawData, translateMatrix)
41
+ : Matrix.multiply($MATRIX_ARRAY_IDENTITY, translateMatrix);
42
+ const transferredCanvas = opstions && opstions.canvas
43
+ ? opstions.canvas
44
+ : $cacheStore.getCanvas();
45
+ const xScale = Math.sqrt(tMatrix[0] * tMatrix[0] + tMatrix[1] * tMatrix[1]);
46
+ const yScale = Math.sqrt(tMatrix[2] * tMatrix[2] + tMatrix[3] * tMatrix[3]);
47
+ const width = Math.ceil(display_object.width * xScale);
48
+ const height = Math.ceil(display_object.height * yScale);
49
+ if (width <= 0 || height <= 0) {
50
+ return transferredCanvas;
51
+ }
52
+ // resize canvas
53
+ transferredCanvas.width = width;
54
+ transferredCanvas.height = height;
55
+ const stopFlag = $player.stopFlag;
56
+ if (!stopFlag) {
57
+ $player.stop();
58
+ }
59
+ // resize
60
+ let isResize = false;
61
+ const cacheWidth = $player.rendererWidth;
62
+ const cacheHeight = $player.rendererHeight;
63
+ const cacheScale = $player.rendererScale;
64
+ if (width > cacheWidth || height > cacheHeight) {
65
+ isResize = true;
66
+ const scale = Math.min(width / stage.stageWidth, height / stage.stageHeight) * $devicePixelRatio;
67
+ // update
68
+ stage.rendererScale = $player.rendererScale = scale;
69
+ stage.rendererWidth = $player.rendererWidth = width;
70
+ stage.rendererHeight = $player.rendererHeight = height;
71
+ // workerにリサイズを通知
72
+ playerResizePostMessageService(false);
73
+ }
74
+ // draw
75
+ await playerTransferCanvasPostMessageService(display_object, tMatrix, tColorTransform, transferredCanvas);
76
+ // restore
77
+ if (isResize) {
78
+ stage.rendererScale = $player.rendererScale = cacheScale;
79
+ stage.rendererWidth = $player.rendererWidth = cacheWidth;
80
+ stage.rendererHeight = $player.rendererHeight = cacheHeight;
81
+ // workerにリサイズを通知
82
+ playerResizePostMessageService(false);
83
+ }
84
+ if (!stopFlag) {
85
+ $player.play();
86
+ }
87
+ Matrix.release(tMatrix);
88
+ if (opstions && opstions.colorTransform) {
89
+ ColorTransform.release(tColorTransform);
90
+ }
91
+ return transferredCanvas;
92
+ };
@@ -0,0 +1,15 @@
1
+ import type { IPlayerOptions } from "../../interface/IPlayerOptions";
2
+ import { Sprite } from "@next2d/display";
3
+ /**
4
+ * @description RootのMovieClipを作成します。
5
+ * Create a MovieClip for Root.
6
+ *
7
+ * @param {number} [width=240]
8
+ * @param {number} [height=240]
9
+ * @param {number} [fps=60]
10
+ * @param {object} [options=null]
11
+ * @return {Sprite}
12
+ * @method
13
+ * @protected
14
+ */
15
+ export declare const execute: (width?: number, height?: number, fps?: number, options?: IPlayerOptions | null) => Sprite;
@@ -0,0 +1,46 @@
1
+ import { $clamp } from "../../CoreUtil";
2
+ import { execute as playerRemoveLoadingElementService } from "../../Player/service/PlayerRemoveLoadingElementService";
3
+ import { execute as playerAppendElementService } from "../../Player/service/PlayerAppendElementService";
4
+ import { execute as playerReadyCompleteUseCase } from "../../Player/usecase/PlayerReadyCompleteUseCase";
5
+ import { execute as playerBootUseCase } from "../../Player/usecase/PlayerBootUseCase";
6
+ import { execute as canvasSetPositionService } from "../../Canvas/service/CanvasSetPositionService";
7
+ import { Sprite, stage } from "@next2d/display";
8
+ /**
9
+ * @type {boolean}
10
+ * @private
11
+ */
12
+ let $boot = false;
13
+ /**
14
+ * @description RootのMovieClipを作成します。
15
+ * Create a MovieClip for Root.
16
+ *
17
+ * @param {number} [width=240]
18
+ * @param {number} [height=240]
19
+ * @param {number} [fps=60]
20
+ * @param {object} [options=null]
21
+ * @return {Sprite}
22
+ * @method
23
+ * @protected
24
+ */
25
+ export const execute = (width = 240, height = 240, fps = 60, options = null) => {
26
+ if ($boot) {
27
+ return stage.getChildAt(0);
28
+ }
29
+ $boot = true;
30
+ // setup
31
+ stage.stageWidth = width | 0;
32
+ stage.stageHeight = height | 0;
33
+ stage.frameRate = $clamp(fps, 1, 60, 60);
34
+ // boot player
35
+ playerBootUseCase(options);
36
+ const root = stage.addChild(new Sprite());
37
+ // ready complete
38
+ playerReadyCompleteUseCase();
39
+ // remove loading
40
+ playerRemoveLoadingElementService();
41
+ // append canvas
42
+ playerAppendElementService();
43
+ // set position
44
+ canvasSetPositionService();
45
+ return root;
46
+ };
@@ -0,0 +1,12 @@
1
+ import type { IPlayerOptions } from "../../interface/IPlayerOptions";
2
+ /**
3
+ * @description 指定のURLからJSONファイルを読み込みます。
4
+ * Reads a JSON file from the specified URL.
5
+ *
6
+ * @param {string} url
7
+ * @param {object} [options=null]
8
+ * @return {Promise}
9
+ * @method
10
+ * @protected
11
+ */
12
+ export declare const execute: (url: string, options?: IPlayerOptions | null) => Promise<void>;
@@ -0,0 +1,66 @@
1
+ import { $clamp } from "../../CoreUtil";
2
+ import { URLRequest } from "@next2d/net";
3
+ import { IOErrorEvent } from "@next2d/events";
4
+ import { execute as playerResizeEventUseCase } from "../../Player/usecase/PlayerResizeEventUseCase";
5
+ import { execute as playerRemoveLoadingElementService } from "../../Player/service/PlayerRemoveLoadingElementService";
6
+ import { execute as playerAppendCanvasElementService } from "../../Player/service/PlayerAppendElementService";
7
+ import { execute as playerReadyCompleteUseCase } from "../../Player/usecase/PlayerReadyCompleteUseCase";
8
+ import { execute as playerBootUseCase } from "../../Player/usecase/PlayerBootUseCase";
9
+ import { execute as canvasSetPositionService } from "../../Canvas/service/CanvasSetPositionService";
10
+ import { Loader, stage } from "@next2d/display";
11
+ /**
12
+ * @description 指定のURLからJSONファイルを読み込みます。
13
+ * Reads a JSON file from the specified URL.
14
+ *
15
+ * @param {string} url
16
+ * @param {object} [options=null]
17
+ * @return {Promise}
18
+ * @method
19
+ * @protected
20
+ */
21
+ export const execute = async (url, options = null) => {
22
+ if (url === "develop") {
23
+ const path = location
24
+ .search
25
+ .slice(1)
26
+ .split("&")[0];
27
+ if (!path) {
28
+ return;
29
+ }
30
+ url = `${location.origin}/${path}`;
31
+ }
32
+ if (!url) {
33
+ return;
34
+ }
35
+ if (url.charAt(1) === "/") {
36
+ url = url.slice(1);
37
+ }
38
+ // player
39
+ playerBootUseCase(options);
40
+ const loader = new Loader();
41
+ const loaderInfo = loader.contentLoaderInfo;
42
+ loaderInfo.addEventListener(IOErrorEvent.IO_ERROR, (event) => {
43
+ alert("Error: " + event.text);
44
+ });
45
+ await loader.load(new URLRequest(url));
46
+ if (!loaderInfo.data) {
47
+ return;
48
+ }
49
+ // update properties
50
+ const stageData = loaderInfo.data.stage;
51
+ stage.stageWidth = stageData.width;
52
+ stage.stageHeight = stageData.height;
53
+ stage.frameRate = $clamp(stageData.fps, 1, 60, 60);
54
+ stage.backgroundColor = options && options.bgColor ? options.bgColor : stageData.bgColor;
55
+ stage.addChild(loaderInfo.content);
56
+ // resize
57
+ playerResizeEventUseCase();
58
+ // // ready complete
59
+ playerReadyCompleteUseCase();
60
+ // // remove loading
61
+ playerRemoveLoadingElementService();
62
+ // // append canvas
63
+ playerAppendCanvasElementService();
64
+ // // set position
65
+ canvasSetPositionService();
66
+ };