@next2d/webgl 2.0.0 → 3.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 (155) hide show
  1. package/README.md +206 -5
  2. package/package.json +3 -3
  3. package/src/AtlasManager/service/AtlasManagerCreateNodeService.js +20 -6
  4. package/src/AtlasManager.d.ts +2 -118
  5. package/src/AtlasManager.js +10 -179
  6. package/src/BezierConverter/usecase/BezierConverterAdaptiveCubicToQuadUseCase.d.ts +18 -0
  7. package/src/BezierConverter/usecase/BezierConverterAdaptiveCubicToQuadUseCase.js +193 -0
  8. package/src/BezierConverter.d.ts +88 -0
  9. package/src/BezierConverter.js +158 -0
  10. package/src/Blend/service/BlendAddService.js +2 -2
  11. package/src/Blend/service/BlendAlphaService.js +2 -2
  12. package/src/Blend/service/BlendEraseService.js +2 -2
  13. package/src/Blend/service/BlendOneZeroService.js +2 -2
  14. package/src/Blend/service/BlendResetService.js +2 -2
  15. package/src/Blend/service/BlendScreenService.js +2 -2
  16. package/src/Blend/service/BlendSourceAtopService.js +2 -2
  17. package/src/Blend/service/BlendSourceInService.js +2 -2
  18. package/src/Blend/usecase/BlnedDrawArraysInstancedUseCase.js +2 -2
  19. package/src/Blend/usecase/BlnedDrawDisplayObjectUseCase.js +10 -20
  20. package/src/Blend.d.ts +2 -36
  21. package/src/Blend.js +2 -58
  22. package/src/Context/service/ContextBeginNodeRenderingService.js +3 -3
  23. package/src/Context/service/ContextCreateImageBitmapService.js +30 -10
  24. package/src/Context/service/ContextEndNodeRenderingService.js +2 -2
  25. package/src/Context/service/ContextUpdateTransferBoundsService.js +2 -2
  26. package/src/Context/usecase/ContextApplyFilterUseCase.js +16 -10
  27. package/src/Context/usecase/ContextBindUseCase.js +3 -3
  28. package/src/Context/usecase/ContextClearRectUseCase.js +3 -3
  29. package/src/Context/usecase/ContextClipUseCase.js +3 -3
  30. package/src/Context/usecase/ContextContainerBeginLayerUseCase.d.ts +18 -0
  31. package/src/Context/usecase/ContextContainerBeginLayerUseCase.js +31 -0
  32. package/src/Context/usecase/ContextContainerDrawCachedFilterUseCase.d.ts +16 -0
  33. package/src/Context/usecase/ContextContainerDrawCachedFilterUseCase.js +36 -0
  34. package/src/Context/usecase/ContextContainerEndLayerUseCase.d.ts +18 -0
  35. package/src/Context/usecase/ContextContainerEndLayerUseCase.js +171 -0
  36. package/src/Context/usecase/ContextDrawFillUseCase.js +9 -5
  37. package/src/Context/usecase/ContextGradientStrokeUseCase.js +1 -1
  38. package/src/Context/usecase/ContextLinearGradientFillUseCase.js +16 -14
  39. package/src/Context/usecase/ContextNormalFillUseCase.js +10 -12
  40. package/src/Context/usecase/ContextPatternBitmapFillUseCase.d.ts +2 -2
  41. package/src/Context/usecase/ContextPatternBitmapFillUseCase.js +13 -14
  42. package/src/Context/usecase/ContextRadialGradientFillUseCase.js +16 -14
  43. package/src/Context.d.ts +5 -626
  44. package/src/Context.js +31 -636
  45. package/src/Filter/BevelFilter/usecase/FilterApplyBevelFilterUseCase.js +2 -2
  46. package/src/Filter/BlurFilter/usecase/FilterApplyBlurFilterUseCase.js +2 -2
  47. package/src/Filter/DisplacementMapFilter/usecase/FilterApplyDisplacementMapFilterUseCase.d.ts +1 -2
  48. package/src/Filter/DisplacementMapFilter/usecase/FilterApplyDisplacementMapFilterUseCase.js +3 -9
  49. package/src/Filter/DropShadowFilter/usecase/FilterApplyDropShadowFilterUseCase.js +2 -2
  50. package/src/Filter/GradientBevelFilter/usecase/FilterApplyGradientBevelFilterUseCase.js +2 -2
  51. package/src/Filter/GradientGlowFilter/usecase/FilterApplyGradientGlowFilterUseCase.js +2 -2
  52. package/src/FrameBufferManager/service/FrameBufferManagerBindAttachmentObjectService.js +8 -2
  53. package/src/FrameBufferManager/service/FrameBufferManagerTransferAtlasTextureService.js +12 -25
  54. package/src/FrameBufferManager/service/FrameBufferManagerUnBindAttachmentObjectService.js +2 -2
  55. package/src/FrameBufferManager/usecase/FrameBufferManagerGetAttachmentObjectUseCase.js +2 -2
  56. package/src/FrameBufferManager/usecase/FrameBufferManagerGetTextureFromNodeUseCase.js +7 -9
  57. package/src/FrameBufferManager.d.ts +8 -137
  58. package/src/FrameBufferManager.js +8 -199
  59. package/src/Mask/service/MaskBeginMaskService.js +2 -2
  60. package/src/Mask/service/MaskEndMaskService.js +2 -2
  61. package/src/Mask/service/MaskSetMaskBoundsService.js +2 -2
  62. package/src/Mask/usecase/MaskBindUseCase.js +4 -4
  63. package/src/Mask/usecase/MaskLeaveMaskUseCase.js +4 -4
  64. package/src/Mesh/service/MeshFindOverlappingPathsService.d.ts +2 -1
  65. package/src/Mesh/service/MeshFindOverlappingPathsService.js +7 -3
  66. package/src/Mesh/service/MeshIsPointInsideRectangleService.js +14 -11
  67. package/src/Mesh/usecase/MeshFillGenerateUseCase.js +7 -5
  68. package/src/Mesh/usecase/MeshGenerateCalculateBevelJoinUseCase.js +15 -3
  69. package/src/Mesh/usecase/MeshGenerateCalculateMiterJoinUseCase.js +17 -3
  70. package/src/Mesh/usecase/MeshGenerateCalculateRoundJoinUseCase.js +14 -2
  71. package/src/Mesh/usecase/MeshGenerateStrokeOutlineUseCase.js +39 -23
  72. package/src/Mesh/usecase/MeshStrokeGenerateUseCase.js +12 -4
  73. package/src/Mesh.d.ts +10 -0
  74. package/src/Mesh.js +23 -0
  75. package/src/PathCommand/service/PathCommandPushCurrentPathToVerticesService.d.ts +1 -2
  76. package/src/PathCommand/service/PathCommandPushCurrentPathToVerticesService.js +3 -4
  77. package/src/PathCommand/usecase/PathCommandBezierCurveToUseCase.d.ts +2 -2
  78. package/src/PathCommand/usecase/PathCommandBezierCurveToUseCase.js +9 -5
  79. package/src/PathCommand.js +18 -3
  80. package/src/Shader/Fragment/Filter/FragmentShaderSourceBlurFilter.d.ts +0 -6
  81. package/src/Shader/Fragment/Filter/FragmentShaderSourceBlurFilter.js +0 -6
  82. package/src/Shader/Fragment/Filter/FragmentShaderSourceColorMatrixFilter.d.ts +0 -5
  83. package/src/Shader/Fragment/Filter/FragmentShaderSourceColorMatrixFilter.js +0 -5
  84. package/src/Shader/Fragment/Filter/FragmentShaderSourceConvolutionFilter.d.ts +0 -10
  85. package/src/Shader/Fragment/Filter/FragmentShaderSourceConvolutionFilter.js +0 -10
  86. package/src/Shader/Fragment/Filter/FragmentShaderSourceDisplacementMapFilter.d.ts +0 -9
  87. package/src/Shader/Fragment/Filter/FragmentShaderSourceDisplacementMapFilter.js +8 -18
  88. package/src/Shader/Fragment/Filter/FragmentShaderSourceFilter.d.ts +0 -14
  89. package/src/Shader/Fragment/Filter/FragmentShaderSourceFilter.js +0 -99
  90. package/src/Shader/Fragment/FragmentShaderLibrary.d.ts +0 -17
  91. package/src/Shader/Fragment/FragmentShaderLibrary.js +9 -23
  92. package/src/Shader/Fragment/FragmentShaderSource.d.ts +0 -40
  93. package/src/Shader/Fragment/FragmentShaderSource.js +9 -47
  94. package/src/Shader/Fragment/FragmentShaderSourceBlend.d.ts +0 -7
  95. package/src/Shader/Fragment/FragmentShaderSourceBlend.js +0 -87
  96. package/src/Shader/Fragment/FragmentShaderSourceGradient.d.ts +0 -10
  97. package/src/Shader/Fragment/FragmentShaderSourceGradient.js +7 -41
  98. package/src/Shader/Fragment/FragmentShaderSourceGradientLUT.d.ts +0 -11
  99. package/src/Shader/Fragment/FragmentShaderSourceGradientLUT.js +0 -11
  100. package/src/Shader/Fragment/FragmentShaderSourceTexture.d.ts +0 -11
  101. package/src/Shader/Fragment/FragmentShaderSourceTexture.js +2 -13
  102. package/src/Shader/GradientLUTGenerator/usecase/GradientLUTGenerateShapeTextureUseCase.d.ts +4 -0
  103. package/src/Shader/GradientLUTGenerator/usecase/GradientLUTGenerateShapeTextureUseCase.js +14 -7
  104. package/src/Shader/GradientLUTGenerator.d.ts +23 -0
  105. package/src/Shader/GradientLUTGenerator.js +43 -6
  106. package/src/Shader/ShaderInstancedManager.d.ts +0 -26
  107. package/src/Shader/ShaderInstancedManager.js +0 -26
  108. package/src/Shader/ShaderManager/service/ShaderManagerSetBitmapFillUniformService.js +3 -3
  109. package/src/Shader/ShaderManager/service/ShaderManagerSetFillUniformService.js +3 -3
  110. package/src/Shader/ShaderManager/service/ShaderManagerSetGradientFillUniformService.js +3 -3
  111. package/src/Shader/ShaderManager/service/ShaderManagerSetMaskUniformService.js +3 -3
  112. package/src/Shader/ShaderManager/service/ShaderManagerSetMatrixTextureUniformService.js +3 -3
  113. package/src/Shader/ShaderManager/service/ShaderManagerSetMatrixTextureWithColorTransformUniformService.js +3 -3
  114. package/src/Shader/ShaderManager/service/ShaderManagerSetTextureUniformService.js +3 -3
  115. package/src/Shader/ShaderManager.d.ts +3 -71
  116. package/src/Shader/ShaderManager.js +22 -80
  117. package/src/Shader/Variants/Filter/service/VariantsBitmapFilterShaderService.js +2 -1
  118. package/src/Shader/Variants/GradientLUT/service/VariantsGradientLUTShaderService.d.ts +2 -2
  119. package/src/Shader/Variants/GradientLUT/service/VariantsGradientLUTShaderService.js +9 -6
  120. package/src/Shader/Variants/GradientLUTVariants.d.ts +21 -0
  121. package/src/Shader/Variants/GradientLUTVariants.js +63 -0
  122. package/src/Shader/Vertex/VertexShaderLibrary.d.ts +0 -17
  123. package/src/Shader/Vertex/VertexShaderLibrary.js +1 -18
  124. package/src/Shader/Vertex/VertexShaderSource.d.ts +0 -25
  125. package/src/Shader/Vertex/VertexShaderSource.js +0 -25
  126. package/src/Shader/Vertex/VertexShaderSourceFill.d.ts +0 -65
  127. package/src/Shader/Vertex/VertexShaderSourceFill.js +0 -65
  128. package/src/Stencil/service/StencilDisableSampleAlphaToCoverageService.d.ts +1 -0
  129. package/src/Stencil/service/StencilDisableSampleAlphaToCoverageService.js +8 -0
  130. package/src/Stencil/service/StencilEnableSampleAlphaToCoverageService.d.ts +1 -0
  131. package/src/Stencil/service/StencilEnableSampleAlphaToCoverageService.js +8 -0
  132. package/src/Stencil/service/StencilResetService.d.ts +9 -0
  133. package/src/Stencil/service/StencilResetService.js +14 -0
  134. package/src/Stencil/service/StencilSetFillModeService.d.ts +1 -0
  135. package/src/Stencil/service/StencilSetFillModeService.js +13 -0
  136. package/src/Stencil/service/StencilSetMaskModeService.d.ts +1 -0
  137. package/src/Stencil/service/StencilSetMaskModeService.js +14 -0
  138. package/src/Stencil.d.ts +9 -0
  139. package/src/Stencil.js +17 -0
  140. package/src/StencilBufferObject/usecase/StencilBufferObjectAcquireObjectUseCase.js +15 -7
  141. package/src/TextureManager/usecase/TextureManagerGetMainTextureFromBoundsUseCase.js +6 -7
  142. package/src/VertexArrayObject/service/VertexArrayObjectCreateFillObjectService.js +2 -3
  143. package/src/VertexArrayObject/usecase/VertexArrayObjectBindAttributeUseCase.js +4 -2
  144. package/src/VertexArrayObject/usecase/VertexArrayObjectBindFillMeshUseCase.js +3 -1
  145. package/src/VertexArrayObject/usecase/VertexArrayObjectCreateInstancedVertexArrayObjectUseCase.js +5 -3
  146. package/src/VertexArrayObject/usecase/VertexArrayObjectCreateRectVertexArrayObjectUseCase.js +2 -2
  147. package/src/VertexArrayObject.d.ts +0 -9
  148. package/src/VertexArrayObject.js +0 -16
  149. package/src/WebGLUtil.d.ts +10 -262
  150. package/src/WebGLUtil.js +45 -316
  151. package/src/interface/ICubicConverterReturnObject.d.ts +4 -0
  152. package/src/interface/ICubicConverterReturnObject.js +1 -0
  153. package/src/interface/IVertexArrayObject.d.ts +1 -1
  154. package/src/Context/service/ContextUpdateAllTransferBoundsService.d.ts +0 -11
  155. package/src/Context/service/ContextUpdateAllTransferBoundsService.js +0 -21
