@@ -19,74 +19,113 @@ class Glsl < C
1919
2020 def self . keywords
2121 @keywords ||= Set . new %w(
22- attribute const uniform varying
22+ const uniform buffer shared attribute varying
23+ coherent volatile restrict readonly writeonly
24+ atomic_uint
2325 layout
2426 centroid flat smooth noperspective
2527 patch sample
28+ invariant precise
2629 break continue do for while switch case default
2730 if else
2831 subroutine
2932 in out inout
30- invariant
31- discard return struct precision
33+ true false
34+ discard return
35+ lowp mediump highp precision
36+ struct
37+
38+ row_major column_major
39+ shared packed std140 std43 binding offset align location
40+ early_fragment_tests
3241 )
3342 end
3443
3544 def self . keywords_type
3645 @keywords_type ||= Set . new %w(
37- float double int void bool true false
38- lowp mediump highp
46+ int void bool float double
47+
48+ vec2 vec3 vec4 ivec2 ivec3 ivec4 bvec2 bvec3 bvec4
49+ uint uvec2 uvec3 uvec4
50+ dvec2 dvec3 dvec4
51+ mat2 mat3 mat4
52+ mat2x2 mat2x3 mat2x4
53+ mat3x2 mat3x3 mat3x4
54+ mat4x2 mat4x3 mat4x4
55+ dmat2 dmat3 dmat4
56+ dmat2x2 dmat2x3 dmat2x4
57+ dmat3x2 dmat3x3 dmat3x4
58+ dmat4x2 dmat4x3 dmat4x4
59+
3960 mat2 mat3 mat4 dmat2 dmat3 dmat4
4061 mat2x2 mat2x3 mat2x4 dmat2x2 dmat2x3 dmat2x4
4162 mat3x2 mat3x3 mat3x4 dmat3x2 dmat3x3 dmat3x4
4263 mat4x2 mat4x3 mat4x4 dmat4x2 dmat4x3 dmat4x4
4364 vec2 vec3 vec4 ivec2 ivec3 ivec4 bvec2 bvec3 bvec4 dvec2 dvec3 dvec4
4465 uint uvec2 uvec3 uvec4
45- sampler1D sampler2D sampler3D samplerCube
46- sampler1DShadow sampler2DShadow samplerCubeShadow
47- sampler1DArray sampler2DArray
48- sampler1DArrayShadow sampler2DArrayShadow
49- isampler1D isampler2D isampler3D isamplerCube
50- isampler1DArray isampler2DArray
51- usampler1D usampler2D usampler3D usamplerCube
52- usampler1DArray usampler2DArray
66+ sampler1D sampler1DShadow sampler1DArray sampler1DArrayShadow
67+ isampler1D isampler1DArray usampler1D usampler1DArray
68+ sampler2D sampler2DShadow sampler2DArray sampler2DArrayShadow
69+ isampler2D isampler2DArray usampler2D usampler2DArray
5370 sampler2DRect sampler2DRectShadow isampler2DRect usampler2DRect
54- samplerBuffer isamplerBuffer usamplerBuffer
5571 sampler2DMS isampler2DMS usampler2DMS
5672 sampler2DMSArray isampler2DMSArray usampler2DMSArray
57- samplerCubeArray samplerCubeArrayShadow isamplerCubeArray usamplerCubeArray
73+ sampler3D isampler3D usampler3D
74+ samplerCube samplerCubeShadow isamplerCube usamplerCube
75+ samplerCubeArray samplerCubeArrayShadow
76+ isamplerCubeArray usamplerCubeArray
77+ samplerBuffer isamplerBuffer usamplerBuffer
78+ image1D iimage1D uimage1D
79+ image1DArray iimage1DArray uimage1DArray
80+ image2D iimage2D uimage2D
81+ image2DArray iimage2DArray uimage2DArray
82+ image2DRect iimage2DRect uimage2DRect
83+ image2DMS iimage2DMS uimage2DMS
84+ image2DMSArray iimage2DMSArray uimage2DMSArray
85+ image3D iimage3D uimage3D
86+ imageCube iimageCube uimageCube
87+ imageCubeArray iimageCubeArray uimageCubeArray
88+ imageBuffer iimageBuffer uimageBuffer
89+ atomic_uint
90+
91+ texture1D texture1DArray
92+ itexture1D itexture1DArray utexture1D utexture1DArray
93+ texture2D texture2DArray
94+ itexture2D itexture2DArray utexture2D utexture2DArray
95+ texture2DRect itexture2DRect utexture2DRect
96+ texture2DMS itexture2DMS utexture2DMS
97+ texture2DMSArray itexture2DMSArray utexture2DMSArray
98+ texture3D itexture3D utexture3D
99+ textureCube itextureCube utextureCube
100+ textureCubeArray itextureCubeArray utextureCubeArray
101+ textureBuffer itextureBuffer utextureBuffer
102+ sampler samplerShadow
103+ subpassInput isubpassInput usubpassInput
104+ subpassInputMS isubpassInputMS usubpassInputMS
58105 )
59106 end
60107
61108 def self . reserved
62109 @reserved ||= Set . new %w(
63110 common partition active
64111 asm
65- class union enum typedef template this packed
112+ class union enum typedef template this
113+ resource
66114 goto
67- inline noinline volatile public static extern external interface
115+ inline noinline public static extern external interface
68116 long short half fixed unsigned superp
69117 input output
70118 hvec2 hvec3 hvec4 fvec2 fvec3 fvec4
71- sampler3DRect
72119 filter
73- image1D image2D image3D imageCube
74- iimage1D iimage2D iimage3D iimageCube
75- uimage1D uimage2D uimage3D uimageCube
76- image1DArray image2DArray
77- iimage1DArray iimage2DArray uimage1DArray uimage2DArray
78- image1DShadow image2DShadow
79- image1DArrayShadow image2DArrayShadow
80- imageBuffer iimageBuffer uimageBuffer
81120 sizeof cast
82121 namespace using
83- row_major
122+ sampler3DRect
84123 )
85124 end
86125
87126 def self . builtins
88127 @builtins ||= Set . new %w(
89- gl_VertexID gl_InstanceID gl_PerVertex gl_Position gl_PointSize gl_ClipDistance
128+ gl_VertexID gl_VertexIndex gl_InstanceID gl_InstanceIndex gl_PerVertex gl_Position gl_PointSize gl_ClipDistance gl_CullDistance
90129 gl_PrimitiveIDIn gl_InvocationID gl_PrimitiveID gl_Layer gl_ViewportIndex
91130 gl_MaxPatchVertices gl_PatchVerticesIn gl_TessLevelOuter gl_TessLevelInner
92131 gl_TessCoord gl_FragCoord gl_FrontFacing gl_PointCoord gl_SampleID gl_SamplePosition
@@ -125,6 +164,9 @@ def self.builtins
125164 gl_BackLightProduct gl_TextureEnvColor gl_EyePlaneS gl_EyePlaneT gl_EyePlaneR
126165 gl_EyePlaneQ gl_ObjectPlaneS gl_ObjectPlaneT gl_ObjectPlaneR gl_ObjectPlaneQ
127166 gl_FogParameters gl_Fog
167+ gl_DrawID gl_BaseVertex gl_BaseInstance
168+ gl_NumWorkGroups gl_WorkGroupID gl_LocalInvocationID gl_GlobalInvocationID gl_LocalInvocationIndex
169+ gl_WorkGroupSize gl_HelperInvocation
128170 )
129171 end
130172 end
0 commit comments