OLD | NEW |
(Empty) | |
| 1 <!-- |
| 2 |
| 3 /* |
| 4 ** Copyright (c) 2012 The Khronos Group Inc. |
| 5 ** |
| 6 ** Permission is hereby granted, free of charge, to any person obtaining a |
| 7 ** copy of this software and/or associated documentation files (the |
| 8 ** "Materials"), to deal in the Materials without restriction, including |
| 9 ** without limitation the rights to use, copy, modify, merge, publish, |
| 10 ** distribute, sublicense, and/or sell copies of the Materials, and to |
| 11 ** permit persons to whom the Materials are furnished to do so, subject to |
| 12 ** the following conditions: |
| 13 ** |
| 14 ** The above copyright notice and this permission notice shall be included |
| 15 ** in all copies or substantial portions of the Materials. |
| 16 ** |
| 17 ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
| 18 ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
| 19 ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. |
| 20 ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY |
| 21 ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
| 22 ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
| 23 ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. |
| 24 */ |
| 25 |
| 26 --> |
| 27 |
| 28 <!DOCTYPE html> |
| 29 <html> |
| 30 <head> |
| 31 <meta charset="utf-8"> |
| 32 <title>WebGL GLSL Conformance Tests</title> |
| 33 <link rel="stylesheet" href="../../../resources/js-test-style.css"/> |
| 34 <link rel="stylesheet" href="../../resources/glsl-feature-tests.css"/> |
| 35 <script src="../../../resources/js-test-pre.js"></script> |
| 36 <script src="../../resources/webgl-test-utils.js"></script> |
| 37 <script src="../../resources/glsl-conformance-test.js"></script> |
| 38 </head> |
| 39 <body> |
| 40 <div id="description"></div> |
| 41 <div id="console"></div> |
| 42 <script id="fragmentShaderAGreaterThanBCheckR" type="text/something-not-javascri
pt"> |
| 43 // fragment shader with for scoping should succeed |
| 44 precision mediump float; |
| 45 void main() { |
| 46 float a = 3.0; |
| 47 float b = 2.0; |
| 48 float r = 0.0; |
| 49 float r0 = 0.5; |
| 50 float r1 = 1.0; |
| 51 float ab = a > b ? (r = r0, a) : (r = r1, b); |
| 52 // Output green if successful, red if not. |
| 53 gl_FragColor = ((r == r0) ? vec4(0,1,0,1) : vec4(1,0,0,1)); |
| 54 } |
| 55 </script> |
| 56 <script id="fragmentShaderAGreaterThanBCheckAB" type="text/something-not-javascr
ipt"> |
| 57 // fragment shader with for scoping should succeed |
| 58 precision mediump float; |
| 59 void main() { |
| 60 float a = 3.0; |
| 61 float b = 2.0; |
| 62 float r = 0.0; |
| 63 float r0 = 0.5; |
| 64 float r1 = 1.0; |
| 65 float ab = a > b ? (r = r0, a) : (r = r1, b); |
| 66 // Output green if successful, red if not. |
| 67 gl_FragColor = ((ab == a) ? vec4(0,1,0,1) : vec4(1,0,0,1)); |
| 68 } |
| 69 </script> |
| 70 <script id="fragmentShaderAGreaterThanBCheckT0" type="text/something-not-javascr
ipt"> |
| 71 // fragment shader with for scoping should succeed |
| 72 precision mediump float; |
| 73 void main() { |
| 74 float a = 3.0; |
| 75 float b = 2.0; |
| 76 float t0 = 0.0; |
| 77 float t1 = 0.0; |
| 78 float r0 = 0.5; |
| 79 float r1 = 1.0; |
| 80 float ab = a > b ? (t0 = r0, a) : (t1 = r1, b); |
| 81 // Output green if successful, red if not. |
| 82 gl_FragColor = ((t0 == r0) ? vec4(0,1,0,1) : vec4(1,0,0,1)); |
| 83 } |
| 84 </script> |
| 85 <script id="fragmentShaderAGreaterThanBCheckT1" type="text/something-not-javascr
ipt"> |
| 86 // fragment shader with for scoping should succeed |
| 87 precision mediump float; |
| 88 void main() { |
| 89 float a = 3.0; |
| 90 float b = 2.0; |
| 91 float t0 = 0.0; |
| 92 float t1 = 0.0; |
| 93 float r0 = 0.5; |
| 94 float r1 = 1.0; |
| 95 float ab = a > b ? (t0 = r0, a) : (t1 = r1, b); |
| 96 // Output green if successful, red if not. |
| 97 gl_FragColor = ((t1 == 0.0) ? vec4(0,1,0,1) : vec4(1,0,0,1)); |
| 98 } |
| 99 </script> |
| 100 <script id="fragmentShaderBGreaterThanACheckR" type="text/something-not-javascri
pt"> |
| 101 // fragment shader with for scoping should succeed |
| 102 precision mediump float; |
| 103 void main() { |
| 104 float a = 2.0; |
| 105 float b = 3.0; |
| 106 float r = 0.0; |
| 107 float r0 = 0.5; |
| 108 float r1 = 1.0; |
| 109 float ab = a > b ? (r = r0, a) : (r = r1, b); |
| 110 // Output green if successful, red if not. |
| 111 gl_FragColor = ((r == r1) ? vec4(0,1,0,1) : vec4(1,0,0,1)); |
| 112 } |
| 113 </script> |
| 114 <script id="fragmentShaderBGreaterThanACheckAB" type="text/something-not-javascr
ipt"> |
| 115 // fragment shader with for scoping should succeed |
| 116 precision mediump float; |
| 117 void main() { |
| 118 float a = 2.0; |
| 119 float b = 3.0; |
| 120 float r = 0.0; |
| 121 float r0 = 0.5; |
| 122 float r1 = 1.0; |
| 123 float ab = a > b ? (r = r0, a) : (r = r1, b); |
| 124 // Output green if successful, red if not. |
| 125 gl_FragColor = ((ab == b) ? vec4(0,1,0,1) : vec4(1,0,0,1)); |
| 126 } |
| 127 </script> |
| 128 <script id="fragmentShaderBGreaterThanACheckT0" type="text/something-not-javascr
ipt"> |
| 129 // fragment shader with for scoping should succeed |
| 130 precision mediump float; |
| 131 void main() { |
| 132 float a = 2.0; |
| 133 float b = 3.0; |
| 134 float t0 = 0.0; |
| 135 float t1 = 0.0; |
| 136 float r0 = 0.5; |
| 137 float r1 = 1.0; |
| 138 float ab = a > b ? (t0 = r0, a) : (t1 = r1, b); |
| 139 // Output green if successful, red if not. |
| 140 gl_FragColor = ((t0 == 0.0) ? vec4(0,1,0,1) : vec4(1,0,0,1)); |
| 141 } |
| 142 </script> |
| 143 <script id="fragmentShaderBGreaterThanACheckT1" type="text/something-not-javascr
ipt"> |
| 144 // fragment shader with for scoping should succeed |
| 145 precision mediump float; |
| 146 void main() { |
| 147 float a = 2.0; |
| 148 float b = 3.0; |
| 149 float t0 = 0.0; |
| 150 float t1 = 0.0; |
| 151 float r0 = 0.5; |
| 152 float r1 = 1.0; |
| 153 float ab = a > b ? (t0 = r0, a) : (t1 = r1, b); |
| 154 // Output green if successful, red if not. |
| 155 gl_FragColor = ((t1 == r1) ? vec4(0,1,0,1) : vec4(1,0,0,1)); |
| 156 } |
| 157 </script> |
| 158 <script> |
| 159 GLSLConformanceTester.runRenderTests([ |
| 160 { vShaderId: undefined, |
| 161 vShaderSuccess: true, |
| 162 fShaderId: 'fragmentShaderAGreaterThanBCheckR', |
| 163 fShaderSuccess: true, |
| 164 linkSuccess: true, |
| 165 passMsg: "comma based conditional assignment works", |
| 166 }, |
| 167 { vShaderId: undefined, |
| 168 vShaderSuccess: true, |
| 169 fShaderId: 'fragmentShaderAGreaterThanBCheckAB', |
| 170 fShaderSuccess: true, |
| 171 linkSuccess: true, |
| 172 passMsg: "comma based conditional assignment works", |
| 173 }, |
| 174 { vShaderId: undefined, |
| 175 vShaderSuccess: true, |
| 176 fShaderId: 'fragmentShaderAGreaterThanBCheckT0', |
| 177 fShaderSuccess: true, |
| 178 linkSuccess: true, |
| 179 passMsg: "comma based conditional assignment works", |
| 180 }, |
| 181 { vShaderId: undefined, |
| 182 vShaderSuccess: true, |
| 183 fShaderId: 'fragmentShaderAGreaterThanBCheckT1', |
| 184 fShaderSuccess: true, |
| 185 linkSuccess: true, |
| 186 passMsg: "comma based conditional assignment works", |
| 187 }, |
| 188 { vShaderId: undefined, |
| 189 vShaderSuccess: true, |
| 190 fShaderId: 'fragmentShaderBGreaterThanACheckR', |
| 191 fShaderSuccess: true, |
| 192 linkSuccess: true, |
| 193 passMsg: "comma based conditional assignment works", |
| 194 }, |
| 195 { vShaderId: undefined, |
| 196 vShaderSuccess: true, |
| 197 fShaderId: 'fragmentShaderBGreaterThanACheckAB', |
| 198 fShaderSuccess: true, |
| 199 linkSuccess: true, |
| 200 passMsg: "comma based conditional assignment works", |
| 201 }, |
| 202 { vShaderId: undefined, |
| 203 vShaderSuccess: true, |
| 204 fShaderId: 'fragmentShaderBGreaterThanACheckT0', |
| 205 fShaderSuccess: true, |
| 206 linkSuccess: true, |
| 207 passMsg: "comma based conditional assignment works", |
| 208 }, |
| 209 { vShaderId: undefined, |
| 210 vShaderSuccess: true, |
| 211 fShaderId: 'fragmentShaderBGreaterThanACheckT1', |
| 212 fShaderSuccess: true, |
| 213 linkSuccess: true, |
| 214 passMsg: "comma based conditional assignment works", |
| 215 } |
| 216 ]); |
| 217 successfullyParsed = true; |
| 218 </script> |
| 219 </body> |
| 220 </html> |
| 221 |
| 222 |
OLD | NEW |