@next2d/webgl 1.14.20

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 (113) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +11 -0
  3. package/dist/BezierConverter.d.ts +59 -0
  4. package/dist/BezierConverter.js +106 -0
  5. package/dist/CanvasGradientToWebGL.d.ts +96 -0
  6. package/dist/CanvasGradientToWebGL.js +181 -0
  7. package/dist/CanvasPatternToWebGL.d.ts +39 -0
  8. package/dist/CanvasPatternToWebGL.js +66 -0
  9. package/dist/CanvasToWebGLContext.d.ts +591 -0
  10. package/dist/CanvasToWebGLContext.js +1427 -0
  11. package/dist/CanvasToWebGLContextBlend.d.ts +97 -0
  12. package/dist/CanvasToWebGLContextBlend.js +299 -0
  13. package/dist/CanvasToWebGLContextGrid.d.ts +74 -0
  14. package/dist/CanvasToWebGLContextGrid.js +283 -0
  15. package/dist/CanvasToWebGLContextMask.d.ts +113 -0
  16. package/dist/CanvasToWebGLContextMask.js +436 -0
  17. package/dist/CanvasToWebGLContextPath.d.ts +111 -0
  18. package/dist/CanvasToWebGLContextPath.js +210 -0
  19. package/dist/CanvasToWebGLContextStyle.d.ts +78 -0
  20. package/dist/CanvasToWebGLContextStyle.js +139 -0
  21. package/dist/ColorBufferPool.d.ts +58 -0
  22. package/dist/ColorBufferPool.js +134 -0
  23. package/dist/FrameBufferManager.d.ts +135 -0
  24. package/dist/FrameBufferManager.js +358 -0
  25. package/dist/StencilBufferPool.d.ts +56 -0
  26. package/dist/StencilBufferPool.js +142 -0
  27. package/dist/TextureManager.d.ts +130 -0
  28. package/dist/TextureManager.js +296 -0
  29. package/dist/VertexArrayObjectManager.d.ts +96 -0
  30. package/dist/VertexArrayObjectManager.js +277 -0
  31. package/dist/WebGLFillMeshGenerator.d.ts +31 -0
  32. package/dist/WebGLFillMeshGenerator.js +101 -0
  33. package/dist/WebGLStrokeMeshGenerator.d.ts +183 -0
  34. package/dist/WebGLStrokeMeshGenerator.js +504 -0
  35. package/dist/index.d.ts +6 -0
  36. package/dist/index.js +6 -0
  37. package/dist/interface/AttachmentImpl.d.ts +11 -0
  38. package/dist/interface/AttachmentImpl.js +1 -0
  39. package/dist/interface/BoundsImpl.d.ts +6 -0
  40. package/dist/interface/BoundsImpl.js +1 -0
  41. package/dist/interface/CapsStyleImpl.d.ts +1 -0
  42. package/dist/interface/CapsStyleImpl.js +1 -0
  43. package/dist/interface/ClipObjectImpl.d.ts +14 -0
  44. package/dist/interface/ClipObjectImpl.js +1 -0
  45. package/dist/interface/FillMeshImpl.d.ts +5 -0
  46. package/dist/interface/FillMeshImpl.js +1 -0
  47. package/dist/interface/GradientTypeImpl.d.ts +1 -0
  48. package/dist/interface/GradientTypeImpl.js +1 -0
  49. package/dist/interface/GridImpl.d.ts +6 -0
  50. package/dist/interface/GridImpl.js +1 -0
  51. package/dist/interface/IndexRangeImpl.d.ts +4 -0
  52. package/dist/interface/IndexRangeImpl.js +1 -0
  53. package/dist/interface/InterpolationMethodImpl.d.ts +1 -0
  54. package/dist/interface/InterpolationMethodImpl.js +1 -0
  55. package/dist/interface/JointStyleImpl.d.ts +1 -0
  56. package/dist/interface/JointStyleImpl.js +1 -0
  57. package/dist/interface/SpreadMethodImpl.d.ts +1 -0
  58. package/dist/interface/SpreadMethodImpl.js +1 -0
  59. package/dist/interface/StrokeMethImpl.d.ts +4 -0
  60. package/dist/interface/StrokeMethImpl.js +1 -0
  61. package/dist/interface/UniformDataImpl.d.ts +5 -0
  62. package/dist/interface/UniformDataImpl.js +1 -0
  63. package/dist/interface/VerticesImpl.d.ts +1 -0
  64. package/dist/interface/VerticesImpl.js +1 -0
  65. package/dist/shader/CanvasToWebGLShader.d.ts +85 -0
  66. package/dist/shader/CanvasToWebGLShader.js +192 -0
  67. package/dist/shader/CanvasToWebGLShaderList.d.ts +70 -0
  68. package/dist/shader/CanvasToWebGLShaderList.js +109 -0
  69. package/dist/shader/GradientLUTGenerator.d.ts +36 -0
  70. package/dist/shader/GradientLUTGenerator.js +123 -0
  71. package/dist/shader/WebGLShaderUniform.d.ts +52 -0
  72. package/dist/shader/WebGLShaderUniform.js +165 -0
  73. package/dist/shader/fragment/FragmentShaderLibrary.d.ts +18 -0
  74. package/dist/shader/fragment/FragmentShaderLibrary.js +35 -0
  75. package/dist/shader/fragment/FragmentShaderSource.d.ts +29 -0
  76. package/dist/shader/fragment/FragmentShaderSource.js +99 -0
  77. package/dist/shader/fragment/FragmentShaderSourceBlend.d.ts +67 -0
  78. package/dist/shader/fragment/FragmentShaderSourceBlend.js +319 -0
  79. package/dist/shader/fragment/FragmentShaderSourceGradient.d.ts +44 -0
  80. package/dist/shader/fragment/FragmentShaderSourceGradient.js +114 -0
  81. package/dist/shader/fragment/FragmentShaderSourceGradientLUT.d.ts +14 -0
  82. package/dist/shader/fragment/FragmentShaderSourceGradientLUT.js +58 -0
  83. package/dist/shader/fragment/FragmentShaderSourceTexture.d.ts +12 -0
  84. package/dist/shader/fragment/FragmentShaderSourceTexture.js +36 -0
  85. package/dist/shader/fragment/filter/FragmentShaderSourceBlurFilter.d.ts +12 -0
  86. package/dist/shader/fragment/filter/FragmentShaderSourceBlurFilter.js +42 -0
  87. package/dist/shader/fragment/filter/FragmentShaderSourceColorMatrixFilter.d.ts +11 -0
  88. package/dist/shader/fragment/filter/FragmentShaderSourceColorMatrixFilter.js +35 -0
  89. package/dist/shader/fragment/filter/FragmentShaderSourceConvolutionFilter.d.ts +16 -0
  90. package/dist/shader/fragment/filter/FragmentShaderSourceConvolutionFilter.js +80 -0
  91. package/dist/shader/fragment/filter/FragmentShaderSourceDisplacementMapFilter.d.ts +15 -0
  92. package/dist/shader/fragment/filter/FragmentShaderSourceDisplacementMapFilter.js +106 -0
  93. package/dist/shader/fragment/filter/FragmentShaderSourceFilter.d.ts +112 -0
  94. package/dist/shader/fragment/filter/FragmentShaderSourceFilter.js +275 -0
  95. package/dist/shader/variants/BlendShaderVariantCollection.d.ts +99 -0
  96. package/dist/shader/variants/BlendShaderVariantCollection.js +239 -0
  97. package/dist/shader/variants/FilterShaderVariantCollection.d.ts +150 -0
  98. package/dist/shader/variants/FilterShaderVariantCollection.js +395 -0
  99. package/dist/shader/variants/GradientLUTShaderVariantCollection.d.ts +49 -0
  100. package/dist/shader/variants/GradientLUTShaderVariantCollection.js +107 -0
  101. package/dist/shader/variants/GradientShapeShaderVariantCollection.d.ts +61 -0
  102. package/dist/shader/variants/GradientShapeShaderVariantCollection.js +196 -0
  103. package/dist/shader/variants/ShapeShaderVariantCollection.d.ts +117 -0
  104. package/dist/shader/variants/ShapeShaderVariantCollection.js +427 -0
  105. package/dist/shader/vertex/VertexShaderLibrary.d.ts +18 -0
  106. package/dist/shader/vertex/VertexShaderLibrary.js +75 -0
  107. package/dist/shader/vertex/VertexShaderSource.d.ts +23 -0
  108. package/dist/shader/vertex/VertexShaderSource.js +92 -0
  109. package/dist/shader/vertex/VertexShaderSourceFill.d.ts +45 -0
  110. package/dist/shader/vertex/VertexShaderSourceFill.js +112 -0
  111. package/dist/shader/vertex/VertexShaderSourceStroke.d.ts +27 -0
  112. package/dist/shader/vertex/VertexShaderSourceStroke.js +149 -0
  113. package/package.json +37 -0
