| Index: conformance/glsl/functions/glsl-function-cos.html
|
| ===================================================================
|
| --- conformance/glsl/functions/glsl-function-cos.html (revision 0)
|
| +++ conformance/glsl/functions/glsl-function-cos.html (revision 0)
|
| @@ -0,0 +1,82 @@
|
| +<!--
|
| +Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
| +Use of this source code is governed by a BSD-style license that can be
|
| +found in the LICENSE file.
|
| + -->
|
| +<!DOCTYPE html>
|
| +<html>
|
| +<head>
|
| +<meta charset="utf-8">
|
| + <title>GLSL cos function test</title>
|
| + <link rel="stylesheet" href="../../../resources/js-test-style.css"/>
|
| + <link rel="stylesheet" href="../../resources/glsl-feature-tests.css"/>
|
| + <script src="../../../resources/js-test-pre.js"></script>
|
| + <script src="../../resources/webgl-test.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>
|
| +
|
| +var piConstants = [
|
| + "const float kPI = 3.14159265358979323846;",
|
| + "const float kHalfPI = (kPI * 0.5);",
|
| + "const float k2PI = (kPI * 2.0);"
|
| +].join("\n");
|
| +
|
| +var sinImplementation = [
|
| + "",
|
| + "float sin_impl(float value) {",
|
| + " value = mod(value + k2PI * 10.0, k2PI);", // only positive values for now
|
| + " int quad = int(floor(value / kHalfPI));", // figure out which quad
|
| + " float p = mod(value, kHalfPI);", // from 0.0 to PI/2
|
| + " if (quad == 1 || quad == 3) { p = kHalfPI - p; }", // backward in quads 1,3
|
| + " float c = p - ",
|
| + " pow(p, 3.0) / (1.0 * 2.0 * 3.0) + ",
|
| + " pow(p, 5.0) / (1.0 * 2.0 * 3.0 * 4.0 * 5.0) - ",
|
| + " pow(p, 7.0) / (1.0 * 2.0 * 3.0 * 4.0 * 5.0 * 6.0 * 7.0);",
|
| + " if (quad == 2 || quad == 3) { c = -c; }",
|
| + " return c;",
|
| + "}"
|
| +].join('\n');
|
| +
|
| +GLSLGenerator.runFeatureTest({
|
| + feature: "cos",
|
| + args: "$(type) value",
|
| + baseArgs: "value$(field)",
|
| + testFunc: "$(func)($(type))",
|
| + emuFunc: [
|
| + sinImplementation,
|
| + "float $(func)_base(float value) {",
|
| + " return sin_impl(value + kHalfPI);",
|
| + "}"
|
| + ].join("\n"),
|
| + gridRes: 8,
|
| + tolerance: 2,
|
| + extra: piConstants,
|
| + tests: [
|
| + ["$(output) = vec4(",
|
| + " $(func)($(input).x * kHalfPI + kHalfPI),",
|
| + " $(func)($(input).y * kHalfPI),",
|
| + " 0,",
|
| + " 1);"].join("\n"),
|
| + ["$(output) = vec4(",
|
| + " $(func)($(input).xy * vec2(kPI, k2PI)) * 0.5 + vec2(0.5, 0.5),",
|
| + " 0, 1);"].join("\n"),
|
| + ["$(output) = vec4(",
|
| + " $(func)($(input).xyz * vec3(kPI, k2PI, 4.0)) * ",
|
| + " 0.5 + vec3(0.5, 0.5, 0.5),",
|
| + " 1);"].join("\n"),
|
| + ["$(output) = ",
|
| + " $(func)($(input) * vec4(k2PI, 4.0, kHalfPI, kPI)) *",
|
| + " 0.5 + vec4(0.5, 0.5, 0.5, 1);",
|
| + ].join("\n")
|
| + ]
|
| +});
|
| +successfullyParsed = true;
|
| +</script>
|
| +</body>
|
| +</html>
|
| +
|
|
|
| Property changes on: conformance/glsl/functions/glsl-function-cos.html
|
| ___________________________________________________________________
|
| Added: svn:executable
|
| + *
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|