#ifndef FFX_COMMON_TYPES_H
#define FFX_COMMON_TYPES_H
#if defined(FFX_CPU)
#define FFX_PARAMETER_IN
#define FFX_PARAMETER_OUT
#define FFX_PARAMETER_INOUT
#elif defined(FFX_HLSL)
#define FFX_PARAMETER_IN …
#define FFX_PARAMETER_OUT …
#define FFX_PARAMETER_INOUT …
#elif defined(FFX_GLSL)
#define FFX_PARAMETER_IN …
#define FFX_PARAMETER_OUT …
#define FFX_PARAMETER_INOUT …
#endif
#if defined(FFX_CPU)
FfxBoolean;
FfxUInt8;
FfxUInt16;
FfxUInt32;
FfxUInt64;
FfxInt8;
FfxInt16;
FfxInt32;
FfxInt64;
FfxFloat32;
FfxFloat32x2;
FfxFloat32x3;
FfxFloat32x4;
FfxUInt32x2;
FfxUInt32x3;
FfxUInt32x4;
#endif
#if defined(FFX_HLSL)
typedef bool FfxBoolean;
#if FFX_HLSL_6_2
typedef float32_t FfxFloat32;
typedef float32_t2 FfxFloat32x2;
typedef float32_t3 FfxFloat32x3;
typedef float32_t4 FfxFloat32x4;
typedef uint32_t FfxUInt32;
typedef uint32_t2 FfxUInt32x2;
typedef uint32_t3 FfxUInt32x3;
typedef uint32_t4 FfxUInt32x4;
typedef int32_t FfxInt32;
typedef int32_t2 FfxInt32x2;
typedef int32_t3 FfxInt32x3;
typedef int32_t4 FfxInt32x4;
#else
#define FfxFloat32 …
#define FfxFloat32x2 …
#define FfxFloat32x3 …
#define FfxFloat32x4 …
typedef uint FfxUInt32;
typedef uint2 FfxUInt32x2;
typedef uint3 FfxUInt32x3;
typedef uint4 FfxUInt32x4;
typedef int FfxInt32;
typedef int2 FfxInt32x2;
typedef int3 FfxInt32x3;
typedef int4 FfxInt32x4;
#endif
#if FFX_HALF
#if FFX_HLSL_6_2
typedef float16_t FfxFloat16;
typedef float16_t2 FfxFloat16x2;
typedef float16_t3 FfxFloat16x3;
typedef float16_t4 FfxFloat16x4;
typedef uint16_t FfxUInt16;
typedef uint16_t2 FfxUInt16x2;
typedef uint16_t3 FfxUInt16x3;
typedef uint16_t4 FfxUInt16x4;
typedef int16_t FfxInt16;
typedef int16_t2 FfxInt16x2;
typedef int16_t3 FfxInt16x3;
typedef int16_t4 FfxInt16x4;
#else
typedef min16float FfxFloat16;
typedef min16float2 FfxFloat16x2;
typedef min16float3 FfxFloat16x3;
typedef min16float4 FfxFloat16x4;
typedef min16uint FfxUInt16;
typedef min16uint2 FfxUInt16x2;
typedef min16uint3 FfxUInt16x3;
typedef min16uint4 FfxUInt16x4;
typedef min16int FfxInt16;
typedef min16int2 FfxInt16x2;
typedef min16int3 FfxInt16x3;
typedef min16int4 FfxInt16x4;
#endif
#endif
#endif
#if defined(FFX_GLSL)
#define FfxBoolean …
#define FfxFloat32 …
#define FfxFloat32x2 …
#define FfxFloat32x3 …
#define FfxFloat32x4 …
#define FfxUInt32 …
#define FfxUInt32x2 …
#define FfxUInt32x3 …
#define FfxUInt32x4 …
#define FfxInt32 …
#define FfxInt32x2 …
#define FfxInt32x3 …
#define FfxInt32x4 …
#if FFX_HALF
#define FfxFloat16 …
#define FfxFloat16x2 …
#define FfxFloat16x3 …
#define FfxFloat16x4 …
#define FfxUInt16 …
#define FfxUInt16x2 …
#define FfxUInt16x3 …
#define FfxUInt16x4 …
#define FfxInt16 …
#define FfxInt16x2 …
#define FfxInt16x3 …
#define FfxInt16x4 …
#endif
#endif
#if FFX_HALF
#if FFX_HLSL_6_2
#define FFX_MIN16_SCALAR …
#define FFX_MIN16_VECTOR …
#define FFX_MIN16_MATRIX …
#define FFX_16BIT_SCALAR …
#define FFX_16BIT_VECTOR …
#define FFX_16BIT_MATRIX …
#else
#define FFX_MIN16_SCALAR …
#define FFX_MIN16_VECTOR …
#define FFX_MIN16_MATRIX …
#define FFX_16BIT_SCALAR …
#define FFX_16BIT_VECTOR …
#define FFX_16BIT_MATRIX …
#endif
#else
#define FFX_MIN16_SCALAR( TypeName, BaseComponentType ) …
#define FFX_MIN16_VECTOR( TypeName, BaseComponentType, COL ) …
#define FFX_MIN16_MATRIX( TypeName, BaseComponentType, ROW, COL ) …
#define FFX_16BIT_SCALAR( TypeName, BaseComponentType ) …
#define FFX_16BIT_VECTOR( TypeName, BaseComponentType, COL ) …
#define FFX_16BIT_MATRIX( TypeName, BaseComponentType, ROW, COL ) …
#endif
#if defined(FFX_GPU)
#if defined(FFX_HLSL)
FFX_MIN16_SCALAR( FFX_MIN16_F , float );
FFX_MIN16_VECTOR( FFX_MIN16_F2, float, 2 );
FFX_MIN16_VECTOR( FFX_MIN16_F3, float, 3 );
FFX_MIN16_VECTOR( FFX_MIN16_F4, float, 4 );
FFX_MIN16_SCALAR( FFX_MIN16_I, int );
FFX_MIN16_VECTOR( FFX_MIN16_I2, int, 2 );
FFX_MIN16_VECTOR( FFX_MIN16_I3, int, 3 );
FFX_MIN16_VECTOR( FFX_MIN16_I4, int, 4 );
FFX_MIN16_SCALAR( FFX_MIN16_U, uint );
FFX_MIN16_VECTOR( FFX_MIN16_U2, uint, 2 );
FFX_MIN16_VECTOR( FFX_MIN16_U3, uint, 3 );
FFX_MIN16_VECTOR( FFX_MIN16_U4, uint, 4 );
FFX_16BIT_SCALAR( FFX_F16_t , float );
FFX_16BIT_VECTOR( FFX_F16_t2, float, 2 );
FFX_16BIT_VECTOR( FFX_F16_t3, float, 3 );
FFX_16BIT_VECTOR( FFX_F16_t4, float, 4 );
FFX_16BIT_SCALAR( FFX_I16_t, int );
FFX_16BIT_VECTOR( FFX_I16_t2, int, 2 );
FFX_16BIT_VECTOR( FFX_I16_t3, int, 3 );
FFX_16BIT_VECTOR( FFX_I16_t4, int, 4 );
FFX_16BIT_SCALAR( FFX_U16_t, uint );
FFX_16BIT_VECTOR( FFX_U16_t2, uint, 2 );
FFX_16BIT_VECTOR( FFX_U16_t3, uint, 3 );
FFX_16BIT_VECTOR( FFX_U16_t4, uint, 4 );
#define TYPEDEF_MIN16_TYPES …
#define TYPEDEF_16BIT_TYPES …
#define TYPEDEF_FULL_PRECISION_TYPES …
#endif
#if defined(FFX_GLSL)
#if FFX_HALF
#define FFX_MIN16_F …
#define FFX_MIN16_F2 …
#define FFX_MIN16_F3 …
#define FFX_MIN16_F4 …
#define FFX_MIN16_I …
#define FFX_MIN16_I2 …
#define FFX_MIN16_I3 …
#define FFX_MIN16_I4 …
#define FFX_MIN16_U …
#define FFX_MIN16_U2 …
#define FFX_MIN16_U3 …
#define FFX_MIN16_U4 …
#define FFX_16BIT_F …
#define FFX_16BIT_F2 …
#define FFX_16BIT_F3 …
#define FFX_16BIT_F4 …
#define FFX_16BIT_I …
#define FFX_16BIT_I2 …
#define FFX_16BIT_I3 …
#define FFX_16BIT_I4 …
#define FFX_16BIT_U …
#define FFX_16BIT_U2 …
#define FFX_16BIT_U3 …
#define FFX_16BIT_U4 …
#else
#define FFX_MIN16_F …
#define FFX_MIN16_F2 …
#define FFX_MIN16_F3 …
#define FFX_MIN16_F4 …
#define FFX_MIN16_I …
#define FFX_MIN16_I2 …
#define FFX_MIN16_I3 …
#define FFX_MIN16_I4 …
#define FFX_MIN16_U …
#define FFX_MIN16_U2 …
#define FFX_MIN16_U3 …
#define FFX_MIN16_U4 …
#define FFX_16BIT_F …
#define FFX_16BIT_F2 …
#define FFX_16BIT_F3 …
#define FFX_16BIT_F4 …
#define FFX_16BIT_I …
#define FFX_16BIT_I2 …
#define FFX_16BIT_I3 …
#define FFX_16BIT_I4 …
#define FFX_16BIT_U …
#define FFX_16BIT_U2 …
#define FFX_16BIT_U3 …
#define FFX_16BIT_U4 …
#endif
#endif
#endif
#endif