clang 22.0.0git
hlsl_intrinsics.h File Reference

Go to the source code of this file.

Namespaces

namespace  hlsl

Functions

template<typename T, int N>
constexpr vector< float, N > hlsl::asfloat (vector< T, N > V)
template<typename T>
constexpr float hlsl::asfloat (T F)
 Interprets the bit pattern of x as float point number.
template<typename T, int N>
constexpr vector< int, N > hlsl::asint (vector< T, N > V)
template<typename T>
constexpr int hlsl::asint (T F)
 Interprets the bit pattern of x as an integer.
template<typename T, int N>
constexpr vector< uint, N > hlsl::asuint (vector< T, N > V)
template<typename T>
constexpr uint hlsl::asuint (T F)
 Interprets the bit pattern of x as an unsigned integer.
void hlsl::asuint (double, out uint, out uint)
void hlsl::asuint (double2, out uint2, out uint2)
void hlsl::asuint (double3, out uint3, out uint3)
void hlsl::asuint (double4, out uint4, out uint4)
template<typename T>
const __detail::enable_if_t< __detail::is_arithmetic< T >::Value &&__detail::is_same< half, T >::value, T > hlsl::distance (T X, T Y)
 Returns a distance scalar between X and Y.
template<typename T>
const __detail::enable_if_t< __detail::is_arithmetic< T >::Value &&__detail::is_same< float, T >::value, T > hlsl::distance (T X, T Y)
template<int N>
const half hlsl::distance (__detail::HLSL_FIXED_VECTOR< half, N > X, __detail::HLSL_FIXED_VECTOR< half, N > Y)
template<int N>
const float hlsl::distance (__detail::HLSL_FIXED_VECTOR< float, N > X, __detail::HLSL_FIXED_VECTOR< float, N > Y)
const float hlsl::dot2add (half2 A, half2 B, float C)
 Dot product of 2 vector of type half and add a float scalar value.
const half4 hlsl::dst (half4 Src0, half4 Src1)
const float4 hlsl::dst (float4 Src0, float4 Src1)
const double4 hlsl::dst (double4 Src0, double4 Src1)
template<typename T>
const __detail::enable_if_t< __detail::is_arithmetic< T >::Value &&__detail::is_same< half, T >::value, T > hlsl::faceforward (T N, T I, T Ng)
 Flips the surface-normal (if needed) to face in a direction opposite to I.
template<typename T>
const __detail::enable_if_t< __detail::is_arithmetic< T >::Value &&__detail::is_same< float, T >::value, T > hlsl::faceforward (T N, T I, T Ng)
template<int L>
const __detail::HLSL_FIXED_VECTOR< half, L > hlsl::faceforward (__detail::HLSL_FIXED_VECTOR< half, L > N, __detail::HLSL_FIXED_VECTOR< half, L > I, __detail::HLSL_FIXED_VECTOR< half, L > Ng)
template<int L>
const __detail::HLSL_FIXED_VECTOR< float, L > hlsl::faceforward (__detail::HLSL_FIXED_VECTOR< float, L > N, __detail::HLSL_FIXED_VECTOR< float, L > I, __detail::HLSL_FIXED_VECTOR< float, L > Ng)
template<typename T>
const __detail::enable_if_t< __detail::is_arithmetic< T >::Value &&__detail::is_same< half, T >::value, T > hlsl::fmod (T X, T Y)
 Returns the linear interpolation of x to y.
template<typename T>
const __detail::enable_if_t< __detail::is_arithmetic< T >::Value &&__detail::is_same< float, T >::value, T > hlsl::fmod (T X, T Y)
template<int N>
const __detail::HLSL_FIXED_VECTOR< half, N > hlsl::fmod (__detail::HLSL_FIXED_VECTOR< half, N > X, __detail::HLSL_FIXED_VECTOR< half, N > Y)
template<int N>
const __detail::HLSL_FIXED_VECTOR< float, N > hlsl::fmod (__detail::HLSL_FIXED_VECTOR< float, N > X, __detail::HLSL_FIXED_VECTOR< float, N > Y)
template<typename T>
const __detail::enable_if_t< __detail::is_arithmetic< T >::Value &&__detail::is_same< half, T >::value, T > hlsl::ldexp (T X, T Exp)
 Returns the result of multiplying the specified value by two raised to the power of the specified exponent.
