1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/content/canvas/test/webgl-conformance/conformance/glsl/misc/shader-with-comma-conditional-assignment.html Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,200 @@ 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>WebGL GLSL Conformance Tests</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-utils.js"></script> 1.18 +<script src="../../resources/glsl-conformance-test.js"></script> 1.19 +</head> 1.20 +<body> 1.21 +<div id="description"></div> 1.22 +<div id="console"></div> 1.23 +<script id="fragmentShaderAGreaterThanBCheckR" type="text/something-not-javascript"> 1.24 +// fragment shader with for scoping should succeed 1.25 +precision mediump float; 1.26 +void main() { 1.27 + float a = 3.0; 1.28 + float b = 2.0; 1.29 + float r = 0.0; 1.30 + float r0 = 0.5; 1.31 + float r1 = 1.0; 1.32 + float ab = a > b ? (r = r0, a) : (r = r1, b); 1.33 + // Output green if successful, red if not. 1.34 + gl_FragColor = ((r == r0) ? vec4(0,1,0,1) : vec4(1,0,0,1)); 1.35 +} 1.36 +</script> 1.37 +<script id="fragmentShaderAGreaterThanBCheckAB" type="text/something-not-javascript"> 1.38 +// fragment shader with for scoping should succeed 1.39 +precision mediump float; 1.40 +void main() { 1.41 + float a = 3.0; 1.42 + float b = 2.0; 1.43 + float r = 0.0; 1.44 + float r0 = 0.5; 1.45 + float r1 = 1.0; 1.46 + float ab = a > b ? (r = r0, a) : (r = r1, b); 1.47 + // Output green if successful, red if not. 1.48 + gl_FragColor = ((ab == a) ? vec4(0,1,0,1) : vec4(1,0,0,1)); 1.49 +} 1.50 +</script> 1.51 +<script id="fragmentShaderAGreaterThanBCheckT0" type="text/something-not-javascript"> 1.52 +// fragment shader with for scoping should succeed 1.53 +precision mediump float; 1.54 +void main() { 1.55 + float a = 3.0; 1.56 + float b = 2.0; 1.57 + float t0 = 0.0; 1.58 + float t1 = 0.0; 1.59 + float r0 = 0.5; 1.60 + float r1 = 1.0; 1.61 + float ab = a > b ? (t0 = r0, a) : (t1 = r1, b); 1.62 + // Output green if successful, red if not. 1.63 + gl_FragColor = ((t0 == r0) ? vec4(0,1,0,1) : vec4(1,0,0,1)); 1.64 +} 1.65 +</script> 1.66 +<script id="fragmentShaderAGreaterThanBCheckT1" type="text/something-not-javascript"> 1.67 +// fragment shader with for scoping should succeed 1.68 +precision mediump float; 1.69 +void main() { 1.70 + float a = 3.0; 1.71 + float b = 2.0; 1.72 + float t0 = 0.0; 1.73 + float t1 = 0.0; 1.74 + float r0 = 0.5; 1.75 + float r1 = 1.0; 1.76 + float ab = a > b ? (t0 = r0, a) : (t1 = r1, b); 1.77 + // Output green if successful, red if not. 1.78 + gl_FragColor = ((t1 == 0.0) ? vec4(0,1,0,1) : vec4(1,0,0,1)); 1.79 +} 1.80 +</script> 1.81 +<script id="fragmentShaderBGreaterThanACheckR" type="text/something-not-javascript"> 1.82 +// fragment shader with for scoping should succeed 1.83 +precision mediump float; 1.84 +void main() { 1.85 + float a = 2.0; 1.86 + float b = 3.0; 1.87 + float r = 0.0; 1.88 + float r0 = 0.5; 1.89 + float r1 = 1.0; 1.90 + float ab = a > b ? (r = r0, a) : (r = r1, b); 1.91 + // Output green if successful, red if not. 1.92 + gl_FragColor = ((r == r1) ? vec4(0,1,0,1) : vec4(1,0,0,1)); 1.93 +} 1.94 +</script> 1.95 +<script id="fragmentShaderBGreaterThanACheckAB" type="text/something-not-javascript"> 1.96 +// fragment shader with for scoping should succeed 1.97 +precision mediump float; 1.98 +void main() { 1.99 + float a = 2.0; 1.100 + float b = 3.0; 1.101 + float r = 0.0; 1.102 + float r0 = 0.5; 1.103 + float r1 = 1.0; 1.104 + float ab = a > b ? (r = r0, a) : (r = r1, b); 1.105 + // Output green if successful, red if not. 1.106 + gl_FragColor = ((ab == b) ? vec4(0,1,0,1) : vec4(1,0,0,1)); 1.107 +} 1.108 +</script> 1.109 +<script id="fragmentShaderBGreaterThanACheckT0" type="text/something-not-javascript"> 1.110 +// fragment shader with for scoping should succeed 1.111 +precision mediump float; 1.112 +void main() { 1.113 + float a = 2.0; 1.114 + float b = 3.0; 1.115 + float t0 = 0.0; 1.116 + float t1 = 0.0; 1.117 + float r0 = 0.5; 1.118 + float r1 = 1.0; 1.119 + float ab = a > b ? (t0 = r0, a) : (t1 = r1, b); 1.120 + // Output green if successful, red if not. 1.121 + gl_FragColor = ((t0 == 0.0) ? vec4(0,1,0,1) : vec4(1,0,0,1)); 1.122 +} 1.123 +</script> 1.124 +<script id="fragmentShaderBGreaterThanACheckT1" type="text/something-not-javascript"> 1.125 +// fragment shader with for scoping should succeed 1.126 +precision mediump float; 1.127 +void main() { 1.128 + float a = 2.0; 1.129 + float b = 3.0; 1.130 + float t0 = 0.0; 1.131 + float t1 = 0.0; 1.132 + float r0 = 0.5; 1.133 + float r1 = 1.0; 1.134 + float ab = a > b ? (t0 = r0, a) : (t1 = r1, b); 1.135 + // Output green if successful, red if not. 1.136 + gl_FragColor = ((t1 == r1) ? vec4(0,1,0,1) : vec4(1,0,0,1)); 1.137 +} 1.138 +</script> 1.139 +<script> 1.140 +GLSLConformanceTester.runRenderTests([ 1.141 +{ vShaderId: undefined, 1.142 + vShaderSuccess: true, 1.143 + fShaderId: 'fragmentShaderAGreaterThanBCheckR', 1.144 + fShaderSuccess: true, 1.145 + linkSuccess: true, 1.146 + passMsg: "comma based conditional assignment works", 1.147 +}, 1.148 +{ vShaderId: undefined, 1.149 + vShaderSuccess: true, 1.150 + fShaderId: 'fragmentShaderAGreaterThanBCheckAB', 1.151 + fShaderSuccess: true, 1.152 + linkSuccess: true, 1.153 + passMsg: "comma based conditional assignment works", 1.154 +}, 1.155 +{ vShaderId: undefined, 1.156 + vShaderSuccess: true, 1.157 + fShaderId: 'fragmentShaderAGreaterThanBCheckT0', 1.158 + fShaderSuccess: true, 1.159 + linkSuccess: true, 1.160 + passMsg: "comma based conditional assignment works", 1.161 +}, 1.162 +{ vShaderId: undefined, 1.163 + vShaderSuccess: true, 1.164 + fShaderId: 'fragmentShaderAGreaterThanBCheckT1', 1.165 + fShaderSuccess: true, 1.166 + linkSuccess: true, 1.167 + passMsg: "comma based conditional assignment works", 1.168 +}, 1.169 +{ vShaderId: undefined, 1.170 + vShaderSuccess: true, 1.171 + fShaderId: 'fragmentShaderBGreaterThanACheckR', 1.172 + fShaderSuccess: true, 1.173 + linkSuccess: true, 1.174 + passMsg: "comma based conditional assignment works", 1.175 +}, 1.176 +{ vShaderId: undefined, 1.177 + vShaderSuccess: true, 1.178 + fShaderId: 'fragmentShaderBGreaterThanACheckAB', 1.179 + fShaderSuccess: true, 1.180 + linkSuccess: true, 1.181 + passMsg: "comma based conditional assignment works", 1.182 +}, 1.183 +{ vShaderId: undefined, 1.184 + vShaderSuccess: true, 1.185 + fShaderId: 'fragmentShaderBGreaterThanACheckT0', 1.186 + fShaderSuccess: true, 1.187 + linkSuccess: true, 1.188 + passMsg: "comma based conditional assignment works", 1.189 +}, 1.190 +{ vShaderId: undefined, 1.191 + vShaderSuccess: true, 1.192 + fShaderId: 'fragmentShaderBGreaterThanACheckT1', 1.193 + fShaderSuccess: true, 1.194 + linkSuccess: true, 1.195 + passMsg: "comma based conditional assignment works", 1.196 +} 1.197 +]); 1.198 +successfullyParsed = true; 1.199 +</script> 1.200 +</body> 1.201 +</html> 1.202 + 1.203 +