8#ifndef SKSL_INTRINSIC_LIST_DEFINED
9#define SKSL_INTRINSIC_LIST_DEFINED
14#include <initializer_list>
19#define SKSL_INTRINSIC_LIST \
21 SKSL_INTRINSIC(acosh) \
22 SKSL_INTRINSIC(acos) \
25 SKSL_INTRINSIC(asinh) \
26 SKSL_INTRINSIC(asin) \
27 SKSL_INTRINSIC(atanh) \
28 SKSL_INTRINSIC(atan) \
29 SKSL_INTRINSIC(atomicAdd) \
30 SKSL_INTRINSIC(atomicLoad) \
31 SKSL_INTRINSIC(atomicStore) \
32 SKSL_INTRINSIC(bitCount) \
33 SKSL_INTRINSIC(ceil) \
34 SKSL_INTRINSIC(clamp) \
35 SKSL_INTRINSIC(cosh) \
37 SKSL_INTRINSIC(cross) \
38 SKSL_INTRINSIC(degrees) \
39 SKSL_INTRINSIC(determinant) \
40 SKSL_INTRINSIC(dFdx) \
41 SKSL_INTRINSIC(dFdy) \
42 SKSL_INTRINSIC(distance) \
44 SKSL_INTRINSIC(equal) \
45 SKSL_INTRINSIC(eval) \
46 SKSL_INTRINSIC(exp2) \
48 SKSL_INTRINSIC(faceforward) \
49 SKSL_INTRINSIC(findLSB) \
50 SKSL_INTRINSIC(findMSB) \
51 SKSL_INTRINSIC(floatBitsToInt) \
52 SKSL_INTRINSIC(floatBitsToUint) \
53 SKSL_INTRINSIC(floor) \
55 SKSL_INTRINSIC(fract) \
56 SKSL_INTRINSIC(frexp) \
57 SKSL_INTRINSIC(fromLinearSrgb) \
58 SKSL_INTRINSIC(fwidth) \
59 SKSL_INTRINSIC(greaterThanEqual) \
60 SKSL_INTRINSIC(greaterThan) \
61 SKSL_INTRINSIC(intBitsToFloat) \
62 SKSL_INTRINSIC(inversesqrt) \
63 SKSL_INTRINSIC(inverse) \
64 SKSL_INTRINSIC(isinf) \
65 SKSL_INTRINSIC(isnan) \
66 SKSL_INTRINSIC(ldexp) \
67 SKSL_INTRINSIC(length) \
68 SKSL_INTRINSIC(lessThanEqual) \
69 SKSL_INTRINSIC(lessThan) \
70 SKSL_INTRINSIC(loadFloatBuffer) \
71 SKSL_INTRINSIC(log2) \
73 SKSL_INTRINSIC(matrixCompMult) \
74 SKSL_INTRINSIC(matrixInverse) \
78 SKSL_INTRINSIC(modf) \
80 SKSL_INTRINSIC(normalize) \
81 SKSL_INTRINSIC(notEqual) \
82 SKSL_INTRINSIC(not ) \
83 SKSL_INTRINSIC(outerProduct) \
84 SKSL_INTRINSIC(packHalf2x16) \
85 SKSL_INTRINSIC(packSnorm2x16) \
86 SKSL_INTRINSIC(packSnorm4x8) \
87 SKSL_INTRINSIC(packUnorm2x16) \
88 SKSL_INTRINSIC(packUnorm4x8) \
90 SKSL_INTRINSIC(radians) \
91 SKSL_INTRINSIC(reflect) \
92 SKSL_INTRINSIC(refract) \
93 SKSL_INTRINSIC(roundEven) \
94 SKSL_INTRINSIC(round) \
95 SKSL_INTRINSIC(sample) \
96 SKSL_INTRINSIC(sampleGrad) \
97 SKSL_INTRINSIC(sampleLod) \
98 SKSL_INTRINSIC(saturate) \
99 SKSL_INTRINSIC(sign) \
100 SKSL_INTRINSIC(sinh) \
101 SKSL_INTRINSIC(sin) \
102 SKSL_INTRINSIC(smoothstep) \
103 SKSL_INTRINSIC(sqrt) \
104 SKSL_INTRINSIC(step) \
105 SKSL_INTRINSIC(storageBarrier) \
106 SKSL_INTRINSIC(subpassLoad) \
107 SKSL_INTRINSIC(tanh) \
108 SKSL_INTRINSIC(tan) \
109 SKSL_INTRINSIC(textureHeight) \
110 SKSL_INTRINSIC(textureRead) \
111 SKSL_INTRINSIC(textureWidth) \
112 SKSL_INTRINSIC(textureWrite) \
113 SKSL_INTRINSIC(toLinearSrgb) \
114 SKSL_INTRINSIC(transpose) \
115 SKSL_INTRINSIC(trunc) \
116 SKSL_INTRINSIC(uintBitsToFloat) \
117 SKSL_INTRINSIC(unpackHalf2x16) \
118 SKSL_INTRINSIC(unpackSnorm2x16) \
119 SKSL_INTRINSIC(unpackSnorm4x8) \
120 SKSL_INTRINSIC(unpackUnorm2x16) \
121 SKSL_INTRINSIC(unpackUnorm4x8) \
122 SKSL_INTRINSIC(workgroupBarrier)
127#define SKSL_INTRINSIC(name) k_##name##_IntrinsicKind,
const IntrinsicMap & GetIntrinsicMap()
IntrinsicKind FindIntrinsicKind(std::string_view functionName)