/* ** 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