template<typename T>
const __detail::enable_if_t< __detail::is_arithmetic< T >::Value &&__detail::is_same< float, T >::value, T > hlsl::ldexp (T X, T Exp)
template<int N>
const __detail::HLSL_FIXED_VECTOR< half, N > hlsl::ldexp (__detail::HLSL_FIXED_VECTOR< half, N > X, __detail::HLSL_FIXED_VECTOR< half, N > Exp)
template<int N>
const __detail::HLSL_FIXED_VECTOR< float, N > hlsl::ldexp (__detail::HLSL_FIXED_VECTOR< float, N > X, __detail::HLSL_FIXED_VECTOR< float, N > Exp)
template<typename T>
const __detail::enable_if_t< __detail::is_arithmetic< T >::Value &&__detail::is_same< half, T >::value, T > hlsl::length (T X)
 Returns the length of the specified floating-point vector.
template<typename T>
const __detail::enable_if_t< __detail::is_arithmetic< T >::Value &&__detail::is_same< float, T >::value, T > hlsl::length (T X)
template<int N>
const half hlsl::length (__detail::HLSL_FIXED_VECTOR< half, N > X)
template<int N>
const float hlsl::length (__detail::HLSL_FIXED_VECTOR< float, N > X)
const half4 hlsl::lit (half NDotL, half NDotH, half M)
const float4 hlsl::lit (float NDotL, float NDotH, float M)
constexpr int4 hlsl::D3DCOLORtoUBYTE4 (float4 V)
template<typename T>
const __detail::enable_if_t< __detail::is_arithmetic< T >::Value &&__detail::is_same< half, T >::value, T > hlsl::reflect (T I, T N)
 Returns a reflection using an incident ray, I, and a surface normal, N.
template<typename T>
const __detail::enable_if_t< __detail::is_arithmetic< T >::Value &&__detail::is_same< float, T >::value, T > hlsl::reflect (T I, T N)
template<int L>
const __detail::HLSL_FIXED_VECTOR< half, L > hlsl::reflect (__detail::HLSL_FIXED_VECTOR< half, L > I, __detail::HLSL_FIXED_VECTOR< half, L > N)
template<int L>
const __detail::HLSL_FIXED_VECTOR< float, L > hlsl::reflect (__detail::HLSL_FIXED_VECTOR< float, L > I, __detail::HLSL_FIXED_VECTOR< float, L > N)
template<typename T>
const __detail::enable_if_t< __detail::is_arithmetic< T >::Value &&__detail::is_same< half, T >::value, T > hlsl::refract (T I, T N, T eta)
 Returns a refraction using an entering ray, I, a surface normal, N and refraction index eta.
template<typename T>
const __detail::enable_if_t< __detail::is_arithmetic< T >::Value &&__detail::is_same< float, T >::value, T > hlsl::refract (T I, T N, T eta)
template<int L>
const __detail::HLSL_FIXED_VECTOR< half, L > hlsl::refract (__detail::HLSL_FIXED_VECTOR< half, L > I, __detail::HLSL_FIXED_VECTOR< half, L > N, half eta)
template<int L>
const __detail::HLSL_FIXED_VECTOR< float, L > hlsl::refract (__detail::HLSL_FIXED_VECTOR< float, L > I, __detail::HLSL_FIXED_VECTOR< float, L > N, float eta)
template<typename T>
const __detail::enable_if_t< __detail::is_arithmetic< T >::Value &&__detail::is_same< half, T >::value, T > hlsl::smoothstep (T Min, T Max, T X)
 Returns a smooth Hermite interpolation between 0 and 1, if X is in the range [Min, Max].
template<typename T>
const __detail::enable_if_t< __detail::is_arithmetic< T >::Value &&__detail::is_same< float, T >::value, T > hlsl::smoothstep (T Min, T Max, T X)
template<int N>
const __detail::HLSL_FIXED_VECTOR< half, N > hlsl::smoothstep (__detail::HLSL_FIXED_VECTOR< half, N > Min, __detail::HLSL_FIXED_VECTOR< half, N > Max, __detail::HLSL_FIXED_VECTOR< half, N > X)
template<int N>
const __detail::HLSL_FIXED_VECTOR< float, N > hlsl::smoothstep (__detail::HLSL_FIXED_VECTOR< float, N > Min, __detail::HLSL_FIXED_VECTOR< float, N > Max, __detail::HLSL_FIXED_VECTOR< float, N > X)