/* | |
** Copyright (c) 2014-2015 The Khronos Group Inc. | |
** | |
** Permission is hereby granted, free of charge, to any person obtaining a | |
** copy of this software and/or associated documentation files (the | |
** "Materials"), to deal in the Materials without restriction, including | |
** without limitation the rights to use, copy, modify, merge, publish, | |
** distribute, sublicense, and/or sell copies of the Materials, and to | |
** permit persons to whom the Materials are furnished to do so, subject to | |
** the following conditions: | |
** | |
** The above copyright notice and this permission notice shall be included | |
** in all copies or substantial portions of the Materials. | |
** | |
** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | |
** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | |
** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. | |
** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY | |
** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, | |
** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE | |
** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. | |
*/ | |
// | |
// Author: John Kessenich, LunarG | |
// | |
namespace GLSL_STD_450 { | |
enum Entrypoints { | |
Round = 0, | |
RoundEven = 1, | |
Trunc = 2, | |
Abs = 3, | |
Sign = 4, | |
Floor = 5, | |
Ceil = 6, | |
Fract = 7, | |
Radians = 8, | |
Degrees = 9, | |
Sin = 10, | |
Cos = 11, | |
Tan = 12, | |
Asin = 13, | |
Acos = 14, | |
Atan = 15, | |
Sinh = 16, | |
Cosh = 17, | |
Tanh = 18, | |
Asinh = 19, | |
Acosh = 20, | |
Atanh = 21, | |
Atan2 = 22, | |
Pow = 23, | |
Exp = 24, | |
Log = 25, | |
Exp2 = 26, | |
Log2 = 27, | |
Sqrt = 28, | |
InverseSqrt = 29, | |
Determinant = 30, | |
MatrixInverse = 31, | |
Modf = 32, // second argument needs the OpVariable = , not an OpLoad | |
Min = 33, | |
Max = 34, | |
Clamp = 35, | |
Mix = 36, | |
Step = 37, | |
SmoothStep = 38, | |
FloatBitsToInt = 39, | |
FloatBitsToUint = 40, | |
IntBitsToFloat = 41, | |
UintBitsToFloat = 42, | |
Fma = 43, | |
Frexp = 44, | |
Ldexp = 45, | |
PackSnorm4x8 = 46, | |
PackUnorm4x8 = 47, | |
PackSnorm2x16 = 48, | |
PackUnorm2x16 = 49, | |
PackHalf2x16 = 50, | |
PackDouble2x32 = 51, | |
UnpackSnorm2x16 = 52, | |
UnpackUnorm2x16 = 53, | |
UnpackHalf2x16 = 54, | |
UnpackSnorm4x8 = 55, | |
UnpackUnorm4x8 = 56, | |
UnpackDouble2x32 = 57, | |
Length = 58, | |
Distance = 59, | |
Cross = 60, | |
Normalize = 61, | |
Ftransform = 62, | |
FaceForward = 63, | |
Reflect = 64, | |
Refract = 65, | |
UaddCarry = 66, | |
UsubBorrow = 67, | |
UmulExtended = 68, | |
ImulExtended = 69, | |
BitfieldExtract = 70, | |
BitfieldInsert = 71, | |
BitfieldReverse = 72, | |
BitCount = 73, | |
FindLSB = 74, | |
FindMSB = 75, | |
InterpolateAtCentroid = 76, | |
InterpolateAtSample = 77, | |
InterpolateAtOffset = 78, | |
Count | |
}; | |
inline void GetDebugNames(const char** names) | |
{ | |
for (int i = 0; i < Count; ++i) | |
names[i] = "Unknown"; | |
names[Round] = "round"; | |
names[RoundEven] = "roundEven"; | |
names[Trunc] = "trunc"; | |
names[Abs] = "abs"; | |
names[Sign] = "sign"; | |
names[Floor] = "floor"; | |
names[Ceil] = "ceil"; | |
names[Fract] = "fract"; | |
names[Radians] = "radians"; | |
names[Degrees] = "degrees"; | |
names[Sin] = "sin"; | |
names[Cos] = "cos"; | |
names[Tan] = "tan"; | |
names[Asin] = "asin"; | |
names[Acos] = "acos"; | |
names[Atan] = "atan"; | |
names[Sinh] = "sinh"; | |
names[Cosh] = "cosh"; | |
names[Tanh] = "tanh"; | |
names[Asinh] = "asinh"; | |
names[Acosh] = "acosh"; | |
names[Atanh] = "atanh"; | |
names[Atan2] = "atan2"; | |
names[Pow] = "pow"; | |
names[Exp] = "exp"; | |
names[Log] = "log"; | |
names[Exp2] = "exp2"; | |
names[Log2] = "log2"; | |
names[Sqrt] = "sqrt"; | |
names[InverseSqrt] = "inverseSqrt"; | |
names[Determinant] = "determinant"; | |
names[MatrixInverse] = "matrixInverse"; | |
names[Modf] = "modf"; | |
names[Min] = "min"; | |
names[Max] = "max"; | |
names[Clamp] = "clamp"; | |
names[Mix] = "mix"; | |
names[Step] = "step"; | |
names[SmoothStep] = "smoothStep"; | |
names[FloatBitsToInt] = "floatBitsToInt"; | |
names[FloatBitsToUint] = "floatBitsToUint"; | |
names[IntBitsToFloat] = "intBitsToFloat"; | |
names[UintBitsToFloat] = "uintBitsToFloat"; | |
names[Fma] = "fma"; | |
names[Frexp] = "frexp"; | |
names[Ldexp] = "ldexp"; | |
names[PackSnorm4x8] = "packSnorm4x8"; | |
names[PackUnorm4x8] = "packUnorm4x8"; | |
names[PackSnorm2x16] = "packSnorm2x16"; | |
names[PackUnorm2x16] = "packUnorm2x16"; | |
names[PackHalf2x16] = "packHalf2x16"; | |
names[PackDouble2x32] = "packDouble2x32"; | |
names[UnpackSnorm2x16] = "unpackSnorm2x16"; | |
names[UnpackUnorm2x16] = "unpackUnorm2x16"; | |
names[UnpackHalf2x16] = "unpackHalf2x16"; | |
names[UnpackSnorm4x8] = "unpackSnorm4x8"; | |
names[UnpackUnorm4x8] = "unpackUnorm4x8"; | |
names[UnpackDouble2x32] = "unpackDouble2x32"; | |
names[Length] = "length"; | |
names[Distance] = "distance"; | |
names[Cross] = "cross"; | |
names[Normalize] = "normalize"; | |
names[Ftransform] = "ftransform"; | |
names[FaceForward] = "faceForward"; | |
names[Reflect] = "reflect"; | |
names[Refract] = "refract"; | |
names[UaddCarry] = "uaddCarry"; | |
names[UsubBorrow] = "usubBorrow"; | |
names[UmulExtended] = "umulExtended"; | |
names[ImulExtended] = "imulExtended"; | |
names[BitfieldExtract] = "bitfieldExtract"; | |
names[BitfieldInsert] = "bitfieldInsert"; | |
names[BitfieldReverse] = "bitfieldReverse"; | |
names[BitCount] = "bitCount"; | |
names[FindLSB] = "findLSB"; | |
names[FindMSB] = "findMSB"; | |
names[InterpolateAtCentroid] = "interpolateAtCentroid"; | |
names[InterpolateAtSample] = "interpolateAtSample"; | |
names[InterpolateAtOffset] = "interpolateAtOffset"; | |
} | |
}; // end namespace GLSL_STD_450 |