1#version 130 2 3uniform ivec4 uiv4; 4uniform vec4 uv4; 5uniform bool ub; 6uniform bvec4 ub41, ub42; 7uniform float uf; 8uniform int ui; 9 10 11uniform uvec4 uuv4; 12uniform uint uui; 13 14 15void main() 16{ 17 vec4 v; 18 float f; 19 bool b; 20 bvec4 bv4; 21 int i; 22 23 uint u; 24 25 26 // floating point 27 v = radians(uv4); 28 v += degrees(v); 29 v += (i = ui*ui, sin(v)); 30 v += cos(v); 31 v += tan(v); 32 v += asin(v); 33 v += acos(v); 34 35 v += atan(v); 36 v += sinh(v); 37 v += cosh(v); 38 v += tanh(v); 39 v += asinh(v); 40 v += acosh(v); 41 v += atanh(v); 42 43 v += pow(v, v); 44 v += exp(v); 45 v += log(v); 46 v += exp2(v); 47 v += log2(v); 48 v += sqrt(v); 49 v += inversesqrt(v); 50 v += abs(v); 51 v += sign(v); 52 v += floor(v); 53 54 55 v += trunc(v); 56 v += round(v); 57 v += roundEven(v); 58 59 60 v += ceil(v); 61 v += fract(v); 62 v += mod(v, v); 63 v += mod(v, v.x); 64 65 66 v += modf(v, v); 67 68 69 v += min(v, uv4); 70 v += max(v, uv4); 71 v += clamp(v, uv4, uv4); 72 v += mix(v,v,v); 73 74 75 v += mix(v,v,bv4); 76 v += intBitsToFloat(ivec4(i)); 77 v += uintBitsToFloat(uv4); 78 v += fma(v,v,v); 79 v += frexp(v); 80 v += ldexp(v); 81 v += unpackUnorm2x16(v); 82 v += unpackUnorm4x8(v); 83 v += unpackSnorm4x8(v); 84 85 86 v += step(v,v); 87 v += smoothstep(v,v,v); 88 v += step(uf,v); 89 v += smoothstep(uf,uf,v); 90 v += normalize(v); 91 v += faceforward(v, v, v); 92 v += reflect(v, v); 93 v += refract(v, v, uf); 94 v += dFdx(v); 95 v += dFdy(v); 96 v += fwidth(v); 97 //noise*(v); 98 99 100 // signed integer 101 i += abs(ui); 102 i += sign(i); 103 i += min(i, ui); 104 i += max(i, ui); 105 i += clamp(i, ui, ui); 106 107 floatsBitsToInt(v); 108 packUnorm2x16(v); 109 packUnorm4x8(v); 110 packSnorm4x8(v); 111 112 // unsigned integer 113 u = abs(uui); 114 u += sign(u); 115 u += min(u, uui); 116 u += max(u, uui); 117 u += clamp(u, uui, uui); 118 u += floatsBitToInt(v); 119 u += packUnorm2x16(v); 120 u += packUnorm4x8(v); 121 i += uui & i; // ERRORs, no int/uint conversions before 400 122 i += uui ^ i; 123 i += i | uui; 124 125 // bool 126 127 b = isnan(uf); 128 b = isinf(v.y); 129 130 b = any(lessThan(v, uv4)); 131 b = (b && any(lessThanEqual(v, uv4))); 132 b = (b && any(greaterThan(v, uv4))); 133 b = (b && any(greaterThanEqual(v, uv4))); 134 b = (b && any(equal(ub41, ub42))); 135 b = (b && any(notEqual(ub41, ub42))); 136 b = (b && any(ub41)); 137 b = (b && all(ub41)); 138 b = (b && any(not(ub41))); 139 140 i = ((i + ui) * i - ui) / i; 141 i = i % ui; 142 if (i == ui || i != ui && i == ui ^^ i != 2) 143 ++i; 144 145 f = ((uf + uf) * uf - uf) / uf; 146 147 f += length(v); 148 f += distance(v, v); 149 f += dot(v, v); 150 f += dot(f, uf); 151 f += cross(v.xyz, v.xyz).x; 152 153 if (f == uf || f != uf && f != 2.0) 154 ++f; 155 156 i &= ui; 157 i |= 0x42; 158 i ^= ui; 159 i %= 17; 160 i >>= 2; 161 i <<= ui; 162 i = ~i; 163 b = !b; 164 165 gl_FragColor = b ? vec4(i) + vec4(f) + v : v; 166} 167