1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/content/canvas/test/webgl-conformance/conformance/glsl/functions/glsl-function-sin.html Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,95 @@ 1.4 +<!-- 1.5 +Copyright (c) 2011 The Chromium Authors. All rights reserved. 1.6 +Use of this source code is governed by a BSD-style license that can be 1.7 +found in the LICENSE file. 1.8 + --> 1.9 +<!DOCTYPE html> 1.10 +<html> 1.11 +<head> 1.12 +<meta charset="utf-8"> 1.13 + <title>GLSL sin function test</title> 1.14 + <link rel="stylesheet" href="../../../resources/js-test-style.css"/> 1.15 + <link rel="stylesheet" href="../../resources/glsl-feature-tests.css"/> 1.16 + <script src="../../../resources/js-test-pre.js"></script> 1.17 + <script src="../../resources/webgl-test.js"> </script> 1.18 + <script src="../../resources/webgl-test-utils.js"> </script> 1.19 + <script src="../../resources/glsl-generator.js"> </script> 1.20 +</head> 1.21 +<body> 1.22 +<div id="description"></div> 1.23 +<div id="console"></div> 1.24 +<script> 1.25 + 1.26 +var piConstants = [ 1.27 + "const float kPI = 3.14159265358979323846;", 1.28 + "const float kHalfPI = (kPI * 0.5);", 1.29 + "const float k2PI = (kPI * 2.0);" 1.30 +].join("\n"); 1.31 + 1.32 +var kPI = Math.PI; 1.33 +var kHalfPI = Math.PI * 0.5; 1.34 +var k2PI = Math.PI * 2.0; 1.35 +var sin = Math.sin; // shorthand 1.36 + 1.37 +GLSLGenerator.runReferenceImageTest({ 1.38 + feature: "sin", 1.39 + args: "$(type) value", 1.40 + testFunc: "$(func)($(type))", 1.41 + gridRes: 8, 1.42 + tolerance: 4, 1.43 + extra: piConstants, 1.44 + tests: [ 1.45 + { 1.46 + source: ["$(output) = vec4(", 1.47 + " $(func)($(input).x * kHalfPI + kHalfPI),", 1.48 + " $(func)($(input).y * kHalfPI),", 1.49 + " 0,", 1.50 + " 1);"].join("\n"), 1.51 + generator: function(x, y, z, w) { 1.52 + return [ sin(x * kHalfPI + kHalfPI), 1.53 + sin(y * kHalfPI), 1.54 + 0, 1.55 + 1 ]; 1.56 + }, 1.57 + }, 1.58 + { 1.59 + source: ["$(output) = vec4(", 1.60 + " $(func)($(input).xy * vec2(kPI, k2PI)) * 0.5 + vec2(0.5, 0.5),", 1.61 + " 0, 1);"].join("\n"), 1.62 + generator: function(x, y, z, w) { 1.63 + return [ sin(x * kPI) * 0.5 + 0.5, 1.64 + sin(y * k2PI) * 0.5 + 0.5, 1.65 + 0, 1.66 + 1 ]; 1.67 + }, 1.68 + }, 1.69 + { 1.70 + source: ["$(output) = vec4(", 1.71 + " $(func)($(input).xyz * vec3(kPI, k2PI, 4.0)) * ", 1.72 + " 0.5 + vec3(0.5, 0.5, 0.5),", 1.73 + " 1);"].join("\n"), 1.74 + generator: function(x, y, z, w) { 1.75 + return [ sin(x * kPI) * 0.5 + 0.5, 1.76 + sin(y * k2PI) * 0.5 + 0.5, 1.77 + sin(z * 4.0) * 0.5 + 0.5, 1.78 + 1 ]; 1.79 + }, 1.80 + }, 1.81 + { 1.82 + source: ["$(output) = ", 1.83 + " $(func)($(input) * vec4(k2PI, 4.0, kHalfPI, kPI)) *", 1.84 + " 0.5 + vec4(0.5, 0.5, 0.5, 1);", 1.85 + ].join("\n"), 1.86 + generator: function(x, y, z, w) { 1.87 + return [ sin(x * k2PI) * 0.5 + 0.5, 1.88 + sin(y * 4.0) * 0.5 + 0.5, 1.89 + sin(z * kHalfPI) * 0.5 + 0.5, 1.90 + sin(w * kPI) * 0.5 + 1 ]; 1.91 + }, 1.92 + }, 1.93 + ] 1.94 +}); 1.95 +successfullyParsed = true; 1.96 +</script> 1.97 +</body> 1.98 +</html>