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