<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd">
<language name="GLSL" section="Sources" extensions="*.glsl;*.vert;*.frag;*.geom;*.tcs;*.tes" mimetype="text/x-glslsrc" version="1.04" kateversion="2.4" author="Oliver Richers (o.richers@tu-bs.de)" license="LGPL">
	<highlighting>
		<list name="keywords">
			<item>break</item>
			<item>continue</item>
			<item>do</item>
			<item>for</item>
			<item>while</item>
			
			<item>if</item>
			<item>else</item>
			
			<item>true</item>
			<item>false</item>
			
			<item>discard</item>
			<item>return</item>
			
			<item>struct</item>
			<item>subroutine</item>
			<item>layout</item>
			<item>uniform</item>
			<item>buffer</item>
			<item>invariant</item>
		</list>
		<list name="types">
			<item>float</item>
			<item>int</item>
			<item>void</item>
			<item>bool</item>

			<item>mat2</item>
			<item>mat3</item>
			<item>mat4</item>
			
			<item>vec2</item>
			<item>vec3</item>
			<item>vec4</item>
			<item>ivec2</item>
			<item>ivec3</item>
			<item>ivec4</item>
			<item>bvec2</item>
			<item>bvec3</item>
			<item>bvec4</item>
			
			<item>sampler1D</item>
			<item>sampler2D</item>
			<item>sampler3D</item>
			<item>samplerCube</item>
			<item>sampler2DRect</item>
			<item>sampler1DArray</item>
			<item>sampler2DArray</item>
			<item>samplerCubeArray</item>
			<item>samplerBuffer</item>
			<item>sampler2DMS</item>
			<item>sampler2DMSArray</item>

			<item>sampler1DShadow</item>
			<item>sampler2DShadow</item>
			<item>samplerCubeShadow</item>
			<item>sampler2DRectShadow</item>
			<item>sampler1DArrayShadow</item>
			<item>sampler2DArrayShadow</item>
			<item>samplerCubeArrayShadow</item>

			<item>isampler1D</item>
			<item>isampler2D</item>
			<item>isampler3D</item>
			<item>isamplerCube</item>
			<item>isampler2DRect</item>
			<item>isampler1DArray</item>
			<item>isampler2DArray</item>
			<item>isamplerCubeArray</item>
			<item>isamplerBuffer</item>
			<item>isampler2DMS</item>
			<item>isampler2DMSArray</item>

			<item>isampler1DShadow</item>
			<item>isampler2DShadow</item>
			<item>isamplerCubeShadow</item>
			<item>isampler2DRectShadow</item>
			<item>isampler1DArrayShadow</item>
			<item>isampler2DArrayShadow</item>
			<item>isamplerCubeArrayShadow</item>

			<item>usampler1D</item>
			<item>usampler2D</item>
			<item>usampler3D</item>
			<item>usamplerCube</item>
			<item>usampler2DRect</item>
			<item>usampler1DArray</item>
			<item>usampler2DArray</item>
			<item>usamplerCubeArray</item>
			<item>usamplerBuffer</item>
			<item>usampler2DMS</item>
			<item>usampler2DMSArray</item>

			<item>usampler1DShadow</item>
			<item>usampler2DShadow</item>
			<item>usamplerCubeShadow</item>
			<item>usampler2DRectShadow</item>
			<item>usampler1DArrayShadow</item>
			<item>usampler2DArrayShadow</item>
			<item>usamplerCubeArrayShadow</item>

			<item>atomic_uint</item>
		</list>
		<list name="typequal">
			<item>attribute</item>
			<item>const</item>
			<item>varying</item>
			
			<item>in</item>
			<item>out</item>
			<item>inout</item>

			<!-- interpolation qualifiers -->
			<item>flat</item>
			<item>noperspective</item>
			<item>smooth</item>

			<!-- layout qualifiers -->
			<item>location</item>
			<item>component</item>
			<item>binding</item>
			<item>index</item>
			<item>offset</item>

			<!-- interface block -->
			<item>row_major</item>
			<item>packed</item>
			<item>shared</item>
			<item>std140</item>
			<item>std430</item>

			<!-- force feedback -->
			<item>xfb_buffer</item>
			<item>xfb_offset</item>
			<item>xfb_stride</item>

			<!-- fragment shader -->
			<item>origin_upper_left</item>
			<item>pixel_center_integer</item>
			<item>early_fragment_tests</item>

			<!-- geometry shader-->
			<item>points</item>
			<item>lines</item>
			<item>lines_adjacency</item>
			<item>triangles</item>
			<item>triangles_adjacency</item>
			<item>line_strip</item>
			<item>triangle_strip</item>
			<item>max_vertices</item>
			<item>invocations</item>
			<item>stream</item>

			<!-- tesselation -->
			<item>isolines</item>
			<item>triangles</item>
			<item>quads</item>
			<item>point_mode</item>
			<item>equal_spacing</item>
			<item>fractional_even_spacing</item>
			<item>fractional_odd_spacing</item>
			<item>cw</item>
			<item>ccw</item>
			<item>vertices</item>

			<!-- memory qualifiers -->
			<item>coherent</item>
			<item>volatile</item>
			<item>restrict</item>
			<item>readonly</item>
			<item>writeonly</item>
		</list>
		<list name="attention">
			<item>FIXME</item>
			<item>TODO</item>
			<item>BUG</item>
		</list>
		<list name="stdlib">
			<!-- see also: https://www.opengl.org/sdk/docs/man4/ -->
			<item>abs</item>
			<item>acos</item>
			<item>acosh</item>
			<item>glActiveShaderProgram</item>
			<item>glActiveTexture</item>
			<item>all</item>
			<item>any</item>
			<item>asin</item>
			<item>asinh</item>
			<item>atan</item>
			<item>atanh</item>
			<item>atomicAdd</item>
			<item>atomicAnd</item>
			<item>atomicCompSwap</item>
			<item>atomicCounter</item>
			<item>atomicCounterDecrement</item>
			<item>atomicCounterIncrement</item>
			<item>atomicExchange</item>
			<item>atomicMax</item>
			<item>atomicMin</item>
			<item>atomicOr</item>
			<item>atomicXor</item>
			<item>glAttachShader</item>
			<item>barrier</item>
			<item>glBeginConditionalRender</item>
			<item>glBeginQuery</item>
			<item>glBeginQueryIndexed</item>
			<item>glBeginTransformFeedback</item>
			<item>glBindAttribLocation</item>
			<item>glBindBuffer</item>
			<item>glBindBufferBase</item>
			<item>glBindBufferRange</item>
			<item>glBindBuffersBase</item>
			<item>glBindBuffersRange</item>
			<item>glBindFragDataLocation</item>
			<item>glBindFragDataLocationIndexed</item>
			<item>glBindFramebuffer</item>
			<item>glBindImageTexture</item>
			<item>glBindImageTextures</item>
			<item>glBindProgramPipeline</item>
			<item>glBindRenderbuffer</item>
			<item>glBindSampler</item>
			<item>glBindSamplers</item>
			<item>glBindTexture</item>
			<item>glBindTextures</item>
			<item>glBindTextureUnit</item>
			<item>glBindTransformFeedback</item>
			<item>glBindVertexArray</item>
			<item>glBindVertexBuffer</item>
			<item>glBindVertexBuffers</item>
			<item>bitCount</item>
			<item>bitfieldExtract</item>
			<item>bitfieldInsert</item>
			<item>bitfieldReverse</item>
			<item>glBlendColor</item>
			<item>glBlendEquation</item>
			<item>glBlendEquationi</item>
			<item>glBlendEquationSeparate</item>
			<item>glBlendEquationSeparatei</item>
			<item>glBlendFunc</item>
			<item>glBlendFunci</item>
			<item>glBlendFuncSeparate</item>
			<item>glBlendFuncSeparatei</item>
			<item>glBlitFramebuffer</item>
			<item>glBlitNamedFramebuffer</item>
			<item>glBufferData</item>
			<item>glBufferStorage</item>
			<item>glBufferSubData</item>
			<item>ceil</item>
			<item>glCheckFramebufferStatus</item>
			<item>glCheckNamedFramebufferStatus</item>
			<item>clamp</item>
			<item>glClampColor</item>
			<item>glClear</item>
			<item>glClearBuffer</item>
			<item>glClearBufferData</item>
			<item>glClearBufferfi</item>
			<item>glClearBufferfv</item>
			<item>glClearBufferiv</item>
			<item>glClearBufferSubData</item>
			<item>glClearBufferuiv</item>
			<item>glClearColor</item>
			<item>glClearDepth</item>
			<item>glClearDepthf</item>
			<item>glClearNamedBufferData</item>
			<item>glClearNamedBufferSubData</item>
			<item>glClearNamedFramebufferfi</item>
			<item>glClearNamedFramebufferfv</item>
			<item>glClearNamedFramebufferiv</item>
			<item>glClearNamedFramebufferuiv</item>
			<item>glClearStencil</item>
			<item>glClearTexImage</item>
			<item>glClearTexSubImage</item>
			<item>glClientWaitSync</item>
			<item>glClipControl</item>
			<item>glColorMask</item>
			<item>glColorMaski</item>
			<item>glCompileShader</item>
			<item>glCompressedTexImage1D</item>
			<item>glCompressedTexImage2D</item>
			<item>glCompressedTexImage3D</item>
			<item>glCompressedTexSubImage1D</item>
			<item>glCompressedTexSubImage2D</item>
			<item>glCompressedTexSubImage3D</item>
			<item>glCompressedTextureSubImage1D</item>
			<item>glCompressedTextureSubImage2D</item>
			<item>glCompressedTextureSubImage3D</item>
			<item>glCopyBufferSubData</item>
			<item>glCopyImageSubData</item>
			<item>glCopyNamedBufferSubData</item>
			<item>glCopyTexImage1D</item>
			<item>glCopyTexImage2D</item>
			<item>glCopyTexSubImage1D</item>
			<item>glCopyTexSubImage2D</item>
			<item>glCopyTexSubImage3D</item>
			<item>glCopyTextureSubImage1D</item>
			<item>glCopyTextureSubImage2D</item>
			<item>glCopyTextureSubImage3D</item>
			<item>cos</item>
			<item>cosh</item>
			<item>glCreateBuffers</item>
			<item>glCreateFramebuffers</item>
			<item>glCreateProgram</item>
			<item>glCreateProgramPipelines</item>
			<item>glCreateQueries</item>
			<item>glCreateRenderbuffers</item>
			<item>glCreateSamplers</item>
			<item>glCreateShader</item>
			<item>glCreateShaderProgram</item>
			<item>glCreateShaderProgramv</item>
			<item>glCreateTextures</item>
			<item>glCreateTransformFeedbacks</item>
			<item>glCreateVertexArrays</item>
			<item>cross</item>
			<item>glCullFace</item>
			<item>glDebugMessageCallback</item>
			<item>glDebugMessageControl</item>
			<item>glDebugMessageInsert</item>
			<item>degrees</item>
			<item>glDeleteBuffers</item>
			<item>glDeleteFramebuffers</item>
			<item>glDeleteProgram</item>
			<item>glDeleteProgramPipelines</item>
			<item>glDeleteQueries</item>
			<item>glDeleteRenderbuffers</item>
			<item>glDeleteSamplers</item>
			<item>glDeleteShader</item>
			<item>glDeleteSync</item>
			<item>glDeleteTextures</item>
			<item>glDeleteTransformFeedbacks</item>
			<item>glDeleteVertexArrays</item>
			<item>glDepthFunc</item>
			<item>glDepthMask</item>
			<item>glDepthRange</item>
			<item>glDepthRangeArray</item>
			<item>glDepthRangeArrayv</item>
			<item>glDepthRangef</item>
			<item>glDepthRangeIndexed</item>
			<item>glDetachShader</item>
			<item>determinant</item>
			<item>dFdx</item>
			<item>dFdxCoarse</item>
			<item>dFdxFine</item>
			<item>dFdy</item>
			<item>dFdyCoarse</item>
			<item>dFdyFine</item>
			<item>glDisable</item>
			<item>glDisablei</item>
			<item>glDisableVertexArrayAttrib</item>
			<item>glDisableVertexAttribArray</item>
			<item>glDispatchCompute</item>
			<item>glDispatchComputeIndirect</item>
			<item>distance</item>
			<item>dot</item>
			<item>glDrawArrays</item>
			<item>glDrawArraysIndirect</item>
			<item>glDrawArraysInstanced</item>
			<item>glDrawArraysInstancedBaseInstance</item>
			<item>glDrawBuffer</item>
			<item>glDrawBuffers</item>
			<item>glDrawElements</item>
			<item>glDrawElementsBaseVertex</item>
			<item>glDrawElementsIndirect</item>
			<item>glDrawElementsInstanced</item>
			<item>glDrawElementsInstancedBaseInstance</item>
			<item>glDrawElementsInstancedBaseVertex</item>
			<item>glDrawElementsInstancedBaseVertexBaseInstance</item>
			<item>glDrawRangeElements</item>
			<item>glDrawRangeElementsBaseVertex</item>
			<item>glDrawTransformFeedback</item>
			<item>glDrawTransformFeedbackInstanced</item>
			<item>glDrawTransformFeedbackStream</item>
			<item>glDrawTransformFeedbackStreamInstanced</item>
			<item>EmitStreamVertex</item>
			<item>EmitVertex</item>
			<item>glEnable</item>
			<item>glEnablei</item>
			<item>glEnableVertexArrayAttrib</item>
			<item>glEnableVertexAttribArray</item>
			<item>glEndConditionalRender</item>
			<item>EndPrimitive</item>
			<item>glEndQuery</item>
			<item>glEndQueryIndexed</item>
			<item>EndStreamPrimitive</item>
			<item>glEndTransformFeedback</item>
			<item>equal</item>
			<item>exp</item>
			<item>exp2</item>
			<item>faceforward</item>
			<item>glFenceSync</item>
			<item>findLSB</item>
			<item>findMSB</item>
			<item>glFinish</item>
			<item>floatBitsToInt</item>
			<item>floatBitsToUint</item>
			<item>floor</item>
			<item>glFlush</item>
			<item>glFlushMappedBufferRange</item>
			<item>glFlushMappedNamedBufferRange</item>
			<item>fma</item>
			<item>fract</item>
			<item>glFramebufferParameteri</item>
			<item>glFramebufferRenderbuffer</item>
			<item>glFramebufferTexture</item>
			<item>glFramebufferTexture1D</item>
			<item>glFramebufferTexture2D</item>
			<item>glFramebufferTexture3D</item>
			<item>glFramebufferTextureLayer</item>
			<item>frexp</item>
			<item>glFrontFace</item>
			<item>fwidth</item>
			<item>fwidthCoarse</item>
			<item>fwidthFine</item>
			<item>glGenBuffers</item>
			<item>glGenerateMipmap</item>
			<item>glGenerateTextureMipmap</item>
			<item>glGenFramebuffers</item>
			<item>glGenProgramPipelines</item>
			<item>glGenQueries</item>
			<item>glGenRenderbuffers</item>
			<item>glGenSamplers</item>
			<item>glGenTextures</item>
			<item>glGenTransformFeedbacks</item>
			<item>glGenVertexArrays</item>
			<item>glGet</item>
			<item>glGetActiveAtomicCounterBufferiv</item>
			<item>glGetActiveAttrib</item>
			<item>glGetActiveSubroutineName</item>
			<item>glGetActiveSubroutineUniform</item>
			<item>glGetActiveSubroutineUniformiv</item>
			<item>glGetActiveSubroutineUniformName</item>
			<item>glGetActiveUniform</item>
			<item>glGetActiveUniformBlock</item>
			<item>glGetActiveUniformBlockiv</item>
			<item>glGetActiveUniformBlockName</item>
			<item>glGetActiveUniformName</item>
			<item>glGetActiveUniformsiv</item>
			<item>glGetAttachedShaders</item>
			<item>glGetAttribLocation</item>
			<item>glGetBooleani_v</item>
			<item>glGetBooleanv</item>
			<item>glGetBufferParameter</item>
			<item>glGetBufferParameteri64v</item>
			<item>glGetBufferParameteriv</item>
			<item>glGetBufferPointerv</item>
			<item>glGetBufferSubData</item>
			<item>glGetCompressedTexImage</item>
			<item>glGetCompressedTextureImage</item>
			<item>glGetCompressedTextureSubImage</item>
			<item>glGetDebugMessageLog</item>
			<item>glGetDoublei_v</item>
			<item>glGetDoublev</item>
			<item>glGetError</item>
			<item>glGetFloati_v</item>
			<item>glGetFloatv</item>
			<item>glGetFragDataIndex</item>
			<item>glGetFragDataLocation</item>
			<item>glGetFramebufferAttachmentParameter</item>
			<item>glGetFramebufferAttachmentParameteriv</item>
			<item>glGetFramebufferParameter</item>
			<item>glGetFramebufferParameteriv</item>
			<item>glGetGraphicsResetStatus</item>
			<item>glGetInteger64i_v</item>
			<item>glGetInteger64v</item>
			<item>glGetIntegeri_v</item>
			<item>glGetIntegerv</item>
			<item>glGetInternalformat</item>
			<item>glGetInternalformati64v</item>
			<item>glGetInternalformativ</item>
			<item>glGetMultisample</item>
			<item>glGetMultisamplefv</item>
			<item>glGetNamedBufferParameteri64v</item>
			<item>glGetNamedBufferParameteriv</item>
			<item>glGetNamedBufferPointerv</item>
			<item>glGetNamedBufferSubData</item>
			<item>glGetNamedFramebufferAttachmentParameteriv</item>
			<item>glGetNamedFramebufferParameteriv</item>
			<item>glGetNamedRenderbufferParameteriv</item>
			<item>glGetnCompressedTexImage</item>
			<item>glGetnTexImage</item>
			<item>glGetnUniformdv</item>
			<item>glGetnUniformfv</item>
			<item>glGetnUniformiv</item>
			<item>glGetnUniformuiv</item>
			<item>glGetObjectLabel</item>
			<item>glGetObjectPtrLabel</item>
			<item>glGetPointerv</item>
			<item>glGetProgram</item>
			<item>glGetProgramBinary</item>
			<item>glGetProgramInfoLog</item>
			<item>glGetProgramInterface</item>
			<item>glGetProgramInterfaceiv</item>
			<item>glGetProgramiv</item>
			<item>glGetProgramPipeline</item>
			<item>glGetProgramPipelineInfoLog</item>
			<item>glGetProgramPipelineiv</item>
			<item>glGetProgramResource</item>
			<item>glGetProgramResourceIndex</item>
			<item>glGetProgramResourceiv</item>
			<item>glGetProgramResourceLocation</item>
			<item>glGetProgramResourceLocationIndex</item>
			<item>glGetProgramResourceName</item>
			<item>glGetProgramStage</item>
			<item>glGetProgramStageiv</item>
			<item>glGetQueryIndexed</item>
			<item>glGetQueryIndexediv</item>
			<item>glGetQueryiv</item>
			<item>glGetQueryObject</item>
			<item>glGetQueryObjecti64v</item>
			<item>glGetQueryObjectiv</item>
			<item>glGetQueryObjectui64v</item>
			<item>glGetQueryObjectuiv</item>
			<item>glGetRenderbufferParameter</item>
			<item>glGetRenderbufferParameteriv</item>
			<item>glGetSamplerParameter</item>
			<item>glGetSamplerParameterfv</item>
			<item>glGetSamplerParameterIiv</item>
			<item>glGetSamplerParameterIuiv</item>
			<item>glGetSamplerParameteriv</item>
			<item>glGetShader</item>
			<item>glGetShaderInfoLog</item>
			<item>glGetShaderiv</item>
			<item>glGetShaderPrecisionFormat</item>
			<item>glGetShaderSource</item>
			<item>glGetString</item>
			<item>glGetStringi</item>
			<item>glGetSubroutineIndex</item>
			<item>glGetSubroutineUniformLocation</item>
			<item>glGetSync</item>
			<item>glGetSynciv</item>
			<item>glGetTexImage</item>
			<item>glGetTexLevelParameter</item>
			<item>glGetTexLevelParameterfv</item>
			<item>glGetTexLevelParameteriv</item>
			<item>glGetTexParameter</item>
			<item>glGetTexParameterfv</item>
			<item>glGetTexParameterIiv</item>
			<item>glGetTexParameterIuiv</item>
			<item>glGetTexParameteriv</item>
			<item>glGetTextureImage</item>
			<item>glGetTextureLevelParameterfv</item>
			<item>glGetTextureLevelParameteriv</item>
			<item>glGetTextureParameterfv</item>
			<item>glGetTextureParameterIiv</item>
			<item>glGetTextureParameterIuiv</item>
			<item>glGetTextureParameteriv</item>
			<item>glGetTextureSubImage</item>
			<item>glGetTransformFeedback</item>
			<item>glGetTransformFeedbacki64_v</item>
			<item>glGetTransformFeedbacki_v</item>
			<item>glGetTransformFeedbackiv</item>
			<item>glGetTransformFeedbackVarying</item>
			<item>glGetUniform</item>
			<item>glGetUniformBlockIndex</item>
			<item>glGetUniformdv</item>
			<item>glGetUniformfv</item>
			<item>glGetUniformIndices</item>
			<item>glGetUniformiv</item>
			<item>glGetUniformLocation</item>
			<item>glGetUniformSubroutine</item>
			<item>glGetUniformSubroutineuiv</item>
			<item>glGetUniformuiv</item>
			<item>glGetVertexArrayIndexed</item>
			<item>glGetVertexArrayIndexed64iv</item>
			<item>glGetVertexArrayIndexediv</item>
			<item>glGetVertexArrayiv</item>
			<item>glGetVertexAttrib</item>
			<item>glGetVertexAttribdv</item>
			<item>glGetVertexAttribfv</item>
			<item>glGetVertexAttribIiv</item>
			<item>glGetVertexAttribIuiv</item>
			<item>glGetVertexAttribiv</item>
			<item>glGetVertexAttribLdv</item>
			<item>glGetVertexAttribPointerv</item>
			<item>gl_ClipDistance</item>
			<item>gl_CullDistance</item>
			<item>gl_FragCoord</item>
			<item>gl_FragDepth</item>
			<item>gl_FrontFacing</item>
			<item>gl_GlobalInvocationID</item>
			<item>gl_HelperInvocation</item>
			<item>gl_InstanceID</item>
			<item>gl_InvocationID</item>
			<item>gl_Layer</item>
			<item>gl_LocalInvocationID</item>
			<item>gl_LocalInvocationIndex</item>
			<item>gl_NumSamples</item>
			<item>gl_NumWorkGroups</item>
			<item>gl_PatchVerticesIn</item>
			<item>gl_PointCoord</item>
			<item>gl_PointSize</item>
			<item>gl_Position</item>
			<item>gl_PrimitiveID</item>
			<item>gl_PrimitiveIDIn</item>
			<item>gl_SampleID</item>
			<item>gl_SampleMask</item>
			<item>gl_SampleMaskIn</item>
			<item>gl_SamplePosition</item>
			<item>gl_TessCoord</item>
			<item>gl_TessLevelInner</item>
			<item>gl_TessLevelOuter</item>
			<item>gl_VertexID</item>
			<item>gl_ViewportIndex</item>
			<item>gl_WorkGroupID</item>
			<item>gl_WorkGroupSize</item>
			<item>greaterThan</item>
			<item>greaterThanEqual</item>
			<item>groupMemoryBarrier</item>
			<item>glHint</item>
			<item>imageAtomicAdd</item>
			<item>imageAtomicAnd</item>
			<item>imageAtomicCompSwap</item>
			<item>imageAtomicExchange</item>
			<item>imageAtomicMax</item>
			<item>imageAtomicMin</item>
			<item>imageAtomicOr</item>
			<item>imageAtomicXor</item>
			<item>imageLoad</item>
			<item>imageSamples</item>
			<item>imageSize</item>
			<item>imageStore</item>
			<item>imulExtended</item>
			<item>intBitsToFloat</item>
			<item>interpolateAtCentroid</item>
			<item>interpolateAtOffset</item>
			<item>interpolateAtSample</item>
			<item>glInvalidateBufferData</item>
			<item>glInvalidateBufferSubData</item>
			<item>glInvalidateFramebuffer</item>
			<item>glInvalidateNamedFramebufferData</item>
			<item>glInvalidateNamedFramebufferSubData</item>
			<item>glInvalidateSubFramebuffer</item>
			<item>glInvalidateTexImage</item>
			<item>glInvalidateTexSubImage</item>
			<item>inverse</item>
			<item>inversesqrt</item>
			<item>glIsBuffer</item>
			<item>glIsEnabled</item>
			<item>glIsEnabledi</item>
			<item>glIsFramebuffer</item>
			<item>isinf</item>
			<item>isnan</item>
			<item>glIsProgram</item>
			<item>glIsProgramPipeline</item>
			<item>glIsQuery</item>
			<item>glIsRenderbuffer</item>
			<item>glIsSampler</item>
			<item>glIsShader</item>
			<item>glIsSync</item>
			<item>glIsTexture</item>
			<item>glIsTransformFeedback</item>
			<item>glIsVertexArray</item>
			<item>ldexp</item>
			<item>length</item>
			<item>lessThan</item>
			<item>lessThanEqual</item>
			<item>glLineWidth</item>
			<item>glLinkProgram</item>
			<item>log</item>
			<item>log2</item>
			<item>glLogicOp</item>
			<item>glMapBuffer</item>
			<item>glMapBufferRange</item>
			<item>glMapNamedBuffer</item>
			<item>glMapNamedBufferRange</item>
			<item>matrixCompMult</item>
			<item>max</item>
			<item>memoryBarrier</item>
			<item>glMemoryBarrier</item>
			<item>memoryBarrierAtomicCounter</item>
			<item>memoryBarrierBuffer</item>
			<item>glMemoryBarrierByRegion</item>
			<item>memoryBarrierImage</item>
			<item>memoryBarrierShared</item>
			<item>min</item>
			<item>glMinSampleShading</item>
			<item>mix</item>
			<item>mod</item>
			<item>modf</item>
			<item>glMultiDrawArrays</item>
			<item>glMultiDrawArraysIndirect</item>
			<item>glMultiDrawElements</item>
			<item>glMultiDrawElementsBaseVertex</item>
			<item>glMultiDrawElementsIndirect</item>
			<item>glNamedBufferData</item>
			<item>glNamedBufferStorage</item>
			<item>glNamedBufferSubData</item>
			<item>glNamedFramebufferDrawBuffer</item>
			<item>glNamedFramebufferDrawBuffers</item>
			<item>glNamedFramebufferParameteri</item>
			<item>glNamedFramebufferReadBuffer</item>
			<item>glNamedFramebufferRenderbuffer</item>
			<item>glNamedFramebufferTexture</item>
			<item>glNamedFramebufferTextureLayer</item>
			<item>glNamedRenderbufferStorage</item>
			<item>glNamedRenderbufferStorageMultisample</item>
			<item>noise</item>
			<item>noise1</item>
			<item>noise2</item>
			<item>noise3</item>
			<item>noise4</item>
			<item>normalize</item>
			<item>not</item>
			<item>notEqual</item>
			<item>glObjectLabel</item>
			<item>glObjectPtrLabel</item>
			<item>outerProduct</item>
			<item>packDouble2x32</item>
			<item>packHalf2x16</item>
			<item>packSnorm2x16</item>
			<item>packSnorm4x8</item>
			<item>packUnorm</item>
			<item>packUnorm2x16</item>
			<item>packUnorm4x8</item>
			<item>glPatchParameter</item>
			<item>glPatchParameterfv</item>
			<item>glPatchParameteri</item>
			<item>glPauseTransformFeedback</item>
			<item>glPixelStore</item>
			<item>glPixelStoref</item>
			<item>glPixelStorei</item>
			<item>glPointParameter</item>
			<item>glPointParameterf</item>
			<item>glPointParameterfv</item>
			<item>glPointParameteri</item>
			<item>glPointParameteriv</item>
			<item>glPointSize</item>
			<item>glPolygonMode</item>
			<item>glPolygonOffset</item>
			<item>glPopDebugGroup</item>
			<item>pow</item>
			<item>glPrimitiveRestartIndex</item>
			<item>glProgramBinary</item>
			<item>glProgramParameter</item>
			<item>glProgramParameteri</item>
			<item>glProgramUniform</item>
			<item>glProgramUniform1f</item>
			<item>glProgramUniform1fv</item>
			<item>glProgramUniform1i</item>
			<item>glProgramUniform1iv</item>
			<item>glProgramUniform1ui</item>
			<item>glProgramUniform1uiv</item>
			<item>glProgramUniform2f</item>
			<item>glProgramUniform2fv</item>
			<item>glProgramUniform2i</item>
			<item>glProgramUniform2iv</item>
			<item>glProgramUniform2ui</item>
			<item>glProgramUniform2uiv</item>
			<item>glProgramUniform3f</item>
			<item>glProgramUniform3fv</item>
			<item>glProgramUniform3i</item>
			<item>glProgramUniform3iv</item>
			<item>glProgramUniform3ui</item>
			<item>glProgramUniform3uiv</item>
			<item>glProgramUniform4f</item>
			<item>glProgramUniform4fv</item>
			<item>glProgramUniform4i</item>
			<item>glProgramUniform4iv</item>
			<item>glProgramUniform4ui</item>
			<item>glProgramUniform4uiv</item>
			<item>glProgramUniformMatrix2fv</item>
			<item>glProgramUniformMatrix2x3fv</item>
			<item>glProgramUniformMatrix2x4fv</item>
			<item>glProgramUniformMatrix3fv</item>
			<item>glProgramUniformMatrix3x2fv</item>
			<item>glProgramUniformMatrix3x4fv</item>
			<item>glProgramUniformMatrix4fv</item>
			<item>glProgramUniformMatrix4x2fv</item>
			<item>glProgramUniformMatrix4x3fv</item>
			<item>glProvokingVertex</item>
			<item>glPushDebugGroup</item>
			<item>glQueryCounter</item>
			<item>radians</item>
			<item>glReadBuffer</item>
			<item>glReadnPixels</item>
			<item>glReadPixels</item>
			<item>reflect</item>
			<item>refract</item>
			<item>glReleaseShaderCompiler</item>
			<item>removedTypes</item>
			<item>glRenderbufferStorage</item>
			<item>glRenderbufferStorageMultisample</item>
			<item>glResumeTransformFeedback</item>
			<item>round</item>
			<item>roundEven</item>
			<item>glSampleCoverage</item>
			<item>glSampleMaski</item>
			<item>glSamplerParameter</item>
			<item>glSamplerParameterf</item>
			<item>glSamplerParameterfv</item>
			<item>glSamplerParameteri</item>
			<item>glSamplerParameterIiv</item>
			<item>glSamplerParameterIuiv</item>
			<item>glSamplerParameteriv</item>
			<item>glScissor</item>
			<item>glScissorArray</item>
			<item>glScissorArrayv</item>
			<item>glScissorIndexed</item>
			<item>glScissorIndexedv</item>
			<item>glShaderBinary</item>
			<item>glShaderSource</item>
			<item>glShaderStorageBlockBinding</item>
			<item>sign</item>
			<item>sin</item>
			<item>sinh</item>
			<item>smoothstep</item>
			<item>sqrt</item>
			<item>glStencilFunc</item>
			<item>glStencilFuncSeparate</item>
			<item>glStencilMask</item>
			<item>glStencilMaskSeparate</item>
			<item>glStencilOp</item>
			<item>glStencilOpSeparate</item>
			<item>step</item>
			<item>tan</item>
			<item>tanh</item>
			<item>glTexBuffer</item>
			<item>glTexBufferRange</item>
			<item>texelFetch</item>
			<item>texelFetchOffset</item>
			<item>glTexImage1D</item>
			<item>glTexImage2D</item>
			<item>glTexImage2DMultisample</item>
			<item>glTexImage3D</item>
			<item>glTexImage3DMultisample</item>
			<item>glTexParameter</item>
			<item>glTexParameterf</item>
			<item>glTexParameterfv</item>
			<item>glTexParameteri</item>
			<item>glTexParameterIiv</item>
			<item>glTexParameterIuiv</item>
			<item>glTexParameteriv</item>
			<item>glTexStorage1D</item>
			<item>glTexStorage2D</item>
			<item>glTexStorage2DMultisample</item>
			<item>glTexStorage3D</item>
			<item>glTexStorage3DMultisample</item>
			<item>glTexSubImage1D</item>
			<item>glTexSubImage2D</item>
			<item>glTexSubImage3D</item>
			<item>texture</item>
			<item>glTextureBarrier</item>
			<item>glTextureBuffer</item>
			<item>glTextureBufferRange</item>
			<item>textureGather</item>
			<item>textureGatherOffset</item>
			<item>textureGatherOffsets</item>
			<item>textureGrad</item>
			<item>textureGradOffset</item>
			<item>textureLod</item>
			<item>textureLodOffset</item>
			<item>textureOffset</item>
			<item>glTextureParameterf</item>
			<item>glTextureParameterfv</item>
			<item>glTextureParameteri</item>
			<item>glTextureParameterIiv</item>
			<item>glTextureParameterIuiv</item>
			<item>glTextureParameteriv</item>
			<item>textureProj</item>
			<item>textureProjGrad</item>
			<item>textureProjGradOffset</item>
			<item>textureProjLod</item>
			<item>textureProjLodOffset</item>
			<item>textureProjOffset</item>
			<item>textureQueryLevels</item>
			<item>textureQueryLod</item>
			<item>textureSamples</item>
			<item>textureSize</item>
			<item>glTextureStorage1D</item>
			<item>glTextureStorage2D</item>
			<item>glTextureStorage2DMultisample</item>
			<item>glTextureStorage3D</item>
			<item>glTextureStorage3DMultisample</item>
			<item>glTextureSubImage1D</item>
			<item>glTextureSubImage2D</item>
			<item>glTextureSubImage3D</item>
			<item>glTextureView</item>
			<item>glTransformFeedbackBufferBase</item>
			<item>glTransformFeedbackBufferRange</item>
			<item>glTransformFeedbackVaryings</item>
			<item>transpose</item>
			<item>trunc</item>
			<item>uaddCarry</item>
			<item>uintBitsToFloat</item>
			<item>umulExtended</item>
			<item>glUniform</item>
			<item>glUniform1f</item>
			<item>glUniform1fv</item>
			<item>glUniform1i</item>
			<item>glUniform1iv</item>
			<item>glUniform1ui</item>
			<item>glUniform1uiv</item>
			<item>glUniform2f</item>
			<item>glUniform2fv</item>
			<item>glUniform2i</item>
			<item>glUniform2iv</item>
			<item>glUniform2ui</item>
			<item>glUniform2uiv</item>
			<item>glUniform3f</item>
			<item>glUniform3fv</item>
			<item>glUniform3i</item>
			<item>glUniform3iv</item>
			<item>glUniform3ui</item>
			<item>glUniform3uiv</item>
			<item>glUniform4f</item>
			<item>glUniform4fv</item>
			<item>glUniform4i</item>
			<item>glUniform4iv</item>
			<item>glUniform4ui</item>
			<item>glUniform4uiv</item>
			<item>glUniformBlockBinding</item>
			<item>glUniformMatrix2fv</item>
			<item>glUniformMatrix2x3fv</item>
			<item>glUniformMatrix2x4fv</item>
			<item>glUniformMatrix3fv</item>
			<item>glUniformMatrix3x2fv</item>
			<item>glUniformMatrix3x4fv</item>
			<item>glUniformMatrix4fv</item>
			<item>glUniformMatrix4x2fv</item>
			<item>glUniformMatrix4x3fv</item>
			<item>glUniformSubroutines</item>
			<item>glUniformSubroutinesuiv</item>
			<item>glUnmapBuffer</item>
			<item>glUnmapNamedBuffer</item>
			<item>unpackDouble2x32</item>
			<item>unpackHalf2x16</item>
			<item>unpackSnorm2x16</item>
			<item>unpackSnorm4x8</item>
			<item>unpackUnorm</item>
			<item>unpackUnorm2x16</item>
			<item>unpackUnorm4x8</item>
			<item>glUseProgram</item>
			<item>glUseProgramStages</item>
			<item>usubBorrow</item>
			<item>glValidateProgram</item>
			<item>glValidateProgramPipeline</item>
			<item>glVertexArrayAttribBinding</item>
			<item>glVertexArrayAttribFormat</item>
			<item>glVertexArrayAttribIFormat</item>
			<item>glVertexArrayAttribLFormat</item>
			<item>glVertexArrayBindingDivisor</item>
			<item>glVertexArrayElementBuffer</item>
			<item>glVertexArrayVertexBuffer</item>
			<item>glVertexArrayVertexBuffers</item>
			<item>glVertexAttrib</item>
			<item>glVertexAttrib1d</item>
			<item>glVertexAttrib1dv</item>
			<item>glVertexAttrib1f</item>
			<item>glVertexAttrib1fv</item>
			<item>glVertexAttrib1s</item>
			<item>glVertexAttrib1sv</item>
			<item>glVertexAttrib2d</item>
			<item>glVertexAttrib2dv</item>
			<item>glVertexAttrib2f</item>
			<item>glVertexAttrib2fv</item>
			<item>glVertexAttrib2s</item>
			<item>glVertexAttrib2sv</item>
			<item>glVertexAttrib3d</item>
			<item>glVertexAttrib3dv</item>
			<item>glVertexAttrib3f</item>
			<item>glVertexAttrib3fv</item>
			<item>glVertexAttrib3s</item>
			<item>glVertexAttrib3sv</item>
			<item>glVertexAttrib4bv</item>
			<item>glVertexAttrib4d</item>
			<item>glVertexAttrib4dv</item>
			<item>glVertexAttrib4f</item>
			<item>glVertexAttrib4fv</item>
			<item>glVertexAttrib4iv</item>
			<item>glVertexAttrib4Nbv</item>
			<item>glVertexAttrib4Niv</item>
			<item>glVertexAttrib4Nsv</item>
			<item>glVertexAttrib4Nub</item>
			<item>glVertexAttrib4Nubv</item>
			<item>glVertexAttrib4Nuiv</item>
			<item>glVertexAttrib4Nusv</item>
			<item>glVertexAttrib4s</item>
			<item>glVertexAttrib4sv</item>
			<item>glVertexAttrib4ubv</item>
			<item>glVertexAttrib4uiv</item>
			<item>glVertexAttrib4usv</item>
			<item>glVertexAttribBinding</item>
			<item>glVertexAttribDivisor</item>
			<item>glVertexAttribFormat</item>
			<item>glVertexAttribI1i</item>
			<item>glVertexAttribI1iv</item>
			<item>glVertexAttribI1ui</item>
			<item>glVertexAttribI1uiv</item>
			<item>glVertexAttribI2i</item>
			<item>glVertexAttribI2iv</item>
			<item>glVertexAttribI2ui</item>
			<item>glVertexAttribI2uiv</item>
			<item>glVertexAttribI3i</item>
			<item>glVertexAttribI3iv</item>
			<item>glVertexAttribI3ui</item>
			<item>glVertexAttribI3uiv</item>
			<item>glVertexAttribI4bv</item>
			<item>glVertexAttribI4i</item>
			<item>glVertexAttribI4iv</item>
			<item>glVertexAttribI4sv</item>
			<item>glVertexAttribI4ubv</item>
			<item>glVertexAttribI4ui</item>
			<item>glVertexAttribI4uiv</item>
			<item>glVertexAttribI4usv</item>
			<item>glVertexAttribIFormat</item>
			<item>glVertexAttribIPointer</item>
			<item>glVertexAttribL1d</item>
			<item>glVertexAttribL1dv</item>
			<item>glVertexAttribL2d</item>
			<item>glVertexAttribL2dv</item>
			<item>glVertexAttribL3d</item>
			<item>glVertexAttribL3dv</item>
			<item>glVertexAttribL4d</item>
			<item>glVertexAttribL4dv</item>
			<item>glVertexAttribLFormat</item>
			<item>glVertexAttribLPointer</item>
			<item>glVertexAttribP1ui</item>
			<item>glVertexAttribP2ui</item>
			<item>glVertexAttribP3ui</item>
			<item>glVertexAttribP4ui</item>
			<item>glVertexAttribPointer</item>
			<item>glVertexBindingDivisor</item>
			<item>glViewport</item>
			<item>glViewportArray</item>
			<item>glViewportArrayv</item>
			<item>glViewportIndexed</item>
			<item>glViewportIndexedf</item>
			<item>glViewportIndexedfv</item>
			<item>glWaitSync</item>
		</list>
		<list name="stdvar">
			<!-- Vertex Shader Special Variables -->
			<item>gl_Position</item>
			<item>gl_PointSize</item>
			<item>gl_ClipVertex</item>

			<!-- Fragment Shader Special Variables -->
			<item>gl_FragCoord</item>
			<item>gl_FragFacing</item>
			<item>gl_FragColor</item>
			<item>gl_FragData</item>
			<item>gl_FragDepth</item>

			<!-- Vertex Shader Built-in Attributes -->
			<item>gl_Color</item>
			<item>gl_SecondaryColor</item>
			<item>gl_Normal</item>
			<item>gl_Vertex</item>
			<item>gl_MultiTexCoord0</item>
			<item>gl_MultiTexCoord1</item>
			<item>gl_MultiTexCoord2</item>
			<item>gl_MultiTexCoord2</item>
			<item>gl_MultiTexCoord3</item>
			<item>gl_MultiTexCoord4</item>
			<item>gl_MultiTexCoord5</item>
			<item>gl_MultiTexCoord6</item>
			<item>gl_MultiTexCoord7</item>
			<item>gl_FogColor</item>

			<!-- Geometry Shader Built-in Attributes -->
			<item>gl_ClipDistance</item>
			<item>gl_PrimitiveIDIn</item>
			<item>gl_InvocationID</item>
			<item>gl_PrimitiveID</item>
			<item>gl_Layer</item>
			<item>gl_ViewportIndex</item>

			<!-- Tesselation Shader Built-In Attributes -->
			<item>gl_TessCoord</item>
			<item>gl_PatchVerticesIn</item>
			<item>gl_TessLevelOuter</item>
			<item>gl_TessLevelInner</item>
			<item>gl_MaxPatchVertices</item>
			<item>gl_in</item>
			<item>gl_out</item>

			<!-- Built-in Constants -->
			<item>gl_MaxLights</item>
			<item>gl_MaxClipPlanes</item>
			<item>gl_MaxTextureUnits</item>
			<item>gl_MaxTextureCoords</item>
			<item>gl_MaxVertexAttributes</item>
			<item>gl_MaxVertexUniformComponents</item>
			<item>gl_MaxVaryingFloats</item>
			<item>gl_MaxVertexTextureImageUnits</item>
			<item>gl_MaxCombinedTextureImageUnits</item>
			<item>gl_MaxTextureImageUnits</item>
			<item>gl_MaxFragmentUniformComponents</item>
			<item>gl_MaxDrawBuffers</item>

			<!-- Built-in Uniform State -->
			<item>gl_ModelViewMatrix</item>
			<item>gl_ProjectionMatrix</item>
			<item>gl_ModelViewProjectionMatrix</item>
			<item>gl_TextureMatrix</item>
			<item>gl_NormalMatrix</item>
			<item>gl_ModelViewMatrixInverse</item>
			<item>gl_ProjectionMatrixInverse</item>
			<item>gl_ModelViewProjectionMatrixInverse</item>
			<item>gl_TextureMatrixInverse</item>
			<item>gl_ModelViewMatrixTranspose</item>
			<item>gl_ProjectionMatrixTranspose</item>
			<item>gl_ModelViewProjectionMatrixTranspose</item>
			<item>gl_TextureMatrixTranspose</item>
			<item>gl_ModelViewMatrixInverseTranspose</item>
			<item>gl_ProjectionMatrixInverseTranspose</item>
			<item>gl_ModelViewProjectionMatrixInverseTranspose</item>
			<item>gl_TextureMatrixInverseTranspose</item>
			<item>gl_NormScale</item>
			<item>gl_DepthRangeParameters</item>
			<item>gl_DepthRange</item>
			<item>gl_ClipPlane</item>
			<item>gl_PointParameters</item>
			<item>gl_Point</item>
			<item>gl_MaterialParameters</item>
			<item>gl_FrontMaterial</item>
			<item>gl_BackMaterial</item>
			<item>gl_LightSourceParameters</item>
			<item>gl_LightSource</item>
			<item>gl_LightModelParameters</item>
			<item>gl_LightModel</item>
			<item>gl_LightModelProducts</item>
			<item>gl_FrontLightModelProduct</item>
			<item>gl_BackLightModelProduct</item>
			<item>gl_LightProducts</item>
			<item>gl_FrontLightProduct</item>
			<item>gl_BackLightProduct</item>
			<item>gl_TextureEnvColor</item>
			<item>gl_EyePlaneS</item>
			<item>gl_EyePlaneT</item>
			<item>gl_EyePlaneR</item>
			<item>gl_EyePlaneQ</item>
			<item>gl_ObjectPlaneS</item>
			<item>gl_ObjectPlaneT</item>
			<item>gl_ObjectPlaneR</item>
			<item>gl_ObjectPlaneQ</item>
			<item>gl_FogParameters</item>
			<item>gl_Fog</item>

			<!-- Varying Variables -->
			<item>gl_FrontColor</item>
			<item>gl_BackColor</item>
			<item>gl_FrontSecondaryColor</item>
			<item>gl_BackSecondaryColor</item>
			<item>gl_TexCoord</item>
			<item>gl_FogFragCoord</item>
			<item>gl_Color</item>
			<item>gl_SecondaryColor</item>
		</list>
		<contexts>
			<context attribute="Normal Text" lineEndContext="#stay" name="Normal">
				<keyword attribute="Keyword" String="keywords" context="#stay" />
				<keyword attribute="Data Type" String="types" context="#stay" />
				<keyword attribute="Type Qualifier" String="typequal" context="#stay" />
				<keyword attribute="StdFunction" String="stdlib" context="#stay" />
				<keyword attribute="StdVariable" String="stdvar" context="#stay" />
				
				<Float attribute="Float" context="#stay" />
				<HlCOct attribute="Octal" context="#stay"/>
				<HlCHex attribute="Hex" context="#stay"/>
				<Int attribute="Decimal" context="#stay" />
				
				<Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="/"/>
				<Detect2Chars attribute="Comment" context="Commentar 2" char="/" char1="*" beginRegion="Comment"/>
				<DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1" />
				<DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1" />
				
				<DetectChar attribute="Preprocessor" context="Preprocessor" char="#" firstNonSpace="true"/>
				<RegExpr attribute="Function" context="#stay" String="\b[_\w][_\w\d]*(?=[\s]*[(])" />
				
				<RegExpr attribute="Symbol" context="Member" String="[.]{1,1}" />
				<AnyChar attribute="Symbol" context="#stay" String=".+-/*%&lt;&gt;[]()^|&amp;~=!:;,?&#59;" />
			</context>
			<context name="Member" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
				<RegExpr attribute="Function" context="#pop" String="\b[_\w][_\w\d]*(?=[\s]*)" />
			</context>
			<context name="Commentar 1" attribute="Comment" lineEndContext="#pop">
				<keyword attribute="Alert" context="#stay" String="attention" />
			</context>
			<context name="Commentar 2" attribute="Comment" lineEndContext="#stay">
				<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
				<keyword attribute="Alert" context="#stay" String="attention" />
			</context>
			<context name="Preprocessor" attribute="Preprocessor" lineEndContext="#pop">
			</context>
	        </contexts>
		<itemDatas>
			<itemData name="Normal Text"    defStyleNum="dsNormal"/>
			<itemData name="Keyword"        defStyleNum="dsKeyword"/>
			<itemData name="Function"       defStyleNum="dsFunction" bold="0"/>
			<itemData name="StdFunction"    defStyleNum="dsFunction" bold="1"/>
			<itemData name="StdVariable"    defStyleNum="dsFunction" bold="0"/>
			<itemData name="Data Type"      defStyleNum="dsDataType"/>
			<itemData name="Type Qualifier" defStyleNum="dsDataType"/>
			<itemData name="Decimal"        defStyleNum="dsDecVal"/>
			<itemData name="Octal"          defStyleNum="dsBaseN"/>
			<itemData name="Hex"            defStyleNum="dsBaseN"/>
			<itemData name="Float"          defStyleNum="dsFloat"/>
			<itemData name="Symbol"         defStyleNum="dsNormal"/>
			<itemData name="Preprocessor"   defStyleNum="dsOthers"/>
			<itemData name="Comment"        defStyleNum="dsComment"/>
			<itemData name="Alert"          defStyleNum="dsAlert" />
		</itemDatas>
	</highlighting>
	<general>
		<comments>
			<comment name="singleLine" start="//" />
			<comment name="multiLine" start="/*" end="*/" />
		</comments>
		<keywords casesensitive="1" />
	</general>
</language>
