git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@30443 e7fa87d3-cd2b-0410-9028-fcbf551c1848
		
			
				
	
	
		
			211 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			211 lines
		
	
	
		
			6.9 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 {
 | 
						|
 | 
						|
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
 |