Skip to content

Instantly share code, notes, and snippets.

@dmikis
Last active August 29, 2015 14:19
Show Gist options
  • Save dmikis/10526232d8e1b1295322 to your computer and use it in GitHub Desktop.
Save dmikis/10526232d8e1b1295322 to your computer and use it in GitHub Desktop.
FF WebGL Bug
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JS Bin</title>
</head>
<body>
<canvas width=256 height=256></canvas>
<img id=cat src="data:image/jpeg;base64,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">
<script src="index.js"></script>
</body>
</html>
var QUAD_BUFFER_DATA = new Float32Array([
-1, -1, 0, 0, 1,
-1, 1, 0, 0, 0,
1, -1, 0, 1, 1,
1, 1, 0, 1, 0
]);
var gl = document.querySelector('canvas').getContext('webgl') ||
document.querySelector('canvas').getContext('experimental-webgl');
gl.viewport(0, 0, 256, 256);
gl.clearColor(1, 0, 0, 1);
gl.clear(gl.COLOR_BUFFER_BIT);
var cat = gl.createTexture();
gl.bindTexture(gl.TEXTURE_2D, cat);
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, document.querySelector('img#cat'));
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
var program = gl.createProgram();
var vs = gl.createShader(gl.VERTEX_SHADER);
gl.shaderSource(vs, [
'attribute vec3 vp;',
'attribute vec2 vtc;',
'varying vec2 tc;',
'void main(void) {',
'gl_Position = vec4(vp, 1.0);',
'tc = vtc;',
'}'
].join('\n'));
gl.compileShader(vs);
gl.attachShader(program, vs);
var fs = gl.createShader(gl.FRAGMENT_SHADER);
gl.shaderSource(fs, [
'precision highp float;',
'uniform sampler2D t;',
'varying vec2 tc;',
'void main(void) {',
'gl_FragColor = texture2D(t, tc);',
'}'
].join('\n'));
gl.compileShader(fs);
gl.attachShader(program, fs);
gl.linkProgram(program);
gl.useProgram(program);
var buffer = gl.createBuffer();
gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
gl.bufferData(gl.ARRAY_BUFFER, QUAD_BUFFER_DATA, gl.STATIC_DRAW);
var vpAttr = gl.getAttribLocation(program, 'vp');
var vtcAttr = gl.getAttribLocation(program, 'vtc');
var tUniform = gl.getUniformLocation(program, 't');
gl.activeTexture(gl.TEXTURE0);
gl.uniform1i(tUniform, 0);
gl.enableVertexAttribArray(vpAttr);
gl.vertexAttribPointer(vpAttr, 3, gl.FLOAT, true, 20, 0);
gl.enableVertexAttribArray(vtcAttr);
gl.vertexAttribPointer(vtcAttr, 2, gl.FLOAT, true, 20, 12);
gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4);
gl.flush();
gl.finish();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment