Backed out changeset 7272b7396c78 (bug 1932758) for causing fenix debug failures...
[gecko.git] / dom / canvas / test / webgl-conf / checkout / conformance2 / context / context-attributes-depth-stencil-antialias-obeyed.html
blob7cd91959f0537901712aea5ef671dd60e9e11810
1 <!--
2 Copyright (c) 2019 The Khronos Group Inc.
3 Use of this source code is governed by an MIT-style license that can be
4 found in the LICENSE.txt file.
5 -->
7 <!DOCTYPE html>
8 <html>
9 <head>
10 <meta charset="utf-8">
11 <link rel="stylesheet" href="../../resources/js-test-style.css"/>
12 <script src="../../js/js-test-pre.js"></script>
13 </head>
14 <body>
15 <div id="description"></div>
16 <div id="console"></div>
17 <script>
18 "use strict";
20 function getWebGL(attribs) {
21 var canvas = document.createElement("canvas");
22 if (!canvas)
23 return null;
25 // We can't use wtu.create3DContext because it defaults to antialias=false.
26 var names = ["webgl2"];
27 var gl = null;
28 for (var i = 0; i < names.length; ++i) {
29 try {
30 gl = canvas.getContext(names[i], attribs);
31 } catch (e) {
33 if (gl) {
34 break;
37 if (!gl)
38 return null;
39 return gl;
42 function testAttribs(attribs) {
43 var antialias, depth, stencil;
44 if (!attribs) {
45 antialias = true;
46 depth = true;
47 stencil = false;
48 debug("Testing default attributes: { antialias: true, depth: true, stencil:false }");
49 } else {
50 antialias = attribs.antialias;
51 depth = attribs.depth;
52 stencil = attribs.stencil;
53 debug("Testing specified attributes: { antialias: " + antialias + ", depth: " + depth + ", stencil: " + stencil + " }");
55 var gl = getWebGL(attribs);
56 if (!gl) {
57 testFailed("Fail to create a context");
58 return;
60 var actual_attribs = gl.getContextAttributes();
61 if (antialias != actual_attribs.antialias)
62 testFailed("antialias = " + antialias + " is not obeyed")
63 if (depth != actual_attribs.depth)
64 testFailed("depth = " + depth + " is not obeyed")
65 if (stencil != actual_attribs.stencil)
66 testFailed("stencil = " + stencil + " is not obeyed")
67 if (antialias == actual_attribs.antialias &&
68 depth == actual_attribs.depth &&
69 stencil == actual_attribs.stencil) {
70 testPassed("Context created with the correct antialias, depth, and stencil.");
74 description('Verify WebGLContextAttributes are working as specified, including depth, stencil, antialias');
75 testAttribs(null); // Default attribs
76 testAttribs({antialias: true, depth: true, stencil: true});
77 testAttribs({antialias: false, depth: true, stencil: true});
78 testAttribs({antialias: true, depth: false, stencil: true});
79 testAttribs({antialias: false, depth: false, stencil: true});
80 testAttribs({antialias: true, depth: true, stencil: false});
81 testAttribs({antialias: false, depth: true, stencil: false});
82 testAttribs({antialias: true, depth: false, stencil: false});
83 testAttribs({antialias: false, depth: false, stencil: false});
85 var successfullyParsed = true;
86 </script>
87 <script src="../../js/js-test-post.js"></script>
88 </body>
89 </html>