@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.
- package/LICENSE +21 -0
- package/README.md +11 -0
- package/dist/BezierConverter.d.ts +59 -0
- package/dist/BezierConverter.js +106 -0
- package/dist/CanvasGradientToWebGL.d.ts +96 -0
- package/dist/CanvasGradientToWebGL.js +181 -0
- package/dist/CanvasPatternToWebGL.d.ts +39 -0
- package/dist/CanvasPatternToWebGL.js +66 -0
- package/dist/CanvasToWebGLContext.d.ts +591 -0
- package/dist/CanvasToWebGLContext.js +1427 -0
- package/dist/CanvasToWebGLContextBlend.d.ts +97 -0
- package/dist/CanvasToWebGLContextBlend.js +299 -0
- package/dist/CanvasToWebGLContextGrid.d.ts +74 -0
- package/dist/CanvasToWebGLContextGrid.js +283 -0
- package/dist/CanvasToWebGLContextMask.d.ts +113 -0
- package/dist/CanvasToWebGLContextMask.js +436 -0
- package/dist/CanvasToWebGLContextPath.d.ts +111 -0
- package/dist/CanvasToWebGLContextPath.js +210 -0
- package/dist/CanvasToWebGLContextStyle.d.ts +78 -0
- package/dist/CanvasToWebGLContextStyle.js +139 -0
- package/dist/ColorBufferPool.d.ts +58 -0
- package/dist/ColorBufferPool.js +134 -0
- package/dist/FrameBufferManager.d.ts +135 -0
- package/dist/FrameBufferManager.js +358 -0
- package/dist/StencilBufferPool.d.ts +56 -0
- package/dist/StencilBufferPool.js +142 -0
- package/dist/TextureManager.d.ts +130 -0
- package/dist/TextureManager.js +296 -0
- package/dist/VertexArrayObjectManager.d.ts +96 -0
- package/dist/VertexArrayObjectManager.js +277 -0
- package/dist/WebGLFillMeshGenerator.d.ts +31 -0
- package/dist/WebGLFillMeshGenerator.js +101 -0
- package/dist/WebGLStrokeMeshGenerator.d.ts +183 -0
- package/dist/WebGLStrokeMeshGenerator.js +504 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +6 -0
- package/dist/interface/AttachmentImpl.d.ts +11 -0
- package/dist/interface/AttachmentImpl.js +1 -0
- package/dist/interface/BoundsImpl.d.ts +6 -0
- package/dist/interface/BoundsImpl.js +1 -0
- package/dist/interface/CapsStyleImpl.d.ts +1 -0
- package/dist/interface/CapsStyleImpl.js +1 -0
- package/dist/interface/ClipObjectImpl.d.ts +14 -0
- package/dist/interface/ClipObjectImpl.js +1 -0
- package/dist/interface/FillMeshImpl.d.ts +5 -0
- package/dist/interface/FillMeshImpl.js +1 -0
- package/dist/interface/GradientTypeImpl.d.ts +1 -0
- package/dist/interface/GradientTypeImpl.js +1 -0
- package/dist/interface/GridImpl.d.ts +6 -0
- package/dist/interface/GridImpl.js +1 -0
- package/dist/interface/IndexRangeImpl.d.ts +4 -0
- package/dist/interface/IndexRangeImpl.js +1 -0
- package/dist/interface/InterpolationMethodImpl.d.ts +1 -0
- package/dist/interface/InterpolationMethodImpl.js +1 -0
- package/dist/interface/JointStyleImpl.d.ts +1 -0
- package/dist/interface/JointStyleImpl.js +1 -0
- package/dist/interface/SpreadMethodImpl.d.ts +1 -0
- package/dist/interface/SpreadMethodImpl.js +1 -0
- package/dist/interface/StrokeMethImpl.d.ts +4 -0
- package/dist/interface/StrokeMethImpl.js +1 -0
- package/dist/interface/UniformDataImpl.d.ts +5 -0
- package/dist/interface/UniformDataImpl.js +1 -0
- package/dist/interface/VerticesImpl.d.ts +1 -0
- package/dist/interface/VerticesImpl.js +1 -0
- package/dist/shader/CanvasToWebGLShader.d.ts +85 -0
- package/dist/shader/CanvasToWebGLShader.js +192 -0
- package/dist/shader/CanvasToWebGLShaderList.d.ts +70 -0
- package/dist/shader/CanvasToWebGLShaderList.js +109 -0
- package/dist/shader/GradientLUTGenerator.d.ts +36 -0
- package/dist/shader/GradientLUTGenerator.js +123 -0
- package/dist/shader/WebGLShaderUniform.d.ts +52 -0
- package/dist/shader/WebGLShaderUniform.js +165 -0
- package/dist/shader/fragment/FragmentShaderLibrary.d.ts +18 -0
- package/dist/shader/fragment/FragmentShaderLibrary.js +35 -0
- package/dist/shader/fragment/FragmentShaderSource.d.ts +29 -0
- package/dist/shader/fragment/FragmentShaderSource.js +99 -0
- package/dist/shader/fragment/FragmentShaderSourceBlend.d.ts +67 -0
- package/dist/shader/fragment/FragmentShaderSourceBlend.js +319 -0
- package/dist/shader/fragment/FragmentShaderSourceGradient.d.ts +44 -0
- package/dist/shader/fragment/FragmentShaderSourceGradient.js +114 -0
- package/dist/shader/fragment/FragmentShaderSourceGradientLUT.d.ts +14 -0
- package/dist/shader/fragment/FragmentShaderSourceGradientLUT.js +58 -0
- package/dist/shader/fragment/FragmentShaderSourceTexture.d.ts +12 -0
- package/dist/shader/fragment/FragmentShaderSourceTexture.js +36 -0
- package/dist/shader/fragment/filter/FragmentShaderSourceBlurFilter.d.ts +12 -0
- package/dist/shader/fragment/filter/FragmentShaderSourceBlurFilter.js +42 -0
- package/dist/shader/fragment/filter/FragmentShaderSourceColorMatrixFilter.d.ts +11 -0
- package/dist/shader/fragment/filter/FragmentShaderSourceColorMatrixFilter.js +35 -0
- package/dist/shader/fragment/filter/FragmentShaderSourceConvolutionFilter.d.ts +16 -0
- package/dist/shader/fragment/filter/FragmentShaderSourceConvolutionFilter.js +80 -0
- package/dist/shader/fragment/filter/FragmentShaderSourceDisplacementMapFilter.d.ts +15 -0
- package/dist/shader/fragment/filter/FragmentShaderSourceDisplacementMapFilter.js +106 -0
- package/dist/shader/fragment/filter/FragmentShaderSourceFilter.d.ts +112 -0
- package/dist/shader/fragment/filter/FragmentShaderSourceFilter.js +275 -0
- package/dist/shader/variants/BlendShaderVariantCollection.d.ts +99 -0
- package/dist/shader/variants/BlendShaderVariantCollection.js +239 -0
- package/dist/shader/variants/FilterShaderVariantCollection.d.ts +150 -0
- package/dist/shader/variants/FilterShaderVariantCollection.js +395 -0
- package/dist/shader/variants/GradientLUTShaderVariantCollection.d.ts +49 -0
- package/dist/shader/variants/GradientLUTShaderVariantCollection.js +107 -0
- package/dist/shader/variants/GradientShapeShaderVariantCollection.d.ts +61 -0
- package/dist/shader/variants/GradientShapeShaderVariantCollection.js +196 -0
- package/dist/shader/variants/ShapeShaderVariantCollection.d.ts +117 -0
- package/dist/shader/variants/ShapeShaderVariantCollection.js +427 -0
- package/dist/shader/vertex/VertexShaderLibrary.d.ts +18 -0
- package/dist/shader/vertex/VertexShaderLibrary.js +75 -0
- package/dist/shader/vertex/VertexShaderSource.d.ts +23 -0
- package/dist/shader/vertex/VertexShaderSource.js +92 -0
- package/dist/shader/vertex/VertexShaderSourceFill.d.ts +45 -0
- package/dist/shader/vertex/VertexShaderSourceFill.js +112 -0
- package/dist/shader/vertex/VertexShaderSourceStroke.d.ts +27 -0
- package/dist/shader/vertex/VertexShaderSourceStroke.js +149 -0
- package/package.json +37 -0
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { $getMap, $Float32Array, $Int32Array } from "@next2d/share";
|
|
2
|
+
/**
|
|
3
|
+
* @class
|
|
4
|
+
*/
|
|
5
|
+
export class WebGLShaderUniform {
|
|
6
|
+
/**
|
|
7
|
+
* @param {WebGL2RenderingContext} gl
|
|
8
|
+
* @param {WebGLProgram} program
|
|
9
|
+
* @constructor
|
|
10
|
+
* @public
|
|
11
|
+
*/
|
|
12
|
+
constructor(gl, program) {
|
|
13
|
+
/**
|
|
14
|
+
* @type {WebGL2RenderingContext}
|
|
15
|
+
* @private
|
|
16
|
+
*/
|
|
17
|
+
this._$gl = gl;
|
|
18
|
+
/**
|
|
19
|
+
* @type {array}
|
|
20
|
+
* @private
|
|
21
|
+
*/
|
|
22
|
+
this._$array = [];
|
|
23
|
+
/**
|
|
24
|
+
* @type {Map}
|
|
25
|
+
* @private
|
|
26
|
+
*/
|
|
27
|
+
this._$map = $getMap();
|
|
28
|
+
const activeUniforms = this._$gl.getProgramParameter(program, this._$gl.ACTIVE_UNIFORMS);
|
|
29
|
+
for (let i = 0; i < activeUniforms; i++) {
|
|
30
|
+
const info = this._$gl.getActiveUniform(program, i);
|
|
31
|
+
if (!info) {
|
|
32
|
+
throw new Error("the WebGLActiveInfo is null.");
|
|
33
|
+
}
|
|
34
|
+
const name = info.name.endsWith("[0]")
|
|
35
|
+
? info.name.slice(0, -3)
|
|
36
|
+
: info.name;
|
|
37
|
+
const location = this._$gl.getUniformLocation(program, name);
|
|
38
|
+
if (!location) {
|
|
39
|
+
throw new Error("the WebGLUniformLocation is null.");
|
|
40
|
+
}
|
|
41
|
+
// WebGLの仕様でuniformのint型のデフォルト値は0に設定されるため、
|
|
42
|
+
// sampler2D(size=1)の値の更新は不要
|
|
43
|
+
if (info.type === this._$gl.SAMPLER_2D && info.size === 1) {
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
const data = {};
|
|
47
|
+
switch (info.type) {
|
|
48
|
+
// uniformの値の設定は、gl.uniform4[fi]v()が最速のため、
|
|
49
|
+
// 可能な限りFloat32Arrayに値をパックして転送するようにする
|
|
50
|
+
case this._$gl.FLOAT_VEC4:
|
|
51
|
+
data.method = this._$gl.uniform4fv.bind(this._$gl, location);
|
|
52
|
+
data.array = new $Float32Array(4 * info.size);
|
|
53
|
+
data.assign = -1;
|
|
54
|
+
break;
|
|
55
|
+
case this._$gl.INT_VEC4:
|
|
56
|
+
data.method = this._$gl.uniform4iv.bind(this._$gl, location);
|
|
57
|
+
data.array = new $Int32Array(4 * info.size);
|
|
58
|
+
data.assign = -1;
|
|
59
|
+
break;
|
|
60
|
+
// uniformの値の設定は、programに保持されるため、
|
|
61
|
+
// sampler2Dは一度だけ設定するようにする
|
|
62
|
+
case this._$gl.SAMPLER_2D:
|
|
63
|
+
data.method = this._$gl.uniform1iv.bind(this._$gl, location);
|
|
64
|
+
data.array = new $Int32Array(info.size);
|
|
65
|
+
data.assign = 1;
|
|
66
|
+
break;
|
|
67
|
+
case this._$gl.FLOAT:
|
|
68
|
+
case this._$gl.FLOAT_VEC2:
|
|
69
|
+
case this._$gl.FLOAT_VEC3:
|
|
70
|
+
case this._$gl.FLOAT_MAT2:
|
|
71
|
+
case this._$gl.FLOAT_MAT3:
|
|
72
|
+
case this._$gl.FLOAT_MAT4:
|
|
73
|
+
case this._$gl.INT:
|
|
74
|
+
case this._$gl.INT_VEC2:
|
|
75
|
+
case this._$gl.INT_VEC3:
|
|
76
|
+
default:
|
|
77
|
+
throw new Error("Use gl.FLOAT_VEC4 or gl.INT_VEC4 instead");
|
|
78
|
+
}
|
|
79
|
+
this._$array.push(data);
|
|
80
|
+
this._$map.set(name, data);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* @param {string} name
|
|
85
|
+
* @return {Int32Array|Float32Array}
|
|
86
|
+
* @method
|
|
87
|
+
* @public
|
|
88
|
+
*/
|
|
89
|
+
getArray(name) {
|
|
90
|
+
const data = this._$map.get(name);
|
|
91
|
+
if (!data || !data.array) {
|
|
92
|
+
throw new Error("the UniformData is null.");
|
|
93
|
+
}
|
|
94
|
+
return data.array;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* @member {Int32Array|Float32Array}
|
|
98
|
+
* @readonly
|
|
99
|
+
* @public
|
|
100
|
+
*/
|
|
101
|
+
get textures() {
|
|
102
|
+
const data = this._$map.get("u_textures");
|
|
103
|
+
if (!data || !data.array) {
|
|
104
|
+
throw new Error("the UniformData is null.");
|
|
105
|
+
}
|
|
106
|
+
return data.array;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* @member {Int32Array|Float32Array}
|
|
110
|
+
* @readonly
|
|
111
|
+
* @public
|
|
112
|
+
*/
|
|
113
|
+
get highp() {
|
|
114
|
+
const data = this._$map.get("u_highp");
|
|
115
|
+
if (!data || !data.array) {
|
|
116
|
+
throw new Error("the UniformData is null.");
|
|
117
|
+
}
|
|
118
|
+
return data.array;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* @member {Int32Array|Float32Array}
|
|
122
|
+
* @readonly
|
|
123
|
+
* @public
|
|
124
|
+
*/
|
|
125
|
+
get mediump() {
|
|
126
|
+
const data = this._$map.get("u_mediump");
|
|
127
|
+
if (!data || !data.array) {
|
|
128
|
+
throw new Error("the UniformData is null.");
|
|
129
|
+
}
|
|
130
|
+
return data.array;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* @member {Int32Array|Float32Array}
|
|
134
|
+
* @readonly
|
|
135
|
+
* @public
|
|
136
|
+
*/
|
|
137
|
+
get integer() {
|
|
138
|
+
const data = this._$map.get("u_integer");
|
|
139
|
+
if (!data || !data.array) {
|
|
140
|
+
throw new Error("the UniformData is null.");
|
|
141
|
+
}
|
|
142
|
+
return data.array;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* @return {void}
|
|
146
|
+
* @method
|
|
147
|
+
* @public
|
|
148
|
+
*/
|
|
149
|
+
bindUniforms() {
|
|
150
|
+
const length = this._$array.length;
|
|
151
|
+
for (let i = 0; i < length; i++) {
|
|
152
|
+
const data = this._$array[i];
|
|
153
|
+
if (data.method === undefined || data.assign === undefined) {
|
|
154
|
+
continue;
|
|
155
|
+
}
|
|
156
|
+
if (data.assign < 0) {
|
|
157
|
+
data.method(data.array);
|
|
158
|
+
}
|
|
159
|
+
else if (data.assign > 0) {
|
|
160
|
+
data.assign--;
|
|
161
|
+
data.method(data.array);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @class
|
|
3
|
+
*/
|
|
4
|
+
export declare class FragmentShaderLibrary {
|
|
5
|
+
/**
|
|
6
|
+
* @return {string}
|
|
7
|
+
* @method
|
|
8
|
+
* @static
|
|
9
|
+
*/
|
|
10
|
+
static FUNCTION_IS_INSIDE(): string;
|
|
11
|
+
/**
|
|
12
|
+
* @param {number} mediump_index
|
|
13
|
+
* @return {string}
|
|
14
|
+
* @method
|
|
15
|
+
* @static
|
|
16
|
+
*/
|
|
17
|
+
static STATEMENT_COLOR_TRANSFORM_ON(mediump_index: number): string;
|
|
18
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @class
|
|
3
|
+
*/
|
|
4
|
+
export class FragmentShaderLibrary {
|
|
5
|
+
/**
|
|
6
|
+
* @return {string}
|
|
7
|
+
* @method
|
|
8
|
+
* @static
|
|
9
|
+
*/
|
|
10
|
+
static FUNCTION_IS_INSIDE() {
|
|
11
|
+
return `
|
|
12
|
+
|
|
13
|
+
float isInside(in vec2 uv) {
|
|
14
|
+
return step(4.0, dot(step(vec4(0.0, uv.x, 0.0, uv.y), vec4(uv.x, 1.0, uv.y, 1.0)), vec4(1.0)));
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
`;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* @param {number} mediump_index
|
|
21
|
+
* @return {string}
|
|
22
|
+
* @method
|
|
23
|
+
* @static
|
|
24
|
+
*/
|
|
25
|
+
static STATEMENT_COLOR_TRANSFORM_ON(mediump_index) {
|
|
26
|
+
return `
|
|
27
|
+
vec4 mul = u_mediump[${mediump_index}];
|
|
28
|
+
vec4 add = u_mediump[${mediump_index + 1}];
|
|
29
|
+
|
|
30
|
+
src.rgb /= max(0.0001, src.a);
|
|
31
|
+
src = clamp(src * mul + add, 0.0, 1.0);
|
|
32
|
+
src.rgb *= src.a;
|
|
33
|
+
`;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @class
|
|
3
|
+
*/
|
|
4
|
+
export declare class FragmentShaderSource {
|
|
5
|
+
/**
|
|
6
|
+
* @return {string}
|
|
7
|
+
* @method
|
|
8
|
+
* @static
|
|
9
|
+
*/
|
|
10
|
+
static SOLID_COLOR(): string;
|
|
11
|
+
/**
|
|
12
|
+
* @return {string}
|
|
13
|
+
* @method
|
|
14
|
+
* @static
|
|
15
|
+
*/
|
|
16
|
+
static BITMAP_CLIPPED(): string;
|
|
17
|
+
/**
|
|
18
|
+
* @return {string}
|
|
19
|
+
* @method
|
|
20
|
+
* @static
|
|
21
|
+
*/
|
|
22
|
+
static BITMAP_PATTERN(): string;
|
|
23
|
+
/**
|
|
24
|
+
* @return {string}
|
|
25
|
+
* @method
|
|
26
|
+
* @static
|
|
27
|
+
*/
|
|
28
|
+
static MASK(): string;
|
|
29
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { FragmentShaderLibrary } from "./FragmentShaderLibrary";
|
|
2
|
+
/**
|
|
3
|
+
* @class
|
|
4
|
+
*/
|
|
5
|
+
export class FragmentShaderSource {
|
|
6
|
+
/**
|
|
7
|
+
* @return {string}
|
|
8
|
+
* @method
|
|
9
|
+
* @static
|
|
10
|
+
*/
|
|
11
|
+
static SOLID_COLOR() {
|
|
12
|
+
return `#version 300 es
|
|
13
|
+
precision mediump float;
|
|
14
|
+
|
|
15
|
+
uniform vec4 u_mediump;
|
|
16
|
+
|
|
17
|
+
out vec4 o_color;
|
|
18
|
+
|
|
19
|
+
void main() {
|
|
20
|
+
o_color = vec4(u_mediump.rgb * u_mediump.a, u_mediump.a);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
`;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* @return {string}
|
|
27
|
+
* @method
|
|
28
|
+
* @static
|
|
29
|
+
*/
|
|
30
|
+
static BITMAP_CLIPPED() {
|
|
31
|
+
return `#version 300 es
|
|
32
|
+
precision mediump float;
|
|
33
|
+
|
|
34
|
+
uniform sampler2D u_texture;
|
|
35
|
+
uniform vec4 u_mediump[3];
|
|
36
|
+
|
|
37
|
+
in vec2 v_uv;
|
|
38
|
+
out vec4 o_color;
|
|
39
|
+
|
|
40
|
+
void main() {
|
|
41
|
+
vec2 uv = vec2(v_uv.x, u_mediump[0].y - v_uv.y) / u_mediump[0].xy;
|
|
42
|
+
|
|
43
|
+
vec4 src = texture(u_texture, uv);
|
|
44
|
+
${FragmentShaderLibrary.STATEMENT_COLOR_TRANSFORM_ON(1)}
|
|
45
|
+
o_color = src;
|
|
46
|
+
}`;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* @return {string}
|
|
50
|
+
* @method
|
|
51
|
+
* @static
|
|
52
|
+
*/
|
|
53
|
+
static BITMAP_PATTERN() {
|
|
54
|
+
return `#version 300 es
|
|
55
|
+
precision mediump float;
|
|
56
|
+
|
|
57
|
+
uniform sampler2D u_texture;
|
|
58
|
+
uniform vec4 u_mediump[3];
|
|
59
|
+
|
|
60
|
+
in vec2 v_uv;
|
|
61
|
+
out vec4 o_color;
|
|
62
|
+
|
|
63
|
+
void main() {
|
|
64
|
+
vec2 uv = fract(vec2(v_uv.x, -v_uv.y) / u_mediump[0].xy);
|
|
65
|
+
|
|
66
|
+
vec4 src = texture(u_texture, uv);
|
|
67
|
+
${FragmentShaderLibrary.STATEMENT_COLOR_TRANSFORM_ON(1)}
|
|
68
|
+
o_color = src;
|
|
69
|
+
}`;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* @return {string}
|
|
73
|
+
* @method
|
|
74
|
+
* @static
|
|
75
|
+
*/
|
|
76
|
+
static MASK() {
|
|
77
|
+
return `#version 300 es
|
|
78
|
+
precision mediump float;
|
|
79
|
+
|
|
80
|
+
in vec2 v_bezier;
|
|
81
|
+
out vec4 o_color;
|
|
82
|
+
|
|
83
|
+
void main() {
|
|
84
|
+
vec2 px = dFdx(v_bezier);
|
|
85
|
+
vec2 py = dFdy(v_bezier);
|
|
86
|
+
|
|
87
|
+
vec2 f = (2.0 * v_bezier.x) * vec2(px.x, py.x) - vec2(px.y, py.y);
|
|
88
|
+
float alpha = 0.5 - (v_bezier.x * v_bezier.x - v_bezier.y) / length(f);
|
|
89
|
+
|
|
90
|
+
if (alpha > 0.0) {
|
|
91
|
+
o_color = vec4(min(alpha, 1.0));
|
|
92
|
+
} else {
|
|
93
|
+
discard;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
`;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @class
|
|
3
|
+
*/
|
|
4
|
+
export declare class FragmentShaderSourceBlend {
|
|
5
|
+
/**
|
|
6
|
+
* @param {string} operation
|
|
7
|
+
* @param {boolean} with_color_transform
|
|
8
|
+
* @return {string}
|
|
9
|
+
* @method
|
|
10
|
+
* @static
|
|
11
|
+
*/
|
|
12
|
+
static TEMPLATE(operation: string, with_color_transform: boolean): string;
|
|
13
|
+
/**
|
|
14
|
+
* @return {string}
|
|
15
|
+
* @method
|
|
16
|
+
* @static
|
|
17
|
+
*/
|
|
18
|
+
static FUNCTION_NORMAL(): string;
|
|
19
|
+
/**
|
|
20
|
+
* @return {string}
|
|
21
|
+
* @method
|
|
22
|
+
* @static
|
|
23
|
+
*/
|
|
24
|
+
static FUNCTION_SUBTRACT(): string;
|
|
25
|
+
/**
|
|
26
|
+
* @return {string}
|
|
27
|
+
* @method
|
|
28
|
+
* @static
|
|
29
|
+
*/
|
|
30
|
+
static FUNCTION_MULTIPLY(): string;
|
|
31
|
+
/**
|
|
32
|
+
* @return {string}
|
|
33
|
+
* @method
|
|
34
|
+
* @static
|
|
35
|
+
*/
|
|
36
|
+
static FUNCTION_LIGHTEN(): string;
|
|
37
|
+
/**
|
|
38
|
+
* @return {string}
|
|
39
|
+
* @method
|
|
40
|
+
* @static
|
|
41
|
+
*/
|
|
42
|
+
static FUNCTION_DARKEN(): string;
|
|
43
|
+
/**
|
|
44
|
+
* @return {string}
|
|
45
|
+
* @method
|
|
46
|
+
* @static
|
|
47
|
+
*/
|
|
48
|
+
static FUNCTION_OVERLAY(): string;
|
|
49
|
+
/**
|
|
50
|
+
* @return {string}
|
|
51
|
+
* @method
|
|
52
|
+
* @static
|
|
53
|
+
*/
|
|
54
|
+
static FUNCTION_HARDLIGHT(): string;
|
|
55
|
+
/**
|
|
56
|
+
* @return {string}
|
|
57
|
+
* @method
|
|
58
|
+
* @static
|
|
59
|
+
*/
|
|
60
|
+
static FUNCTION_DIFFERENCE(): string;
|
|
61
|
+
/**
|
|
62
|
+
* @return {string}
|
|
63
|
+
* @method
|
|
64
|
+
* @static
|
|
65
|
+
*/
|
|
66
|
+
static FUNCTION_INVERT(): string;
|
|
67
|
+
}
|