1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/content/canvas/test/webgl-conformance/conformance/misc/webgl-specific.html Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,104 @@ 1.4 +<!-- 1.5 +Copyright (c) 2011 The Chromium Authors. All rights reserved. 1.6 +Use of this source code is governed by a BSD-style license that can be 1.7 +found in the LICENSE file. 1.8 + --> 1.9 +<!DOCTYPE html> 1.10 +<html> 1.11 +<head> 1.12 +<meta charset="utf-8"> 1.13 +<title>WebGL GLES2 difference test.</title> 1.14 +<link rel="stylesheet" href="../../resources/js-test-style.css"/> 1.15 +<script src="../../resources/js-test-pre.js"></script> 1.16 +<script src="../resources/webgl-test.js"></script> 1.17 +<script src="../resources/webgl-test-utils.js"></script> 1.18 +</head> 1.19 +<body> 1.20 +<div id="description"></div> 1.21 +<div id="console"></div> 1.22 + 1.23 +<script> 1.24 +var wtu = WebGLTestUtils; 1.25 +description("Tests the a few differences between WebGL and GLES2"); 1.26 + 1.27 +var gl = wtu.create3DContext(); 1.28 +var program = wtu.loadStandardProgram(gl); 1.29 +gl.useProgram(program); 1.30 +var vertexObject = gl.createBuffer(); 1.31 +gl.bindBuffer(gl.ARRAY_BUFFER, vertexObject); 1.32 +gl.enableVertexAttribArray(0); 1.33 +glErrorShouldBe(gl, gl.NO_ERROR, "Setup should succeed"); 1.34 + 1.35 +debug(""); 1.36 +debug("Verify that constant color and constant alpha cannot be used together as source and destination factors in the blend function"); 1.37 +shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.blendFunc(gl.CONSTANT_COLOR, gl.CONSTANT_ALPHA)"); 1.38 +shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.blendFunc(gl.ONE_MINUS_CONSTANT_COLOR, gl.CONSTANT_ALPHA)"); 1.39 +shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.blendFunc(gl.CONSTANT_COLOR, gl.ONE_MINUS_CONSTANT_ALPHA)"); 1.40 +shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.blendFunc(gl.ONE_MINUS_CONSTANT_COLOR, gl.ONE_MINUS_CONSTANT_ALPHA)"); 1.41 +shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.blendFunc(gl.CONSTANT_ALPHA, gl.CONSTANT_COLOR)"); 1.42 +shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.blendFunc(gl.CONSTANT_ALPHA, gl.ONE_MINUS_CONSTANT_COLOR)"); 1.43 +shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.blendFunc(gl.ONE_MINUS_CONSTANT_ALPHA, gl.CONSTANT_COLOR)"); 1.44 +shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.blendFunc(gl.ONE_MINUS_CONSTANT_ALPHA, gl.ONE_MINUS_CONSTANT_COLOR)"); 1.45 + 1.46 +shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.blendFuncSeparate(gl.CONSTANT_COLOR, gl.CONSTANT_ALPHA, gl.ONE, gl.ZERO)"); 1.47 +shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.blendFuncSeparate(gl.ONE_MINUS_CONSTANT_COLOR, gl.CONSTANT_ALPHA, gl.ONE, gl.ZERO)"); 1.48 +shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.blendFuncSeparate(gl.CONSTANT_COLOR, gl.ONE_MINUS_CONSTANT_ALPHA, gl.ONE, gl.ZERO)"); 1.49 +shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.blendFuncSeparate(gl.ONE_MINUS_CONSTANT_COLOR, gl.ONE_MINUS_CONSTANT_ALPHA, gl.ONE, gl.ZERO)"); 1.50 +shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.blendFuncSeparate(gl.CONSTANT_ALPHA, gl.CONSTANT_COLOR, gl.ONE, gl.ZERO)"); 1.51 +shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.blendFuncSeparate(gl.CONSTANT_ALPHA, gl.ONE_MINUS_CONSTANT_COLOR, gl.ONE, gl.ZERO)"); 1.52 +shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.blendFuncSeparate(gl.ONE_MINUS_CONSTANT_ALPHA, gl.CONSTANT_COLOR, gl.ONE, gl.ZERO)"); 1.53 +shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.blendFuncSeparate(gl.ONE_MINUS_CONSTANT_ALPHA, gl.ONE_MINUS_CONSTANT_COLOR, gl.ONE, gl.ZERO)"); 1.54 + 1.55 +debug(""); 1.56 +debug("Verify that in depthRange zNear <= zFar"); 1.57 +shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.depthRange(20, 10)"); 1.58 + 1.59 +debug(""); 1.60 +debug("Verify that front/back settings should be the same for stenclMask and stencilFunc"); 1.61 +shouldGenerateGLError(gl, gl.NO_ERROR, "gl.stencilMask(255)"); 1.62 +shouldGenerateGLError(gl, gl.NO_ERROR, "gl.drawArrays(gl.TRIANGLES, 0, 0)"); 1.63 +shouldGenerateGLError(gl, gl.NO_ERROR, "gl.stencilMaskSeparate(gl.FRONT, 1)"); 1.64 +shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.drawArrays(gl.TRIANGLES, 0, 0)"); 1.65 +shouldGenerateGLError(gl, gl.NO_ERROR, "gl.stencilMaskSeparate(gl.BACK, 1)"); 1.66 +shouldGenerateGLError(gl, gl.NO_ERROR, "gl.drawArrays(gl.TRIANGLES, 0, 0)"); 1.67 + 1.68 +shouldGenerateGLError(gl, gl.NO_ERROR, "gl.stencilFunc(gl.ALWAYS, 0, 255)"); 1.69 +shouldGenerateGLError(gl, gl.NO_ERROR, "gl.drawArrays(gl.TRIANGLES, 0, 0)"); 1.70 +shouldGenerateGLError(gl, gl.NO_ERROR, "gl.stencilFuncSeparate(gl.BACK, gl.ALWAYS, 1, 255)"); 1.71 +shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.drawArrays(gl.TRIANGLES, 0, 0)"); 1.72 +shouldGenerateGLError(gl, gl.NO_ERROR, "gl.stencilFuncSeparate(gl.FRONT, gl.ALWAYS, 1, 255)"); 1.73 +shouldGenerateGLError(gl, gl.NO_ERROR, "gl.drawArrays(gl.TRIANGLES, 0, 0)"); 1.74 +shouldGenerateGLError(gl, gl.NO_ERROR, "gl.stencilFuncSeparate(gl.BACK, gl.ALWAYS, 1, 1)"); 1.75 +shouldGenerateGLError(gl, gl.INVALID_OPERATION, "gl.drawArrays(gl.TRIANGLES, 0, 0)"); 1.76 +shouldGenerateGLError(gl, gl.NO_ERROR, "gl.stencilFuncSeparate(gl.FRONT, gl.ALWAYS, 1, 1)"); 1.77 +shouldGenerateGLError(gl, gl.NO_ERROR, "gl.drawArrays(gl.TRIANGLES, 0, 0)"); 1.78 + 1.79 +debug(""); 1.80 +debug("Verify that IMPLEMENTATION_COLOR_READ_FORMAT and IMPLEMENTATION_COLOR_READ_TYPE are undefined"); 1.81 +shouldBeUndefined(gl.IMPLEMENTATION_COLOR_READ_FORMAT); 1.82 +shouldBeUndefined(gl.IMPLEMENTATION_COLOR_READ_TYPE); 1.83 + 1.84 +debug(""); 1.85 +debug("Verify that *LENGTH are undefined"); 1.86 +shouldBeUndefined(gl.INFO_LOG_LENGTH); 1.87 +shouldBeUndefined(gl.SHADER_SOURCE_LENGTH); 1.88 +shouldBeUndefined(gl.ACTIVE_UNIFORM_MAX_LENGTH); 1.89 +shouldBeUndefined(gl.ACTIVE_ATTRIB_MAX_LENGTH); 1.90 + 1.91 +debug(""); 1.92 +debug("Verify that UNPACK_COLORSPACE_CONVERSION_WEBGL is supported"); 1.93 +shouldBe("gl.getParameter(gl.UNPACK_COLORSPACE_CONVERSION_WEBGL)", "gl.BROWSER_DEFAULT_WEBGL"); 1.94 +gl.pixelStorei(gl.UNPACK_COLORSPACE_CONVERSION_WEBGL, gl.NONE); 1.95 +shouldBe("gl.getParameter(gl.UNPACK_COLORSPACE_CONVERSION_WEBGL)", "gl.NONE"); 1.96 +glErrorShouldBe(gl, gl.NO_ERROR, "set/get UNPACK_COLORSPACE_CONVERSION_WEBGL should generate no error"); 1.97 + 1.98 +debug(""); 1.99 +debug("Verify that drawingBufferWidth and drawingBufferHeights are implemented"); 1.100 +shouldBeTrue("gl.drawingBufferWidth >= 0 && gl.drawingBufferHeight >= 0"); 1.101 + 1.102 +successfullyParsed = true; 1.103 +</script> 1.104 + 1.105 +<script>finishTest();</script> 1.106 +</body> 1.107 +</html>