diff options
Diffstat (limited to 'source')
| -rw-r--r-- | source/slang/emit.cpp | 2 | ||||
| -rw-r--r-- | source/slang/slang-stdlib.cpp | 17 |
2 files changed, 15 insertions, 4 deletions
diff --git a/source/slang/emit.cpp b/source/slang/emit.cpp index 5d85b4d57..df74d19e4 100644 --- a/source/slang/emit.cpp +++ b/source/slang/emit.cpp @@ -1466,7 +1466,7 @@ struct EmitVisitor { auto name = getStringOrIdentifierTokenValue(targetIntrinsicModifier->definitionToken); - if(name.IndexOf('$') < 0) + if(name.IndexOf('$') == -1) { // Simple case: it is just an ordinary name, so we call it like a builtin. // diff --git a/source/slang/slang-stdlib.cpp b/source/slang/slang-stdlib.cpp index 87c2c2e8a..e1bba8885 100644 --- a/source/slang/slang-stdlib.cpp +++ b/source/slang/slang-stdlib.cpp @@ -592,9 +592,20 @@ __generic<T : __BuiltinFloatingPointType, let N : int, let M : int> __intrinsic __generic<T : __BuiltinFloatingPointType, let N : int> __intrinsic T length(vector<T,N> x); // Linear interpolation -__generic<T : __BuiltinFloatingPointType> __intrinsic T lerp(T x, T y, T s); -__generic<T : __BuiltinFloatingPointType, let N : int> __intrinsic vector<T,N> lerp(vector<T,N> x, vector<T,N> y, vector<T,N> s); -__generic<T : __BuiltinFloatingPointType, let N : int, let M : int> __intrinsic matrix<T,N,M> lerp(matrix<T,N,M> x, matrix<T,N,M> y, matrix<T,N,M> s); +__generic<T : __BuiltinFloatingPointType> +__intrinsic(glsl, mix) +__intrinsic +T lerp(T x, T y, T s); + +__generic<T : __BuiltinFloatingPointType, let N : int> +__intrinsic(glsl, mix) +__intrinsic +vector<T,N> lerp(vector<T,N> x, vector<T,N> y, vector<T,N> s); + +__generic<T : __BuiltinFloatingPointType, let N : int, let M : int> +__intrinsic(glsl, mix) +__intrinsic +matrix<T,N,M> lerp(matrix<T,N,M> x, matrix<T,N,M> y, matrix<T,N,M> s); // Legacy lighting function (obsolete) __intrinsic float4 lit(float n_dot_l, float n_dot_h, float m); |
