@@ -8,6 +8,7 @@ const vertexShaderSource = `
8
8
}
9
9
` ;
10
10
11
+ /** Create fragmentSource */
11
12
const fragmentShaderSource = ( rgb = [ 1 , 0 , 0 ] ) => `
12
13
precision mediump float;
13
14
varying float v;
@@ -16,13 +17,16 @@ const fragmentShaderSource = (rgb = [1, 0, 0]) => `
16
17
}
17
18
` ;
18
19
20
+ /** Setup trails */
19
21
export const trails = (
20
22
canvas : HTMLCanvasElement ,
21
23
gl : WebGLRenderingContext ,
22
24
rgb ?: [ number , number , number ] ,
23
25
) => {
24
26
gl . enable ( gl . BLEND ) ;
25
27
gl . blendFunc ( gl . SRC_ALPHA , gl . ONE_MINUS_SRC_ALPHA ) ;
28
+
29
+ /** Create shader */
26
30
const createShader = ( type : number , source : string ) : WebGLShader => {
27
31
const shader = gl . createShader ( type ) ;
28
32
if ( ! shader ) throw new Error ( "Failed to create shader" ) ;
@@ -39,6 +43,8 @@ export const trails = (
39
43
}
40
44
return shader ;
41
45
} ;
46
+
47
+ /** create buffer */
42
48
const createBuffer = ( ) => {
43
49
const buffer = gl . createBuffer ( ) ;
44
50
gl . bindBuffer ( gl . ARRAY_BUFFER , buffer ) ;
@@ -51,6 +57,7 @@ export const trails = (
51
57
gl . attachShader ( program , vertexShader ) ;
52
58
gl . attachShader ( program , fragmentShader ) ;
53
59
gl . linkProgram ( program ) ;
60
+
54
61
if ( ! gl . getProgramParameter ( program , gl . LINK_STATUS ) ) {
55
62
/* v8 ignore next */
56
63
console . error ( gl . getProgramInfoLog ( program ) ) ;
@@ -83,6 +90,7 @@ export const trails = (
83
90
fades . unshift ( 1 ) ;
84
91
} ) ;
85
92
93
+ /** Start render loop */
86
94
const render = ( ) => {
87
95
fades = fades . map ( fade => fade / 1.1 ) ;
88
96
positions = positions . filter ( ( _ , index ) => fades [ index ] > 0.001 ) ;
0 commit comments