home *** CD-ROM | disk | FTP | other *** search
/ Clickx 115 / Clickx 115.iso / software / tools / windows / tails-i386-0.16.iso / live / filesystem.squashfs / usr / share / gtksourceview-2.0 / language-specs / glsl.lang < prev    next >
Encoding:
Extensible Markup Language  |  2010-08-16  |  17.3 KB  |  483 lines

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!--
  3.  
  4.  Authors:  Chong Kai Xiong, Simon Wenner
  5.  Copyright (C) 2005-2006  Chong Kai Xiong  <descender@phreaker.net>
  6.  Copyright (C) 2009-2010  Simon Wenner  <simon@wenner.ch>
  7.  
  8.  This library is free software; you can redistribute it and/or
  9.  modify it under the terms of the GNU Library General Public
  10.  License as published by the Free Software Foundation; either
  11.  version 2 of the License, or (at your option) any later version.
  12.  
  13.  This library is distributed in the hope that it will be useful,
  14.  but WITHOUT ANY WARRANTY; without even the implied warranty of
  15.  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  16.  Library General Public License for more details.
  17.  
  18.  You should have received a copy of the GNU Library General Public
  19.  License along with this library; if not, write to the
  20.  Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  21.  Boston, MA 02111-1307, USA.
  22.  
  23. -->
  24.  
  25. <!--
  26.  Defines all symbols of the OpenGL Shading Language (GLSL) version 4.0.
  27.  Specification (February 12, 2010):
  28. http://www.opengl.org/registry/doc/GLSLangSpec.4.00.7.pdf
  29. -->
  30. <language id="glsl" _name="OpenGL Shading Language" version="2.0" _section="Sources">
  31.  
  32.   <metadata>
  33.     <property name="globs">*.glslv;*.glslf</property>
  34.     <property name="line-comment-start">//</property>
  35.     <property name="block-comment-start">/*</property>
  36.     <property name="block-comment-end">*/</property>
  37.   </metadata>
  38.  
  39.   <styles>
  40.     <style id="preprocessor"      _name="Preprocessor"          map-to="def:preprocessor"/>
  41.     <style id="type"              _name="Data Type"             map-to="def:type"/>
  42.     <style id="keyword"           _name="Keyword"               map-to="def:keyword"/>
  43.     <style id="builtin-function"  _name="Builtin Function"      map-to="def:builtin"/>
  44.     <style id="builtin-constant"  _name="Builtin Constant"      map-to="def:constant"/>
  45.     <style id="builtin-variable"  _name="Builtin Variable"      map-to="def:identifier"/>
  46.     <style id="future-use"        _name="Reserved Keywords"/>
  47.   </styles>
  48.  
  49.   <definitions>
  50.     <context id="preprocessor" style-ref="preprocessor">
  51.       <prefix>^[ \t]*#[ \t]*</prefix>
  52.       <keyword>define</keyword>
  53.       <keyword>undef</keyword>
  54.       <keyword>(if|elif)([ \t]+defined)?</keyword>
  55.       <keyword>ifdef</keyword>
  56.       <keyword>ifndef</keyword>
  57.       <keyword>else</keyword>
  58.       <keyword>endif</keyword>
  59.       <keyword>error</keyword>
  60.       <keyword>pragma</keyword>
  61.       <keyword>extension</keyword>
  62.       <keyword>version</keyword>
  63.       <keyword>line</keyword>
  64.     </context>
  65.  
  66.     <context id="common-macros" style-ref="preprocessor">
  67.       <keyword>__VERSION__</keyword>
  68.       <keyword>__LINE__</keyword>
  69.       <keyword>__FILE__</keyword>
  70.     </context>
  71.  
  72.     <context id="keywords" style-ref="keyword">
  73.       <keyword>break</keyword>
  74.       <keyword>continue</keyword>
  75.       <keyword>discard</keyword>
  76.       <keyword>do</keyword>
  77.       <keyword>for</keyword>
  78.       <keyword>if</keyword>
  79.       <keyword>else</keyword>
  80.       <keyword>return</keyword>
  81.       <keyword>while</keyword>
  82.       <keyword>switch</keyword>
  83.       <keyword>case</keyword>
  84.       <keyword>default</keyword>
  85.       <!-- qualifiers -->
  86.       <keyword>attribute</keyword>
  87.       <keyword>const</keyword>
  88.       <keyword>in</keyword>
  89.       <keyword>inout</keyword>
  90.       <keyword>out</keyword>
  91.       <keyword>uniform</keyword>
  92.       <keyword>varying</keyword>
  93.       <keyword>invariant</keyword>
  94.       <keyword>centroid</keyword>
  95.       <keyword>flat</keyword>
  96.       <keyword>smooth</keyword>
  97.       <keyword>noperspective</keyword>
  98.       <keyword>layout</keyword>
  99.       <keyword>patch</keyword>
  100.       <keyword>sample</keyword>
  101.       <keyword>subroutine</keyword>
  102.       <!-- precision -->
  103.       <keyword>lowp</keyword>
  104.       <keyword>mediump</keyword>
  105.       <keyword>highp</keyword>
  106.       <keyword>precision</keyword>
  107.     </context>
  108.  
  109.     <context id="primitives" style-ref="type">
  110.       <keyword>bool</keyword>
  111.       <keyword>float</keyword>
  112.       <keyword>double</keyword>
  113.       <keyword>int</keyword>
  114.       <keyword>uint</keyword>
  115.       <keyword>struct</keyword>
  116.       <keyword>void</keyword>
  117.       <keyword>[bdiu]?vec[2-4]</keyword>
  118.       <keyword>[d]?mat[2-4]</keyword>
  119.       <keyword>[d]?mat[2-4]x[2-4]</keyword>
  120.       <keyword>[iu]?sampler[1-3]D</keyword>
  121.       <keyword>sampler[1-2]DShadow</keyword>
  122.       <keyword>[iu]?sampler[1-2]DArray</keyword>
  123.       <keyword>sampler[1-2]DArrayShadow</keyword>
  124.       <keyword>[iu]?samplerCube</keyword>
  125.       <keyword>samplerCubeShadow</keyword>
  126.       <keyword>[iu]?sampler2DRect</keyword>
  127.       <keyword>sampler2DRectShadow</keyword>
  128.       <keyword>[iu]?samplerBuffer</keyword>
  129.       <keyword>[iu]?sampler2DMS</keyword>
  130.       <keyword>[iu]?sampler2DMSArray</keyword>
  131.       <keyword>[iu]?sampler2DMSCubeArray</keyword>
  132.       <keyword>samplerCubeArrayShadow</keyword>
  133.     </context>
  134.  
  135.     <context id="reserved-keywords-for-future-use" style-ref="future-use">
  136.       <keyword>common</keyword>
  137.       <keyword>partition</keyword>
  138.       <keyword>active</keyword>
  139.       <keyword>asm</keyword>
  140.       <keyword>class</keyword>
  141.       <keyword>union</keyword>
  142.       <keyword>enum</keyword>
  143.       <keyword>typedef</keyword>
  144.       <keyword>template</keyword>
  145.       <keyword>this</keyword>
  146.       <keyword>packed</keyword>
  147.       <keyword>goto</keyword>
  148.       <keyword>inline</keyword>
  149.       <keyword>noinline</keyword>
  150.       <keyword>volatile</keyword>
  151.       <keyword>public</keyword>
  152.       <keyword>static</keyword>
  153.       <keyword>extern</keyword>
  154.       <keyword>external</keyword>
  155.       <keyword>interface</keyword>
  156.       <keyword>long</keyword>
  157.       <keyword>short</keyword>
  158.       <keyword>half</keyword>
  159.       <keyword>fixed</keyword>
  160.       <keyword>unsigned</keyword>
  161.       <keyword>input</keyword>
  162.       <keyword>output</keyword>
  163.       <keyword>[hf]vec[2-4]</keyword>
  164.       <keyword>sampler3DRect</keyword>
  165.       <keyword>filter</keyword>
  166.       <keyword>sizeof</keyword>
  167.       <keyword>cast</keyword>
  168.       <keyword>namespace</keyword>
  169.       <keyword>using</keyword>
  170.       <keyword>row_major</keyword>
  171.     </context>
  172.  
  173.     <context id="builtin-functions" style-ref="builtin-function">
  174.       <!-- Section 8.1 -->
  175.       <keyword>radians</keyword>
  176.       <keyword>degrees</keyword>
  177.       <keyword>sin</keyword>
  178.       <keyword>cos</keyword>
  179.       <keyword>tan</keyword>
  180.       <keyword>asin</keyword>
  181.       <keyword>acos</keyword>
  182.       <keyword>atan</keyword>
  183.       <keyword>sinh</keyword>
  184.       <keyword>cosh</keyword>
  185.       <keyword>tanh</keyword>
  186.       <keyword>asinh</keyword>
  187.       <keyword>acosh</keyword>
  188.       <keyword>atanh</keyword>
  189.       <!-- Section 8.2 -->
  190.       <keyword>pow</keyword>
  191.       <keyword>exp</keyword>
  192.       <keyword>log</keyword>
  193.       <keyword>exp2</keyword>
  194.       <keyword>log2</keyword>
  195.       <keyword>sqrt</keyword>
  196.       <keyword>inversesqrt</keyword>
  197.       <!-- Section 8.3 -->
  198.       <keyword>abs</keyword>
  199.       <keyword>sign</keyword>
  200.       <keyword>floor</keyword>
  201.       <keyword>trunc</keyword>
  202.       <keyword>round</keyword>
  203.       <keyword>roundEven</keyword>
  204.       <keyword>ceil</keyword>
  205.       <keyword>fract</keyword>
  206.       <keyword>mod</keyword>
  207.       <keyword>modf</keyword>
  208.       <keyword>min</keyword>
  209.       <keyword>max</keyword>
  210.       <keyword>clamp</keyword>
  211.       <keyword>mix</keyword>
  212.       <keyword>step</keyword>
  213.       <keyword>smoothstep</keyword>
  214.       <keyword>isnan</keyword>
  215.       <keyword>isinf</keyword>
  216.       <keyword>floatBitsToInt</keyword>
  217.       <keyword>floatBitsToUint</keyword>
  218.       <keyword>intBitsToFloat</keyword>
  219.       <keyword>uintBitsToFloat</keyword>
  220.       <keyword>fma</keyword>
  221.       <keyword>frexp</keyword>
  222.       <keyword>ldexp</keyword>
  223.       <!-- Section 8.4 -->
  224.       <keyword>packUnorm2x16</keyword>
  225.       <keyword>packUnorm4x8</keyword>
  226.       <keyword>packSnorm4x8</keyword>
  227.       <keyword>unpackUnorm2x16</keyword>
  228.       <keyword>unpackUnorm4x8</keyword>
  229.       <keyword>unpackSnorm4x8</keyword>
  230.       <keyword>packDouble2x32</keyword>
  231.       <keyword>unpackDouble2x32</keyword>
  232.       <!-- Section 8.5 -->
  233.       <keyword>length</keyword>
  234.       <keyword>distance</keyword>
  235.       <keyword>dot</keyword>
  236.       <keyword>cross</keyword>
  237.       <keyword>normalize</keyword>
  238.       <keyword>ftransform</keyword>
  239.       <keyword>faceforward</keyword>
  240.       <keyword>reflect</keyword>
  241.       <keyword>refract</keyword>
  242.       <!-- Section 8.6 -->
  243.       <keyword>matrixCompMult</keyword>
  244.       <keyword>outerProduct</keyword>
  245.       <keyword>transpose</keyword>
  246.       <keyword>determinant</keyword>
  247.       <keyword>inverse</keyword>
  248.       <!-- Section 8.7 -->
  249.       <keyword>lessThan</keyword>
  250.       <keyword>lessThanEqual</keyword>
  251.       <keyword>greaterThan</keyword>
  252.       <keyword>greaterThanEqual</keyword>
  253.       <keyword>equal</keyword>
  254.       <keyword>notEqual</keyword>
  255.       <keyword>any</keyword>
  256.       <keyword>all</keyword>
  257.       <keyword>not</keyword>
  258.       <!-- Section 8.8 -->
  259.       <keyword>uaddCarry</keyword>
  260.       <keyword>usubBorrow</keyword>
  261.       <keyword>umulExtended</keyword>
  262.       <keyword>imulExtended</keyword>
  263.       <keyword>bitfieldExtract</keyword>
  264.       <keyword>bitfildInsert</keyword>
  265.       <keyword>bitfieldReverse</keyword>
  266.       <keyword>bitCount</keyword>
  267.       <keyword>findLSB</keyword>
  268.       <keyword>findMSB</keyword>
  269.       <!-- Section 8.9 -->
  270.       <keyword>textureSize</keyword>
  271.       <keyword>textureQueryLOD</keyword>
  272.       <keyword>texture</keyword>
  273.       <keyword>textureProj</keyword>
  274.       <keyword>textureLod</keyword>
  275.       <keyword>textureOffset</keyword>
  276.       <keyword>texelFetch</keyword>
  277.       <keyword>texelFetchOffset</keyword>
  278.       <keyword>textureProjOffset</keyword>
  279.       <keyword>textureLodOffset</keyword>
  280.       <keyword>textureProjLod</keyword>
  281.       <keyword>textureProjLodOffset</keyword>
  282.       <keyword>textureGrad</keyword>
  283.       <keyword>textureGradOffset</keyword>
  284.       <keyword>textureProjGrad</keyword>
  285.       <keyword>textureProjGradOffset</keyword>
  286.       <keyword>textureGather</keyword>
  287.       <keyword>textureGatherOffset</keyword>
  288.  
  289.       <keyword>texture[1-3]D</keyword>
  290.       <keyword>texture[1-3]DProj</keyword>
  291.       <keyword>texture[1-3]DLod</keyword>
  292.       <keyword>texture[1-3]DProjLod</keyword>
  293.  
  294.       <keyword>textureCube</keyword>
  295.       <keyword>textureCubeLod</keyword>
  296.  
  297.       <keyword>shadow[1-2]D</keyword>
  298.       <keyword>shadow[1-2]DProj</keyword>
  299.       <keyword>shadow[1-2]DLod</keyword>
  300.       <keyword>shadow[1-2]DProjLod</keyword>
  301.       <!-- Section 8.10 -->
  302.       <keyword>dFdx</keyword>
  303.       <keyword>dFdy</keyword>
  304.       <keyword>fwidth</keyword>
  305.       <keyword>interpolateAtCentroid</keyword>
  306.       <keyword>interpolateAtSample</keyword>
  307.       <keyword>interpolateAtOffset</keyword>
  308.       <!-- Section 8.11 -->
  309.       <keyword>noise[1-4]</keyword>
  310.       <!-- Section 8.12 -->
  311.       <keyword>EmitStreamVertex</keyword>
  312.       <keyword>EndStreamPrimitive</keyword>
  313.       <keyword>EmitVertex</keyword>
  314.       <keyword>EndPrimitive</keyword>
  315.       <!-- Section 8.13 -->
  316.       <keyword>barrier</keyword>
  317.     </context>
  318.  
  319.     <context id="builtin-variables" style-ref="builtin-variable">
  320.       <!-- Section 7.1 (vertex language) -->
  321.       <keyword>gl_VertexID</keyword>
  322.       <keyword>gl_InstanceID</keyword>
  323.       <keyword>gl_Position</keyword>
  324.       <keyword>gl_PointSize</keyword>
  325.       <keyword>gl_ClipDistance</keyword>
  326.       <!-- Section 7.1 (geometry language) -->
  327.       <keyword>gl_PrimitiveIDIn</keyword>
  328.       <keyword>gl_InvocationID</keyword>
  329.       <keyword>gl_PrimitiveID</keyword>
  330.       <keyword>gl_Layer</keyword>
  331.       <!-- Section 7.1 (tessellation control language) -->
  332.       <keyword>gl_PatchVerticesIn</keyword>
  333.       <keyword>gl_TessLevelOuter</keyword>
  334.       <keyword>gl_TessLevelInner</keyword>
  335.       <!-- Section 7.1 (tessellation evaluation language) -->
  336.       <keyword>gl_TessCoord</keyword>
  337.       <!-- Section 7.1 (fragment language) -->
  338.       <keyword>gl_FragCoord</keyword>
  339.       <keyword>gl_FrontFacing</keyword>
  340.       <keyword>gl_PointCoord</keyword>
  341.       <keyword>gl_SampleID</keyword>
  342.       <keyword>gl_SamplePosition</keyword>
  343.       <keyword>gl_FragColor</keyword>
  344.       <keyword>gl_FragData</keyword>
  345.       <keyword>gl_FragDepth</keyword>
  346.       <keyword>gl_SampleMask</keyword>
  347.       <!-- Section 7.1.1 (compatibility profile) -->
  348.       <keyword>gl_ClipVertex</keyword>
  349.       <keyword>gl_FrontColor</keyword>
  350.       <keyword>gl_BackColor</keyword>
  351.       <keyword>gl_FrontSecondaryColor</keyword>
  352.       <keyword>gl_BackSecondaryColor</keyword>
  353.       <keyword>gl_TexCoord</keyword>
  354.       <keyword>gl_FogFragCoord</keyword>
  355.       <!-- Section 7.2 (compatibility profile vertex attributes) -->
  356.       <keyword>gl_Color</keyword>
  357.       <keyword>gl_SecondaryColor</keyword>
  358.       <keyword>gl_Normal</keyword>
  359.       <keyword>gl_Vertex</keyword>
  360.       <keyword>gl_MultiTexCoord[0-7]</keyword>
  361.       <keyword>gl_FogCoord</keyword>
  362.     </context>
  363.  
  364.     <context id="builtin-constants" style-ref="builtin-constant">
  365.       <!-- Section 7.3 -->
  366.       <keyword>gl_MaxVertexAttribs</keyword>
  367.       <keyword>gl_MaxVertexUniformComponents</keyword>
  368.       <keyword>gl_MaxVaryingFloats</keyword>
  369.       <keyword>gl_MaxVaryingComponents</keyword>
  370.       <keyword>gl_MaxVertexOutputComponents</keyword>
  371.       <keyword>gl_MaxGeometryInputComponents</keyword>
  372.       <keyword>gl_MaxGeometryOutputComponents</keyword>
  373.       <keyword>gl_MaxFragmentInputComponents</keyword>
  374.       <keyword>gl_MaxVertexTextureImageUnits</keyword>
  375.       <keyword>gl_MaxCombinedTextureImageUnits</keyword>
  376.       <keyword>gl_MaxTextureImageUnits</keyword>
  377.       <keyword>gl_MaxFragmentUniformComponents</keyword>
  378.       <keyword>gl_MaxDrawBuffers</keyword>
  379.       <keyword>gl_MaxClipDistances</keyword>
  380.       <keyword>gl_MaxGeometryTextureImageUnits</keyword>
  381.       <keyword>gl_MaxGeometryOutputVertices</keyword>
  382.       <keyword>gl_MaxGeometryTotalOutputComponents</keyword>
  383.       <keyword>gl_MaxGeometryUniformComponents</keyword>
  384.       <keyword>gl_MaxGeometryVaryingComponents</keyword>
  385.       <keyword>gl_MaxTessControlInputComponents</keyword>
  386.       <keyword>gl_MaxTessControlOutputComponents</keyword>
  387.       <keyword>gl_MaxTessControlTextureImageUnits</keyword>
  388.       <keyword>gl_MaxTessControlUniformComponents</keyword>
  389.       <keyword>gl_MaxTessControlTotalOutputComponents</keyword>
  390.       <keyword>gl_MaxTessEvaluationInputComponents</keyword>
  391.       <keyword>gl_MaxTessEvaluationOutputComponents</keyword>
  392.       <keyword>gl_MaxTessEvaluationTextureImageUnits</keyword>
  393.       <keyword>gl_MaxTessEvaluationUniformComponents</keyword>
  394.       <keyword>gl_MaxTessPatchComponents</keyword>
  395.       <keyword>gl_MaxPatchVertices</keyword>
  396.       <keyword>gl_MaxTessGenLevel</keyword>
  397.       <!-- Section 7.3.1 (compatibility profile) -->
  398.       <keyword>gl_MaxTextureUnits</keyword>
  399.       <keyword>gl_MaxTextureCoords</keyword>
  400.       <keyword>gl_MaxClipPlanes</keyword>
  401.     </context>
  402.  
  403.     <context id="builtin-uniform-states" style-ref="builtin-constant">
  404.       <!-- Section 7.4 -->
  405.       <keyword>gl_DepthRange</keyword>
  406.  
  407.       <keyword>gl_ModelViewMatrix</keyword>
  408.       <keyword>gl_ProjectionMatrix</keyword>
  409.       <keyword>gl_ModelViewProjectionMatrix</keyword>
  410.       <keyword>gl_TextureMatrix</keyword>
  411.  
  412.       <keyword>gl_NormalMatrix</keyword>
  413.  
  414.       <keyword>gl_ModelViewMatrixInverse</keyword>
  415.       <keyword>gl_ProjectionMatrixInverse</keyword>
  416.       <keyword>gl_ModelViewProjectionMatrixInverse</keyword>
  417.       <keyword>gl_TextureMatrixInverse</keyword>
  418.  
  419.       <keyword>gl_ModelViewMatrixTranspose</keyword>
  420.       <keyword>gl_ProjectionMatrixTranspose</keyword>
  421.       <keyword>gl_ModelViewProjectionMatrixTranspose</keyword>
  422.       <keyword>gl_TextureMatrixTranspose</keyword>
  423.  
  424.       <keyword>gl_ModelViewMatrixInverseTranspose</keyword>
  425.       <keyword>gl_ProjectionMatrixInverseTranspose</keyword>
  426.       <keyword>gl_ModelViewProjectionMatrixInverseTranspose</keyword>
  427.       <keyword>gl_TextureMatrixInverseTranspose</keyword>
  428.  
  429.       <keyword>gl_NormalScale</keyword>
  430.       <keyword>gl_ClipPlane</keyword>
  431.       <keyword>gl_Point</keyword>
  432.  
  433.       <keyword>gl_FrontMaterial</keyword>
  434.       <keyword>gl_BackMaterial</keyword>
  435.  
  436.       <keyword>gl_LightSource</keyword>
  437.       <keyword>gl_LightModel</keyword>
  438.  
  439.       <keyword>gl_FrontLightModelProduct</keyword>
  440.       <keyword>gl_BackLightModelProduct</keyword>
  441.  
  442.       <keyword>gl_FrontLightProduct</keyword>
  443.       <keyword>gl_BackLightProduct</keyword>
  444.  
  445.       <keyword>gl_TextureEnvColor</keyword>
  446.       <keyword>gl_EyePlaneS</keyword>
  447.       <keyword>gl_EyePlaneT</keyword>
  448.       <keyword>gl_EyePlaneR</keyword>
  449.       <keyword>gl_EyePlaneQ</keyword>
  450.       <keyword>gl_ObjectPlaneS</keyword>
  451.       <keyword>gl_ObjectPlaneT</keyword>
  452.       <keyword>gl_ObjectPlaneR</keyword>
  453.       <keyword>gl_ObjectPlaneQ</keyword>
  454.  
  455.       <keyword>gl_Fog</keyword>
  456.     </context>
  457.  
  458.     <context id="glsl">
  459.       <include>
  460.         <context ref="c:comment"/>
  461.         <context ref="c:comment-multiline"/>
  462.         <context ref="c:close-comment-outside-comment"/>
  463.         <context ref="c:if0-comment"/>
  464.         <context ref="preprocessor"/>
  465.         <context ref="common-macros"/>
  466.         <context ref="keywords"/>
  467.         <context ref="primitives"/>
  468.         <context ref="c:boolean"/>
  469.         <context ref="c:decimal"/>
  470.         <context ref="c:octal"/>
  471.         <context ref="c:hexadecimal"/>
  472.         <context ref="c:float"/>
  473.         <context ref="builtin-functions"/>
  474.         <context ref="builtin-variables"/>
  475.         <context ref="builtin-constants"/>
  476.         <context ref="builtin-uniform-states"/>
  477.         <context ref="reserved-keywords-for-future-use"/>
  478.       </include>
  479.     </context>
  480.  
  481.   </definitions>
  482. </language>
  483.