0.0.5 • Published 2 years ago

@m0ksem/vue-glsl v0.0.5

Weekly downloads
-
License
-
Repository
-
Last release
2 years ago

VueGLSL

Usage

  1. Import component
import Shader2d from './components/shader-2d.vue'
<Shader2d :fragment="fragment" @ready="onCanvasReady" />
  1. Create fragment shader
const fragment = 
`precision highp float;
uniform float time;

void main() {
  gl_FragColor = vec4(sin(time), cos(time), sin(time), 1.0);
}
`
  1. Create event listener:
let time = 0;

const onCanvasReady = ({ draw, getUniform, gl }: VueGLSLReadyEvent) => {
    const timeHandle = getUniform('time');

    let lastFrame = Date.now();
    let thisFrame: number;

    // Will be executed each frame
    draw(() => {
      thisFrame = Date.now();
      time += (thisFrame - lastFrame) / (100 * 60);	
      lastFrame = thisFrame;

      gl.uniform1f(timeHandle, time);
  
      gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4);
    })
}
0.0.5

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago