OLD | NEW |
(Empty) | |
| 1 STRINGIFY( |
| 2 |
| 3 // defines built-in functions supported by SkiaSL |
| 4 |
| 5 $genType radians($genType degrees); |
| 6 $genType sin($genType angle); |
| 7 $genType cos($genType angle); |
| 8 $genType tan($genType angle); |
| 9 $genType asin($genType x); |
| 10 $genType acos($genType x); |
| 11 $genType atan($genType y, $genType x); |
| 12 $genType atan($genType y_over_x); |
| 13 $genType sinh($genType x); |
| 14 $genType cosh($genType x); |
| 15 $genType tanh($genType x); |
| 16 $genType asinh($genType x); |
| 17 $genType acosh($genType x); |
| 18 $genType atanh($genType x); |
| 19 $genType pow($genType x, $genType y); |
| 20 $genType exp($genType x); |
| 21 $genType log($genType x); |
| 22 $genType exp2($genType x); |
| 23 $genType log2($genType x); |
| 24 $genType sqrt($genType x); |
| 25 $genDType sqrt($genDType x); |
| 26 $genType inversesqrt($genType x); |
| 27 $genDType inversesqrt($genDType x); |
| 28 $genType abs($genType x); |
| 29 $genIType abs($genIType x); |
| 30 $genDType abs($genDType x); |
| 31 $genType sign($genType x); |
| 32 $genIType sign($genIType x); |
| 33 $genDType sign($genDType x); |
| 34 $genType floor($genType x); |
| 35 $genDType floor($genDType x); |
| 36 $genType trunc($genType x); |
| 37 $genDType trunc($genDType x); |
| 38 $genType round($genType x); |
| 39 $genDType round($genDType x); |
| 40 $genType roundEven($genType x); |
| 41 $genDType roundEven($genDType x); |
| 42 $genType ceil($genType x); |
| 43 $genDType ceil($genDType x); |
| 44 $genType fract($genType x); |
| 45 $genDType fract($genDType x); |
| 46 $genType mod($genType x, float y); |
| 47 $genType mod($genType x, $genType y); |
| 48 $genDType mod($genDType x, double y); |
| 49 $genDType mod($genDType x, $genDType y); |
| 50 $genType modf($genType x, out $genType i); |
| 51 $genDType modf($genDType x, out $genDType i); |
| 52 $genType min($genType x, $genType y); |
| 53 $genType min($genType x, float y); |
| 54 $genDType min($genDType x, $genDType y); |
| 55 $genDType min($genDType x, double y); |
| 56 $genIType min($genIType x, $genIType y); |
| 57 $genIType min($genIType x, int y); |
| 58 $genUType min($genUType x, $genUType y); |
| 59 $genUType min($genUType x, uint y); |
| 60 $genType max($genType x, $genType y); |
| 61 $genType max($genType x, float y); |
| 62 $genDType max($genDType x, $genDType y); |
| 63 $genDType max($genDType x, double y); |
| 64 $genIType max($genIType x, $genIType y); |
| 65 $genIType max($genIType x, int y); |
| 66 $genUType max($genUType x, $genUType y); |
| 67 $genUType max($genUType x, uint y); |
| 68 $genType clamp($genType x, $genType minVal, $genType maxVal); |
| 69 $genType clamp($genType x, float minVal, float maxVal); |
| 70 $genDType clamp($genDType x, $genDType minVal, $genDType maxVal); |
| 71 $genDType clamp($genDType x, double minVal, double maxVal); |
| 72 $genIType clamp($genIType x, $genIType minVal, $genIType maxVal); |
| 73 $genIType clamp($genIType x, int minVal, int maxVal); |
| 74 $genUType clamp($genUType x, $genUType minVal, $genUType maxVal); |
| 75 $genUType clamp($genUType x, uint minVal, uint maxVal); |
| 76 $genType mix($genType x, $genType y, $genType a); |
| 77 $genType mix($genType x, $genType y, float a); |
| 78 $genDType mix($genDType x, $genDType y, $genDType a); |
| 79 $genDType mix($genDType x, $genDType y, double a); |
| 80 $genType mix($genType x, $genType y, $genBType a); |
| 81 $genDType mix($genDType x, $genDType y, $genBType a); |
| 82 $genIType mix($genIType x, $genIType y, $genBType a); |
| 83 $genUType mix($genUType x, $genUType y, $genBType a); |
| 84 $genBType mix($genBType x, $genBType y, $genBType a); |
| 85 $genType step($genType edge, $genType x); |
| 86 $genType step(float edge, $genType x); |
| 87 $genDType step($genDType edge, $genDType x); |
| 88 $genDType step(double edge, $genDType x); |
| 89 $genType smoothstep($genType edge0, $genType edge1, $genType x); |
| 90 $genType smoothstep(float edge0, float edge1, $genType x); |
| 91 $genDType smoothstep($genDType edge0, $genDType edge1, $genDType x); |
| 92 $genDType smoothstep(double edge0, double edge1, $genDType x); |
| 93 $genBType isnan($genType x); |
| 94 $genBType isnan($genDType x); |
| 95 $genBType isinf($genType x); |
| 96 $genBType isinf($genDType x); |
| 97 $genIType floatBitsToInt($genType value); |
| 98 $genUType floatBitsToUint($genType value); |
| 99 $genType intBitsToFloat($genIType value); |
| 100 $genType uintBitsToFloat($genUType value); |
| 101 $genType fma($genType a, $genType b, $genType c); |
| 102 $genDType fma($genDType a, $genDType b, $genDType c); |
| 103 $genType frexp($genType x, out $genIType exp); |
| 104 $genDType frexp($genDType x, out $genIType exp); |
| 105 $genType ldexp($genType x, in $genIType exp); |
| 106 $genDType ldexp($genDType x, in $genIType exp); |
| 107 uint packUnorm2x16(vec2 v); |
| 108 uint packSnorm2x16(vec2 v); |
| 109 uint packUnorm4x8(vec4 v); |
| 110 uint packSnorm4x8(vec4 v); |
| 111 vec2 unpackUnorm2x16(uint p); |
| 112 vec2 unpackSnorm2x16(uint p); |
| 113 vec4 unpackUnorm4x8(uint p); |
| 114 vec4 unpackSnorm4x8(uint p); |
| 115 double packDouble2x32(uvec2 v); |
| 116 uvec2 unpackDouble2x32(double v); |
| 117 uint packHalf2x16(vec2 v); |
| 118 vec2 unpackHalf2x16(uint v); |
| 119 float length($genType x); |
| 120 double length($genDType x); |
| 121 float distance($genType p0, $genType p1); |
| 122 double distance($genDType p0, $genDType p1); |
| 123 float dot($genType x, $genType y); |
| 124 double dot($genDType x, $genDType y); |
| 125 vec3 cross(vec3 x, vec3 y); |
| 126 dvec3 cross(dvec3 x, dvec3 y); |
| 127 $genType normalize($genType x); |
| 128 $genDType normalize($genDType x); |
| 129 vec4 ftransform(); |
| 130 $genType faceforward($genType N, $genType I, $genType Nref); |
| 131 $genDType faceforward($genDType N, $genDType I, $genDType Nref); |
| 132 $genType reflect($genType I, $genType N); |
| 133 $genDType reflect($genDType I, $genDType N); |
| 134 $genType refract($genType I, $genType N, float eta); |
| 135 $genDType refract($genDType I, $genDType N, float eta); |
| 136 $mat matrixCompMult($mat x, $mat y); |
| 137 mat2 outerProduct(vec2 c, vec2 r); |
| 138 mat3 outerProduct(vec3 c, vec3 r); |
| 139 mat4 outerProduct(vec4 c, vec4 r); |
| 140 mat2x3 outerProduct(vec3 c, vec2 r); |
| 141 mat3x2 outerProduct(vec2 c, vec3 r); |
| 142 mat2x4 outerProduct(vec4 c, vec2 r); |
| 143 mat4x2 outerProduct(vec2 c, vec4 r); |
| 144 mat3x4 outerProduct(vec4 c, vec3 r); |
| 145 mat4x3 outerProduct(vec3 c, vec4 r); |
| 146 mat2 transpose(mat2 m); |
| 147 mat3 transpose(mat3 m); |
| 148 mat4 transpose(mat4 m); |
| 149 mat2x3 transpose(mat3x2 m); |
| 150 mat3x2 transpose(mat2x3 m); |
| 151 mat2x4 transpose(mat4x2 m); |
| 152 mat4x2 transpose(mat2x4 m); |
| 153 mat3x4 transpose(mat4x3 m); |
| 154 mat4x3 transpose(mat3x4 m); |
| 155 float determinant(mat2 m); |
| 156 float determinant(mat3 m); |
| 157 float determinant(mat4 m); |
| 158 mat2 inverse(mat2 m); |
| 159 mat3 inverse(mat3 m); |
| 160 mat4 inverse(mat4 m); |
| 161 $bvec lessThan($vec x, $vec y); |
| 162 $bvec lessThan($ivec x, $ivec y); |
| 163 $bvec lessThan($uvec x, $uvec y); |
| 164 $bvec lessThanEqual($vec x, $vec y); |
| 165 $bvec lessThanEqual($ivec x, $ivec y); |
| 166 $bvec lessThanEqual($uvec x, $uvec y); |
| 167 $bvec greaterThan($vec x, $vec y); |
| 168 $bvec greaterThan($ivec x, $ivec y); |
| 169 $bvec greaterThan($uvec x, $uvec y); |
| 170 $bvec greaterThanEqual($vec x, $vec y); |
| 171 $bvec greaterThanEqual($ivec x, $ivec y); |
| 172 $bvec greaterThanEqual($uvec x, $uvec y); |
| 173 $bvec equal($vec x, $vec y); |
| 174 $bvec equal($ivec x, $ivec y); |
| 175 $bvec equal($uvec x, $uvec y); |
| 176 $bvec equal($bvec x, $bvec y); |
| 177 $bvec notEqual($vec x, $vec y); |
| 178 $bvec notEqual($ivec x, $ivec y); |
| 179 $bvec notEqual($uvec x, $uvec y); |
| 180 $bvec notEqual($bvec x, $bvec y); |
| 181 bool any($bvec x); |
| 182 bool all($bvec x); |
| 183 $bvec not($bvec x); |
| 184 $genUType uaddCarry($genUType x, $genUType y, out $genUType carry); |
| 185 $genUType usubBorrow($genUType x, $genUType y, out $genUType borrow); |
| 186 void umulExtended($genUType x, $genUType y, out $genUType msb, out $genUType lsb
); |
| 187 void imulExtended($genIType x, $genIType y, out $genIType msb, out $genIType lsb
); |
| 188 $genIType bitfieldExtract($genIType value, int offset, int bits); |
| 189 $genUType bitfieldExtract($genUType value, int offset, int bits); |
| 190 $genIType bitfieldInsert($genIType base, $genIType insert, int offset, int bits)
; |
| 191 $genUType bitfieldInsert($genUType base, $genUType insert, int offset, int bits)
; |
| 192 $genIType bitfieldReverse($genIType value); |
| 193 $genUType bitfieldReverse($genUType value); |
| 194 $genIType bitCount($genIType value); |
| 195 $genIType bitCount($genUType value); |
| 196 $genIType findLSB($genIType value); |
| 197 $genIType findLSB($genUType value); |
| 198 $genIType findMSB($genIType value); |
| 199 $genIType findMSB($genUType value); |
| 200 int textureSize($gsampler1D sampler, int lod); |
| 201 ivec2 textureSize($gsampler2D sampler, int lod); |
| 202 ivec3 textureSize($gsampler3D sampler, int lod); |
| 203 ivec2 textureSize($gsamplerCube sampler, int lod); |
| 204 int textureSize(sampler1DShadow sampler, int lod); |
| 205 ivec2 textureSize(sampler2DShadow sampler, int lod); |
| 206 ivec2 textureSize(samplerCubeShadow sampler, int lod); |
| 207 ivec3 textureSize($gsamplerCubeArray sampler, int lod); |
| 208 ivec3 textureSize(samplerCubeArrayShadow sampler, int lod); |
| 209 ivec2 textureSize($gsampler2DRect sampler); |
| 210 ivec2 textureSize(sampler2DRectShadow sampler); |
| 211 ivec2 textureSize($gsampler1DArray sampler, int lod); |
| 212 ivec3 textureSize($gsampler2DArray sampler, int lod); |
| 213 ivec2 textureSize(sampler1DArrayShadow sampler, int lod); |
| 214 ivec3 textureSize(sampler2DArrayShadow sampler, int lod); |
| 215 int textureSize($gsamplerBuffer sampler); |
| 216 ivec2 textureSize($gsampler2DMS sampler); |
| 217 ivec3 textureSize($gsampler2DMSArray sampler); |
| 218 vec2 textureQueryLod($gsampler1D sampler, float P); |
| 219 vec2 textureQueryLod($gsampler2D sampler, vec2 P); |
| 220 vec2 textureQueryLod($gsampler3D sampler, vec3 P); |
| 221 vec2 textureQueryLod($gsamplerCube sampler, vec3 P); |
| 222 vec2 textureQueryLod($gsampler1DArray sampler, float P); |
| 223 vec2 textureQueryLod($gsampler2DArray sampler, vec2 P); |
| 224 vec2 textureQueryLod($gsamplerCubeArray sampler, vec3 P); |
| 225 vec2 textureQueryLod(sampler1DShadow sampler, float P); |
| 226 vec2 textureQueryLod(sampler2DShadow sampler, vec2 P); |
| 227 vec2 textureQueryLod(samplerCubeShadow sampler, vec3 P); |
| 228 vec2 textureQueryLod(sampler1DArrayShadow sampler, float P); |
| 229 vec2 textureQueryLod(sampler2DArrayShadow sampler, vec2 P); |
| 230 vec2 textureQueryLod(samplerCubeArrayShadow sampler, vec3 P); |
| 231 int textureQueryLevels($gsampler1D sampler); |
| 232 int textureQueryLevels($gsampler2D sampler); |
| 233 int textureQueryLevels($gsampler3D sampler); |
| 234 int textureQueryLevels($gsamplerCube sampler); |
| 235 int textureQueryLevels($gsampler1DArray sampler); |
| 236 int textureQueryLevels($gsampler2DArray sampler); |
| 237 int textureQueryLevels($gsamplerCubeArray sampler); |
| 238 int textureQueryLevels(sampler1DShadow sampler); |
| 239 int textureQueryLevels(sampler2DShadow sampler); |
| 240 int textureQueryLevels(samplerCubeShadow sampler); |
| 241 int textureQueryLevels(sampler1DArrayShadow sampler); |
| 242 int textureQueryLevels(sampler2DArrayShadow sampler); |
| 243 int textureQueryLevels(samplerCubeArrayShadow sampler); |
| 244 $gvec4 texture($gsampler1D sampler, float P); |
| 245 $gvec4 texture($gsampler1D sampler, float P, float bias); |
| 246 $gvec4 texture($gsampler2D sampler, vec2 P); |
| 247 $gvec4 texture($gsampler2D sampler, vec2 P, float bias); |
| 248 $gvec4 texture($gsampler3D sampler, vec3 P); |
| 249 $gvec4 texture($gsampler3D sampler, vec3 P, float bias); |
| 250 $gvec4 texture($gsamplerCube sampler, vec3 P); |
| 251 $gvec4 texture($gsamplerCube sampler, vec3 P, float bias); |
| 252 float texture(sampler1DShadow sampler, vec3 P); |
| 253 float texture(sampler1DShadow sampler, vec3 P, float bias); |
| 254 float texture(sampler2DShadow sampler, vec3 P); |
| 255 float texture(sampler2DShadow sampler, vec3 P, float bias); |
| 256 float texture(samplerCubeShadow sampler, vec4 P); |
| 257 float texture(samplerCubeShadow sampler, vec4 P, float bias); |
| 258 $gvec4 texture($gsampler1DArray sampler, vec2 P); |
| 259 $gvec4 texture($gsampler1DArray sampler, vec2 P, float bias); |
| 260 $gvec4 texture($gsampler2DArray sampler, vec3 P); |
| 261 $gvec4 texture($gsampler2DArray sampler, vec3 P, float bias); |
| 262 $gvec4 texture($gsamplerCubeArray sampler, vec4 P); |
| 263 $gvec4 texture($gsamplerCubeArray sampler, vec4 P, float bias); |
| 264 float texture(sampler1DArrayShadow sampler, vec3 P); |
| 265 float texture(sampler1DArrayShadow sampler, vec3 P, float bias); |
| 266 float texture(sampler2DArrayShadow sampler, vec4 P); |
| 267 $gvec4 texture($gsampler2DRect sampler, vec2 P); |
| 268 float texture(sampler2DRectShadow sampler, vec3 P); |
| 269 float texture($gsamplerCubeArrayShadow sampler, vec4 P, float compare); |
| 270 |
| 271 ) |
| 272 |
| 273 // split into multiple chunks, as MSVC++ complains if a single string is too lon
g |
| 274 |
| 275 STRINGIFY( |
| 276 |
| 277 $gvec4 textureProj($gsampler1D sampler, vec2 P); |
| 278 $gvec4 textureProj($gsampler1D sampler, vec2 P, float bias); |
| 279 $gvec4 textureProj($gsampler1D sampler, vec4 P); |
| 280 $gvec4 textureProj($gsampler1D sampler, vec4 P, float bias); |
| 281 $gvec4 textureProj($gsampler2D sampler, vec3 P); |
| 282 $gvec4 textureProj($gsampler2D sampler, vec3 P, float bias); |
| 283 $gvec4 textureProj($gsampler2D sampler, vec4 P); |
| 284 $gvec4 textureProj($gsampler2D sampler, vec4 P, float bias); |
| 285 $gvec4 textureProj($gsampler3D sampler, vec4 P); |
| 286 $gvec4 textureProj($gsampler3D sampler, vec4 P, float bias); |
| 287 float textureProj(sampler1DShadow sampler, vec4 P); |
| 288 float textureProj(sampler1DShadow sampler, vec4 P, float bias); |
| 289 float textureProj(sampler2DShadow sampler, vec4 P); |
| 290 float textureProj(sampler2DShadow sampler, vec4 P, float bias); |
| 291 $gvec4 textureProj($gsampler2DRect sampler, vec3 P); |
| 292 $gvec4 textureProj($gsampler2DRect sampler, vec4 P); |
| 293 float textureProj(sampler2DRectShadow sampler, vec4 P); |
| 294 $gvec4 textureLod($gsampler1D sampler, float P, float lod); |
| 295 $gvec4 textureLod($gsampler2D sampler, vec2 P, float lod); |
| 296 $gvec4 textureLod($gsampler3D sampler, vec3 P, float lod); |
| 297 $gvec4 textureLod($gsamplerCube sampler, vec3 P, float lod); |
| 298 float textureLod(sampler1DShadow sampler, vec3 P, float lod); |
| 299 float textureLod(sampler2DShadow sampler, vec3 P, float lod); |
| 300 $gvec4 textureLod($gsampler1DArray sampler, vec2 P, float lod); |
| 301 $gvec4 textureLod($gsampler2DArray sampler, vec3 P, float lod); |
| 302 float textureLod(sampler1DArrayShadow sampler, vec3 P, float lod); |
| 303 $gvec4 textureLod($gsamplerCubeArray sampler, vec4 P, float lod); |
| 304 $gvec4 textureOffset($gsampler1D sampler, float P, int offset); |
| 305 $gvec4 textureOffset($gsampler1D sampler, float P, int offset, float bias); |
| 306 $gvec4 textureOffset($gsampler2D sampler, vec2 P, ivec2 offset); |
| 307 $gvec4 textureOffset($gsampler2D sampler, vec2 P, ivec2 offset, float bias); |
| 308 $gvec4 textureOffset($gsampler3D sampler, vec3 P, ivec3 offset); |
| 309 $gvec4 textureOffset($gsampler3D sampler, vec3 P, ivec3 offset, float bias); |
| 310 $gvec4 textureOffset($gsampler2DRect sampler, vec2 P, ivec2 offset); |
| 311 float textureOffset(sampler2DRectShadow sampler, vec3 P, ivec2 offset); |
| 312 float textureOffset(sampler1DShadow sampler, vec3 P, int offset); |
| 313 float textureOffset(sampler1DShadow sampler, vec3 P, int offset, float bias); |
| 314 float textureOffset(sampler2DShadow sampler, vec3 P, ivec2 offset); |
| 315 float textureOffset(sampler2DShadow sampler, vec3 P, ivec2 offset, float bias); |
| 316 $gvec4 textureOffset($gsampler1DArray sampler, vec2 P, int offset); |
| 317 $gvec4 textureOffset($gsampler1DArray sampler, vec2 P, int offset, float bias); |
| 318 $gvec4 textureOffset($gsampler2DArray sampler, vec3 P, ivec2 offset); |
| 319 $gvec4 textureOffset($gsampler2DArray sampler, vec3 P, ivec2 offset, float bias)
; |
| 320 float textureOffset(sampler1DArrayShadow sampler, vec3 P, int offset); |
| 321 float textureOffset(sampler1DArrayShadow sampler, vec3 P, int offset, float bias
); |
| 322 float textureOffset(sampler2DArrayShadow sampler, vec4 P, ivec2 offset); |
| 323 $gvec4 texelFetch($gsampler1D sampler, int P, int lod); |
| 324 $gvec4 texelFetch($gsampler2D sampler, ivec2 P, int lod); |
| 325 $gvec4 texelFetch($gsampler3D sampler, ivec3 P, int lod); |
| 326 $gvec4 texelFetch($gsampler2DRect sampler, ivec2 P); |
| 327 $gvec4 texelFetch($gsampler1DArray sampler, ivec2 P, int lod); |
| 328 $gvec4 texelFetch($gsampler2DArray sampler, ivec3 P, int lod); |
| 329 $gvec4 texelFetch($gsamplerBuffer sampler, int P); |
| 330 $gvec4 texelFetch($gsampler2DMS sampler, ivec2 P, int sample); |
| 331 $gvec4 texelFetch($gsampler2DMSArray sampler, ivec3 P, int sample); |
| 332 $gvec4 texelFetchOffset($gsampler1D sampler, int P, int lod, int offset); |
| 333 $gvec4 texelFetchOffset($gsampler2D sampler, ivec2 P, int lod, ivec2 offset); |
| 334 $gvec4 texelFetchOffset($gsampler3D sampler, ivec3 P, int lod, ivec3 offset); |
| 335 $gvec4 texelFetchOffset($gsampler2DRect sampler, ivec2 P, ivec2 offset); |
| 336 $gvec4 texelFetchOffset($gsampler1DArray sampler, ivec2 P, int lod, int offset); |
| 337 $gvec4 texelFetchOffset($gsampler2DArray sampler, ivec3 P, int lod, ivec2 offset
); |
| 338 $gvec4 textureProjOffset($gsampler1D sampler, vec2 P, int offset); |
| 339 $gvec4 textureProjOffset($gsampler1D sampler, vec2 P, int offset, float bias); |
| 340 $gvec4 textureProjOffset($gsampler1D sampler, vec4 P, int offset); |
| 341 $gvec4 textureProjOffset($gsampler1D sampler, vec4 P, int offset, float bias); |
| 342 $gvec4 textureProjOffset($gsampler2D sampler, vec3 P, ivec2 offset); |
| 343 $gvec4 textureProjOffset($gsampler2D sampler, vec3 P, ivec2 offset, float bias); |
| 344 $gvec4 textureProjOffset($gsampler2D sampler, vec4 P, ivec2 offset); |
| 345 $gvec4 textureProjOffset($gsampler2D sampler, vec4 P, ivec2 offset, float bias); |
| 346 $gvec4 textureProjOffset($gsampler3D sampler, vec4 P, ivec3 offset); |
| 347 $gvec4 textureProjOffset($gsampler3D sampler, vec4 P, ivec3 offset, float bias); |
| 348 $gvec4 textureProjOffset($gsampler2DRect sampler, vec3 P, ivec2 offset); |
| 349 $gvec4 textureProjOffset($gsampler2DRect sampler, vec4 P, ivec2 offset); |
| 350 float textureProjOffset(sampler2DRectShadow sampler, vec4 P, ivec2 offset); |
| 351 float textureProjOffset(sampler1DShadow sampler, vec4 P, int offset); |
| 352 float textureProjOffset(sampler1DShadow sampler, vec4 P, int offset, float bias)
; |
| 353 float textureProjOffset(sampler2DShadow sampler, vec4 P, ivec2 offset); |
| 354 float textureProjOffset(sampler2DShadow sampler, vec4 P, ivec2 offset, float bia
s); |
| 355 $gvec4 textureLodOffset($gsampler1D sampler, float P, float lod, int offset); |
| 356 $gvec4 textureLodOffset($gsampler2D sampler, vec2 P, float lod, ivec2 offset); |
| 357 $gvec4 textureLodOffset($gsampler3D sampler, vec3 P, float lod, ivec3 offset); |
| 358 float textureLodOffset(sampler1DShadow sampler, vec3 P, float lod, int offset); |
| 359 float textureLodOffset(sampler2DShadow sampler, vec3 P, float lod, ivec2 offset)
; |
| 360 $gvec4 textureLodOffset($gsampler1DArray sampler, vec2 P, float lod, int offset)
; |
| 361 $gvec4 textureLodOffset($gsampler2DArray sampler, vec3 P, float lod, ivec2 offse
t); |
| 362 float textureLodOffset(sampler1DArrayShadow sampler, vec3 P, float lod, int offs
et); |
| 363 $gvec4 textureProjLod($gsampler1D sampler, vec2 P, float lod); |
| 364 $gvec4 textureProjLod($gsampler1D sampler, vec4 P, float lod); |
| 365 $gvec4 textureProjLod($gsampler2D sampler, vec3 P, float lod); |
| 366 $gvec4 textureProjLod($gsampler2D sampler, vec4 P, float lod); |
| 367 $gvec4 textureProjLod($gsampler3D sampler, vec4 P, float lod); |
| 368 float textureProjLod(sampler1DShadow sampler, vec4 P, float lod); |
| 369 float textureProjLod(sampler2DShadow sampler, vec4 P, float lod); |
| 370 $gvec4 textureProjLodOffset($gsampler1D sampler, vec2 P, float lod, int offset); |
| 371 $gvec4 textureProjLodOffset($gsampler1D sampler, vec4 P, float lod, int offset); |
| 372 $gvec4 textureProjLodOffset($gsampler2D sampler, vec3 P, float lod, ivec2 offset
); |
| 373 $gvec4 textureProjLodOffset($gsampler2D sampler, vec4 P, float lod, ivec2 offset
); |
| 374 $gvec4 textureProjLodOffset($gsampler3D sampler, vec4 P, float lod, ivec3 offset
); |
| 375 float textureProjLodOffset(sampler1DShadow sampler, vec4 P, float lod, int offse
t); |
| 376 float textureProjLodOffset(sampler2DShadow sampler, vec4 P, float lod, ivec2 off
set); |
| 377 $gvec4 textureGrad($gsampler1D sampler, float P, float dPdx, float dPdy); |
| 378 $gvec4 textureGrad($gsampler2D sampler, vec2 P, vec2 dPdx, vec2 dPdy); |
| 379 $gvec4 textureGrad($gsampler3D sampler, vec3 P, vec3 dPdx, vec3 dPdy); |
| 380 $gvec4 textureGrad($gsamplerCube sampler, vec3 P, vec3 dPdx, vec3 dPdy); |
| 381 $gvec4 textureGrad($gsampler2DRect sampler, vec2 P, vec2 dPdx, vec2 dPdy); |
| 382 float textureGrad(sampler2DRectShadow sampler, vec3 P, vec2 dPdx, vec2 dPdy); |
| 383 float textureGrad(sampler1DShadow sampler, vec3 P, float dPdx, float dPdy); |
| 384 float textureGrad(sampler2DShadow sampler, vec3 P, vec2 dPdx, vec2 dPdy); |
| 385 float textureGrad(samplerCubeShadow sampler, vec4 P, vec3 dPdx, vec3 dPdy); |
| 386 $gvec4 textureGrad($gsampler1DArray sampler, vec2 P, float dPdx, float dPdy); |
| 387 $gvec4 textureGrad($gsampler2DArray sampler, vec3 P, vec2 dPdx, vec2 dPdy); |
| 388 float textureGrad(sampler1DArrayShadow sampler, vec3 P, float dPdx, float dPdy); |
| 389 float textureGrad(sampler2DArrayShadow sampler, vec4 P, vec2 dPdx, vec2 dPdy); |
| 390 $gvec4 textureGrad($gsamplerCubeArray sampler, vec4 P, vec3 dPdx, vec3 dPdy); |
| 391 $gvec4 textureGradOffset($gsampler1D sampler, float P, float dPdx, float dPdy, i
nt offset); |
| 392 $gvec4 textureGradOffset($gsampler2D sampler, vec2 P, vec2 dPdx, vec2 dPdy, ivec
2 offset); |
| 393 $gvec4 textureGradOffset($gsampler3D sampler, vec3 P, vec3 dPdx, vec3 dPdy, ivec
3 offset); |
| 394 $gvec4 textureGradOffset($gsampler2DRect sampler, vec2 P, vec2 dPdx, vec2 dPdy,
ivec2 offset); |
| 395 float textureGradOffset(sampler2DRectShadow sampler, vec3 P, vec2 dPdx, vec2 dPd
y, ivec2 offset); |
| 396 float textureGradOffset(sampler1DShadow sampler, vec3 P, float dPdx, float dPdy,
int offset ); |
| 397 float textureGradOffset(sampler2DShadow sampler, vec3 P, vec2 dPdx, vec2 dPdy, i
vec2 offset); |
| 398 $gvec4 textureGradOffset($gsampler1DArray sampler, vec2 P, float dPdx, float dPd
y, int offset); |
| 399 $gvec4 textureGradOffset($gsampler2DArray sampler, vec3 P, vec2 dPdx, vec2 dPdy,
ivec2 offset); |
| 400 float textureGradOffset(sampler1DArrayShadow sampler, vec3 P, float dPdx, float
dPdy, int offset); |
| 401 float textureGradOffset(sampler2DArrayShadow sampler, vec4 P, vec2 dPdx, vec2 dP
dy, ivec2 offset); |
| 402 $gvec4 textureProjGrad($gsampler1D sampler, vec2 P, float dPdx, float dPdy); |
| 403 $gvec4 textureProjGrad($gsampler1D sampler, vec4 P, float dPdx, float dPdy); |
| 404 $gvec4 textureProjGrad($gsampler2D sampler, vec3 P, vec2 dPdx, vec2 dPdy); |
| 405 $gvec4 textureProjGrad($gsampler2D sampler, vec4 P, vec2 dPdx, vec2 dPdy); |
| 406 $gvec4 textureProjGrad($gsampler3D sampler, vec4 P, vec3 dPdx, vec3 dPdy); |
| 407 $gvec4 textureProjGrad($gsampler2DRect sampler, vec3 P, vec2 dPdx, vec2 dPdy); |
| 408 $gvec4 textureProjGrad($gsampler2DRect sampler, vec4 P, vec2 dPdx, vec2 dPdy); |
| 409 float textureProjGrad(sampler2DRectShadow sampler, vec4 P, vec2 dPdx, vec2 dPdy)
; |
| 410 float textureProjGrad(sampler1DShadow sampler, vec4 P, float dPdx, float dPdy); |
| 411 float textureProjGrad(sampler2DShadow sampler, vec4 P, vec2 dPdx, vec2 dPdy); |
| 412 $gvec4 textureProjGradOffset($gsampler1D sampler, vec2 P, float dPdx, float dPdy
, int offset); |
| 413 $gvec4 textureProjGradOffset($gsampler1D sampler, vec4 P, float dPdx, float dPdy
, int offset); |
| 414 $gvec4 textureProjGradOffset($gsampler2D sampler, vec3 P, vec2 dPdx, vec2 dPdy,
ivec2 offset); |
| 415 $gvec4 textureProjGradOffset($gsampler2D sampler, vec4 P, vec2 dPdx, vec2 dPdy,
ivec2 offset); |
| 416 $gvec4 textureProjGradOffset($gsampler2DRect sampler, vec3 P, vec2 dPdx, vec2 dP
dy, ivec2 offset); |
| 417 $gvec4 textureProjGradOffset($gsampler2DRect sampler, vec4 P, vec2 dPdx, vec2 dP
dy, ivec2 offset); |
| 418 float textureProjGradOffset(sampler2DRectShadow sampler, vec4 P, vec2 dPdx, vec2
dPdy, ivec2 offset); |
| 419 $gvec4 textureProjGradOffset($gsampler3D sampler, vec4 P, vec3 dPdx, vec3 dPdy,
ivec3 offset); |
| 420 float textureProjGradOffset(sampler1DShadow sampler, vec4 P, float dPdx, float d
Pdy, int offset); |
| 421 float textureProjGradOffset(sampler2DShadow sampler, vec4 P, vec2 dPdx, vec2 dPd
y, ivec2 offset); |
| 422 $gvec4 textureGather($gsampler2D sampler, vec2 P); |
| 423 $gvec4 textureGather($gsampler2D sampler, vec2 P, int comp); |
| 424 $gvec4 textureGather($gsampler2DArray sampler, vec3 P); |
| 425 $gvec4 textureGather($gsampler2DArray sampler, vec3 P, int comp); |
| 426 $gvec4 textureGather($gsamplerCube sampler, vec3 P); |
| 427 $gvec4 textureGather($gsamplerCube sampler, vec3 P, int comp); |
| 428 $gvec4 textureGather($gsamplerCubeArray sampler, vec4 P); |
| 429 $gvec4 textureGather($gsamplerCubeArray sampler, vec4 P, int comp); |
| 430 $gvec4 textureGather($gsampler2DRect sampler, vec2 P); |
| 431 $gvec4 textureGather($gsampler2DRect sampler, vec2 P, int comp); |
| 432 vec4 textureGather(sampler2DShadow sampler, vec2 P, float refZ); |
| 433 vec4 textureGather(sampler2DArrayShadow sampler, vec3 P, float refZ); |
| 434 vec4 textureGather(samplerCubeShadow sampler, vec3 P, float refZ); |
| 435 vec4 textureGather(samplerCubeArrayShadow sampler, vec4 P, float refZ); |
| 436 vec4 textureGather(sampler2DRectShadow sampler, vec2 P, float refZ); |
| 437 $gvec4 textureGatherOffset($gsampler2D sampler, vec2 P, ivec2 offset); |
| 438 $gvec4 textureGatherOffset($gsampler2D sampler, vec2 P, ivec2 offset, int comp); |
| 439 $gvec4 textureGatherOffset($gsampler2DArray sampler, vec3 P, ivec2 offset); |
| 440 $gvec4 textureGatherOffset($gsampler2DArray sampler, vec3 P, ivec2 offset, int c
omp); |
| 441 $gvec4 textureGatherOffset($gsampler2DRect sampler, vec2 P, ivec2 offset); |
| 442 $gvec4 textureGatherOffset($gsampler2DRect sampler, vec2 P, ivec2 offset, int co
mp); |
| 443 vec4 textureGatherOffset(sampler2DShadow sampler, vec2 P, float refZ, ivec2 offs
et); |
| 444 vec4 textureGatherOffset(sampler2DArrayShadow sampler, vec3 P, float refZ, ivec2
offset); |
| 445 vec4 textureGatherOffset(sampler2DRectShadow sampler, vec2 P, float refZ, ivec2
offset); |
| 446 /* |
| 447 $gvec4 textureGatherOffsets($gsampler2D sampler, vec2 P, ivec2 offsets[4]); |
| 448 $gvec4 textureGatherOffsets($gsampler2D sampler, vec2 P, ivec2 offsets[4], int c
omp); |
| 449 $gvec4 textureGatherOffsets($gsampler2DArray sampler, vec3 P, ivec2 offsets[4]); |
| 450 $gvec4 textureGatherOffsets($gsampler2DArray sampler, vec3 P, ivec2 offsets[4],
int comp); |
| 451 $gvec4 textureGatherOffsets($gsampler2DRect sampler, vec2 P, ivec2 offsets[4]); |
| 452 $gvec4 textureGatherOffsets($gsampler2DRect sampler, vec2 P, ivec2 offsets[4], i
nt comp); |
| 453 vec4 textureGatherOffsets(sampler2DShadow sampler, vec2 P, float refZ, ivec2 off
sets[4]); |
| 454 vec4 textureGatherOffsets(sampler2DArrayShadow sampler, vec3 P, float refZ, ivec
2 offsets[4]); |
| 455 vec4 textureGatherOffsets(sampler2DRectShadow sampler, vec2 P, float refZ, ivec2
offsets[4]); |
| 456 */ |
| 457 vec4 texture1D(sampler1D sampler, float coord); |
| 458 vec4 texture1D(sampler1D sampler, float coord, float bias); |
| 459 vec4 texture1DProj(sampler1D sampler, vec2 coord); |
| 460 vec4 texture1DProj(sampler1D sampler, vec2 coord, float bias); |
| 461 vec4 texture1DProj(sampler1D sampler, vec4 coord); |
| 462 vec4 texture1DProj(sampler1D sampler, vec4 coord, float bias); |
| 463 vec4 texture1DLod(sampler1D sampler, float coord, float lod); |
| 464 vec4 texture1DProjLod(sampler1D sampler, vec2 coord, float lod); |
| 465 vec4 texture1DProjLod(sampler1D sampler, vec4 coord, float lod); |
| 466 vec4 texture2D(sampler2D sampler, vec2 coord); |
| 467 vec4 texture2D(sampler2D sampler, vec2 coord, float bias); |
| 468 vec4 texture2DProj(sampler2D sampler, vec3 coord); |
| 469 vec4 texture2DProj(sampler2D sampler, vec3 coord, float bias); |
| 470 vec4 texture2DProj(sampler2D sampler, vec4 coord); |
| 471 vec4 texture2DProj(sampler2D sampler, vec4 coord, float bias); |
| 472 vec4 texture2DLod(sampler2D sampler, vec2 coord, float lod); |
| 473 vec4 texture2DProjLod(sampler2D sampler, vec3 coord, float lod); |
| 474 vec4 texture2DProjLod(sampler2D sampler, vec4 coord, float lod); |
| 475 vec4 texture3D(sampler3D sampler, vec3 coord); |
| 476 vec4 texture3D(sampler3D sampler, vec3 coord, float bias); |
| 477 vec4 texture3DProj(sampler3D sampler, vec4 coord); |
| 478 vec4 texture3DProj(sampler3D sampler, vec4 coord, float bias); |
| 479 vec4 texture3DLod(sampler3D sampler, vec3 coord, float lod); |
| 480 vec4 texture3DProjLod(sampler3D sampler, vec4 coord, float lod); |
| 481 vec4 textureCube(samplerCube sampler, vec3 coord); |
| 482 vec4 textureCube(samplerCube sampler, vec3 coord, float bias); |
| 483 vec4 textureCubeLod(samplerCube sampler, vec3 coord, float lod); |
| 484 vec4 shadow1D(sampler1DShadow sampler, vec3 coord); |
| 485 vec4 shadow1D(sampler1DShadow sampler, vec3 coord, float bias); |
| 486 vec4 shadow2D(sampler2DShadow sampler, vec3 coord); |
| 487 vec4 shadow2D(sampler2DShadow sampler, vec3 coord, float bias); |
| 488 vec4 shadow1DProj(sampler1DShadow sampler, vec4 coord); |
| 489 vec4 shadow1DProj(sampler1DShadow sampler, vec4 coord, float bias); |
| 490 vec4 shadow2DProj(sampler2DShadow sampler, vec4 coord); |
| 491 vec4 shadow2DProj(sampler2DShadow sampler, vec4 coord, float bias); |
| 492 vec4 shadow1DLod(sampler1DShadow sampler, vec3 coord, float lod); |
| 493 vec4 shadow2DLod(sampler2DShadow sampler, vec3 coord, float lod); |
| 494 vec4 shadow1DProjLod(sampler1DShadow sampler, vec4 coord, float lod); |
| 495 vec4 shadow2DProjLod(sampler2DShadow sampler, vec4 coord, float lod); |
| 496 /* |
| 497 uint atomicCounterIncrement(atomic_uint c); |
| 498 uint atomicCounter(atomic_uint c); |
| 499 uint atomicAdd(inout uint mem, uint data); |
| 500 int atomicAdd(inout int mem, int data); |
| 501 uint atomicMin(inout uint mem, uint data); |
| 502 int atomicMin(inout int mem, int data); |
| 503 uint atomicMax(inout uint mem, uint data); |
| 504 int atomicMax(inout int mem, int data); |
| 505 uint atomicAnd(inout uint mem, uint data); |
| 506 int atomicAnd(inout int mem, int data); |
| 507 uint atomicOr(inout uint mem, uint data); |
| 508 int atomicOr(inout int mem, int data); |
| 509 uint atomicXor(inout uint mem, uint data); |
| 510 int atomicXor(inout int mem, int data); |
| 511 uint atomicExchange(inout uint mem, uint data); |
| 512 int atomicExchange(inout int mem, int data); |
| 513 uint atomicCompSwap(inout uint mem, uint compare, uint data); |
| 514 int atomicCompSwap(inout int mem, int compare, int data); |
| 515 */ |
| 516 // section 8.12 Image Functions will go here if and when we add support for them |
| 517 |
| 518 $genType dFdx($genType p); |
| 519 $genType dFdy($genType p); |
| 520 $genType fwidth($genType p); |
| 521 $genType fwidthCoarse($genType p); |
| 522 $genType fwidthFine($genType p); |
| 523 float interpolateAtSample(float interpolant, int sample); |
| 524 vec2 interpolateAtSample(vec2 interpolant, int sample); |
| 525 vec3 interpolateAtSample(vec3 interpolant, int sample); |
| 526 vec4 interpolateAtSample(vec4 interpolant, int sample); |
| 527 float interpolateAtOffset(float interpolant, vec2 offset); |
| 528 vec2 interpolateAtOffset(vec2 interpolant, vec2 offset); |
| 529 vec3 interpolateAtOffset(vec3 interpolant, vec2 offset); |
| 530 vec4 interpolateAtOffset(vec4 interpolant, vec2 offset); |
| 531 void EmitStreamVertex(int stream); |
| 532 void EndStreamPrimitive(int stream); |
| 533 void EmitVertex(); |
| 534 void EndPrimitive(); |
| 535 void barrier(); |
| 536 void memoryBarrier(); |
| 537 void memoryBarrierAtomicCounter(); |
| 538 void memoryBarrierBuffer(); |
| 539 void memoryBarrierShared(); |
| 540 void memoryBarrierImage(); |
| 541 void groupMemoryBarrier(); |
| 542 |
| 543 ) |
OLD | NEW |