Skip to content

Instantly share code, notes, and snippets.

@kig
Created February 25, 2009 05:49
Show Gist options
  • Save kig/70041 to your computer and use it in GitHub Desktop.
Save kig/70041 to your computer and use it in GitHub Desktop.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<script id="shader-fs" type="x-shader/x-fragment">
void main() {
gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0);
}
</script>
<script id="shader-vs" type="x-shader/x-vertex">
attribute vec4 myVertex;
void main() {
gl_Position = myVertex;
}
</script>
<script type="application/x-javascript">
var gl;
var note;
var fs = -1;
var vs = -1;
var sp = -1;
function getShader(id) {
var shaderScript = document.getElementById(id);
if (!shaderScript)
return null;
var str = "";
var k = shaderScript.firstChild;
while (k) {
if (k.nodeType == 3)
str += k.textContent;
k = k.nextSibling;
}
var shader;
if (shaderScript.type == "x-shader/x-fragment") {
shader = gl.createShader(gl.FRAGMENT_SHADER);
} else if (shaderScript.type == "x-shader/x-vertex") {
shader = gl.createShader(gl.VERTEX_SHADER);
} else {
return null;
}
gl.shaderSource(shader, str);
gl.compileShader(shader);
note.textContent += gl.getShaderSource(shader);
note.textContent += "\nCompile status: " + gl.getShaderParameter(shader, 0x8B81) +
"\nShader info log: " + gl.getShaderInfoLog(shader) +
"\n\n";
return shader;
}
function runTest() {
note = document.getElementById('note');
gl = document.getElementById('canvas').getContext('moz-glweb20');
if (fs == -1) {
fs = getShader("shader-fs");
vs = getShader("shader-vs");
sp = gl.createProgram();
gl.attachShader(sp, vs);
gl.attachShader(sp, fs);
gl.linkProgram(sp);
gl.validateProgram(sp);
note.textContent += "\n"+
"\n"+gl.getProgramParameter(sp, gl.LINK_STATUS)+
"\n"+gl.getProgramParameter(sp, gl.VALIDATE_STATUS)+
"\n\n";
}
var va = gl.getAttribLocation(sp, "myVertex");
note.textContent += "\nfs: " + fs + " vs: " + vs + " va: " + va + "\n";
var obj = gl.getActiveAttrib(sp, va);
note.textContent += obj ? obj.toSource() : "null";
var verts = [ 0.0, 0.5, 0.0,
-0.5, -0.5, 0.0,
0.5, -0.5, 0.0 ];
gl.viewport(0, 0, 200, 200);
gl.clearColor(1.0, 1.0, 0.0, 1.0);
gl.clear(gl.COLOR_BUFFER_BIT);
gl.useProgram(sp);
gl.vertexAttribPointer(va, 3, gl.FLOAT, verts);
gl.enableVertexAttribArray(va);
gl.drawArrays(gl.TRIANGLES, 0, 3);
gl.swapBuffers();
note.textContent += "\n" + gl.getError() + "\n\n";
}
</script>
</head><body onload="runTest()">
<h2>Simple GL ES 2.0 test</h2>
<canvas id="canvas" width="200" height="200"></canvas>
<pre id="note"></p>
</body></html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment