зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1330022 - Update test.
MozReview-Commit-ID: 8cOaKbSYFBg
This commit is contained in:
Родитель
a719834c77
Коммит
5a612c344b
|
@ -33,57 +33,42 @@
|
|||
<script type="application/javascript" src="../util.js"></script>
|
||||
<script type="application/javascript">
|
||||
|
||||
var verts = [0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0];
|
||||
var normals = [0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0];
|
||||
var texcoords = [0.0,0.0, 1.0,0.0, 0.0,1.0];
|
||||
|
||||
Tests.startUnit = function () {
|
||||
var canvas = document.getElementById('gl');
|
||||
var canvas = document.createElement('canvas');
|
||||
var gl = wrapGLContext(getGLContext(canvas));
|
||||
var prog = new Shader(gl, 'vert', 'frag');
|
||||
prog.use();
|
||||
var sh = prog.shader.program;
|
||||
// log(gl.getShaderInfoLog(prog.shaders[1]));
|
||||
var v = gl.getAttribLocation(sh, 'Vertex');
|
||||
var n = gl.getAttribLocation(sh, 'Normal');
|
||||
var t = gl.getAttribLocation(sh, 'Tex');
|
||||
return [gl,prog,v,n,t];
|
||||
return [gl];
|
||||
}
|
||||
|
||||
Tests.setup = function(gl, prog, v,n,t) {
|
||||
Tests.setup = function(gl) {
|
||||
assert(0 == gl.getError());
|
||||
return [gl, prog, v,n,t];
|
||||
}
|
||||
Tests.teardown = function(gl, prog, v,n,t) {
|
||||
gl.disableVertexAttribArray(v);
|
||||
gl.disableVertexAttribArray(n);
|
||||
gl.disableVertexAttribArray(t);
|
||||
return [gl];
|
||||
}
|
||||
|
||||
Tests.endUnit = function(gl, prog, v,n,t) {
|
||||
prog.destroy();
|
||||
Tests.teardown = function(gl) {
|
||||
}
|
||||
|
||||
Tests.testVertexAttribPointerVBO = function(gl, prog, v,n,t) {
|
||||
Tests.endUnit = function(gl) {
|
||||
}
|
||||
|
||||
Tests.testVertexAttribPointerVBO = function(gl) {
|
||||
var vbo = gl.createBuffer();
|
||||
var vertsArr = new Float32Array(verts);
|
||||
gl.bindBuffer(gl.ARRAY_BUFFER, vbo);
|
||||
gl.bufferData(gl.ARRAY_BUFFER, vertsArr, gl.STATIC_DRAW);
|
||||
gl.vertexAttribPointer(v, 3, gl.FLOAT, false, 0, 0);
|
||||
gl.bufferData(gl.ARRAY_BUFFER, new Float32Array(4), gl.STATIC_DRAW);
|
||||
gl.vertexAttribPointer(0, 3, gl.FLOAT, false, 0, 0);
|
||||
assertFail("negative offset",
|
||||
function(){gl.vertexAttribPointer(v, 3, gl.FLOAT, false, 0, -4);});
|
||||
function(){gl.vertexAttribPointer(0, 3, gl.FLOAT, false, 0, -4);});
|
||||
assertOk("out of range offset (OK because we can change the buffer later)",
|
||||
function(){gl.vertexAttribPointer(v, 3, gl.FLOAT, false, 0, 1200);});
|
||||
function(){gl.vertexAttribPointer(0, 3, gl.FLOAT, false, 0, 1200);});
|
||||
assertFail("Offset that is incompatible with type",
|
||||
function(){gl.vertexAttribPointer(v, 3, gl.FLOAT, false, 0, 3);});
|
||||
function(){gl.vertexAttribPointer(0, 3, gl.FLOAT, false, 0, 3);});
|
||||
assertFail("negative stride",
|
||||
function(){gl.vertexAttribPointer(v, 3, gl.FLOAT, false, -1, 0);});
|
||||
function(){gl.vertexAttribPointer(0, 3, gl.FLOAT, false, -1, 0);});
|
||||
assertFail("bad size",
|
||||
function(){gl.vertexAttribPointer(v, 5, gl.FLOAT, false, 0, 0);});
|
||||
function(){gl.vertexAttribPointer(0, 5, gl.FLOAT, false, 0, 0);});
|
||||
assertFail("stride that doesn't match type",
|
||||
function(){gl.vertexAttribPointer(v, 3, gl.FLOAT, false, 1, 0);});
|
||||
function(){gl.vertexAttribPointer(0, 3, gl.FLOAT, false, 1, 0);});
|
||||
assertFail("bad type",
|
||||
function(){gl.vertexAttribPointer(v, 3, gl.TEXTURE_2D, false, 0, 0);});
|
||||
function(){gl.vertexAttribPointer(0, 3, gl.TEXTURE_2D, false, 0, 0);});
|
||||
assertFail("bad index",
|
||||
function(){gl.vertexAttribPointer(-1, 3, gl.FLOAT, false, 0, 0);});
|
||||
assertFail("bad index (big negative)",
|
||||
|
@ -91,41 +76,17 @@ Tests.testVertexAttribPointerVBO = function(gl, prog, v,n,t) {
|
|||
assertFail("bad index (big positive)",
|
||||
function(){gl.vertexAttribPointer(8693948, 3, gl.FLOAT, false, 0, 0);});
|
||||
gl.bindBuffer(gl.ARRAY_BUFFER, null);
|
||||
assertFail("binding to null buffer",
|
||||
function(){gl.vertexAttribPointer(v, 3, gl.FLOAT, false, 0, 0);});
|
||||
assertOk("binding to null buffer with offset=0",
|
||||
function(){gl.vertexAttribPointer(0, 3, gl.FLOAT, false, 0, 0);});
|
||||
assertFail("binding to null buffer with offset!=0",
|
||||
function(){gl.vertexAttribPointer(0, 3, gl.FLOAT, false, 0, 16);});
|
||||
gl.bindBuffer(gl.ARRAY_BUFFER, vbo);
|
||||
gl.vertexAttribPointer(v, 3, gl.FLOAT, false, 0, 0);
|
||||
gl.vertexAttribPointer(0, 3, gl.FLOAT, false, 0, 0);
|
||||
gl.bindBuffer(gl.ARRAY_BUFFER, null);
|
||||
gl.deleteBuffer(vbo);
|
||||
throwError(gl);
|
||||
}
|
||||
|
||||
</script>
|
||||
<script id="vert" type="x-shader/x-vertex">
|
||||
attribute vec3 Vertex;
|
||||
attribute vec3 Normal;
|
||||
attribute vec2 Tex;
|
||||
|
||||
varying vec4 texCoord0;
|
||||
void main()
|
||||
{
|
||||
gl_Position = vec4(Vertex * Normal, 1.0);
|
||||
texCoord0 = vec4(Tex,0.0,0.0) + gl_Position;
|
||||
}
|
||||
</script>
|
||||
<script id="frag" type="x-shader/x-fragment">
|
||||
precision mediump float;
|
||||
|
||||
varying vec4 texCoord0;
|
||||
void main()
|
||||
{
|
||||
vec4 c = texCoord0;
|
||||
gl_FragColor = c;
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
<style>canvas{ position:absolute; }</style>
|
||||
</head><body>
|
||||
<canvas id="gl" width="1" height="1"></canvas>
|
||||
</body></html>
|
||||
|
|
Загрузка…
Ссылка в новой задаче