package/src/WebGLUtil.js CHANGED
@@ -1,110 +1,58 @@
1
- /**
2
- * @description 描画の最大サイズ
3
- * Maximum size of drawing
4
- *
5
- * @type {number}
6
- * @protected
7
- */
8
1
  export let $RENDER_MAX_SIZE = 2048;
9
- /**
10
- * @description 描画の最大サイズを変更
11
- * Change the maximum size of drawing
12
- *
13
- * @param {number} size
14
- * @return {void}
15
- * @method
16
- * @protected
17
- */
18
2
  export const $setRenderMaxSize = (size) => {
19
- $RENDER_MAX_SIZE = Math.min(4096, size / 2);
3
+ $RENDER_MAX_SIZE = Math.max(2048, size / 2);
20
4
  };
21
- /**
22
- * @description 描画のサンプリング数
23
- * Number of samples for drawing
24
- *
25
- * @type {number}
26
- * @default 4
27
- * @protected
28
- */
29
5
  export let $samples = 4;
30
- /**
31
- * @description 描画のサンプリング数を変更
32
- * Change the number of samples for drawing
33
- *
34
- * @param {number} samples
35
- * @return {void}
36
- * @method
37
- * @protected
38
- */
39
6
  export const $setSamples = (samples) => {
40
7
  $samples = samples;
41
8
  };
