summaryrefslogtreecommitdiff
path: root/public/js
diff options
context:
space:
mode:
authorTyler Murphy <tylermurphy534@gmail.com>2023-01-18 22:43:02 -0500
committerTyler Murphy <tylermurphy534@gmail.com>2023-01-18 22:43:02 -0500
commit30cf48cd70f1c52f89362245891be355af110afe (patch)
tree5cfee873428a8519c5d117917f3abbb3659b631b /public/js
parentinitial (diff)
downloadwebgl-30cf48cd70f1c52f89362245891be355af110afe.tar.gz
webgl-30cf48cd70f1c52f89362245891be355af110afe.tar.bz2
webgl-30cf48cd70f1c52f89362245891be355af110afe.zip
cube
Diffstat (limited to 'public/js')
-rw-r--r--public/js/buffer.js44
-rw-r--r--public/js/file.js12
-rw-r--r--public/js/gl.js38
-rw-r--r--public/js/shader.js50
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