@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.
- package/README.md +206 -5
- package/package.json +3 -3
- package/src/AtlasManager/service/AtlasManagerCreateNodeService.js +20 -6
- package/src/AtlasManager.d.ts +2 -118
- package/src/AtlasManager.js +10 -179
- package/src/BezierConverter/usecase/BezierConverterAdaptiveCubicToQuadUseCase.d.ts +18 -0
- package/src/BezierConverter/usecase/BezierConverterAdaptiveCubicToQuadUseCase.js +193 -0
- package/src/BezierConverter.d.ts +88 -0
- package/src/BezierConverter.js +158 -0
- package/src/Blend/service/BlendAddService.js +2 -2
- package/src/Blend/service/BlendAlphaService.js +2 -2
- package/src/Blend/service/BlendEraseService.js +2 -2
- package/src/Blend/service/BlendOneZeroService.js +2 -2
- package/src/Blend/service/BlendResetService.js +2 -2
- package/src/Blend/service/BlendScreenService.js +2 -2
- package/src/Blend/service/BlendSourceAtopService.js +2 -2
- package/src/Blend/service/BlendSourceInService.js +2 -2
- package/src/Blend/usecase/BlnedDrawArraysInstancedUseCase.js +2 -2
- package/src/Blend/usecase/BlnedDrawDisplayObjectUseCase.js +10 -20
- package/src/Blend.d.ts +2 -36
- package/src/Blend.js +2 -58
- package/src/Context/service/ContextBeginNodeRenderingService.js +3 -3
- package/src/Context/service/ContextCreateImageBitmapService.js +30 -10
- package/src/Context/service/ContextEndNodeRenderingService.js +2 -2
- package/src/Context/service/ContextUpdateTransferBoundsService.js +2 -2
- package/src/Context/usecase/ContextApplyFilterUseCase.js +16 -10
- package/src/Context/usecase/ContextBindUseCase.js +3 -3
- package/src/Context/usecase/ContextClearRectUseCase.js +3 -3
- package/src/Context/usecase/ContextClipUseCase.js +3 -3
- package/src/Context/usecase/ContextContainerBeginLayerUseCase.d.ts +18 -0
- package/src/Context/usecase/ContextContainerBeginLayerUseCase.js +31 -0
- package/src/Context/usecase/ContextContainerDrawCachedFilterUseCase.d.ts +16 -0
- package/src/Context/usecase/ContextContainerDrawCachedFilterUseCase.js +36 -0
- package/src/Context/usecase/ContextContainerEndLayerUseCase.d.ts +18 -0
- package/src/Context/usecase/ContextContainerEndLayerUseCase.js +171 -0
- package/src/Context/usecase/ContextDrawFillUseCase.js +9 -5
- package/src/Context/usecase/ContextGradientStrokeUseCase.js +1 -1
- package/src/Context/usecase/ContextLinearGradientFillUseCase.js +16 -14
- package/src/Context/usecase/ContextNormalFillUseCase.js +10 -12
- package/src/Context/usecase/ContextPatternBitmapFillUseCase.d.ts +2 -2
- package/src/Context/usecase/ContextPatternBitmapFillUseCase.js +13 -14
- package/src/Context/usecase/ContextRadialGradientFillUseCase.js +16 -14
- package/src/Context.d.ts +5 -626
- package/src/Context.js +31 -636
- package/src/Filter/BevelFilter/usecase/FilterApplyBevelFilterUseCase.js +2 -2
- package/src/Filter/BlurFilter/usecase/FilterApplyBlurFilterUseCase.js +2 -2
- package/src/Filter/DisplacementMapFilter/usecase/FilterApplyDisplacementMapFilterUseCase.d.ts +1 -2
- package/src/Filter/DisplacementMapFilter/usecase/FilterApplyDisplacementMapFilterUseCase.js +3 -9
- package/src/Filter/DropShadowFilter/usecase/FilterApplyDropShadowFilterUseCase.js +2 -2
- package/src/Filter/GradientBevelFilter/usecase/FilterApplyGradientBevelFilterUseCase.js +2 -2
- package/src/Filter/GradientGlowFilter/usecase/FilterApplyGradientGlowFilterUseCase.js +2 -2
- package/src/FrameBufferManager/service/FrameBufferManagerBindAttachmentObjectService.js +8 -2
- package/src/FrameBufferManager/service/FrameBufferManagerTransferAtlasTextureService.js +12 -25
- package/src/FrameBufferManager/service/FrameBufferManagerUnBindAttachmentObjectService.js +2 -2
- package/src/FrameBufferManager/usecase/FrameBufferManagerGetAttachmentObjectUseCase.js +2 -2
- package/src/FrameBufferManager/usecase/FrameBufferManagerGetTextureFromNodeUseCase.js +7 -9
- package/src/FrameBufferManager.d.ts +8 -137
- package/src/FrameBufferManager.js +8 -199
- package/src/Mask/service/MaskBeginMaskService.js +2 -2
- package/src/Mask/service/MaskEndMaskService.js +2 -2
- package/src/Mask/service/MaskSetMaskBoundsService.js +2 -2
- package/src/Mask/usecase/MaskBindUseCase.js +4 -4
- package/src/Mask/usecase/MaskLeaveMaskUseCase.js +4 -4
- package/src/Mesh/service/MeshFindOverlappingPathsService.d.ts +2 -1
- package/src/Mesh/service/MeshFindOverlappingPathsService.js +7 -3
- package/src/Mesh/service/MeshIsPointInsideRectangleService.js +14 -11
- package/src/Mesh/usecase/MeshFillGenerateUseCase.js +7 -5
- package/src/Mesh/usecase/MeshGenerateCalculateBevelJoinUseCase.js +15 -3
- package/src/Mesh/usecase/MeshGenerateCalculateMiterJoinUseCase.js +17 -3
- package/src/Mesh/usecase/MeshGenerateCalculateRoundJoinUseCase.js +14 -2
- package/src/Mesh/usecase/MeshGenerateStrokeOutlineUseCase.js +39 -23
- package/src/Mesh/usecase/MeshStrokeGenerateUseCase.js +12 -4
- package/src/Mesh.d.ts +10 -0
- package/src/Mesh.js +23 -0
- package/src/PathCommand/service/PathCommandPushCurrentPathToVerticesService.d.ts +1 -2
- package/src/PathCommand/service/PathCommandPushCurrentPathToVerticesService.js +3 -4
- package/src/PathCommand/usecase/PathCommandBezierCurveToUseCase.d.ts +2 -2
- package/src/PathCommand/usecase/PathCommandBezierCurveToUseCase.js +9 -5
- package/src/PathCommand.js +18 -3
- package/src/Shader/Fragment/Filter/FragmentShaderSourceBlurFilter.d.ts +0 -6
- package/src/Shader/Fragment/Filter/FragmentShaderSourceBlurFilter.js +0 -6
- package/src/Shader/Fragment/Filter/FragmentShaderSourceColorMatrixFilter.d.ts +0 -5
- package/src/Shader/Fragment/Filter/FragmentShaderSourceColorMatrixFilter.js +0 -5
- package/src/Shader/Fragment/Filter/FragmentShaderSourceConvolutionFilter.d.ts +0 -10
- package/src/Shader/Fragment/Filter/FragmentShaderSourceConvolutionFilter.js +0 -10
- package/src/Shader/Fragment/Filter/FragmentShaderSourceDisplacementMapFilter.d.ts +0 -9
- package/src/Shader/Fragment/Filter/FragmentShaderSourceDisplacementMapFilter.js +8 -18
- package/src/Shader/Fragment/Filter/FragmentShaderSourceFilter.d.ts +0 -14
- package/src/Shader/Fragment/Filter/FragmentShaderSourceFilter.js +0 -99
- package/src/Shader/Fragment/FragmentShaderLibrary.d.ts +0 -17
- package/src/Shader/Fragment/FragmentShaderLibrary.js +9 -23
- package/src/Shader/Fragment/FragmentShaderSource.d.ts +0 -40
- package/src/Shader/Fragment/FragmentShaderSource.js +9 -47
- package/src/Shader/Fragment/FragmentShaderSourceBlend.d.ts +0 -7
- package/src/Shader/Fragment/FragmentShaderSourceBlend.js +0 -87
- package/src/Shader/Fragment/FragmentShaderSourceGradient.d.ts +0 -10
- package/src/Shader/Fragment/FragmentShaderSourceGradient.js +7 -41
- package/src/Shader/Fragment/FragmentShaderSourceGradientLUT.d.ts +0 -11
- package/src/Shader/Fragment/FragmentShaderSourceGradientLUT.js +0 -11
- package/src/Shader/Fragment/FragmentShaderSourceTexture.d.ts +0 -11
- package/src/Shader/Fragment/FragmentShaderSourceTexture.js +2 -13
- package/src/Shader/GradientLUTGenerator/usecase/GradientLUTGenerateShapeTextureUseCase.d.ts +4 -0
- package/src/Shader/GradientLUTGenerator/usecase/GradientLUTGenerateShapeTextureUseCase.js +14 -7
- package/src/Shader/GradientLUTGenerator.d.ts +23 -0
- package/src/Shader/GradientLUTGenerator.js +43 -6
- package/src/Shader/ShaderInstancedManager.d.ts +0 -26
- package/src/Shader/ShaderInstancedManager.js +0 -26
- package/src/Shader/ShaderManager/service/ShaderManagerSetBitmapFillUniformService.js +3 -3
- package/src/Shader/ShaderManager/service/ShaderManagerSetFillUniformService.js +3 -3
- package/src/Shader/ShaderManager/service/ShaderManagerSetGradientFillUniformService.js +3 -3
- package/src/Shader/ShaderManager/service/ShaderManagerSetMaskUniformService.js +3 -3
- package/src/Shader/ShaderManager/service/ShaderManagerSetMatrixTextureUniformService.js +3 -3
- package/src/Shader/ShaderManager/service/ShaderManagerSetMatrixTextureWithColorTransformUniformService.js +3 -3
- package/src/Shader/ShaderManager/service/ShaderManagerSetTextureUniformService.js +3 -3
- package/src/Shader/ShaderManager.d.ts +3 -71
- package/src/Shader/ShaderManager.js +22 -80
- package/src/Shader/Variants/Filter/service/VariantsBitmapFilterShaderService.js +2 -1
- package/src/Shader/Variants/GradientLUT/service/VariantsGradientLUTShaderService.d.ts +2 -2
- package/src/Shader/Variants/GradientLUT/service/VariantsGradientLUTShaderService.js +9 -6
- package/src/Shader/Variants/GradientLUTVariants.d.ts +21 -0
- package/src/Shader/Variants/GradientLUTVariants.js +63 -0
- package/src/Shader/Vertex/VertexShaderLibrary.d.ts +0 -17
- package/src/Shader/Vertex/VertexShaderLibrary.js +1 -18
- package/src/Shader/Vertex/VertexShaderSource.d.ts +0 -25
- package/src/Shader/Vertex/VertexShaderSource.js +0 -25
- package/src/Shader/Vertex/VertexShaderSourceFill.d.ts +0 -65
- package/src/Shader/Vertex/VertexShaderSourceFill.js +0 -65
- package/src/Stencil/service/StencilDisableSampleAlphaToCoverageService.d.ts +1 -0
- package/src/Stencil/service/StencilDisableSampleAlphaToCoverageService.js +8 -0
- package/src/Stencil/service/StencilEnableSampleAlphaToCoverageService.d.ts +1 -0
- package/src/Stencil/service/StencilEnableSampleAlphaToCoverageService.js +8 -0
- package/src/Stencil/service/StencilResetService.d.ts +9 -0
- package/src/Stencil/service/StencilResetService.js +14 -0
- package/src/Stencil/service/StencilSetFillModeService.d.ts +1 -0
- package/src/Stencil/service/StencilSetFillModeService.js +13 -0
- package/src/Stencil/service/StencilSetMaskModeService.d.ts +1 -0
- package/src/Stencil/service/StencilSetMaskModeService.js +14 -0
- package/src/Stencil.d.ts +9 -0
- package/src/Stencil.js +17 -0
- package/src/StencilBufferObject/usecase/StencilBufferObjectAcquireObjectUseCase.js +15 -7
- package/src/TextureManager/usecase/TextureManagerGetMainTextureFromBoundsUseCase.js +6 -7
- package/src/VertexArrayObject/service/VertexArrayObjectCreateFillObjectService.js +2 -3
- package/src/VertexArrayObject/usecase/VertexArrayObjectBindAttributeUseCase.js +4 -2
- package/src/VertexArrayObject/usecase/VertexArrayObjectBindFillMeshUseCase.js +3 -1
- package/src/VertexArrayObject/usecase/VertexArrayObjectCreateInstancedVertexArrayObjectUseCase.js +5 -3
- package/src/VertexArrayObject/usecase/VertexArrayObjectCreateRectVertexArrayObjectUseCase.js +2 -2
- package/src/VertexArrayObject.d.ts +0 -9
- package/src/VertexArrayObject.js +0 -16
- package/src/WebGLUtil.d.ts +10 -262
- package/src/WebGLUtil.js +45 -316
- package/src/interface/ICubicConverterReturnObject.d.ts +4 -0
- package/src/interface/ICubicConverterReturnObject.js +1 -0
- package/src/interface/IVertexArrayObject.d.ts +1 -1
- package/src/Context/service/ContextUpdateAllTransferBoundsService.d.ts +0 -11
- 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.
|
|
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
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
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
|
-
|
|
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 @@
|
|
|
1
|
+
export {};
|
|
@@ -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
|
-
};
|