protect zaps from webgl occasionally being unavailable
This commit is contained in:
		
							parent
							
								
									e939026295
								
							
						
					
					
						commit
						b5828cdf94
					
				| @ -57,22 +57,26 @@ export function Ghost ({ onDone }) { | |||||||
|     const texture = textureRef.current |     const texture = textureRef.current | ||||||
|     if (canvas.ghost) return |     if (canvas.ghost) return | ||||||
| 
 | 
 | ||||||
|     canvas.ghost = new GhostCanvas(canvas, texture, { |     try { | ||||||
|       size: getRandom(0.025, 0.075), |       canvas.ghost = new GhostCanvas(canvas, texture, { | ||||||
|       tail: { |         size: getRandom(0.025, 0.075), | ||||||
|         dotsNumber: 25, // Math.floor(getRandom(10, 50)),
 |         tail: { | ||||||
|         spring: 1.4, // getRandom(1, 1.8),
 |           dotsNumber: 25, // Math.floor(getRandom(10, 50)),
 | ||||||
|         friction: 0.25, // getRandom(0.1, 0.25),
 |           spring: 1.4, // getRandom(1, 1.8),
 | ||||||
|         maxGravity: 250, |           friction: 0.25, // getRandom(0.1, 0.25),
 | ||||||
|         gravity: getRandom(5, 250) |           maxGravity: 250, | ||||||
|       }, |           gravity: getRandom(5, 250) | ||||||
|       smile: 1, |         }, | ||||||
|       mainColor: [getRandom(0.8, 1), getRandom(0.8, 1), getRandom(0.8, 1)], |         smile: 1, | ||||||
|       borderColor: [getRandom(0, 0.2), getRandom(0, 0.2), getRandom(0, 0.2)], // [0.2, 0.5, 0.7],
 |         mainColor: [getRandom(0.8, 1), getRandom(0.8, 1), getRandom(0.8, 1)], | ||||||
|       isFlatColor: false, |         borderColor: [getRandom(0, 0.2), getRandom(0, 0.2), getRandom(0, 0.2)], // [0.2, 0.5, 0.7],
 | ||||||
|       onDone |         isFlatColor: false, | ||||||
|     }) |         onDone | ||||||
|   }, []) |       }) | ||||||
|  |     } catch (e) { | ||||||
|  |       console.error(e) | ||||||
|  |     } | ||||||
|  |   }, [canvasRef, textureRef, onDone]) | ||||||
| 
 | 
 | ||||||
|   return ( |   return ( | ||||||
|     <> |     <> | ||||||
| @ -137,6 +141,7 @@ const GhostCanvas = (canvas, texture, params) => { | |||||||
| 
 | 
 | ||||||
|   let uniforms |   let uniforms | ||||||
|   const gl = initShader() |   const gl = initShader() | ||||||
|  |   if (!gl) return | ||||||
| 
 | 
 | ||||||
|   function generateRandomPath () { |   function generateRandomPath () { | ||||||
|     const startPoint = { |     const startPoint = { | ||||||
| @ -167,7 +172,7 @@ const GhostCanvas = (canvas, texture, params) => { | |||||||
|   const path = generateRandomPath() |   const path = generateRandomPath() | ||||||
|   let currentPathIndex = 0 |   let currentPathIndex = 0 | ||||||
|   let pathStartTime = null |   let pathStartTime = null | ||||||
|   const segmentDuration = getRandom(750, 3000) // How long each Bezier segment should take
 |   const segmentDuration = getRandom(750, 1500) // How long each Bezier segment should take
 | ||||||
| 
 | 
 | ||||||
|   function evaluateBezier (bezier, t) { |   function evaluateBezier (bezier, t) { | ||||||
|     const [p0, p1, p2, p3] = bezier |     const [p0, p1, p2, p3] = bezier | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user