/testing/web-platform/tests/webgl/conformance-1.0.3/conformance/glsl/functions/glsl-function-atan-xy.html
https://github.com/rillian/firefox · HTML · 121 lines · 90 code · 5 blank · 26 comment · 0 complexity · 0aa0c6edfc67491f0bdfd06c823ceaca MD5 · raw file
- <!--
- /*
- ** Copyright (c) 2012 The Khronos Group Inc.
- **
- ** Permission is hereby granted, free of charge, to any person obtaining a
- ** copy of this software and/or associated documentation files (the
- ** "Materials"), to deal in the Materials without restriction, including
- ** without limitation the rights to use, copy, modify, merge, publish,
- ** distribute, sublicense, and/or sell copies of the Materials, and to
- ** permit persons to whom the Materials are furnished to do so, subject to
- ** the following conditions:
- **
- ** The above copyright notice and this permission notice shall be included
- ** in all copies or substantial portions of the Materials.
- **
- ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
- ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
- */
- -->
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>GLSL atan-xy function test</title>
- <link rel="stylesheet" href="../../../resources/js-test-style.css"/>
- <link rel="stylesheet" href="../../resources/glsl-feature-tests.css"/>
- <script src=/resources/testharness.js></script>
- <script src=/resources/testharnessreport.js></script>
- <script src="../../../resources/js-test-pre.js"></script>
- <script src="../../resources/webgl-test-utils.js"> </script>
- <script src="../../resources/glsl-generator.js"> </script>
- </head>
- <body>
- <div id="description"></div>
- <div id="console"></div>
- <script>
- "use strict";
- var piConstants = [
- "const float kPI = 3.14159265358979323846;",
- "const float kHalfPI = (kPI * 0.5);",
- "const float k2PI = (kPI * 2.0);"
- ].join("\n");
- var kPI = Math.PI;
- var kHalfPI = Math.PI * 0.5;
- var k2PI = Math.PI * 2.0;
- var atan2 = Math.atan2; // shorthand
- GLSLGenerator.runReferenceImageTest({
- feature: "atan",
- args: "$(type) y, $(type) x",
- testFunc: "$(func)($(type), $(type))",
- gridRes: 8,
- tolerance: 5,
- extra: piConstants,
- tests: [
- {
- source: ["$(output) = vec4(",
- " $(func)($(input).x + 0.1, $(input).y) / k2PI + 0.5,",
- " 0,",
- " 0,",
- " 1);"].join("\n"),
- generator: function(x, y, z, w) {
- return [ atan2(x + 0.1, y) / k2PI + 0.5,
- 0,
- 0,
- 1 ];
- },
- },
- {
- source: ["$(output) = vec4(",
- " $(func)($(input).xy + vec2(0.1, 0.1), $(input).yx) / ",
- " k2PI + vec2(0.5, 0.5),",
- " 0, 1);"].join("\n"),
- generator: function(x, y, z, w) {
- return [ atan2(x + 0.1, y) / k2PI + 0.5,
- atan2(y + 0.1, x) / k2PI + 0.5,
- 0,
- 1 ];
- },
- },
- {
- source: ["$(output) = vec4(",
- " $(func)($(input).xyz + vec3(0.1, 0.1, 0.1), $(input).yzx) / ",
- " k2PI + vec3(0.5, 0.5, 0.5),",
- " 1);"].join("\n"),
- generator: function(x, y, z, w) {
- return [ atan2(x + 0.1, y) / k2PI + 0.5,
- atan2(y + 0.1, z) / k2PI + 0.5,
- atan2(z + 0.1, x) / k2PI + 0.5,
- 1 ];
- },
- },
- {
- source: ["$(output) = ",
- " $(func)($(input) + vec4(0.1, 0.1, 0.1, 0.1), $(input).wzyx) / ",
- " k2PI + vec4(0.5, 0.5, 0.5, 0.5);",
- ].join("\n"),
- generator: function(x, y, z, w) {
- return [ atan2(x + 0.1, w) / k2PI + 0.5,
- atan2(y + 0.1, z) / k2PI + 0.5,
- atan2(z + 0.1, y) / k2PI + 0.5,
- atan2(w + 0.1, x) / k2PI + 0.5 ];
- },
- },
- ]
- });
- var successfullyParsed = true;
- </script>
- </body>
- </html>