diff options
Diffstat (limited to 'prelude')
| -rw-r--r-- | prelude/slang-cpp-types.h | 6 | ||||
| -rw-r--r-- | prelude/slang-cuda-prelude.h | 6 |
2 files changed, 12 insertions, 0 deletions
diff --git a/prelude/slang-cpp-types.h b/prelude/slang-cpp-types.h index b0a9c68f6..9c8fb3dec 100644 --- a/prelude/slang-cpp-types.h +++ b/prelude/slang-cpp-types.h @@ -1036,6 +1036,12 @@ struct ComputeVaryingInput typedef void(*ComputeThreadFunc)(ComputeThreadVaryingInput* varyingInput, void* uniformEntryPointParams, void* uniformState); typedef void(*ComputeFunc)(ComputeVaryingInput* varyingInput, void* uniformEntryPointParams, void* uniformState); +template<typename TResult, typename TInput> +TResult slang_bit_cast(TInput val) +{ + return *(TResult*)(&val); +} + #ifdef SLANG_PRELUDE_NAMESPACE } #endif diff --git a/prelude/slang-cuda-prelude.h b/prelude/slang-cuda-prelude.h index aebcffc10..a975ec99c 100644 --- a/prelude/slang-cuda-prelude.h +++ b/prelude/slang-cuda-prelude.h @@ -1237,6 +1237,12 @@ __device__ uint3 operator*(uint3 a, dim3 b) return r; } +template<typename TResult, typename TInput> +__inline__ __device__ TResult slang_bit_cast(TInput val) +{ + return *(TResult*)(&val); +} + /* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */ |
