From 54ed78b00d7d8209790dd167dece747bfe9c5b88 Mon Sep 17 00:00:00 2001
From: Pavel Dobryakov <paveldobryakov@Pavels-MacBook-Pro.local>
Date: Fri, 29 May 2020 19:51:03 +0300
Subject: [PATCH] can't figure this out rn, would come later

---
 script.js | 19 ++++++++++++++-----
 1 file changed, 14 insertions(+), 5 deletions(-)

diff --git a/script.js b/script.js
index ac49d76..d0db5af 100644
--- a/script.js
+++ b/script.js
@@ -201,7 +201,7 @@ function supportRenderTextureFormat (gl, internalFormat, format, type) {
     gl.bindFramebuffer(gl.FRAMEBUFFER, fbo);
     gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);
 
-    const status = gl.checkFramebufferStatus(gl.FRAMEBUFFER);
+    let status = gl.checkFramebufferStatus(gl.FRAMEBUFFER);
     return status == gl.FRAMEBUFFER_COMPLETE;
 }
 
@@ -400,7 +400,7 @@ function createProgram (vertexShader, fragmentShader) {
     gl.linkProgram(program);
 
     if (!gl.getProgramParameter(program, gl.LINK_STATUS))
-        throw gl.getProgramInfoLog(program);
+        console.trace(gl.getProgramInfoLog(program));
 
     return program;
 }
@@ -423,7 +423,7 @@ function compileShader (type, source, keywords) {
     gl.compileShader(shader);
 
     if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS))
-        throw gl.getShaderInfoLog(shader);
+        console.trace(gl.getShaderInfoLog(shader));
 
     return shader;
 };
@@ -858,8 +858,10 @@ const vorticityShader = compileShader(gl.FRAGMENT_SHADER, `
         force *= curl * C;
         force.y *= -1.0;
 
-        vec2 vel = texture2D(uVelocity, vUv).xy;
-        gl_FragColor = vec4(vel + force * dt, 0.0, 1.0);
+        vec2 velocity = texture2D(uVelocity, vUv).xy;
+        velocity += force * dt;
+        velocity = min(max(velocity, -1000.0), 1000.0);
+        gl_FragColor = vec4(velocity, 0.0, 1.0);
     }
 `);
 
@@ -934,10 +936,17 @@ const blit = (() => {
             gl.clearColor(0.0, 0.0, 0.0, 1.0);
             gl.clear(gl.COLOR_BUFFER_BIT);
         }
+        // CHECK_FRAMEBUFFER_STATUS();
         gl.drawElements(gl.TRIANGLES, 6, gl.UNSIGNED_SHORT, 0);
     }
 })();
 
+function CHECK_FRAMEBUFFER_STATUS () {
+    let status = gl.checkFramebufferStatus(gl.FRAMEBUFFER);
+    if (status != gl.FRAMEBUFFER_COMPLETE)
+        console.trace("Framebuffer error: " + status);
+}
+
 let dye;
 let velocity;
 let divergence;
-- 
GitLab