diff options
| author | Tyler Murphy <tylermurphy534@gmail.com> | 2023-01-18 22:43:02 -0500 |
|---|---|---|
| committer | Tyler Murphy <tylermurphy534@gmail.com> | 2023-01-18 22:43:02 -0500 |
| commit | 30cf48cd70f1c52f89362245891be355af110afe (patch) | |
| tree | 5cfee873428a8519c5d117917f3abbb3659b631b /public/js | |
| parent | initial (diff) | |
| download | webgl-30cf48cd70f1c52f89362245891be355af110afe.tar.gz webgl-30cf48cd70f1c52f89362245891be355af110afe.tar.bz2 webgl-30cf48cd70f1c52f89362245891be355af110afe.zip | |
cube
Diffstat (limited to 'public/js')
| -rw-r--r-- | public/js/buffer.js | 44 | ||||
| -rw-r--r-- | public/js/file.js | 12 | ||||
| -rw-r--r-- | public/js/gl.js | 38 | ||||
| -rw-r--r-- | public/js/shader.js | 50 |
4 files changed, 0 insertions, 144 deletions
diff --git a/public/js/buffer.js b/public/js/buffer.js deleted file mode 100644 index 15da457..0000000 --- a/public/js/buffer.js +++ /dev/null @@ -1,44 +0,0 @@ -const Buffer = {} - -let vaos = [] -let vbos = [] - -class Mesh { - - static #vaos = [] - static #vbos = [] - - #count = 0 - - constructor(vertexCount) { - this.id = gl.createVertexArray() - gl.bindVertexArray(this.id) - Mesh.#vaos.push(this.id) - this.vertexCount = vertexCount - } - - store(data, dim) { - let id = gl.createBuffer() - Mesh.#vbos.push(id) - gl.bindBuffer(gl.ARRAY_BUFFER, id) - gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(data), gl.STATIC_DRAW) - gl.vertexAttribPointer(this.#count, dim, gl.FLOAT, false, Float32Array.BYTES_PER_ELEMENT * dim, 0) - gl.enableVertexAttribArray(this.#count) - this.#count++; - return this - } - - finish() { - this.unbind() - return this - } - - bind() { - gl.bindVertexArray(this.id) - } - - unbind() { - gl.bindVertexArray(null) - } - -}
\ No newline at end of file diff --git a/public/js/file.js b/public/js/file.js deleted file mode 100644 index 7675abb..0000000 --- a/public/js/file.js +++ /dev/null @@ -1,12 +0,0 @@ -const File = {} - -File.read = async (path) => { - try { - let data = await fetch(path) - let text = await data.text() - return text - } catch (err) { - return undefined - } - -}
\ No newline at end of file diff --git a/public/js/gl.js b/public/js/gl.js deleted file mode 100644 index 0863bf8..0000000 --- a/public/js/gl.js +++ /dev/null @@ -1,38 +0,0 @@ -var gl; - -async function main() { - const canvas = document.getElementById("canvas") - gl = canvas.getContext('webgl') - - if(!gl) { - console.log("Your browser does not support webgl") - return - } - - var ext = gl.getExtension('OES_vertex_array_object'); - if(!ext) { - console.log("Your browser does not support webgl 2") - return - } - - - - gl['createVertexArray'] = function() { return ext['createVertexArrayOES'](); }; - gl['deleteVertexArray'] = function(vao) { ext['deleteVertexArrayOES'](vao); }; - gl['bindVertexArray'] = function(vao) { ext['bindVertexArrayOES'](vao); }; - gl['isVertexArray'] = function(vao) { return ext['isVertexArrayOES'](vao); }; - - var shader = await Shader.load("shader/simple.vert","shader/simple.frag") - - var triangle = new Mesh(3) - .store([0.0, 0.5, -0.5, -0.5, 0.5, -0.5], 2) - .store([1.0, 1.0, 0.0, 0.7, 0.0, 1.0, 0.1, 1.0, 0.6], 3) - .finish() - - gl.useProgram(shader) - triangle.bind() - gl.drawArrays(gl.TRIANGLES, 0, triangle.vertexCount) - -} - -main()
\ No newline at end of file diff --git a/public/js/shader.js b/public/js/shader.js deleted file mode 100644 index 28a8843..0000000 --- a/public/js/shader.js +++ /dev/null @@ -1,50 +0,0 @@ -const Shader = {} - -Shader.load = async (vertexPath, fragmentPath) => { - let vertexCode = await File.read(vertexPath) - if(!vertexCode) { - console.log("Invalid shader path:", vertexPath) - return - } - - let fragmentCode = await File.read(fragmentPath) - if(!fragmentCode) { - console.log("Invalid shader path:", fragmentPath) - return - } - - var vertexShader = gl.createShader(gl.VERTEX_SHADER) - var fragmentShader = gl.createShader(gl.FRAGMENT_SHADER) - - gl.shaderSource(vertexShader, vertexCode) - gl.shaderSource(fragmentShader, fragmentCode) - - gl.compileShader(vertexShader) - if (!gl.getShaderParameter(vertexShader, gl.COMPILE_STATUS)) { - console.error('Failed to compile ' + vertexPath + '!', gl.getShaderInfoLog(vertexShader)) - return - } - - gl.compileShader(fragmentShader) - if (!gl.getShaderParameter(fragmentShader, gl.COMPILE_STATUS)) { - console.error('Failed to compile ' + fragmentPath + '!', gl.getShaderInfoLog(fragmentShader)) - return - } - - var program = gl.createProgram() - gl.attachShader(program, vertexShader) - gl.attachShader(program, fragmentShader) - gl.linkProgram(program) - if (!gl.getProgramParameter(program, gl.LINK_STATUS)) { - console.error("Failed to link shader program!", gl.getProgramInfoLog(program)); - return - } - - gl.validateProgram(program); - if (!gl.getProgramParameter(program, gl.VALIDATE_STATUS)) { - console.error("Failed to validate shader program!", gl.getProgramInfoLog(program)); - return - } - - return program -}
\ No newline at end of file |