content/canvas/test/webgl-conformance/conformance/state/gl-geterror.html

Wed, 31 Dec 2014 07:16:47 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 07:16:47 +0100
branch
TOR_BUG_9701
changeset 3
141e0f1194b1
permissions
-rw-r--r--

Revert simplistic fix pending revisit of Mozilla integration attempt.

     1 <!--
     2 Copyright (c) 2009 The Chromium Authors. All rights reserved.
     3 Use of this source code is governed by a BSD-style license that can be
     4   found in the LICENSE file.
     5  -->
     6 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
     7   "http://www.w3.org/TR/html4/loose.dtd">
     8 <html>
     9 <head>
    10 <title>WebGL get error conformance test.</title>
    11 <link rel="stylesheet" href="../../resources/js-test-style.css"/>
    12 <script src="../../resources/desktop-gl-constants.js" type="text/javascript"></script>
    13 <script src="../../resources/js-test-pre.js"></script>
    14 <script src="../resources/webgl-test.js"> </script>
    15 <script src="../resources/webgl-test-utils.js"> </script>
    16 </head>
    17 <body>
    18 <canvas id="example" width="1" height="1" style="width: 256px; height: 48px;"></canvas>
    19 <div id="description"></div><div id="console"></div>
    20 <script>
    21 description("Test getError.");
    22 var wtu = WebGLTestUtils;
    23 var gl = wtu.create3DContext("example");
    24 var tex = gl.createTexture();
    25 gl.bindTexture(gl.TEXTURE_2D, tex);
    27 gl.enable(desktopGL.ALPHA_TEST);
    28 glErrorShouldBe(gl, gl.INVALID_ENUM, "should generate INVALID_ENUM");
    29 gl.viewport(-1, -1, -1, -1);
    30 glErrorShouldBe(gl, gl.INVALID_VALUE, "should generate INVALID_VALUE");
    31 gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGB, 1, 1, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);
    32 glErrorShouldBe(gl, gl.INVALID_OPERATION, "should generate INVALID_OPERATION");
    34 // Generate 2 errors of each type for 6 total possible errors.
    35 // The OpenGL ES 2.0 spec section 2.5 says the implementation is allowed to
    36 // either return the first error or many errors in an unspecied order.
    37 gl.viewport(-1, -1, -1, -1);
    38 gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGB, 1, 1, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);
    39 gl.enable(desktopGL.ALPHA_TEST);
    40 gl.viewport(-1, -1, -1, -1);
    41 gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGB, 1, 1, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);
    42 // Note: This error is specifically last because we know it will be synthasized
    43 // by WebGL at least when implemented on top of Desktop OpenGL
    44 gl.enable(desktopGL.ALPHA_TEST);
    46 var err1 = gl.getError();
    47 var err2 = gl.getError();
    48 var err3 = gl.getError();
    49 var err4 = gl.getError();
    50 var err5 = gl.getError();
    51 var err6 = gl.getError();
    53 debug("");
    54 if (err2 == gl.NO_ERROR) {
    55   debug("This WebGL implementation looks like it uses the 'first error' method");
    56   debug("There should be 1 error, the first one generated");
    57   shouldBeTrue('err1 == gl.INVALID_VALUE && err2 == gl.NO_ERROR && err3 == gl.NO_ERROR');
    58 } else {
    59   debug("This WebGL implementation looks like it uses the many error method");
    60   debug("Check is that at least one of the errors is the first error");
    61   shouldBeTrue('err1 == gl.INVALID_VALUE || ' +
    62                'err2 == gl.INVALID_VALUE || ' +
    63                'err3 == gl.INVALID_VALUE || ' +
    64                'err4 == gl.INVALID_VALUE || ' +
    65                'err5 == gl.INVALID_VALUE || ' +
    66                'err6 == gl.INVALID_VALUE');
    67   shouldBeTrue('gl.getError() == gl.NO_ERROR');
    68 }
    70 debug("");
    71 successfullyParsed = true;
    72 </script>
    73 <script>finishTest();</script>
    74 </body>
    75 </html>

mercurial