214 lines
		
	
	
		
			6.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			214 lines
		
	
	
		
			6.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /*
 | |
| ** 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 {
 | |
| 
 | |
| const int Version = 99;
 | |
| const int Revision = 1;
 | |
| 
 | |
| 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
 | 
