# GLSL syntax file
# Authors:
# Sergey Sharybin <sergey.vfx@gmail.com>
#
# Based on glsl-mode.el from
# Xavier.Decoret@imag.fr
# Jim Hourihan <jimhourihan ~at~ gmail.com>
context default
# Types
keyword whole float color19
keyword whole double color19
keyword whole int color19
keyword whole void color19
keyword whole bool color19
keyword whole true color19
keyword whole false color19
keyword whole mat2 color19
keyword whole mat3 color19
keyword whole mat4 color19
keyword whole dmat2 color19
keyword whole dmat3 color19
keyword whole dmat4 color19
keyword whole mat2x2 color19
keyword whole mat2x3 color19
keyword whole mat2x4 color19
keyword whole dmat2x2 color19
keyword whole dmat2x3 color19
keyword whole dmat2x4 color19
keyword whole mat3x2 color19
keyword whole mat3x3 color19
keyword whole mat3x4 color19
keyword whole dmat3x2 color19
keyword whole dmat3x3 color19
keyword whole dmat3x4 color19
keyword whole mat4x2 color19
keyword whole mat4x3 color19
keyword whole mat4x4 color19
keyword whole dmat4x2 color19
keyword whole dmat4x3 color19
keyword whole dmat4x4 color19
keyword whole vec2 color19
keyword whole vec3 color19
keyword whole vec4 color19
keyword whole ivec2 color19
keyword whole ivec3 color19
keyword whole ivec4 color19
keyword whole bvec2 color19
keyword whole bvec3 color19
keyword whole bvec4 color19
keyword whole dvec2 color19
keyword whole dvec3 color19
keyword whole dvec4 color19
keyword whole uint color19
keyword whole uvec2 color19
keyword whole uvec3 color19
keyword whole uvec4 color19
keyword whole sampler1D color19
keyword whole sampler2D color19
keyword whole sampler3D color19
keyword whole samplerCube color19
keyword whole sampler1DShadow color19
keyword whole sampler2DShadow color19
keyword whole samplerCubeShadow color19
keyword whole sampler1DArray color19
keyword whole sampler2DArray color19
keyword whole sampler1DArrayShadow color19
keyword whole sampler2DArrayShadow color19
keyword whole isampler1D color19
keyword whole isampler2D color19
keyword whole isampler3D color19
keyword whole isamplerCube color19
keyword whole isampler1DArray color19
keyword whole isampler2DArray color19
keyword whole usampler1D color19
keyword whole usampler2D color19
keyword whole usampler3D color19
keyword whole usamplerCube color19
keyword whole usampler1DArray color19
keyword whole usampler2DArray color19
keyword whole sampler2DRect color19
keyword whole sampler2DRectShadow color19
keyword whole isampler2DRect color19
keyword whole usampler2DRect color19
keyword whole samplerBuffer color19
keyword whole isamplerBuffer color19
keyword whole usamplerBuffer color19
keyword whole sampler2DMS color19
keyword whole isampler2DMS color19
keyword whole usampler2DMS color19
keyword whole sampler2DMSArray color19
keyword whole isampler2DMSArray color19
keyword whole usampler2DMSArray color19
keyword whole samplerCubeArray color19
keyword whole samplerCubeArrayShadow color19
keyword whole isamplerCubeArray color19
keyword whole usamplerCubeArray color19
keyword whole image1D color19
keyword whole iimage1D color19
keyword whole uimage1D color19
keyword whole image2D color19
keyword whole iimage2D color19
keyword whole uimage2D color19
keyword whole image3D color19
keyword whole iimage3D color19
keyword whole uimage3D color19
keyword whole image2DRect color19
keyword whole iimage2DRect color19
keyword whole uimage2DRect color19
keyword whole imageCube color19
keyword whole iimageCube color19
keyword whole uimageCube color19
keyword whole imageBuffer color19
keyword whole iimageBuffer color19
keyword whole uimageBuffer color19
keyword whole image1DArray color19
keyword whole iimage1DArray color19
keyword whole uimage1DArray color19
keyword whole image2DArray color19
keyword whole iimage2DArray color19
keyword whole uimage2DArray color19
keyword whole imageCubeArray color19
keyword whole iimageCubeArray color19
keyword whole uimageCubeArray color19
keyword whole image2DMS color19
keyword whole iimage2DMS color19
keyword whole uimage2DMS color19
keyword whole image2DMSArray color19
keyword whole iimage2DMSArray color19
keyword whole uimage2DMSArray color19
keyword whole long color19
keyword whole short color19
keyword whole half color19
keyword whole fixed color19
keyword whole unsigned color19
keyword whole hvec2 color19
keyword whole hvec3 color19
keyword whole hvec4 color19
keyword whole fvec2 color19
keyword whole fvec3 color19
keyword whole fvec4 color19
keyword whole sampler3DRect color19
# Modifiers
keyword whole attribute color19
keyword whole const color19
keyword whole uniform color19
keyword whole varying color19
keyword whole buffer color19
keyword whole shared color19
keyword whole coherent color19
keyword whole volatile color19
keyword whole restrict color19
keyword whole readonly color19
keyword whole writeonly color19
keyword whole atomic_uint color19
keyword whole layout color19
keyword whole centroid color19
keyword whole flat color19
keyword whole smooth color19
keyword whole noperspective color19
keyword whole patch color19
keyword whole sample color19
keyword whole break color19
keyword whole continue color19
keyword whole do color19
keyword whole for color19
keyword whole while color19
keyword whole switch color19
keyword whole case color19
keyword whole default color19
keyword whole if color19
keyword whole else color19
keyword whole subroutine color19
keyword whole in color19
keyword whole out color19
keyword whole inout color19
keyword whole invariant color19
keyword whole discard color19
keyword whole return color19
keyword whole lowp color19
keyword whole mediump color19
keyword whole highp color19
keyword whole precision color19
keyword whole struct color19
keyword whole common color19
keyword whole partition color19
keyword whole active color19
keyword whole asm color19
keyword whole class color19
keyword whole union color19
keyword whole enum color19
keyword whole typedef color19
keyword whole template color19
keyword whole this color19
keyword whole packed color19
keyword whole resource color19
keyword whole goto color19
keyword whole inline color19
keyword whole noinline color19
keyword whole public color19
keyword whole static color19
keyword whole extern color19
keyword whole external color19
keyword whole interface color19
keyword whole superp color19
keyword whole input color19
keyword whole output color19
keyword whole filter color19
keyword whole sizeof color19
keyword whole cast color19
keyword whole namespace color19
keyword whole using color19
keyword whole row major color19
keyword whole early_fragment_tests color19
# Deprecated
keyword whole varying color196
keyword whole attribute color196
# Built-in
keyword whole abs color90
keyword whole acos color90
keyword whole acosh color90
keyword whole all color90
keyword whole any color90
keyword whole asin color90
keyword whole asinh color90
keyword whole atan color90
keyword whole atanh color90
keyword whole atomicCounter color90
keyword whole atomicCounterDecrement color90
keyword whole atomicCounterIncrement color90
keyword whole barrier color90
keyword whole bitCount color90
keyword whole bitfieldExtract color90
keyword whole bitfieldInsert color90
keyword whole bitfieldReverse color90
keyword whole ceil color90
keyword whole clamp color90
keyword whole cos color90
keyword whole cosh color90
keyword whole cross color90
keyword whole degrees color90
keyword whole determinant color90
keyword whole dFdx color90
keyword whole dFdy color90
keyword whole dFdyFine color90
keyword whole dFdxFine color90
keyword whole dFdyCoarse color90
keyword whole dFdxCourse color90
keyword whole fwidthFine color90
keyword whole fwidthCoarse color90
keyword whole distance color90
keyword whole dot color90
keyword whole EmitStreamVertex color90
keyword whole EmitVertex color90
keyword whole EndPrimitive color90
keyword whole EndStreamPrimitive color90
keyword whole equal color90
keyword whole exp color90
keyword whole exp2 color90
keyword whole faceforward color90
keyword whole findLSB color90
keyword whole findMSB color90
keyword whole floatBitsToInt color90
keyword whole floatBitsToUint color90
keyword whole floor color90
keyword whole fma color90
keyword whole fract color90
keyword whole frexp color90
keyword whole fwidth color90
keyword whole greaterThan color90
keyword whole greaterThanEqual color90
keyword whole imageAtomicAdd color90
keyword whole imageAtomicAnd color90
keyword whole imageAtomicCompSwap color90
keyword whole imageAtomicExchange color90
keyword whole imageAtomicMax color90
keyword whole imageAtomicMin color90
keyword whole imageAtomicOr color90
keyword whole imageAtomicXor color90
keyword whole imageLoad color90
keyword whole imageSize color90
keyword whole imageStore color90
keyword whole imulExtended color90
keyword whole intBitsToFloat color90
keyword whole imageSamples color90
keyword whole interpolateAtCentroid color90
keyword whole interpolateAtOffset color90
keyword whole interpolateAtSample color90
keyword whole inverse color90
keyword whole inversesqrt color90
keyword whole isinf color90
keyword whole isnan color90
keyword whole ldexp color90
keyword whole length color90
keyword whole lessThan color90
keyword whole lessThanEqual color90
keyword whole log color90
keyword whole log2 color90
keyword whole matrixCompMult color90
keyword whole max color90
keyword whole memoryBarrier color90
keyword whole min color90
keyword whole mix color90
keyword whole mod color90
keyword whole modf color90
keyword whole noise color90
keyword whole normalize color90
keyword whole not color90
keyword whole notEqual color90
keyword whole outerProduct color90
keyword whole packDouble2x32 color90
keyword whole packHalf2x16 color90
keyword whole packSnorm2x16 color90
keyword whole packSnorm4x8 color90
keyword whole packUnorm2x16 color90
keyword whole packUnorm4x8 color90
keyword whole pow color90
keyword whole radians color90
keyword whole reflect color90
keyword whole refract color90
keyword whole round color90
keyword whole roundEven color90
keyword whole sign color90
keyword whole sin color90
keyword whole sinh color90
keyword whole smoothstep color90
keyword whole sqrt color90
keyword whole step color90
keyword whole tan color90
keyword whole tanh color90
keyword whole texelFetch color90
keyword whole texelFetchOffset color90
keyword whole texture color90
keyword whole textureGather color90
keyword whole textureGatherOffset color90
keyword whole textureGatherOffsets color90
keyword whole textureGrad color90
keyword whole textureGradOffset color90
keyword whole textureLod color90
keyword whole textureLodOffset color90
keyword whole textureOffset color90
keyword whole textureProj color90
keyword whole textureProjGrad color90
keyword whole textureProjGradOffset color90
keyword whole textureProjLod color90
keyword whole textureProjLodOffset color90
keyword whole textureProjOffset color90
keyword whole textureQueryLevels color90
keyword whole textureQueryLod color90
keyword whole textureSize color90
keyword whole transpose color90
keyword whole trunc color90
keyword whole uaddCarry color90
keyword whole uintBitsToFloat color90
keyword whole umulExtended color90
keyword whole unpackDouble2x32 color90
keyword whole unpackHalf2x16 color90
keyword whole unpackSnorm2x16 color90
keyword whole unpackSnorm4x8 color90
keyword whole unpackUnorm2x16 color90
keyword whole unpackUnorm4x8 color90
keyword whole usubBorrow color90
# Deprecated built-in
keyword whole texture1D color91
keyword whole texture1DProj color91
keyword whole texture1DLod color91
keyword whole texture1DProjLod color91
keyword whole texture2D color91
keyword whole texture2DProj color91
keyword whole texture2DLod color91
keyword whole texture2DProjLod color91
keyword whole texture2DRect color91
keyword whole texture2DRectProj color91
keyword whole texture3D color91
keyword whole texture3DProj color91
keyword whole texture3DLod color91
keyword whole texture3DProjLod color91
keyword whole shadow1D color91
keyword whole shadow1DProj color91
keyword whole shadow1DLod color91
keyword whole shadow1DProjLod color91
keyword whole shadow2D color91
keyword whole shadow2DProj color91
keyword whole shadow2DLod color91
keyword whole shadow2DProjLod color91
keyword whole textureCube color91
keyword whole textureCubeLod color91
# Deprecated variables
keyword whole gl_FragColor color160
keyword whole gl_FragData color160
keyword whole gl_MaxVarying color160
keyword whole gl_MaxVaryingFloats color160
keyword whole gl_MaxVaryingComponents color160
# Comments
keyword /\* color30
keyword \*/ color30
keyword // color30
# Preprocessor
keyword # color196
# Punctuation
keyword > color243
keyword < color243
keyword \+ color243
keyword - color243
keyword \* color243
keyword / color243
keyword % color243
keyword = color243
keyword != color243
keyword == color243
keyword & color243
keyword | color243
keyword :: color243
keyword -> color243
keyword { color17
keyword } color17
keyword ( color17
keyword ) color17
keyword [ color17
keyword ] color17
keyword , color17
keyword : color17
keyword ; color90
context exclusive # \n color196
keyword \\\n color19
keyword /\**\*/ color30
keyword //*\n color30
keyword "+" color160
keyword <+> color160
context exclusive /\* \*/ color30
spellcheck
context exclusive // \n color30
spellcheck
context " " color28
spellcheck
context ' ' color88
spellcheck