42
- /**
43
- * @type {WebGL2RenderingContext}
44
- * @protected
45
- */
46
9
  export let $gl;
47
- /**
48
- * @description WebGL2のコンテキストをセット
49
- * Set WebGL2 context
50
- *
51
- * @param {WebGL2RenderingContext} gl
52
- * @return {void}
53
- * @method
54
- * @protected
55
- */
56
10
  export const $setWebGL2RenderingContext = (gl) => {
57
11
  $gl = gl;
58
12
  };
59
- /**
60
- * @type {Context}
61
- * @public
62
- */
63
13
  export let $context;
64
- /**
65
- * @description 起動したコンテキストをセット
66
- * Set the context that started
67
- *
68
- * @param {Context} context
69
- * @return {void}
70
- * @method
71
- * @protected
72
- */
73
14
  export const $setContext = (context) => {
74
15
  $context = context;
75
16
  };
76
- /**
77
- * @description 指定された値を範囲内にクランプします。
78
- * Clamps the specified value within the range.
79
- *
80
- * @param {number} value
81
- * @param {number} min
82
- * @param {number} max
83
- * @param {number} [default_value=null]
84
- * @return {number}
85
- * @method
86
- * @protected
87
- */
17
+ let $scissorEnabled = false;
18
+ export const $enableScissorTest = () => {
19
+ if (!$scissorEnabled) {
20
+ $scissorEnabled = true;
21
+ $gl.enable($gl.SCISSOR_TEST);
22
+ }
23
+ };
24
+ export const $disableScissorTest = () => {
25
+ if ($scissorEnabled) {
26
+ $scissorEnabled = false;
27
+ $gl.disable($gl.SCISSOR_TEST);
28
+ }
29
+ };
30
+ export const $resetScissorState = () => {
31
+ $scissorEnabled = false;
32
+ };
33
+ let $stencilTestEnabled = false;
34
+ export const $enableStencilTest = () => {
35
+ if (!$stencilTestEnabled) {
36
+ $stencilTestEnabled = true;
37
+ $gl.enable($gl.STENCIL_TEST);
38
+ }
39
+ };
40
+ export const $disableStencilTest = () => {
41
+ if ($stencilTestEnabled) {
42
+ $stencilTestEnabled = false;
43
+ $gl.disable($gl.STENCIL_TEST);
44
+ }
45
+ };
46
+ export const $resetStencilTestState = () => {
47
+ $stencilTestEnabled = false;
48
+ };
88
49
  export const $clamp = (value, min, max, default_value = null) => {
89
50
  const number = +value;
90
51
  return isNaN(number) && default_value !== null
91
52
  ? default_value
92
53
  : Math.min(Math.max(min, isNaN(number) ? 0 : number), max);
93
54
  };
