Created
February 26, 2016 16:53
-
-
Save RichardB01/38e1e04ef7fdd4de8b80 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <html> | |
| <head> | |
| </head> | |
| <body> | |
| <style> | |
| html { | |
| display:block; | |
| } | |
| </style> | |
| <script type="text/javascript" src="js/dglBuffer.js"></script> | |
| <script type="text/javascript" src="js/dglShader.js"></script> | |
| <script type="text/javascript" src="js/dglShaderProgram.js"></script> | |
| <script type="text/javascript" src="js/dglTexture.js"></script> | |
| <script type="text/javascript" src="js/dglGraphics.js"></script> | |
| <script src="js/gl-matrix.js"></script> | |
| <script src="js/lua.vm.js"></script> | |
| <script type="text/lua"> | |
| ------------- | |
| -- Globals -- | |
| ------------- | |
| window = js.global | |
| document = js.global.document | |
| canvas = document:getElementById("canvasWindow") | |
| canvas.width = 800 | |
| canvas.height = 600 | |
| gl = canvas:getContext("experimental-webgl") | |
| if not gl then | |
| error("Could not create context for webgl") | |
| else | |
| print("Created webgl context.") | |
| end | |
| -- | |
| FLOAT = 4 | |
| -------------- | |
| -- Includes -- | |
| -------------- | |
| class = require("Libraries.middleclass") | |
| require("Libraries.texturehandler") | |
| require("Libraries.graphics") | |
| ------------- | |
| -- SHADERS -- | |
| ------------- | |
| local vertexSource = [[ | |
| precision mediump float; | |
| attribute vec2 vVertex; | |
| attribute vec2 vTexcoord; | |
| uniform mat4 uProj; | |
| uniform mat4 uView; | |
| uniform mat4 uModel; | |
| varying vec2 Texcoord; | |
| void main(void) | |
| { | |
| Texcoord = vTexcoord; | |
| gl_Position = uProj * uView * uModel * vec4(vVertex, 0.0, 1.0); | |
| } | |
| ]] | |
| local fragmentSource = [[ | |
| precision mediump float; | |
| varying vec2 Texcoord; | |
| uniform sampler2D uSampler; | |
| void main(void) | |
| { | |
| vec4 texData = texture2D(uSampler, vec2(Texcoord.s, Texcoord.t)); | |
| gl_FragColor = texData; | |
| } | |
| ]] | |
| function load() | |
| -- Setup shaders. | |
| local vertexShader = js.new(window.Shader, gl, vertexSource, gl.VERTEX_SHADER) | |
| local fragmentShader = js.new(window.Shader, gl, fragmentSource, gl.FRAGMENT_SHADER) | |
| local shaders = js.new(window.Array, vertexShader, fragmentShader) | |
| gl:clearColor(0.2,0.2,0.2,1.0) | |
| gl:enable(gl.BLEND); | |
| gl:blendEquation( gl.FUNC_ADD ) | |
| gl:blendFunc( gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA ) | |
| ShaderProgram = js.new(window.Program, gl) | |
| ShaderProgram:Link(shaders) | |
| ShaderProgram:Use() | |
| local proj = window.mat4:create() | |
| window.mat4:ortho(proj, -canvas.width/2, canvas.width/2, canvas.height/2, -canvas.height/2, 0.0, 1.0) | |
| local uProjLocation = ShaderProgram:GetUniform("uProj") | |
| gl:uniformMatrix4fv(uProjLocation, false, proj) | |
| local model = window.mat4:create() | |
| local vec = window.vec3:create() | |
| window.vec3:set(vec, -0.5, -0.5, 0) | |
| window.mat4:translate(model, model, vec) | |
| local uModelLocation = ShaderProgram:GetUniform("uModel"); | |
| gl:uniformMatrix4fv(uModelLocation, false, model) | |
| ShaderProgram:Release() | |
| gl:viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight); | |
| end | |
| function update() | |
| end | |
| function render() | |
| gl:clear(gl.COLOR_BUFFER_BIT) | |
| ShaderProgram:Use() | |
| Graphics.TexturedQuad("Assets/axe.png", { 0, 0 }, { 1, 1 }, 0) | |
| Graphics.AnimatedQuad("Assets/die", 30, 6, { 64, 0 }, { 1, 1 }, 0) | |
| ShaderProgram:Release() | |
| end | |
| window.onmousedown = function(e) | |
| end | |
| window.onmouseup = function(e) | |
| end | |
| function loop() | |
| update() | |
| render() | |
| window:requestAnimationFrame(loop) | |
| end | |
| load() | |
| loop() | |
| </script> | |
| <canvas id="canvasWindow"> | |
| Browser is not supported... | |
| </canvas> | |
| </body> | |
| </html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment