1*6777b538SAndroid Build Coastguard Worker# Tokens for WebGL 2.0 Shader Language. 2*6777b538SAndroid Build Coastguard Worker 3*6777b538SAndroid Build Coastguard Worker# Preprocessor tokens 4*6777b538SAndroid Build Coastguard Worker"#" 5*6777b538SAndroid Build Coastguard Worker"#define" 6*6777b538SAndroid Build Coastguard Worker"#undef" 7*6777b538SAndroid Build Coastguard Worker"#if" 8*6777b538SAndroid Build Coastguard Worker"#ifdef" 9*6777b538SAndroid Build Coastguard Worker"#ifndef" 10*6777b538SAndroid Build Coastguard Worker"#else" 11*6777b538SAndroid Build Coastguard Worker"#elif" 12*6777b538SAndroid Build Coastguard Worker"#endif" 13*6777b538SAndroid Build Coastguard Worker"#error" 14*6777b538SAndroid Build Coastguard Worker"#pragma" 15*6777b538SAndroid Build Coastguard Worker"#extension" 16*6777b538SAndroid Build Coastguard Worker"#version" 17*6777b538SAndroid Build Coastguard Worker"#line" 18*6777b538SAndroid Build Coastguard Worker"defined" 19*6777b538SAndroid Build Coastguard Worker"#macros" 20*6777b538SAndroid Build Coastguard Worker"__LINE__" 21*6777b538SAndroid Build Coastguard Worker"__FILE__" 22*6777b538SAndroid Build Coastguard Worker"__VERSION__" 23*6777b538SAndroid Build Coastguard Worker"GL_ES" 24*6777b538SAndroid Build Coastguard Worker 25*6777b538SAndroid Build Coastguard Worker # Fragment shaders only 26*6777b538SAndroid Build Coastguard Worker"GL_FRAGMENT_PRECISION_HIGH" 27*6777b538SAndroid Build Coastguard Worker 28*6777b538SAndroid Build Coastguard Worker# Language tokens 29*6777b538SAndroid Build Coastguard Worker"(" 30*6777b538SAndroid Build Coastguard Worker")" 31*6777b538SAndroid Build Coastguard Worker"+" 32*6777b538SAndroid Build Coastguard Worker"-" 33*6777b538SAndroid Build Coastguard Worker"~" 34*6777b538SAndroid Build Coastguard Worker"!" 35*6777b538SAndroid Build Coastguard Worker"*" 36*6777b538SAndroid Build Coastguard Worker"/" 37*6777b538SAndroid Build Coastguard Worker"%" 38*6777b538SAndroid Build Coastguard Worker"+" 39*6777b538SAndroid Build Coastguard Worker"-" 40*6777b538SAndroid Build Coastguard Worker"<<" 41*6777b538SAndroid Build Coastguard Worker">>" 42*6777b538SAndroid Build Coastguard Worker"<" 43*6777b538SAndroid Build Coastguard Worker">" 44*6777b538SAndroid Build Coastguard Worker"<=" 45*6777b538SAndroid Build Coastguard Worker">=" 46*6777b538SAndroid Build Coastguard Worker"==" 47*6777b538SAndroid Build Coastguard Worker"!=" 48*6777b538SAndroid Build Coastguard Worker"+=" 49*6777b538SAndroid Build Coastguard Worker"-=" 50*6777b538SAndroid Build Coastguard Worker"*=" 51*6777b538SAndroid Build Coastguard Worker"/=" 52*6777b538SAndroid Build Coastguard Worker"%=" 53*6777b538SAndroid Build Coastguard Worker"<<=" 54*6777b538SAndroid Build Coastguard Worker">>=" 55*6777b538SAndroid Build Coastguard Worker";" 56*6777b538SAndroid Build Coastguard Worker"," 57*6777b538SAndroid Build Coastguard Worker"." 58*6777b538SAndroid Build Coastguard Worker"[" 59*6777b538SAndroid Build Coastguard Worker"]" 60*6777b538SAndroid Build Coastguard Worker"++" 61*6777b538SAndroid Build Coastguard Worker"--" 62*6777b538SAndroid Build Coastguard Worker"&" 63*6777b538SAndroid Build Coastguard Worker"^" 64*6777b538SAndroid Build Coastguard Worker"|" 65*6777b538SAndroid Build Coastguard Worker"&&" 66*6777b538SAndroid Build Coastguard Worker"||" 67*6777b538SAndroid Build Coastguard Worker 68*6777b538SAndroid Build Coastguard Worker# Keywords 69*6777b538SAndroid Build Coastguard Worker" attribute " 70*6777b538SAndroid Build Coastguard Worker" const " 71*6777b538SAndroid Build Coastguard Worker" uniform " 72*6777b538SAndroid Build Coastguard Worker" varying " 73*6777b538SAndroid Build Coastguard Worker" break " 74*6777b538SAndroid Build Coastguard Worker" continue " 75*6777b538SAndroid Build Coastguard Worker" do " 76*6777b538SAndroid Build Coastguard Worker" for " 77*6777b538SAndroid Build Coastguard Worker" while " 78*6777b538SAndroid Build Coastguard Worker" if " 79*6777b538SAndroid Build Coastguard Worker" else " 80*6777b538SAndroid Build Coastguard Worker" in " 81*6777b538SAndroid Build Coastguard Worker" out " 82*6777b538SAndroid Build Coastguard Worker" inout " 83*6777b538SAndroid Build Coastguard Worker" float " 84*6777b538SAndroid Build Coastguard Worker" int " 85*6777b538SAndroid Build Coastguard Worker" void " 86*6777b538SAndroid Build Coastguard Worker" bool " 87*6777b538SAndroid Build Coastguard Worker" true " 88*6777b538SAndroid Build Coastguard Worker" false " 89*6777b538SAndroid Build Coastguard Worker" lowp " 90*6777b538SAndroid Build Coastguard Worker" mediump " 91*6777b538SAndroid Build Coastguard Worker" highp " 92*6777b538SAndroid Build Coastguard Worker" precision " 93*6777b538SAndroid Build Coastguard Worker" invariant " 94*6777b538SAndroid Build Coastguard Worker" discard " 95*6777b538SAndroid Build Coastguard Worker" return" 96*6777b538SAndroid Build Coastguard Worker 97*6777b538SAndroid Build Coastguard Worker# Types, include valid examples and partial ones (that are invalid on their own) 98*6777b538SAndroid Build Coastguard Worker" mat2(" 99*6777b538SAndroid Build Coastguard Worker" mat2(1.0)" 100*6777b538SAndroid Build Coastguard Worker" mat2(1.0,2.0,3.0,4.0)" 101*6777b538SAndroid Build Coastguard Worker" mat3(vec2(1.0, 1.0),1.0,vec2(1.0, 1.0),1.0,vec2(1.0, 1.0),1.0)" 102*6777b538SAndroid Build Coastguard Worker" mat3(1.0)" 103*6777b538SAndroid Build Coastguard Worker" mat3(" 104*6777b538SAndroid Build Coastguard Worker" mat4(" 105*6777b538SAndroid Build Coastguard Worker" mat4(1.0)" 106*6777b538SAndroid Build Coastguard Worker" mat4(vec4(1.0),vec4(1.0,2.0,3.0,4.0),vec4(3.3),vec4(4.4))" 107*6777b538SAndroid Build Coastguard Worker"vec2" 108*6777b538SAndroid Build Coastguard Worker" vec2(1)" 109*6777b538SAndroid Build Coastguard Worker" vec3(1)" 110*6777b538SAndroid Build Coastguard Worker" vec3" 111*6777b538SAndroid Build Coastguard Worker" vec4(1)" 112*6777b538SAndroid Build Coastguard Worker" vec4" 113*6777b538SAndroid Build Coastguard Worker" ivec2(1) " 114*6777b538SAndroid Build Coastguard Worker" ivec2" 115*6777b538SAndroid Build Coastguard Worker" ivec3(1)" 116*6777b538SAndroid Build Coastguard Worker" ivec3" 117*6777b538SAndroid Build Coastguard Worker" ivec4(1)" 118*6777b538SAndroid Build Coastguard Worker" ivec4" 119*6777b538SAndroid Build Coastguard Worker" bvec2(true)" 120*6777b538SAndroid Build Coastguard Worker" bvec2" 121*6777b538SAndroid Build Coastguard Worker" bvec3(true)" 122*6777b538SAndroid Build Coastguard Worker" bvec3" 123*6777b538SAndroid Build Coastguard Worker" bvec4(true)" 124*6777b538SAndroid Build Coastguard Worker" bvec4" 125*6777b538SAndroid Build Coastguard Worker" sampler2D " 126*6777b538SAndroid Build Coastguard Worker" samplerCube " 127*6777b538SAndroid Build Coastguard Worker" struct " 128*6777b538SAndroid Build Coastguard Worker" sampler3D " 129*6777b538SAndroid Build Coastguard Worker" samplerCube " 130*6777b538SAndroid Build Coastguard Worker" sampler2DShadow " 131*6777b538SAndroid Build Coastguard Worker" sampler2DArray " 132*6777b538SAndroid Build Coastguard Worker" sampler2DArrayShadow " 133*6777b538SAndroid Build Coastguard Worker" sampler2DMS " 134*6777b538SAndroid Build Coastguard Worker" samplerCubeShadow " 135*6777b538SAndroid Build Coastguard Worker" isampler2D " 136*6777b538SAndroid Build Coastguard Worker" isampler3D " 137*6777b538SAndroid Build Coastguard Worker" isamplerCube " 138*6777b538SAndroid Build Coastguard Worker" isampler2DArray " 139*6777b538SAndroid Build Coastguard Worker" isampler2DMS " 140*6777b538SAndroid Build Coastguard Worker" usampler2D " 141*6777b538SAndroid Build Coastguard Worker" usampler3D " 142*6777b538SAndroid Build Coastguard Worker" usampler2DArray " 143*6777b538SAndroid Build Coastguard Worker" usampler2DMS " 144*6777b538SAndroid Build Coastguard Worker" usamplerCube " 145*6777b538SAndroid Build Coastguard Worker" image2D " 146*6777b538SAndroid Build Coastguard Worker" image3D " 147*6777b538SAndroid Build Coastguard Worker" imageCube " 148*6777b538SAndroid Build Coastguard Worker" image2DArray " 149*6777b538SAndroid Build Coastguard Worker" iimage2D " 150*6777b538SAndroid Build Coastguard Worker" iimage3D " 151*6777b538SAndroid Build Coastguard Worker" iimageCube " 152*6777b538SAndroid Build Coastguard Worker" iimage2DArray " 153*6777b538SAndroid Build Coastguard Worker" uimage2D " 154*6777b538SAndroid Build Coastguard Worker" uimage3D " 155*6777b538SAndroid Build Coastguard Worker" uimageCube " 156*6777b538SAndroid Build Coastguard Worker" uimage2DArray " 157*6777b538SAndroid Build Coastguard Worker" atomic_uint " 158*6777b538SAndroid Build Coastguard Worker 159*6777b538SAndroid Build Coastguard Worker# Builtin Variables 160*6777b538SAndroid Build Coastguard Worker"gl_Position" 161*6777b538SAndroid Build Coastguard Worker"gl_FragColor" 162*6777b538SAndroid Build Coastguard Worker"gl_FragData" 163*6777b538SAndroid Build Coastguard Worker"gl_FrontFacing" 164*6777b538SAndroid Build Coastguard Worker"gl_PointCoord" 165*6777b538SAndroid Build Coastguard Worker"gl_MaxDrawBuffers" 166*6777b538SAndroid Build Coastguard Worker"gl_MaxFragmentUniformVectors" 167*6777b538SAndroid Build Coastguard Worker"gl_MaxTextureImageUnits" 168*6777b538SAndroid Build Coastguard Worker"gl_MaxCombinedTextureImageUnits" 169*6777b538SAndroid Build Coastguard Worker"gl_MaxVertexTextureImageUnits" 170*6777b538SAndroid Build Coastguard Worker"gl_MaxVaryingVectors" 171*6777b538SAndroid Build Coastguard Worker"gl_MaxVertexUniformVectors" 172*6777b538SAndroid Build Coastguard Worker"gl_MaxVertexAttribs" 173*6777b538SAndroid Build Coastguard Worker"gl_FragCoord.x" 174*6777b538SAndroid Build Coastguard Worker"gl_FragCoord.y" 175*6777b538SAndroid Build Coastguard Worker"gl_FragCoord.z" 176*6777b538SAndroid Build Coastguard Worker"gl_FragData" 177*6777b538SAndroid Build Coastguard Worker"gl_FragDepth" 178*6777b538SAndroid Build Coastguard Worker"gl_InstanceID" 179*6777b538SAndroid Build Coastguard Worker"gl_NumWorkGroups" 180*6777b538SAndroid Build Coastguard Worker"gl_PointSize" 181*6777b538SAndroid Build Coastguard Worker"gl_VertexID" 182*6777b538SAndroid Build Coastguard Worker 183*6777b538SAndroid Build Coastguard Worker# misc. 184*6777b538SAndroid Build Coastguard Worker"void main(){" 185*6777b538SAndroid Build Coastguard Worker 186*6777b538SAndroid Build Coastguard Worker# Generated calls to builtin functions. 187*6777b538SAndroid Build Coastguard Worker" pow(1.0,1.0)" 188*6777b538SAndroid Build Coastguard Worker" fract(1.0)" 189*6777b538SAndroid Build Coastguard Worker" dFdx(1.0)" 190*6777b538SAndroid Build Coastguard Worker" step(1.0,1.0)" 191*6777b538SAndroid Build Coastguard Worker" min(1,1)" 192*6777b538SAndroid Build Coastguard Worker" min(1.0,1.0)" 193*6777b538SAndroid Build Coastguard Worker" dot(1.0,1.0)" 194*6777b538SAndroid Build Coastguard Worker" greaterThanEqual(uvec2(1,2),uvec2(1,2))" 195*6777b538SAndroid Build Coastguard Worker" asin(1.0)" 196*6777b538SAndroid Build Coastguard Worker" lessThanEqual(ivec2(1,-2),ivec2(1,-2))" 197*6777b538SAndroid Build Coastguard Worker" inversesqrt(1.0)" 198*6777b538SAndroid Build Coastguard Worker" length(1.0)" 199*6777b538SAndroid Build Coastguard Worker" acosh(1.0)" 200*6777b538SAndroid Build Coastguard Worker" roundEven(1.0)" 201*6777b538SAndroid Build Coastguard Worker" greaterThanEqual(ivec2(1,-2),ivec2(1,-2))" 202*6777b538SAndroid Build Coastguard Worker" greaterThan(uvec2(1,2),uvec2(1,2))" 203*6777b538SAndroid Build Coastguard Worker" radians(1.0)" 204*6777b538SAndroid Build Coastguard Worker" asinh(1.0)" 205*6777b538SAndroid Build Coastguard Worker" uintBitsToFloat(1)" 206*6777b538SAndroid Build Coastguard Worker" cos(1.0)" 207*6777b538SAndroid Build Coastguard Worker" ceil(1.0)" 208*6777b538SAndroid Build Coastguard Worker" equal(uvec2(1,2),uvec2(1,2))" 209*6777b538SAndroid Build Coastguard Worker" normalize(1.0)" 210*6777b538SAndroid Build Coastguard Worker" distance(1.0,1.0)" 211*6777b538SAndroid Build Coastguard Worker" abs(1)" 212*6777b538SAndroid Build Coastguard Worker" clamp(1.0,1.0,1.0)" 213*6777b538SAndroid Build Coastguard Worker" tan(1.0)" 214*6777b538SAndroid Build Coastguard Worker" smoothstep(1.0,1.0,1.0)" 215*6777b538SAndroid Build Coastguard Worker" isinf(1.0)" 216*6777b538SAndroid Build Coastguard Worker" not(bvec2(true,false))" 217*6777b538SAndroid Build Coastguard Worker" degrees(1.0)" 218*6777b538SAndroid Build Coastguard Worker" mix(1.0,1.0,true)" 219*6777b538SAndroid Build Coastguard Worker" max(1.0,1.0)" 220*6777b538SAndroid Build Coastguard Worker" lessThanEqual(uvec2(1,2),uvec2(1,2))" 221*6777b538SAndroid Build Coastguard Worker" round(1.0)" 222*6777b538SAndroid Build Coastguard Worker" atan(1.0,1.0)" 223*6777b538SAndroid Build Coastguard Worker" floatBitsToInt(1.0)" 224*6777b538SAndroid Build Coastguard Worker" abs(1.0)" 225*6777b538SAndroid Build Coastguard Worker" fwidth(1.0)" 226*6777b538SAndroid Build Coastguard Worker" lessThan(ivec2(1,-2),ivec2(1,-2))" 227*6777b538SAndroid Build Coastguard Worker" intBitsToFloat(1)" 228*6777b538SAndroid Build Coastguard Worker" mix(1.0,1.0,1.0)" 229*6777b538SAndroid Build Coastguard Worker" notEqual(uvec2(1,2),uvec2(1,2))" 230*6777b538SAndroid Build Coastguard Worker" floor(1.0)" 231*6777b538SAndroid Build Coastguard Worker" refract(1.0,1.0,1.0)" 232*6777b538SAndroid Build Coastguard Worker" equal(ivec2(1,-2),ivec2(1,-2))" 233*6777b538SAndroid Build Coastguard Worker" max(1,1)" 234*6777b538SAndroid Build Coastguard Worker" cosh(1.0)" 235*6777b538SAndroid Build Coastguard Worker" isnan(1.0)" 236*6777b538SAndroid Build Coastguard Worker" sign(1)" 237*6777b538SAndroid Build Coastguard Worker" mod(1.0,1.0)" 238*6777b538SAndroid Build Coastguard Worker" acos(1.0)" 239*6777b538SAndroid Build Coastguard Worker" sinh(1.0)" 240*6777b538SAndroid Build Coastguard Worker" greaterThan(ivec2(1,-2),ivec2(1,-2))" 241*6777b538SAndroid Build Coastguard Worker" exp2(1.0)" 242*6777b538SAndroid Build Coastguard Worker" notEqual(bvec2(true,false),bvec2(true,false))" 243*6777b538SAndroid Build Coastguard Worker" reflect(1.0,1.0)" 244*6777b538SAndroid Build Coastguard Worker" lessThan(uvec2(1,2),uvec2(1,2))" 245*6777b538SAndroid Build Coastguard Worker" sqrt(1.0)" 246*6777b538SAndroid Build Coastguard Worker" sign(1.0)" 247*6777b538SAndroid Build Coastguard Worker" clamp(1,1,1)" 248*6777b538SAndroid Build Coastguard Worker" sin(1.0)" 249*6777b538SAndroid Build Coastguard Worker" atan(1.0)" 250*6777b538SAndroid Build Coastguard Worker" tanh(1.0)" 251*6777b538SAndroid Build Coastguard Worker" dFdy(1.0)" 252*6777b538SAndroid Build Coastguard Worker" notEqual(ivec2(1,-2),ivec2(1,-2))" 253*6777b538SAndroid Build Coastguard Worker" trunc(1.0)" 254*6777b538SAndroid Build Coastguard Worker" log2(1.0)" 255*6777b538SAndroid Build Coastguard Worker" equal(bvec2(true,false),bvec2(true,false))" 256*6777b538SAndroid Build Coastguard Worker" atanh(1.0)" 257*6777b538SAndroid Build Coastguard Worker" exp(1.0)" 258*6777b538SAndroid Build Coastguard Worker" faceforward(1.0,1.0,1.0)" 259*6777b538SAndroid Build Coastguard Worker" floatBitsToUint(1.0)" 260*6777b538SAndroid Build Coastguard Worker" log(1.0)" 261