content/canvas/test/webgl-conformance/conformance/context/methods.html

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/content/canvas/test/webgl-conformance/conformance/context/methods.html	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,200 @@
     1.4 +<!DOCTYPE html>
     1.5 +<html>
     1.6 +<head>
     1.7 +<meta charset="utf-8">
     1.8 +<!--
     1.9 +Copyright (c) 2011 Ilmari Heikkinen. All rights reserved.
    1.10 +Use of this source code is governed by a BSD-style license that can be
    1.11 +found in the LICENSE file.
    1.12 +-->
    1.13 +<title>WebGL Methods Test</title>
    1.14 +<link rel="stylesheet" href="../../resources/js-test-style.css"/>
    1.15 +<script src="../../resources/desktop-gl-constants.js" type="text/javascript"></script>
    1.16 +<script src="../../resources/js-test-pre.js"></script>
    1.17 +<script src="../resources/webgl-test.js"></script>
    1.18 +</head>
    1.19 +<body>
    1.20 +<div id="description"></div>
    1.21 +<div id="console"></div>
    1.22 +<canvas id="canvas" style="width: 50px; height: 50px;"> </canvas>
    1.23 +<script>
    1.24 +description("This test ensures that the WebGL context has all the methods in the specification.");
    1.25 +
    1.26 +var methods = [
    1.27 +"canvas",
    1.28 +"getContextAttributes",
    1.29 +"activeTexture",
    1.30 +"attachShader",
    1.31 +"bindAttribLocation",
    1.32 +"bindBuffer",
    1.33 +"bindFramebuffer",
    1.34 +"bindRenderbuffer",
    1.35 +"bindTexture",
    1.36 +"blendColor",
    1.37 +"blendEquation",
    1.38 +"blendEquationSeparate",
    1.39 +"blendFunc",
    1.40 +"blendFuncSeparate",
    1.41 +"bufferData",
    1.42 +"bufferSubData",
    1.43 +"checkFramebufferStatus",
    1.44 +"clear",
    1.45 +"clearColor",
    1.46 +"clearDepth",
    1.47 +"clearStencil",
    1.48 +"colorMask",
    1.49 +"compileShader",
    1.50 +"copyTexImage2D",
    1.51 +"copyTexSubImage2D",
    1.52 +"createBuffer",
    1.53 +"createFramebuffer",
    1.54 +"createProgram",
    1.55 +"createRenderbuffer",
    1.56 +"createShader",
    1.57 +"createTexture",
    1.58 +"cullFace",
    1.59 +"deleteBuffer",
    1.60 +"deleteFramebuffer",
    1.61 +"deleteProgram",
    1.62 +"deleteRenderbuffer",
    1.63 +"deleteShader",
    1.64 +"deleteTexture",
    1.65 +"depthFunc",
    1.66 +"depthMask",
    1.67 +"depthRange",
    1.68 +"detachShader",
    1.69 +"disable",
    1.70 +"disableVertexAttribArray",
    1.71 +"drawArrays",
    1.72 +"drawElements",
    1.73 +"enable",
    1.74 +"enableVertexAttribArray",
    1.75 +"finish",
    1.76 +"flush",
    1.77 +"framebufferRenderbuffer",
    1.78 +"framebufferTexture2D",
    1.79 +"frontFace",
    1.80 +"generateMipmap",
    1.81 +"getActiveAttrib",
    1.82 +"getActiveUniform",
    1.83 +"getAttachedShaders",
    1.84 +"getAttribLocation",
    1.85 +"getParameter",
    1.86 +"getBufferParameter",
    1.87 +"getError",
    1.88 +"getFramebufferAttachmentParameter",
    1.89 +"getProgramParameter",
    1.90 +"getProgramInfoLog",
    1.91 +"getRenderbufferParameter",
    1.92 +"getShaderParameter",
    1.93 +"getShaderInfoLog",
    1.94 +"getShaderSource",
    1.95 +"getTexParameter",
    1.96 +"getUniform",
    1.97 +"getUniformLocation",
    1.98 +"getVertexAttrib",
    1.99 +"getVertexAttribOffset",
   1.100 +"hint",
   1.101 +"isBuffer",
   1.102 +"isEnabled",
   1.103 +"isFramebuffer",
   1.104 +"isProgram",
   1.105 +"isRenderbuffer",
   1.106 +"isShader",
   1.107 +"isTexture",
   1.108 +"lineWidth",
   1.109 +"linkProgram",
   1.110 +"pixelStorei",
   1.111 +"polygonOffset",
   1.112 +"readPixels",
   1.113 +"renderbufferStorage",
   1.114 +"sampleCoverage",
   1.115 +"scissor",
   1.116 +"shaderSource",
   1.117 +"stencilFunc",
   1.118 +"stencilFuncSeparate",
   1.119 +"stencilMask",
   1.120 +"stencilMaskSeparate",
   1.121 +"stencilOp",
   1.122 +"stencilOpSeparate",
   1.123 +"texImage2D",
   1.124 +"texParameterf",
   1.125 +"texParameteri",
   1.126 +"texSubImage2D",
   1.127 +"uniform1f",
   1.128 +"uniform1fv",
   1.129 +"uniform1i",
   1.130 +"uniform1iv",
   1.131 +"uniform2f",
   1.132 +"uniform2fv",
   1.133 +"uniform2i",
   1.134 +"uniform2iv",
   1.135 +"uniform3f",
   1.136 +"uniform3fv",
   1.137 +"uniform3i",
   1.138 +"uniform3iv",
   1.139 +"uniform4f",
   1.140 +"uniform4fv",
   1.141 +"uniform4i",
   1.142 +"uniform4iv",
   1.143 +"uniformMatrix2fv",
   1.144 +"uniformMatrix3fv",
   1.145 +"uniformMatrix4fv",
   1.146 +"useProgram",
   1.147 +"validateProgram",
   1.148 +"vertexAttrib1f",
   1.149 +"vertexAttrib1fv",
   1.150 +"vertexAttrib2f",
   1.151 +"vertexAttrib2fv",
   1.152 +"vertexAttrib3f",
   1.153 +"vertexAttrib3fv",
   1.154 +"vertexAttrib4f",
   1.155 +"vertexAttrib4fv",
   1.156 +"vertexAttribPointer",
   1.157 +"viewport"
   1.158 +]
   1.159 +
   1.160 +function assertProperty(v, p) {
   1.161 +  try {
   1.162 +    if (v[p] == null) {
   1.163 +      testFailed("Property does not exist: " + p)
   1.164 +      return false;
   1.165 +    } else {
   1.166 +      return true;
   1.167 +    }
   1.168 +  } catch(e) {
   1.169 +    testFailed("Trying to access the property '"+p+"' threw an error: "+e.toString());
   1.170 +  }
   1.171 +}
   1.172 +
   1.173 +debug("");
   1.174 +debug("Canvas.getContext");
   1.175 +
   1.176 +var canvas = document.getElementById("canvas");
   1.177 +var gl = create3DContext(canvas);
   1.178 +var passed = true;
   1.179 +for (var i=0; i<methods.length; i++) {
   1.180 +  var r = assertProperty(gl, methods[i]);
   1.181 +  passed = passed && r;
   1.182 +}
   1.183 +if (passed) {
   1.184 +  testPassed("All WebGL methods found.");
   1.185 +}
   1.186 +var extended = false;
   1.187 +for (var i in gl) {
   1.188 +  if (i.match(/^[a-z]/) && methods.indexOf(i) == -1) {
   1.189 +    if (!extended) {
   1.190 +      extended = true;
   1.191 +      debug("Also found the following extra methods:");
   1.192 +    }
   1.193 +    debug(i);
   1.194 +  }
   1.195 +}
   1.196 +
   1.197 +debug("");
   1.198 +successfullyParsed = true;
   1.199 +</script>
   1.200 +<script>finishTest();</script>
   1.201 +
   1.202 +</body>
   1.203 +</html>

mercurial