diff options
Diffstat (limited to 'dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/functions/qualifiers_struct_frag.frag')
-rw-r--r-- | dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/functions/qualifiers_struct_frag.frag | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/functions/qualifiers_struct_frag.frag b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/functions/qualifiers_struct_frag.frag new file mode 100644 index 0000000000..6d1a7e75c0 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/ogles/GL/functions/qualifiers_struct_frag.frag @@ -0,0 +1,66 @@ + +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + + +#ifdef GL_ES +precision mediump float; +#endif +struct sabcd +{ + float a; + float b; + float c; + float d; +}; + + + +sabcd qualifiers(in sabcd a, out sabcd b, inout sabcd c, const in sabcd d, +sabcd e) +{ + sabcd one = sabcd(1.0, 1.0, 1.0, 1.0); + + b = a; + + c.a += d.a; + c.b += d.b; + c.c += d.c; + c.d += d.d; + + a.a += one.a; + a.b += one.b; + a.c += one.c; + a.d += one.d; + + return e; +} + +void main (void) +{ + sabcd a = sabcd(1.0, 1.0, 1.0, 1.0); + sabcd b = sabcd(2.0, 2.0, 2.0, 2.0); + sabcd c = sabcd(3.0, 3.0, 3.0, 3.0); + sabcd d = sabcd(4.0, 4.0, 4.0, 4.0); + sabcd e = sabcd(1.0, 1.0, 1.0, 1.0); + sabcd f = sabcd(0.0, 0.0, 0.0, 0.0); + sabcd one = sabcd(1.0, 1.0, 1.0, 1.0); + sabcd four = sabcd(4.0, 4.0, 4.0, 4.0); + sabcd seven = sabcd(7.0, 7.0, 7.0, 7.0); + float q = 0.0; + float q2 = 0.0; + + f = qualifiers(a, b, c, d, e); + + if(a == one) q += 1.0; + if(b == one) q += 2.0; + if(c == seven) q += 4.0; + if(d == four) q2 += 1.0; + if(e == one) q2 += 2.0; + if(f == one) q2 += 4.0; + + gl_FragColor = vec4(vec2(q / 7.0, q2 / 7.0), 1.0, 1.0); +} |