@@ -0,0 +1,112 @@
1
+ import { VertexShaderLibrary } from "./VertexShaderLibrary";
2
+ /**
3
+ * @class
4
+ */
5
+ export class VertexShaderSourceFill {
6
+ /**
7
+ * @param {number} highp_length
8
+ * @param {boolean} with_uv
9
+ * @param {boolean} for_mask
10
+ * @param {boolean} has_grid
11
+ * @return {string}
12
+ * @method
13
+ * @static
14
+ */
15
+ static TEMPLATE(highp_length, with_uv, for_mask, has_grid) {
16
+ const bezierAttribute = for_mask
17
+ ? this.ATTRIBUTE_BEZIER_ON()
18
+ : "";
19
+ const uvVarying = for_mask ? this.VARYING_BEZIER_ON()
20
+ : with_uv ? this.VARYING_UV_ON()
21
+ : "";
22
+ const uvStatement = for_mask ? this.STATEMENT_BEZIER_ON()
23
+ : with_uv ? this.STATEMENT_UV_ON()
24
+ : "";
25
+ const gridFunction = has_grid
26
+ ? VertexShaderLibrary.FUNCTION_GRID_ON(with_uv ? 5 : 0)
27
+ : VertexShaderLibrary.FUNCTION_GRID_OFF();
28
+ return `#version 300 es
29
+
30
+ layout (location = 0) in vec2 a_vertex;
31
+ ${bezierAttribute}
32
+
33
+ uniform vec4 u_highp[${highp_length}];
34
+
35
+ ${uvVarying}
36
+
37
+ ${gridFunction}
38
+
39
+ void main() {
40
+ vec2 viewport = vec2(u_highp[0].w, u_highp[1].w);
41
+
42
+ ${uvStatement}
43
+
44
+ vec2 pos = applyMatrix(a_vertex) / viewport;
45
+ pos = pos * 2.0 - 1.0;
46
+ gl_Position = vec4(pos.x, -pos.y, 0.0, 1.0);
47
+ }
48
+
49
+ `;
50
+ }
51
+ /**
52
+ * @return {string}
53
+ * @method
54
+ * @static
55
+ */
56
+ static ATTRIBUTE_BEZIER_ON() {
57
+ return `
58
+ layout (location = 1) in vec2 a_bezier;
59
+ `;
60
+ }
61
+ /**
62
+ * @return {string}
63
+ * @method
64
+ * @static
65
+ */
66
+ static VARYING_UV_ON() {
67
+ return `
68
+ out vec2 v_uv;
69
+ `;
70
+ }
71
+ /**
72
+ * @return {string}
73
+ * @method
74
+ * @static
75
+ */
76
+ static VARYING_BEZIER_ON() {
77
+ return `
78
+ out vec2 v_bezier;
79
+ `;
80
+ }
81
+ /**
82
+ * @return {string}
83
+ * @method
84
+ * @static
85
+ */
86
+ static STATEMENT_UV_ON() {
87
+ return `
88
+ mat3 uv_matrix = mat3(
89
+ u_highp[0].xyz,
90
+ u_highp[1].xyz,
91
+ u_highp[2].xyz
92
+ );
93
+ mat3 inverse_matrix = mat3(
94
+ u_highp[3].xyz,
95
+ u_highp[4].xyz,
96
+ vec3(u_highp[2].w, u_highp[3].w, u_highp[4].w)
97
+ );
98
+
99
+ v_uv = (inverse_matrix * uv_matrix * vec3(a_vertex, 1.0)).xy;
100
+ `;
101
+ }
102
+ /**
103
+ * @return {string}
104
+ * @method
105
+ * @static
106
+ */
107
+ static STATEMENT_BEZIER_ON() {
108
+ return `
109
+ v_bezier = a_bezier;
110
+ `;
111
+ }
112
+ }
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @class
3
+ */
4
+ export declare class VertexShaderSourceStroke {
5
+ /**
6
+ * @param {number} highp_length
7
+ * @param {number} fragment_index
8
+ * @param {boolean} with_uv
9
+ * @param {boolean} has_grid
10
+ * @return {string}
11
+ * @method
12
+ * @static
13
+ */
14
+ static TEMPLATE(highp_length: number, fragment_index: number, with_uv: boolean, has_grid: boolean): string;
15
+ /**
16
+ * @return {string}
17
+ * @method
18
+ * @static
19
+ */
20
+ static VARYING_UV_ON(): string;
21
+ /**
22
+ * @return {string}
23
+ * @method
24
+ * @static
25
+ */
26
+ static STATEMENT_UV_ON(): string;
27
+ }
@@ -0,0 +1,149 @@
1
+ import { VertexShaderLibrary } from "./VertexShaderLibrary";
2
+ /**
3
+ * @class
4
+ */
5
+ export class VertexShaderSourceStroke {
6
+ /**
7
+ * @param {number} highp_length
8
+ * @param {number} fragment_index
9
+ * @param {boolean} with_uv
10
+ * @param {boolean} has_grid
11
+ * @return {string}
12
+ * @method
13
+ * @static
14
+ */
15
+ static TEMPLATE(highp_length, fragment_index, with_uv, has_grid) {
16
+ const strokeIndex = fragment_index - 1;
17
+ const uvVarying = with_uv
18
+ ? this.VARYING_UV_ON()
19
+ : "";
20
+ const uvStatement = with_uv
21
+ ? this.STATEMENT_UV_ON()
22
+ : "";
23
+ const gridFunction = has_grid
24
+ ? VertexShaderLibrary.FUNCTION_GRID_ON(with_uv ? 5 : 0)
25
+ : VertexShaderLibrary.FUNCTION_GRID_OFF();
26
+ return `#version 300 es
27
+
28
+ layout (location = 0) in vec2 a_vertex;
29
+ layout (location = 1) in vec2 a_option1;
30
+ layout (location = 2) in vec2 a_option2;
31
+ layout (location = 3) in float a_type;
32
+
33
+ uniform vec4 u_highp[${highp_length}];
34
+
35
+ ${uvVarying}
36
+
37
+ ${gridFunction}
38
+
39
+ float crossVec2(in vec2 v1, in vec2 v2) {
40
+ return v1.x * v2.y - v2.x * v1.y;
41
+ }
42
+
43
+ vec2 perpendicularVec2(in vec2 v1) {
44
+ float face = u_highp[${strokeIndex}][1];
45
+
46
+ return face * vec2(v1.y, -v1.x);
47
+ }
48
+
49
+ vec2 calculateNormal(in vec2 direction) {
50
+ vec2 normalized = normalize(direction);
51
+ return perpendicularVec2(normalized);
52
+ }
53
+
54
+ vec2 calculateIntersection(in vec2 v1, in vec2 v2, in vec2 o1, in vec2 o2) {
55
+ float t = crossVec2(o2 - o1, v2) / crossVec2(v1, v2);
56
+ return (o1 + t * v1);
57
+ }
58
+
59
+ vec2 calculateAnchor(in vec2 position, in float convex, out vec2 v1, out vec2 v2, out vec2 o1, out vec2 o2) {
60
+ float miter_limit = u_highp[${strokeIndex}][2];
61
+
62
+ vec2 a = applyMatrix(a_option1);
63
+ vec2 b = applyMatrix(a_option2);
64
+
65
+ v1 = convex * (position - a);
66
+ v2 = convex * (b - position);
67
+ o1 = calculateNormal(v1) + a;
68
+ o2 = calculateNormal(v2) + position;
69
+
70
+ vec2 anchor = calculateIntersection(v1, v2, o1, o2) - position;
71
+ return normalize(anchor) * min(length(anchor), miter_limit);
72
+ }
73
+
74
+ void main() {
75
+ vec2 viewport = vec2(u_highp[0].w, u_highp[1].w);
76
+ float half_width = u_highp[${strokeIndex}][0];
77
+
78
+ vec2 position = applyMatrix(a_vertex);
79
+ vec2 offset = vec2(0.0);
80
+ vec2 v1, v2, o1, o2;
81
+
82
+ if (a_type == 1.0 || a_type == 2.0) { // 線分
83
+ offset = calculateNormal(a_option2 * (applyMatrix(a_option1) - position));
84
+ } else if (a_type == 10.0) { // スクエア線端
85
+ offset = normalize(position - applyMatrix(a_option1));
86
+ offset += a_option2 * perpendicularVec2(offset);
87
+ } else if (a_type == 21.0) { // マイター結合(線分Bの凸側)
88
+ offset = calculateAnchor(position, 1.0, v1, v2, o1, o2);
89
+ offset = calculateIntersection(v2, perpendicularVec2(offset), o2, position + offset) - position;
90
+ } else if (a_type == 22.0) { // マイター結合(線分Aの凸側)
91
+ offset = calculateAnchor(position, 1.0, v1, v2, o1, o2);
92
+ offset = calculateIntersection(v1, perpendicularVec2(offset), o1, position + offset) - position;
93
+ } else if (a_type == 23.0) { // マイター結合(線分Aの凹側)
94
+ offset = calculateAnchor(position, -1.0, v1, v2, o1, o2);
95
+ offset = calculateIntersection(v1, perpendicularVec2(offset), o1, position + offset) - position;
96
+ } else if (a_type == 24.0) { // マイター結合(線分Bの凹側)
97
+ offset = calculateAnchor(position, -1.0, v1, v2, o1, o2);
98
+ offset = calculateIntersection(v2, perpendicularVec2(offset), o2, position + offset) - position;
99
+ } else if (a_type >= 30.0) { // ラウンド結合
100
+ float face = u_highp[${strokeIndex}][1];
101
+ float rad = face * (a_type - 30.0) * 0.3488888889; /* 0.3488888889 = PI / 9.0 */
102
+ offset = mat2(cos(rad), sin(rad), -sin(rad), cos(rad)) * vec2(1.0, 0.0);
103
+ }
104
+
105
+ offset *= half_width;
106
+ position += offset;
107
+ ${uvStatement}
108
+
109
+ position /= viewport;
110
+ position = position * 2.0 - 1.0;
111
+ gl_Position = vec4(position.x, -position.y, 0.0, 1.0);
112
+ }
113
+
114
+ `;
115
+ }
116
+ /**
117
+ * @return {string}
118
+ * @method
119
+ * @static
120
+ */
121
+ static VARYING_UV_ON() {
122
+ return `
123
+ out vec2 v_uv;
124
+ `;
125
+ }
126
+ /**
127
+ * @return {string}
128
+ * @method
129
+ * @static
130
+ */
131
+ static STATEMENT_UV_ON() {
132
+ return `
133
+ mat3 uv_matrix = mat3(
134
+ u_highp[0].xyz,
135
+ u_highp[1].xyz,
136
+ u_highp[2].xyz
137
+ );
138
+ mat3 inverse_matrix = mat3(
139
+ u_highp[3].xyz,
140
+ u_highp[4].xyz,
141
+ vec3(u_highp[2].w, u_highp[3].w, u_highp[4].w)
142
+ );
143
+
144
+ v_uv = (uv_matrix * vec3(a_vertex, 1.0)).xy;
145
+ v_uv += offset;
146
+ v_uv = (inverse_matrix * vec3(v_uv, 1.0)).xy;
147
+ `;
148
+ }
149
+ }
package/package.json ADDED
@@ -0,0 +1,37 @@
1
+ {
2
+ "name": "@next2d/webgl",
3
+ "version": "1.14.20",
4
+ "description": "Next2D Webgl Packages",
5
+ "author": "Toshiyuki Ienaga<ienaga@tvon.jp> (https://github.com/ienaga/)",
6
+ "license": "MIT",
7
+ "homepage": "https://next2d.app",
8
+ "bugs": "https://github.com/Next2D/Player/issues",
9
+ "main": "dist/index.js",
10
+ "types": "dist/index.d.ts",
11
+ "files": [
12
+ "dist"
13
+ ],
14
+ "exports": {
15
+ ".": {
16
+ "import": {
17
+ "types": "./dist/index.d.ts",
18
+ "default": "./dist/index.js"
19
+ },
20
+ "require": {
21
+ "types": "./dist/index.d.ts",
22
+ "default": "./dist/index.js"
23
+ }
24
+ }
25
+ },
26
+ "keywords": [
27
+ "Next2D",
28
+ "Next2D Webgl"
29
+ ],
30
+ "repository": {
31
+ "type": "git",
32
+ "url": "git+https://github.com/Next2D/Player.git"
33
+ },
34
+ "peerDependencies": {
35
+ "@next2d/share": "1.14.20"
36
+ }
37
+ }