94
- /**
95
- * @type {array}
96
- * @private
97
- */
98
55
  const $arrays = [];
99
- /**
100
- * @description プールした配列があれば再利用、なければ新規作成
101
- * Reuse the pooled array if available, otherwise create a new one.
102
- *
103
- * @param {array} args
104
- * @return {array}
105
- * @method
106
- * @protected
107
- */
108
56
  export const $getArray = (...args) => {
109
57
  const array = $arrays.pop() || [];
110
58
  if (args.length) {
@@ -112,15 +60,6 @@ export const $getArray = (...args) => {
112
60
  }
113
61
  return array;
114
62
  };
115
- /**
116
- * @description 使用済みの配列をプールに保管
117
- * Store the used array in the pool.
118
- *
119
- * @param {array} array
120
- * @return {void}
121
- * @method
122
- * @protected
123
- */
124
63
  export const $poolArray = (array = null) => {
125
64
  if (!array) {
126
65
  return;
@@ -130,15 +69,6 @@ export const $poolArray = (array = null) => {
130
69
  }
131
70
  $arrays.push(array);
132
71
  };
133
- /**
134
- * @description 指定された値を2の累乗に切り上げます。
135
- * Rounds the specified value up to a power of two.
136
- *
137
- * @param {number} v
138
- * @return {number}
139
- * @method
140
- * @protected
141
- */
142
72
  export const $upperPowerOfTwo = (v) => {
143
73
  v--;
144
74
  v |= v >> 1;
@@ -149,23 +79,7 @@ export const $upperPowerOfTwo = (v) => {
149
79
  v++;
150
80
  return v;
151
81
  };
152
- /**
153
- * @type {Float32Array[]}
154
- * @private
155
- */
156
82
  const $float32Array4 = [];
157
- /**
158
- * @description プールしたFloat32Arrayがあれば再利用、なければ新規作成
159
- * Reuse the pooled Float32Array if available, otherwise create a new one.
160
- *
161
- * @param {number} [f0=0]
162
- * @param {number} [f1=0]
163
- * @param {number} [f2=0]
164
- * @param {number} [f3=0]
165
- * @return {Float32Array}
166
- * @method
167
- * @protected
168
- */
169
83
  export const $getFloat32Array4 = (f0 = 0, f1 = 0, f2 = 0, f3 = 0) => {
170
84
  const array = $float32Array4.pop() || new Float32Array(4);
171
85
  array[0] = f0;
@@ -174,40 +88,10 @@ export const $getFloat32Array4 = (f0 = 0, f1 = 0, f2 = 0, f3 = 0) => {
174
88
  array[3] = f3;
175
89
  return array;
176
90
  };
177
- /**
178
- * @description 使用済みのFloat32Arrayをプールに保管
179
- * Store the used Float32Array in the pool.
180
- *
181
- * @param {Float32Array} array
182
- * @return {void}
183
- * @method
184
- * @protected
185
- */
186
91
  export const $poolFloat32Array4 = (array) => {
187
92
  $float32Array4.push(array);
188
93
  };
189
- /**
190
- * @type {Float32Array[]}
191
- * @private
192
- */
193
94
  const $float32Array9 = [];
194
- /**
195
- * @description プールしたFloat32Arrayがあれば再利用、なければ新規作成
196
- * Reuse the pooled Float32Array if available, otherwise create a new one.
197
- *
198
- * @param {number} [f0=0]
199
- * @param {number} [f1=0]
200
- * @param {number} [f2=0]
201
- * @param {number} [f3=0]
202
- * @param {number} [f4=0]
203
- * @param {number} [f5=0]
204
- * @param {number} [f6=0]
205
- * @param {number} [f7=0]
206
- * @param {number} [f8=0]
207
- * @return {Float32Array}
208
- * @method
209
- * @protected
210
- */
211
95
  export const $getFloat32Array9 = (f0 = 0, f1 = 0, f2 = 0, f3 = 0, f4 = 0, f5 = 0, f6 = 0, f7 = 0, f8 = 0) => {
212
96
  const array = $float32Array9.pop() || new Float32Array(9);
213
97
  array[0] = f0;
@@ -221,37 +105,10 @@ export const $getFloat32Array9 = (f0 = 0, f1 = 0, f2 = 0, f3 = 0, f4 = 0, f5 = 0
221
105
  array[8] = f8;
222
106
  return array;
223
107
  };
224
- /**
225
- * @description 使用済みのFloat32Arrayをプールに保管
226
- * Store the used Float32Array in the pool.
227
- *
228
- * @param {Float32Array} array
229
- * @return {void}
230
- * @method
231
- * @protected
232
- */
233
108
  export const $poolFloat32Array9 = (array) => {
234
109
  $float32Array9.push(array);
235
110
  };
236
- /**
237
- * @type {Float32Array[]}
238
- * @private
239
- */
240
111
  const $float32Array6 = [];
241
- /**
242
- * @description プールしたFloat32Arrayがあれば再利用、なければ新規作成
243
- * Reuse the pooled Float32Array if available, otherwise create a new one.
244
- *
245
- * @param {number} [f0=0]
246
- * @param {number} [f1=0]
247
- * @param {number} [f2=0]
248
- * @param {number} [f3=0]
249
- * @param {number} [f4=0]
250
- * @param {number} [f5=0]
251
- * @return {Float32Array}
252
- * @method
253
- * @protected
254
- */
255
112
  export const $getFloat32Array6 = (f0 = 0, f1 = 0, f2 = 0, f3 = 0, f4 = 0, f5 = 0) => {
256
113
  const array = $float32Array6.pop() || new Float32Array(6);
257
114
  array[0] = f0;
@@ -262,124 +119,21 @@ export const $getFloat32Array6 = (f0 = 0, f1 = 0, f2 = 0, f3 = 0, f4 = 0, f5 = 0
262
119
  array[5] = f5;
263
120
  return array;
264
121
  };
265
- /**
266
- * @param {Float32Array} array
267
- * @return {void}
268
- * @method
269
- * @protected
270
- */
271
122
  export const $poolFloat32Array6 = (array) => {
272
123
  $float32Array6.push(array);
273
124
  };
274
- /**
275
- * @type {Int32Array[]}
276
- * @private
277
- */
278
- const $int32Array4 = [];
279
- /**
280
- * @description プールしたInt32Arrayがあれば再利用、なければ新規作成
281
- * Reuse the pooled Int32Array if available, otherwise create a new one.
282
- *
283
- * @param {number} [f0=0]
284
- * @param {number} [f1=0]
285
- * @param {number} [f2=0]
286
- * @param {number} [f3=0]
287
- * @return {Float32Array}
288
- * @method
289
- * @protected
290
- */
291
- export const $getInt32Array4 = (f0 = 0, f1 = 0, f2 = 0, f3 = 0) => {
292
- const array = $int32Array4.pop() || new Int32Array(4);
293
- array[0] = f0;
294
- array[1] = f1;
295
- array[2] = f2;
296
- array[3] = f3;
297
- return array;
298
- };
299
- /**
300
- * @description 使用済みのInt32Arrayをプールに保管
301
- * Store the used Int32Array in the pool.
302
- *
303
- * @param {Float32Array} array
304
- * @return {void}
305
- * @method
306
- * @protected
307
- */
308
- export const $poolInt32Array4 = (array) => {
309
- $int32Array4.push(array);
310
- };
311
- /**
312
- * @description 逆行列を取得
313
- * Get the inverse matrix
314
- *
315
- * @param {Float32Array} m
316
- * @returns {Float32Array}
317
- * @method
318
- * @protected
319
- */
320
125
  export const $inverseMatrix = (m) => {
321
126
  const rdet = 1 / (m[0] * m[4] - m[3] * m[1]);
322
127
  const tx = m[3] * m[7] - m[4] * m[6];
323
128
  const ty = m[1] * m[6] - m[0] * m[7];
324
129
  return $getFloat32Array9(m[4] * rdet, 0 - m[1] * rdet, 0, 0 - m[3] * rdet, m[0] * rdet, 0, tx * rdet, ty * rdet, 1);
325
130
  };
326
- /**
327
- * @type {number}
328
- * @default 0
329
- * @private
330
- */
331
- let $viewportWidth = 0;
332
- /**
333
- * @type {number}
334
- * @default 0
335
- * @private
336
- */
337
- let $viewportHeight = 0;
338
- /**
339
- * @description ビューポートの幅を取得
340
- * Get the width of the viewport
341
- *
342
- * @returns {number}
343
- * @method
344
- * @protected
345
- */
346
- export const $getViewportWidth = () => {
347
- return $viewportWidth;
348
- };
349
- /**
350
- * @description ビューポートの高さを取得
351
- * Get the height of the viewport
352
- *
353
- * @returns {number}
354
- * @method
355
- * @protected
356
- */
357
- export const $getViewportHeight = () => {
358
- return $viewportHeight;
359
- };
360
- /**
361
- * @description ビューポートのサイズをセット
362
- * Set the size of the viewport
363
- *
364
- * @param {number} viewport_width
365
- * @param {number} viewport_height
366
- * @return {void}
367
- * @method
368
- * @protected
369
- */
131
+ export let $viewportWidth = 0;
132
+ export let $viewportHeight = 0;
370
133
  export const $setViewportSize = (viewport_width, viewport_height) => {
371
134
  $viewportWidth = viewport_width;
372
135
  $viewportHeight = viewport_height;
373
136
  };
374
- /**
375
- * @description ビューポートのサイズを取得
376
- * Get the size of the viewport
377
- *
378
- * @param {Float32Array} matrix
379
- * @return {Float32Array}
380
- * @method
381
- * @protected
382
- */
383
137
  export const $linearGradientXY = (matrix) => {
384
138
  const x0 = -819.2 * matrix[0] - 819.2 * matrix[2] + matrix[4];
385
139
  const x1 = 819.2 * matrix[0] - 819.2 * matrix[2] + matrix[4];
@@ -401,46 +155,21 @@ export const $linearGradientXY = (matrix) => {
401
155
  const r2 = (x1 - x0) * vx2 + (y1 - y0) * vy2;
402
156
  return $getFloat32Array4(x0 + r2 * vx2, y0 + r2 * vy2, x1, y1);
403
157
  };
404
- /**
405
- * @type {number}
406
- * @public
407
- */
408
- let $devicePixelRatio = 1;
409
- /**
410
- * @description デバイスのピクセル比率を設定
411
- * Set the device's pixel ratio
412
- *
413
- * @param {number} device_pixel_ratio
414
- * @return {void}
415
- * @method
416
- * @public
417
- */
158
+ export let $devicePixelRatio = 1;
418
159
  export const $setDevicePixelRatio = (device_pixel_ratio) => {
419
160
  $devicePixelRatio = device_pixel_ratio;
420
161
  };
421
- /**
422
- * @description デバイスのピクセル比率を取得
423
- * Get the device's pixel ratio
424
- *
425
- * @return {number}
426
- * @method
427
- * @public
428
- */
429
- export const $getDevicePixelRatio = () => {
430
- return $devicePixelRatio;
431
- };
432
- /**
433
- * @description 2つの行列を乗算
434
- * Multiply two matrices
435
- *
436
- * @param {Float32Array} a
437
- * @param {Float32Array} b
438
- * @return {Float32Array}
439
- * @method
440
- * @protected
441
- */
442
162
  export const $multiplyMatrices = (a, b) => {
443
163
  const a0 = a[0], a1 = a[1], a2 = a[2], a3 = a[3], a4 = a[4], a5 = a[5];
444
164
  const b0 = b[0], b1 = b[1], b2 = b[2], b3 = b[3], b4 = b[4], b5 = b[5];
445
165
  return $getFloat32Array6(a0 * b0 + a2 * b1, a1 * b0 + a3 * b1, a0 * b2 + a2 * b3, a1 * b2 + a3 * b3, a0 * b4 + a2 * b5 + a4, a1 * b4 + a3 * b5 + a5);
446
166
  };
167
+ export const $getUUID = () => {
168
+ return typeof crypto?.randomUUID === "function"
169
+ ? crypto.randomUUID()
170
+ : "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
171
+ const r = Math.random() * 16 | 0;
172
+ const v = c === "x" ? r : r & 0x3 | 0x8;
173
+ return v.toString(16);
174
+ });
175
+ };
@@ -0,0 +1,4 @@
1
+ export interface ICubicConverterReturnObject {
2
+ buffer: Float32Array;
3
+ count: number;
4
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -1,5 +1,5 @@
1
1
  export interface IVertexArrayObject {
2
- id: number;
2
+ id: string;
3
3
  resource: WebGLVertexArrayObject;
4
4
  vertexBuffer: WebGLBuffer;
5
5
  vertexLength: number;
@@ -1,11 +0,0 @@
1
- import type { Node } from "@next2d/texture-packer";
2
- /**
3
- * @description 切り替え時の転写範囲を更新します。
4
- * Update the transfer range when switching.
5
- *
6
- * @param {Node} node
7
- * @return {void}
8
- * @method
9
- * @protected
10
- */
11
- export declare const execute: (node: Node) => void;
@@ -1,21 +0,0 @@
1
- import { $getActiveAllTransferBounds } from "../../AtlasManager";
2
- /**
3
- * @description 切り替え時の転写範囲を更新します。
4
- * Update the transfer range when switching.
5
- *
6
- * @param {Node} node
7
- * @return {void}
8
- * @method
9
- * @protected
10
- */
11
- export const execute = (node) => {
12
- const bounds = $getActiveAllTransferBounds(node.index);
13
- const xMin = bounds[0];
14
- const yMin = bounds[1];
15
- const xMax = bounds[2];
16
- const yMax = bounds[3];
17
- bounds[0] = Math.min(node.x, xMin);
18
- bounds[1] = Math.min(node.y, yMin);
19
- bounds[2] = Math.max(node.x + node.w, xMax);
20
- bounds[3] = Math.max(node.y + node.h, yMax);
21
- };