You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

3438 lines
227 KiB

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
  5. <meta name="generator" content="Railroad Diagram Generator 1.40.1033" />
  6. <style type="text/css">
  7. body { font-family: 'Calibri', 'Arial'; color: #0F0C00; background: #FFFCF0 }
  8. pre { margin: 0 }
  9. .code { font-family: 'Courier New' }
  10. .code.area { padding: 5px; background-color: #EEEEEE; font-size: 0.8em }
  11. .code .pre { color: #006666; font-weight: bold }
  12. .code .comment { color: #006600 }
  13. .code .buildin { color: #6B0000 }
  14. .code .func { color: #6B0000; font-weight: bold }
  15. .code .type { color: #000000; font-weight: bold }
  16. .code .keyword { color: #000099; font-weight: bold }
  17. .code .number { color: #000099 }
  18. .code.area div { padding-left: 2em }
  19. a { text-decoration: none; color: inherit }
  20. a:hover { text-decoration: underline }
  21. .box .head { cursor: pointer }
  22. .box .head:hover { background-color: #EEEEEE }
  23. .box .icon { width: 15px; height: 15px; border: 1px solid #0F0C00; font-weight: bold; line-height: 15px; text-align: center; valign: middle; float: right; position: relative; top: 2px; margin-right: 10px; }
  24. .box.closed .icon.open { display: block }
  25. .box.closed .icon.close,
  26. .box.closed .content,
  27. .box .icon.open { display: none }
  28. .box .content { margin-left: 25px }
  29. h1, h2, h3, h4, h5, h6 { margin: 15px 0px 0px 0px }
  30. h2 { margin-top: 25px }
  31. h4 { margin: 5px 0px 5px 10px }
  32. h5 { margin: 5px 0px 5px 0px }
  33. .noselect { -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none }
  34. .syntax_sub { margin-bottom: 15px }
  35. .syntax_sub > .ebnf,
  36. .syntax_sub > svg,
  37. .syntax_sub > .references { margin-left: 15px }
  38. .references { overflow: hidden; clear: both }
  39. .references > span { float: left; margin-right: 15px }
  40. .references ul { list-style-type: none; margin: 0; padding: 0; float: left }
  41. .references li { float: left; margin-left: 5px }
  42. .references li:after { content: ' | ' }
  43. .references li:last-child:after { content: '' }
  44. .sub { margin-left: 250px; font-size: 0.8em }
  45. .link { float: left }
  46. .index li { overflow: hidden }
  47. </style>
  48. <script type="text/javascript">
  49. /* <![CDATA[ */
  50. window.onload = function () {
  51. var boxes = document.getElementsByClassName('box');
  52. for (var i = 0; i < boxes.length; ++i) {
  53. var head = boxes[i].getElementsByClassName('head')[0];
  54. head.addEventListener('click', function(){
  55. if (this.parentNode.className.indexOf('closed') >= 0){
  56. this.parentNode.className = this.parentNode.className.replace('closed', '').trim();
  57. } else {
  58. this.parentNode.className += ' closed';
  59. }
  60. }, false);
  61. }
  62. var links = document.getElementsByTagName('a');
  63. for (var i = 0; i < links.length; ++i) {
  64. var link = links[i];
  65. link.addEventListener('click', function(){
  66. var id = this.href;
  67. if (typeof id === 'object')
  68. id = id.baseVal;
  69. var pos = id.indexOf('#');
  70. if (pos < 0)
  71. return;
  72. id = id.substr(pos+1);
  73. var elem = document.getElementById(id);
  74. if (!elem)
  75. return;
  76. var box = elem.parentNode;
  77. while (box && box.className.indexOf('box') < 0)
  78. box = box.parentNode;
  79. if (!box)
  80. return;
  81. if (box.className.indexOf('closed') >= 00)
  82. box.className = box.className.replace('closed', '').trim();
  83. }, false);
  84. }
  85. };
  86. /* ]]> */
  87. </script>
  88. <svg xmlns="http://www.w3.org/2000/svg">
  89. <defs>
  90. <style type="text/css">
  91. @namespace "http://www.w3.org/2000/svg";
  92. .line {fill: none; stroke: #332900;}
  93. .bold-line {stroke: #141000; shape-rendering: crispEdges; stroke-width: 2; }
  94. .thin-line {stroke: #1F1800; shape-rendering: crispEdges}
  95. .filled {fill: #332900; stroke: none;}
  96. text.terminal {font-family: Verdana, Sans-serif; font-size: 12px; fill: #141000; font-weight: bold; }
  97. text.nonterminal {font-family: Verdana, Sans-serif; font-size: 12px; fill: #1A1400; }
  98. text.regexp {font-family: Verdana, Sans-serif; font-size: 12px; fill: #1F1800; }
  99. rect, circle, polygon {fill: #332900; stroke: #332900;}
  100. rect.terminal {fill: #FFDB4D; stroke: #332900;}
  101. rect.nonterminal {fill: #FFEC9E; stroke: #332900;}
  102. rect.text {fill: none; stroke: none;}
  103. polygon.regexp {fill: #FFF4C7; stroke: #332900;}
  104. </style>
  105. </defs>
  106. </svg>
  107. </head>
  108. <body>
  109. <h1>Content</h1>
  110. <ul class="index">
  111. <li>
  112. <a class="link" href="#ShaderFile">ShaderFile</a>
  113. <div class="sub">about the shader file itself</div>
  114. </li>
  115. <li>
  116. <a class="link" href="#Class">Class</a>
  117. <div class="sub">about the <span class="code">{<a href="#ebnfClass">$CLASS</a>}</span> token</div>
  118. </li>
  119. <li>
  120. <div>Methods:</div>
  121. <ul>
  122. <li>
  123. <a class="link" href="#Procedure">Procedure</a>
  124. <div class="sub">about the <span class="code">{<a href="#ebnfProcedure">$PROC</a>}</span> token</div>
  125. </li>
  126. <li>
  127. <a class="link" href="#Function">Function</a>
  128. <div class="sub">about the <span class="code">{<a href="#ebnfFunction">$FUNC</a>}</span> token</div>
  129. </li>
  130. <li>
  131. <a class="link" href="#Main">Main</a>
  132. <div class="sub">about the <span class="code">{<a href="#ebnfMain">$MAIN</a>}</span> token</div>
  133. </li>
  134. <li>
  135. <div>Calls:</div>
  136. <ul>
  137. <li>
  138. <a class="link" href="#Call">Call</a>
  139. <div class="sub">about the <span class="code">{<a href="#ebnfCall">$CALL</a>}</span> token</div>
  140. </li>
  141. <li>
  142. <a class="link" href="#Inherited">Inherited</a>
  143. <div class="sub">about the <span class="code">{<a href="#ebnfInherited">$INHERITED</a>}</span> token</div>
  144. </li>
  145. </ul>
  146. </li>
  147. </ul>
  148. </li>
  149. <li>
  150. <div>Code Controlling:</div>
  151. <ul>
  152. <li>
  153. <a class="link" href="#Include">Include</a>
  154. <div class="sub">about the <span class="code">{<a href="#ebnfInclude">$INCLUDE</a>}</span> token</div>
  155. </li>
  156. <li>
  157. <a class="link" href="#Property">Property</a>
  158. <div class="sub">about the <span class="code">{<a href="#ebnfProperty">$PROPERTY</a>}</span> token</div>
  159. </li>
  160. <li>
  161. <a class="link" href="#Static">Static</a>
  162. <div class="sub">about the <span class="code">{<a href="#ebnfStatic">$STATIC</a>}</span> token</div>
  163. </li>
  164. <li>
  165. <a class="link" href="#If">If</a>
  166. <div class="sub">about the <span class="code">{<a href="#ebnfIf">$IF</a>}</span> token</div>
  167. </li>
  168. </ul>
  169. </li>
  170. <li>
  171. <div>Code Generation:</div>
  172. <ul>
  173. <li>
  174. <a class="link" href="#Meta">Meta</a>
  175. <div class="sub">about the <span class="code">{<a href="#ebnfMeta">$META</a>}</span> token</div>
  176. </li>
  177. <li>
  178. <a class="link" href="#Echo">Echo</a>
  179. <div class="sub">about the <span class="code">{<a href="#ebnfEcho">$ECHO</a>}</span> token</div>
  180. </li>
  181. <li>
  182. <a class="link" href="#Varying">Varying</a>
  183. <div class="sub">about the <span class="code">{<a href="#ebnfVarying">$VARYING</a>}</span> token</div>
  184. </li>
  185. <li>
  186. <a class="link" href="#Uniform">Uniform</a>
  187. <div class="sub">about the <span class="code">{<a href="#ebnfUniform">$UNIFORM</a>}</span> token</div>
  188. </li>
  189. <li>
  190. <a class="link" href="#Var">Var</a>
  191. <div class="sub">about the <span class="code">{<a href="#ebnfVar">$VAR</a>}</span> token</div>
  192. </li>
  193. <li>
  194. <a class="link" href="#Const">Const</a>
  195. <div class="sub">about the <span class="code">{<a href="#ebnfConst">$CONST</a>}</span> token</div>
  196. </li>
  197. <li>
  198. <a class="link" href="#Messages">Messages</a>
  199. <div class="sub">about writing log messages while code generation</div>
  200. </li>
  201. </ul>
  202. </li>
  203. <li>
  204. <a class="link" href="#Types">Types</a>
  205. <div class="sub">some type definitions for this document</div>
  206. </li>
  207. </ul>
  208. <!-- ShaderFile -->
  209. <div id="ShaderFile">
  210. <h2>ShaderFile:</h2>
  211. <div class="box closed">
  212. <div class="head">
  213. <div class="noselect icon open">+</div>
  214. <div class="noselect icon close">-</div>
  215. <h4>Description:</h4>
  216. </div>
  217. <div class="content">
  218. Inside the shader file you define every needed OpenGL shader code, meta information and precompiler instructions you need. The precompiler then interprets your code and generate the normal OpenGL shader code for you. It will take care, that only the needed code parts are added to the resulting code, so the shader code is always as simple and small as needed.<br/>
  219. The shader file is also a code generator. It's name is a empty string. So if you pass the empty string to the code generator creator function you will get the code generator for the whole file.<br/>
  220. A class does not need a {<a href="#ebnfMain">$MAIN</a>} method.<br/>
  221. </div>
  222. </div>
  223. <div class="box closed">
  224. <div class="head">
  225. <div class="noselect icon open">+</div>
  226. <div class="noselect icon close">-</div>
  227. <h4>Syntax:</h4>
  228. </div>
  229. <div class="content">
  230. <div id="ebnfShaderFile" class="syntax_sub">
  231. <h5>ShaderFile</h5>
  232. <svg xmlns="http://www.w3.org/2000/svg" width="182" height="232">
  233. <polygon points="9 227 1 223 1 231"/>
  234. <polygon points="17 227 9 223 9 231"/>
  235. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfClass" xlink:title="Class">
  236. <rect x="51" y="179" width="54" height="32"/>
  237. <rect x="49" y="177" width="54" height="32" class="nonterminal"/>
  238. <text class="nonterminal" x="59" y="197">Class</text>
  239. </a>
  240. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfProcedure" xlink:title="Procedure">
  241. <rect x="51" y="135" width="84" height="32"/>
  242. <rect x="49" y="133" width="84" height="32" class="nonterminal"/>
  243. <text class="nonterminal" x="59" y="153">Procedure</text>
  244. </a>
  245. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfFunction" xlink:title="Function">
  246. <rect x="51" y="91" width="72" height="32"/>
  247. <rect x="49" y="89" width="72" height="32" class="nonterminal"/>
  248. <text class="nonterminal" x="59" y="109">Function</text>
  249. </a>
  250. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfMain" xlink:title="Main">
  251. <rect x="51" y="47" width="48" height="32"/>
  252. <rect x="49" y="45" width="48" height="32" class="nonterminal"/>
  253. <text class="nonterminal" x="59" y="65">Main</text>
  254. </a>
  255. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfCode" xlink:title="Code">
  256. <rect x="51" y="3" width="52" height="32"/>
  257. <rect x="49" y="1" width="52" height="32" class="nonterminal"/>
  258. <text class="nonterminal" x="59" y="21">Code</text>
  259. </a>
  260. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 227 h2 m20 0 h10 m0 0 h94 m-124 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -14 q0 -10 10 -10 m104 34 l20 0 m-20 0 q10 0 10 -10 l0 -14 q0 -10 -10 -10 m-104 0 h10 m54 0 h10 m0 0 h30 m-114 10 l0 -44 q0 -10 10 -10 m114 54 l0 -44 q0 -10 -10 -10 m-104 0 h10 m84 0 h10 m-114 10 l0 -44 q0 -10 10 -10 m114 54 l0 -44 q0 -10 -10 -10 m-104 0 h10 m72 0 h10 m0 0 h12 m-114 10 l0 -44 q0 -10 10 -10 m114 54 l0 -44 q0 -10 -10 -10 m-104 0 h10 m48 0 h10 m0 0 h36 m-114 10 l0 -44 q0 -10 10 -10 m114 54 l0 -44 q0 -10 -10 -10 m-104 0 h10 m52 0 h10 m0 0 h32 m23 210 h-3"/>
  261. <polygon points="173 227 181 223 181 231"/>
  262. <polygon points="173 227 165 223 165 231"/>
  263. </svg>
  264. <div class="ebnf code area">
  265. <a href="#ebnfShaderFile" title="ShaderFile">ShaderFile</a> ::= ( <a href="#ebnfClass" title="Class">Class</a> | <a href="#ebnfProcedure" title="Procedure">Procedure</a> | <a href="#ebnfFunction" title="Function">Function</a> | <a href="#ebnfMain" title="Main">Main</a> | <a href="#ebnfCode" title="Code">Code</a> )*
  266. </div>
  267. </div>
  268. </div>
  269. </div>
  270. <div class="box closed">
  271. <div class="head">
  272. <div class="noselect icon open">+</div>
  273. <div class="noselect icon close">-</div>
  274. <h4>Example:</h4>
  275. </div>
  276. <div class="content">
  277. "Hello World" example:
  278. <div class="code area">
  279. <span class="pre">{<a href="#ebnfMain">$MAIN</a>}</span>
  280. <br/>
  281. <div>
  282. <span class="buildin">gl_Position</span> = <span class="buildin">gl_ModelViewProjectionMatrix</span> * <span class="buildin">gl_Vertex</span>;<br/>
  283. <span class="buildin">gl_FrontColor</span> = <span class="buildin">gl_Color</span>;<br/>
  284. </div>
  285. <span class="pre">{$END}</span>
  286. </div>
  287. <br/>
  288. resulting code:
  289. <div class="code area">
  290. <span class="type">void</span> main(<span class="type">void</span>)<br/>
  291. {<br/>
  292. <div>
  293. <span class="buildin">gl_Position</span> = <span class="buildin">gl_ModelViewProjectionMatrix</span> * <span class="buildin">gl_Vertex</span>;<br/>
  294. <span class="buildin">gl_FrontColor</span> = <span class="buildin">gl_Color</span>;<br/>
  295. </div>
  296. }
  297. </div>
  298. </div>
  299. </div>
  300. </div>
  301. <!-- Class -->
  302. <div id="Class">
  303. <h2>Class:</h2>
  304. <div class="box closed">
  305. <div class="head">
  306. <div class="noselect icon open">+</div>
  307. <div class="noselect icon close">-</div>
  308. <h4>Description:</h4>
  309. </div>
  310. <div class="content">
  311. A class is a logical wrapper to summarize OpenGL shader code, meta information and precompiler instructions. You can inherit a class from other classes using the $EXTENDS token. The precompiler then interprets your code and generate the normal OpenGL shader code for you. It will take care, that only the needed code parts are added to the resulting code, so the shader code is always as simple and small as needed.<br/>
  312. A class is always a generator. If you use the name of class as parameter for the code generator creator function you will get a code generator for the requested class.<br/>
  313. A class or one of its parent classes always needs a {<a href="#ebnfMain">$MAIN</a>} method.<br/>
  314. </div>
  315. </div>
  316. <div class="box closed">
  317. <div class="head">
  318. <div class="noselect icon open">+</div>
  319. <div class="noselect icon close">-</div>
  320. <h4>Syntax:</h4>
  321. </div>
  322. <div class="content">
  323. <div id="ebnfClass" class="syntax_sub">
  324. <h5>Class</h5>
  325. <svg xmlns="http://www.w3.org/2000/svg" width="870" height="218">
  326. <polygon points="9 183 1 179 1 187"/>
  327. <polygon points="17 183 9 179 9 187"/>
  328. <rect x="31" y="169" width="82" height="32" rx="10"/>
  329. <rect x="29" y="167" width="82" height="32" class="terminal" rx="10"/>
  330. <text class="terminal" x="39" y="187">{$CLASS</text>
  331. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfClassName" xlink:title="ClassName">
  332. <rect x="133" y="169" width="90" height="32"/>
  333. <rect x="131" y="167" width="90" height="32" class="nonterminal"/>
  334. <text class="nonterminal" x="141" y="187">ClassName</text>
  335. </a>
  336. <rect x="263" y="169" width="90" height="32" rx="10"/>
  337. <rect x="261" y="167" width="90" height="32" class="terminal" rx="10"/>
  338. <text class="terminal" x="271" y="187">$EXTENDS</text>
  339. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfClassName" xlink:title="ClassName">
  340. <rect x="393" y="135" width="90" height="32"/>
  341. <rect x="391" y="133" width="90" height="32" class="nonterminal"/>
  342. <text class="nonterminal" x="401" y="153">ClassName</text>
  343. </a>
  344. <rect x="543" y="169" width="28" height="32" rx="10"/>
  345. <rect x="541" y="167" width="28" height="32" class="terminal" rx="10"/>
  346. <text class="terminal" x="551" y="187">}</text>
  347. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfClassProcedure" xlink:title="ClassProcedure">
  348. <rect x="611" y="135" width="118" height="32"/>
  349. <rect x="609" y="133" width="118" height="32" class="nonterminal"/>
  350. <text class="nonterminal" x="619" y="153">ClassProcedure</text>
  351. </a>
  352. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfClassFunction" xlink:title="ClassFunction">
  353. <rect x="611" y="91" width="106" height="32"/>
  354. <rect x="609" y="89" width="106" height="32" class="nonterminal"/>
  355. <text class="nonterminal" x="619" y="109">ClassFunction</text>
  356. </a>
  357. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfClassMain" xlink:title="ClassMain">
  358. <rect x="611" y="47" width="82" height="32"/>
  359. <rect x="609" y="45" width="82" height="32" class="nonterminal"/>
  360. <text class="nonterminal" x="619" y="65">ClassMain</text>
  361. </a>
  362. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfCode" xlink:title="Code">
  363. <rect x="611" y="3" width="52" height="32"/>
  364. <rect x="609" y="1" width="52" height="32" class="nonterminal"/>
  365. <text class="nonterminal" x="619" y="21">Code</text>
  366. </a>
  367. <rect x="769" y="169" width="74" height="32" rx="10"/>
  368. <rect x="767" y="167" width="74" height="32" class="terminal" rx="10"/>
  369. <text class="terminal" x="777" y="187">{$END}</text>
  370. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 183 h2 m0 0 h10 m82 0 h10 m0 0 h10 m90 0 h10 m20 0 h10 m90 0 h10 m20 0 h10 m0 0 h100 m-130 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -14 q0 -10 10 -10 m110 34 l20 0 m-20 0 q10 0 10 -10 l0 -14 q0 -10 -10 -10 m-110 0 h10 m90 0 h10 m-260 34 h20 m260 0 h20 m-300 0 q10 0 10 10 m280 0 q0 -10 10 -10 m-290 10 v14 m280 0 v-14 m-280 14 q0 10 10 10 m260 0 q10 0 10 -10 m-270 10 h10 m0 0 h250 m20 -34 h10 m28 0 h10 m20 0 h10 m0 0 h128 m-158 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -14 q0 -10 10 -10 m138 34 l20 0 m-20 0 q10 0 10 -10 l0 -14 q0 -10 -10 -10 m-138 0 h10 m118 0 h10 m-148 10 l0 -44 q0 -10 10 -10 m148 54 l0 -44 q0 -10 -10 -10 m-138 0 h10 m106 0 h10 m0 0 h12 m-148 10 l0 -44 q0 -10 10 -10 m148 54 l0 -44 q0 -10 -10 -10 m-138 0 h10 m82 0 h10 m0 0 h36 m-148 10 l0 -44 q0 -10 10 -10 m148 54 l0 -44 q0 -10 -10 -10 m-138 0 h10 m52 0 h10 m0 0 h66 m20 166 h10 m74 0 h10 m3 0 h-3"/>
  371. <polygon points="861 183 869 179 869 187"/>
  372. <polygon points="861 183 853 179 853 187"/>
  373. </svg>
  374. <div class="ebnf code area">
  375. <a href="#ebnfClass" title="Class">Class</a> ::= '{$CLASS' <a href="#ebnfClassName" title="ClassName">ClassName</a> ( '$EXTENDS' <a href="#ebnfClassName" title="ClassName">ClassName</a>* )? '}' ( <a href="#ebnfClassProcedure" title="ClassProcedure">ClassProcedure</a> | <a href="#ebnfClassFunction" title="ClassFunction">ClassFunction</a> | <a href="#ebnfClassMain" title="ClassMain">ClassMain</a> | <a href="#ebnfCode" title="Code">Code</a> )* '{$END}'
  376. </div>
  377. <div class="references">
  378. <span>referenced by:</span>
  379. <ul>
  380. <li>
  381. <a href="#ebnfShaderFile" title="ShaderFile">ShaderFile</a>
  382. </li>
  383. </ul>
  384. </div>
  385. </div>
  386. </div>
  387. </div>
  388. <div class="box closed">
  389. <div class="head">
  390. <div class="noselect icon open">+</div>
  391. <div class="noselect icon close">-</div>
  392. <h4>Example:</h4>
  393. </div>
  394. <div class="content">
  395. example for a simple shader that uses either a solid color or a texture:
  396. <div class="code area">
  397. <span class="pre">{<a href="#ebnfClass">$CLASS</a> Color}</span>
  398. <br/>
  399. <div>
  400. <span class="pre">{<a href="#ebnfProperty">$PROPERTY</a> UseColorMap 'false'}</span>
  401. <br/>
  402. </div>
  403. <span class="pre">{$END}</span>
  404. <br/>
  405. <br/>
  406. <span class="pre">{<a href="#ebnfClass">$CLASS</a> ColorFrag $EXTENDS Color}</span>
  407. <br/>
  408. <div>
  409. <br/>
  410. <span class="comment">/* you can also define code here. It will be added when the code for the class is generated */</span>
  411. <br/>
  412. <br/>
  413. <span class="pre">{<a href="#ebnfFunction">$FUNC</a> 'vec4' GetColor $INLINE}</span>
  414. <br/>
  415. <div>
  416. <span class="pre">{<a href="#ebnfIf">$IF</a> UseColorMap}</span>
  417. <br/>
  418. <div>
  419. <span class="pre">{<a href="#ebnfVar">$VAR</a> 'vec2' '_texCoord' 'gl_TexCoord[0].st'}</span>
  420. <br/>
  421. <span class="pre">{<a href="#ebnfUniform">$UNIFORM</a> 'sampler2D' 'uColorMap'}</span>
  422. <br/>
  423. <span class="keyword">return</span>
  424. <span class="func">texture2D</span>(uColorMap, _texCoord);<br/>
  425. </div>
  426. <span class="pre">{<a href="#ebnfIf">$ELSE</a>}</span>
  427. <br/>
  428. <div>
  429. <span class="keyword">return</span>
  430. <span class="buildin">gl_Color</span>;<br/>
  431. </div>
  432. <span class="pre">{$END}</span>
  433. <br/>
  434. </div>
  435. <span class="pre">{$END}</span>
  436. <br/>
  437. <br/>
  438. <span class="pre">{<a href="#ebnfMain">$MAIN</a>}</span>
  439. <br/>
  440. <div>
  441. <span class="buildin">gl_FragColor</span> = <span class="pre">{<a href="#ebnfCall">$CALL</a> GetColor}</span>;<br/>
  442. </div>
  443. <span class="pre">{$END}</span>
  444. <br/>
  445. </div>
  446. <span class="pre">{$END}</span>
  447. <br/>
  448. <br/>
  449. <span class="pre">{<a href="#ebnfClass">$CLASS</a> ColorVert $EXTENDS Color}</span>
  450. <br/>
  451. <div>
  452. <span class="pre">{<a href="#ebnfMain">$MAIN</a>}</span>
  453. <br/>
  454. <div>
  455. <span class="buildin">gl_Position</span> = <span class="buildin">gl_ModelViewProjectionMatrix</span> * <span class="buildin">gl_Vertex</span>;<br/>
  456. <span class="pre">{<a href="#ebnfIf">$IF</a> UseColorMap}</span>
  457. <br/>
  458. <div>
  459. <span class="buildin">gl_TexCoord</span>[<span class="number">0</span>] = <span class="buildin">gl_MultiTexCoord0</span>;<br/>
  460. </div>
  461. <span class="pre">{<a href="#ebnfIf">$ELSE</a>}</span>
  462. <br/>
  463. <div>
  464. <span class="buildin">gl_FrontColor</span> = <span class="buildin">gl_Color</span>;<br/>
  465. <span class="buildin">gl_BackColor</span> = <span class="buildin">gl_Color</span>;<br/>
  466. </div>
  467. <span class="pre">{$END}</span>
  468. <br/>
  469. </div>
  470. <span class="pre">{$END}</span>
  471. <br/>
  472. </div>
  473. <span class="pre">{$END}</span>
  474. <br/>
  475. </div>
  476. <br/>
  477. resulting code for ColorFrag with UseColorMap = true
  478. <div class="code area">
  479. <span class="comment">/* you can also define code here. It will be added when the code for the class is generated */</span>
  480. <br/>
  481. <br/>
  482. <span class="keyword">uniform</span>
  483. <span class="type">sampler2D</span> uColorMap;<br/>
  484. <br/>
  485. <span class="type">vec2</span> _texCoord = <span class="buildin">gl_TexCoord</span>[<span class="number">0</span>].st;<br/>
  486. <br/>
  487. <span class="type">void</span> main(<span class="type">void</span>)<br/>
  488. {<br/>
  489. <div>
  490. <span class="buildin">gl_FragColor</span> = (<span class="func">texture2D</span>(uColorMap, _texCoord));<br/>
  491. </div>
  492. }
  493. </div>
  494. </div>
  495. </div>
  496. </div>
  497. <!-- Procedure -->
  498. <div id="Procedure">
  499. <h2>Procedure</h2>
  500. <div class="box closed">
  501. <div class="head">
  502. <div class="icon open">+</div>
  503. <div class="icon close">-</div>
  504. <h4>Description:</h4>
  505. </div>
  506. <div class="content">
  507. The procedure token will generate a normal procedure in the resulting code, when the procedure is at least used one time inside a {<a href="#ebnfCall">$CALL</a>}.<br/>
  508. Inside a class you can add the $INLINE token. If the $INLINE token is added the code inside the procedure will be copied and pasted inside the resulting code.<br/>
  509. Be careful with inlined methods, because the precompiler will not check the variable names inside the method, so you maybe have a duplicate variable when it is pasted inside the resulting code.<br/>
  510. </div>
  511. </div>
  512. <div class="box closed">
  513. <div class="head">
  514. <div class="icon open">+</div>
  515. <div class="icon close">-</div>
  516. <h4>Syntax:</h4>
  517. </div>
  518. <div class="content">
  519. <div id="ebnfProcedure" class="syntax_sub">
  520. <h5>Procedure</h5>
  521. <svg xmlns="http://www.w3.org/2000/svg" width="340" height="36">
  522. <polygon points="9 17 1 13 1 21"/>
  523. <polygon points="17 17 9 13 9 21"/>
  524. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfProcedureHead" xlink:title="ProcedureHead">
  525. <rect x="31" y="3" width="116" height="32"/>
  526. <rect x="29" y="1" width="116" height="32" class="nonterminal"/>
  527. <text class="nonterminal" x="39" y="21">ProcedureHead</text>
  528. </a>
  529. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfCode" xlink:title="Code">
  530. <rect x="167" y="3" width="52" height="32"/>
  531. <rect x="165" y="1" width="52" height="32" class="nonterminal"/>
  532. <text class="nonterminal" x="175" y="21">Code</text>
  533. </a>
  534. <rect x="239" y="3" width="74" height="32" rx="10"/>
  535. <rect x="237" y="1" width="74" height="32" class="terminal" rx="10"/>
  536. <text class="terminal" x="247" y="21">{$END}</text>
  537. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m0 0 h10 m116 0 h10 m0 0 h10 m52 0 h10 m0 0 h10 m74 0 h10 m3 0 h-3"/>
  538. <polygon points="331 17 339 13 339 21"/>
  539. <polygon points="331 17 323 13 323 21"/>
  540. </svg>
  541. <div class="ebnf code area">
  542. <a href="#ebnfProcedure" title="Procedure">Procedure</a> ::= <a href="#ebnfProcedureHead" title="ProcedureHead">ProcedureHead</a> <a href="#ebnfCode" title="Code">Code</a> '{$END}'
  543. </div>
  544. <div class="references">
  545. <span>referenced by:</span>
  546. <ul>
  547. <li>
  548. <a href="#ebnfShaderFile" title="ShaderFile">ShaderFile</a>
  549. </li>
  550. </ul>
  551. </div>
  552. </div>
  553. <div id="ebnfClassProcedure" class="syntax_sub">
  554. <h5>ClassProcedure</h5>
  555. <svg xmlns="http://www.w3.org/2000/svg" width="406" height="114">
  556. <polygon points="9 95 1 91 1 99"/>
  557. <polygon points="17 95 9 91 9 99"/>
  558. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfProcedureHead" xlink:title="ProcedureHead">
  559. <rect x="31" y="81" width="116" height="32"/>
  560. <rect x="29" y="79" width="116" height="32" class="nonterminal"/>
  561. <text class="nonterminal" x="39" y="99">ProcedureHead</text>
  562. </a>
  563. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfCode" xlink:title="Code">
  564. <rect x="187" y="47" width="52" height="32"/>
  565. <rect x="185" y="45" width="52" height="32" class="nonterminal"/>
  566. <text class="nonterminal" x="195" y="65">Code</text>
  567. </a>
  568. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfInherited" xlink:title="Inherited">
  569. <rect x="187" y="3" width="78" height="32"/>
  570. <rect x="185" y="1" width="78" height="32" class="nonterminal"/>
  571. <text class="nonterminal" x="195" y="21">Inherited</text>
  572. </a>
  573. <rect x="305" y="81" width="74" height="32" rx="10"/>
  574. <rect x="303" y="79" width="74" height="32" class="terminal" rx="10"/>
  575. <text class="terminal" x="313" y="99">{$END}</text>
  576. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 95 h2 m0 0 h10 m116 0 h10 m20 0 h10 m0 0 h88 m-118 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -14 q0 -10 10 -10 m98 34 l20 0 m-20 0 q10 0 10 -10 l0 -14 q0 -10 -10 -10 m-98 0 h10 m52 0 h10 m0 0 h26 m-108 10 l0 -44 q0 -10 10 -10 m108 54 l0 -44 q0 -10 -10 -10 m-98 0 h10 m78 0 h10 m20 78 h10 m74 0 h10 m3 0 h-3"/>
  577. <polygon points="397 95 405 91 405 99"/>
  578. <polygon points="397 95 389 91 389 99"/>
  579. </svg>
  580. <div class="ebnf code area">
  581. <a href="#ebnfClassProcedure" title="ClassProcedure">ClassProcedure</a> ::= <a href="#ebnfProcedureHead" title="ProcedureHead">ProcedureHead</a> ( <a href="#ebnfCode" title="Code">Code</a> | <a href="#ebnfInherited" title="Inherited">Inherited</a> )* '{$END}'
  582. </div>
  583. <div class="references">
  584. <span>referenced by:</span>
  585. <ul>
  586. <li>
  587. <a href="#ebnfClass" title="Class">Class</a>
  588. </li>
  589. </ul>
  590. </div>
  591. </div>
  592. <div id="ebnfProcedureHead" class="syntax_sub">
  593. <h5>ProcedureHead</h5>
  594. <svg xmlns="http://www.w3.org/2000/svg" width="798" height="68">
  595. <polygon points="9 33 1 29 1 37"/>
  596. <polygon points="17 33 9 29 9 37"/>
  597. <rect x="31" y="19" width="76" height="32" rx="10"/>
  598. <rect x="29" y="17" width="76" height="32" class="terminal" rx="10"/>
  599. <text class="terminal" x="39" y="37">{$PROC</text>
  600. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfMethodName" xlink:title="MethodName">
  601. <rect x="127" y="19" width="102" height="32"/>
  602. <rect x="125" y="17" width="102" height="32" class="nonterminal"/>
  603. <text class="nonterminal" x="135" y="37">MethodName</text>
  604. </a>
  605. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfParameterType" xlink:title="ParameterType">
  606. <rect x="289" y="19" width="116" height="32"/>
  607. <rect x="287" y="17" width="116" height="32" class="nonterminal"/>
  608. <text class="nonterminal" x="297" y="37">ParameterType</text>
  609. </a>
  610. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfParameterName" xlink:title="ParameterName">
  611. <rect x="425" y="19" width="122" height="32"/>
  612. <rect x="423" y="17" width="122" height="32" class="nonterminal"/>
  613. <text class="nonterminal" x="433" y="37">ParameterName</text>
  614. </a>
  615. <rect x="627" y="19" width="76" height="32" rx="10"/>
  616. <rect x="625" y="17" width="76" height="32" class="terminal" rx="10"/>
  617. <text class="terminal" x="635" y="37">$INLINE</text>
  618. <rect x="743" y="19" width="28" height="32" rx="10"/>
  619. <rect x="741" y="17" width="28" height="32" class="terminal" rx="10"/>
  620. <text class="terminal" x="751" y="37">}</text>
  621. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 33 h2 m0 0 h10 m76 0 h10 m0 0 h10 m102 0 h10 m40 0 h10 m116 0 h10 m0 0 h10 m122 0 h10 m-298 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -12 q0 -10 10 -10 m278 32 l20 0 m-20 0 q10 0 10 -10 l0 -12 q0 -10 -10 -10 m-278 0 h10 m0 0 h268 m-318 32 h20 m318 0 h20 m-358 0 q10 0 10 10 m338 0 q0 -10 10 -10 m-348 10 v14 m338 0 v-14 m-338 14 q0 10 10 10 m318 0 q10 0 10 -10 m-328 10 h10 m0 0 h308 m40 -34 h10 m76 0 h10 m-116 0 h20 m96 0 h20 m-136 0 q10 0 10 10 m116 0 q0 -10 10 -10 m-126 10 v14 m116 0 v-14 m-116 14 q0 10 10 10 m96 0 q10 0 10 -10 m-106 10 h10 m0 0 h86 m20 -34 h10 m28 0 h10 m3 0 h-3"/>
  622. <polygon points="789 33 797 29 797 37"/>
  623. <polygon points="789 33 781 29 781 37"/>
  624. </svg>
  625. <div class="ebnf code area">
  626. <a href="#ebnfProcedure" title="ProcedureHead">ProcedureHead</a> ::= '{$PROC' <a href="#ebnfMethodName" title="MethodName">MethodName</a> ( <a href="#ebnfParameterType" title="ParameterType">ParameterType</a> <a href="#ebnfParameterName" title="ParameterName">ParameterName</a> )* '$INLINE'? '}'
  627. </div>
  628. <div class="references">
  629. <span>referenced by:</span>
  630. <ul>
  631. <li>
  632. <a href="#ebnfClassProcedure" title="ClassProcedure">ClassProcedure</a>
  633. </li>
  634. <li>
  635. <a href="#ebnfProcedure" title="Procedure">Procedure</a>
  636. </li>
  637. </ul>
  638. </div>
  639. </div>
  640. </div>
  641. </div>
  642. <div class="box closed">
  643. <div class="head">
  644. <div class="icon open">+</div>
  645. <div class="icon close">-</div>
  646. <h4>Example:</h4>
  647. </div>
  648. <div class="content">
  649. simple example:
  650. <div class="code area">
  651. <span class="pre">{<a href="#ebnfProcedure">$PROC</a> setFragColor 'vec2' 'texCoord'}</span>
  652. <br/>
  653. <div>
  654. <span class="pre">{<a href="#ebnfUniform">$UNIFORM</a> 'sampler2D' 'uColorMap'}</span>
  655. <br/>
  656. <span class="type">vec4</span> color = <span class="func">texture2D</span>(uColorMap, texCoord);<br/>
  657. <span class="buildin">gl_FragColor</span> = color;<br/>
  658. </div>
  659. <span class="pre">{$END}</span>
  660. <br/>
  661. <br/>
  662. <span class="pre">{<a href="#ebnfCall">$CALL</a> setFragColor 'gl_TexCoord[0].st'}</span>;
  663. </div>
  664. <br/>
  665. resulting code:
  666. <div class="code area">
  667. <span class="keyword">uniform</span>
  668. <span class="type">sampler2D</span> uColorMap;<br/>
  669. <br/>
  670. <span class="type">void</span> setFragColor(<span class="type">vec2</span> texCoord)<br/>
  671. {<br/>
  672. <div>
  673. <span class="type">vec4</span> color = <span class="func">texture2D</span>(uColorMap, texCoord);<br/>
  674. <span class="buildin">gl_FragColor</span> = color;<br/>
  675. </div>
  676. }<br/>
  677. <br/>
  678. setFragColor(<span class="buildin">gl_TexCoord</span>[<span class="number">0</span>].st);
  679. </div>
  680. </div>
  681. </div>
  682. </div>
  683. <!-- Function -->
  684. <div id="Function">
  685. <h2>Function</h2>
  686. <div class="box closed">
  687. <div class="head">
  688. <div class="icon open">+</div>
  689. <div class="icon close">-</div>
  690. <h4>Description:</h4>
  691. </div>
  692. <div class="content">
  693. The function token will generate a normal function in the resulting code, when the function is at least used one time inside a {<a href="#ebnfCall">$CALL</a>}.<br/>
  694. Inside a class you can add the $INLINE token. If the $INLINE token is added the code inside the function will be copied and pasted inside the resulting code.<br/>
  695. Be careful with inlined methods, because the precompiler will not check the variable names inside the method, so you maybe have a duplicate variable when it is pasted inside the resulting code.<br/>
  696. </div>
  697. </div>
  698. <div class="box closed">
  699. <div class="head">
  700. <div class="icon open">+</div>
  701. <div class="icon close">-</div>
  702. <h4>Syntax:</h4>
  703. </div>
  704. <div class="content">
  705. <div id="ebnfFunction" class="syntax_sub">
  706. <h5>Function</h5>
  707. <svg xmlns="http://www.w3.org/2000/svg" width="330" height="36">
  708. <polygon points="9 17 1 13 1 21"/>
  709. <polygon points="17 17 9 13 9 21"/>
  710. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfFunctionHead" xlink:title="FunctionHead">
  711. <rect x="31" y="3" width="106" height="32"/>
  712. <rect x="29" y="1" width="106" height="32" class="nonterminal"/>
  713. <text class="nonterminal" x="39" y="21">FunctionHead</text>
  714. </a>
  715. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfCode" xlink:title="Code">
  716. <rect x="157" y="3" width="52" height="32"/>
  717. <rect x="155" y="1" width="52" height="32" class="nonterminal"/>
  718. <text class="nonterminal" x="165" y="21">Code</text>
  719. </a>
  720. <rect x="229" y="3" width="74" height="32" rx="10"/>
  721. <rect x="227" y="1" width="74" height="32" class="terminal" rx="10"/>
  722. <text class="terminal" x="237" y="21">{$END}</text>
  723. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m0 0 h10 m106 0 h10 m0 0 h10 m52 0 h10 m0 0 h10 m74 0 h10 m3 0 h-3"/>
  724. <polygon points="321 17 329 13 329 21"/>
  725. <polygon points="321 17 313 13 313 21"/>
  726. </svg>
  727. <div class="ebnf code area">
  728. <a href="#ebnfFunction" title="Function">Function</a> ::= <a href="#ebnfFunctionHead" title="FunctionHead">FunctionHead</a> <a href="#ebnfCode" title="Code">Code</a> '{$END}'
  729. </div>
  730. <div class="references">
  731. <span>referenced by:</span>
  732. <ul>
  733. <li>
  734. <a href="#ebnfShaderFile" title="ShaderFile">ShaderFile</a>
  735. </li>
  736. </ul>
  737. </div>
  738. </div>
  739. <div id="ebnfClassFunction" class="syntax_sub">
  740. <h5>ClassFunction</h5>
  741. <svg xmlns="http://www.w3.org/2000/svg" width="396" height="114">
  742. <polygon points="9 95 1 91 1 99"/>
  743. <polygon points="17 95 9 91 9 99"/>
  744. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfFunctionHead" xlink:title="FunctionHead">
  745. <rect x="31" y="81" width="106" height="32"/>
  746. <rect x="29" y="79" width="106" height="32" class="nonterminal"/>
  747. <text class="nonterminal" x="39" y="99">FunctionHead</text>
  748. </a>
  749. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfCode" xlink:title="Code">
  750. <rect x="177" y="47" width="52" height="32"/>
  751. <rect x="175" y="45" width="52" height="32" class="nonterminal"/>
  752. <text class="nonterminal" x="185" y="65">Code</text>
  753. </a>
  754. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfInherited" xlink:title="Inherited">
  755. <rect x="177" y="3" width="78" height="32"/>
  756. <rect x="175" y="1" width="78" height="32" class="nonterminal"/>
  757. <text class="nonterminal" x="185" y="21">Inherited</text>
  758. </a>
  759. <rect x="295" y="81" width="74" height="32" rx="10"/>
  760. <rect x="293" y="79" width="74" height="32" class="terminal" rx="10"/>
  761. <text class="terminal" x="303" y="99">{$END}</text>
  762. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 95 h2 m0 0 h10 m106 0 h10 m20 0 h10 m0 0 h88 m-118 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -14 q0 -10 10 -10 m98 34 l20 0 m-20 0 q10 0 10 -10 l0 -14 q0 -10 -10 -10 m-98 0 h10 m52 0 h10 m0 0 h26 m-108 10 l0 -44 q0 -10 10 -10 m108 54 l0 -44 q0 -10 -10 -10 m-98 0 h10 m78 0 h10 m20 78 h10 m74 0 h10 m3 0 h-3"/>
  763. <polygon points="387 95 395 91 395 99"/>
  764. <polygon points="387 95 379 91 379 99"/>
  765. </svg>
  766. <div class="ebnf code area">
  767. <a href="#ebnfClassFunction" title="ClassFunction">ClassFunction</a> ::= <a href="#ebnfFunctionHead" title="FunctionHead">FunctionHead</a> ( <a href="#ebnfCode" title="Code">Code</a> | <a href="#ebnfInherited" title="Inherited">Inherited</a> )* '{$END}'
  768. </div>
  769. <div class="references">
  770. <span>referenced by:</span>
  771. <ul>
  772. <li>
  773. <a href="#ebnfClass" title="Class">Class</a>
  774. </li>
  775. </ul>
  776. </div>
  777. </div>
  778. <div id="ebnfFunctionHead" class="syntax_sub">
  779. <h5>FunctionHead</h5>
  780. <svg xmlns="http://www.w3.org/2000/svg" width="908" height="68">
  781. <polygon points="9 33 1 29 1 37"/>
  782. <polygon points="17 33 9 29 9 37"/>
  783. <rect x="31" y="19" width="74" height="32" rx="10"/>
  784. <rect x="29" y="17" width="74" height="32" class="terminal" rx="10"/>
  785. <text class="terminal" x="39" y="37">{$FUNC</text>
  786. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfReturnType" xlink:title="ReturnType">
  787. <rect x="125" y="19" width="92" height="32"/>
  788. <rect x="123" y="17" width="92" height="32" class="nonterminal"/>
  789. <text class="nonterminal" x="133" y="37">ReturnType</text>
  790. </a>
  791. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfMethodName" xlink:title="MethodName">
  792. <rect x="237" y="19" width="102" height="32"/>
  793. <rect x="235" y="17" width="102" height="32" class="nonterminal"/>
  794. <text class="nonterminal" x="245" y="37">MethodName</text>
  795. </a>
  796. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfParameterType" xlink:title="ParameterType">
  797. <rect x="399" y="19" width="116" height="32"/>
  798. <rect x="397" y="17" width="116" height="32" class="nonterminal"/>
  799. <text class="nonterminal" x="407" y="37">ParameterType</text>
  800. </a>
  801. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfParameterName" xlink:title="ParameterName">
  802. <rect x="535" y="19" width="122" height="32"/>
  803. <rect x="533" y="17" width="122" height="32" class="nonterminal"/>
  804. <text class="nonterminal" x="543" y="37">ParameterName</text>
  805. </a>
  806. <rect x="737" y="19" width="76" height="32" rx="10"/>
  807. <rect x="735" y="17" width="76" height="32" class="terminal" rx="10"/>
  808. <text class="terminal" x="745" y="37">$INLINE</text>
  809. <rect x="853" y="19" width="28" height="32" rx="10"/>
  810. <rect x="851" y="17" width="28" height="32" class="terminal" rx="10"/>
  811. <text class="terminal" x="861" y="37">}</text>
  812. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 33 h2 m0 0 h10 m74 0 h10 m0 0 h10 m92 0 h10 m0 0 h10 m102 0 h10 m40 0 h10 m116 0 h10 m0 0 h10 m122 0 h10 m-298 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -12 q0 -10 10 -10 m278 32 l20 0 m-20 0 q10 0 10 -10 l0 -12 q0 -10 -10 -10 m-278 0 h10 m0 0 h268 m-318 32 h20 m318 0 h20 m-358 0 q10 0 10 10 m338 0 q0 -10 10 -10 m-348 10 v14 m338 0 v-14 m-338 14 q0 10 10 10 m318 0 q10 0 10 -10 m-328 10 h10 m0 0 h308 m40 -34 h10 m76 0 h10 m-116 0 h20 m96 0 h20 m-136 0 q10 0 10 10 m116 0 q0 -10 10 -10 m-126 10 v14 m116 0 v-14 m-116 14 q0 10 10 10 m96 0 q10 0 10 -10 m-106 10 h10 m0 0 h86 m20 -34 h10 m28 0 h10 m3 0 h-3"/>
  813. <polygon points="899 33 907 29 907 37"/>
  814. <polygon points="899 33 891 29 891 37"/>
  815. </svg>
  816. <div class="ebnf code area">
  817. <a href="#ebnfFunctionHead" title="FunctionHead">FunctionHead</a> ::= '{$FUNC' <a href="#ebnfReturnType" title="ReturnType">ReturnType</a> <a href="#ebnfMethodName" title="MethodName">MethodName</a> ( <a href="#ebnfParameterType" title="ParameterType">ParameterType</a> <a href="#ebnfParameterName" title="ParameterName">ParameterName</a> )* '$INLINE'? '}'
  818. </div>
  819. <div class="references">
  820. <span>referenced by:</span>
  821. <ul>
  822. <li>
  823. <a href="#ebnfClassFunction" title="ClassFunction">ClassFunction</a>
  824. </li>
  825. <li>
  826. <a href="#ebnfFunction" title="Function">Function</a>
  827. </li>
  828. </ul>
  829. </div>
  830. </div>
  831. </div>
  832. </div>
  833. <div class="box closed">
  834. <div class="head">
  835. <div class="icon open">+</div>
  836. <div class="icon close">-</div>
  837. <h4>Example:</h4>
  838. </div>
  839. <div class="content">
  840. simple example:
  841. <div class="code area">
  842. <span class="pre">{<a href="#ebnfFunction">$FUNC</a> 'vec4' 'getColor'}</span>
  843. <br/>
  844. <div>
  845. <span class="pre">{<a href="#ebnfUniform">$UNIFORM</a> 'sampler2D' 'uColorMap'}</span>
  846. <br/>
  847. <span class="type">vec2</span> texCoord = <span class="buildin">gl_TexCoord</span>[<span class="number">0</span>].st;<br/>
  848. <span class="keyword">return</span>
  849. <span class="func">texture2D</span>(uColorMap, texCoord);<br/>
  850. </div>
  851. <span class="pre">{$END}</span>
  852. <br/>
  853. <br/>
  854. <span class="buildin">gl_FragColor</span> = <span class="pre">{<a href="#ebnfCall">$CALL</a> getColor}</span>;
  855. </div>
  856. <br/>
  857. resulting code:
  858. <div class="code area">
  859. <span class="keyword">uniform</span>
  860. <span class="type">sampler2D</span> uColorMap;<br/>
  861. <br/>
  862. <span class="type">vec4</span> getColor()<br/>
  863. {<br/>
  864. <div>
  865. <span class="type">vec2</span> texCoord = <span class="buildin">gl_TexCoord</span>[<span class="number">0</span>].st;<br/>
  866. <span class="keyword">return</span>
  867. <span class="func">texture2D</span>(uColorMap, texCoord);<br/>
  868. </div>
  869. }<br/>
  870. <br/>
  871. <span class="buildin">gl_FragColor</span> = getColor();
  872. </div>
  873. </div>
  874. </div>
  875. </div>
  876. <!-- Main -->
  877. <div id="Main">
  878. <h2>Main</h2>
  879. <div class="box closed">
  880. <div class="head">
  881. <div class="icon open">+</div>
  882. <div class="icon close">-</div>
  883. <h4>Description:</h4>
  884. </div>
  885. <div class="content">
  886. The {<a href="#ebnfMain">$MAIN</a>} token is a special procedure without parameters that will be called automatically by the pre compiler, when the code is generated. The {<a href="#ebnfMain">$MAIN</a>} token is necessary inside a class and optional inside a shader file.<br/>
  887. </div>
  888. </div>
  889. <div class="box closed">
  890. <div class="head">
  891. <div class="icon open">+</div>
  892. <div class="icon close">-</div>
  893. <h4>Syntax:</h4>
  894. </div>
  895. <div class="content">
  896. <div id="ebnfMain" class="syntax_sub">
  897. <h5>Main</h5>
  898. <svg xmlns="http://www.w3.org/2000/svg" width="306" height="36">
  899. <polygon points="9 17 1 13 1 21"/>
  900. <polygon points="17 17 9 13 9 21"/>
  901. <rect x="31" y="3" width="82" height="32" rx="10"/>
  902. <rect x="29" y="1" width="82" height="32" class="terminal" rx="10"/>
  903. <text class="terminal" x="39" y="21">{$MAIN}</text>
  904. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfCode" xlink:title="Code">
  905. <rect x="133" y="3" width="52" height="32"/>
  906. <rect x="131" y="1" width="52" height="32" class="nonterminal"/>
  907. <text class="nonterminal" x="141" y="21">Code</text>
  908. </a>
  909. <rect x="205" y="3" width="74" height="32" rx="10"/>
  910. <rect x="203" y="1" width="74" height="32" class="terminal" rx="10"/>
  911. <text class="terminal" x="213" y="21">{$END}</text>
  912. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m0 0 h10 m82 0 h10 m0 0 h10 m52 0 h10 m0 0 h10 m74 0 h10 m3 0 h-3"/>
  913. <polygon points="297 17 305 13 305 21"/>
  914. <polygon points="297 17 289 13 289 21"/>
  915. </svg>
  916. <div class="ebnf code area">
  917. <a href="#ebnfMain" title="Main">Main</a> ::= '{$MAIN}' <a href="#ebnfCode" title="Code">Code</a> '{$END}'
  918. </div>
  919. <div class="references">
  920. <span>referenced by:</span>
  921. <ul>
  922. <li>
  923. <a href="#ebnfShaderFile" title="ShaderFile">ShaderFile</a>
  924. </li>
  925. </ul>
  926. </div>
  927. </div>
  928. <div id="ebnfClassMain" class="syntax_sub">
  929. <h5>ClassMain</h5>
  930. <svg xmlns="http://www.w3.org/2000/svg" width="372" height="114">
  931. <polygon points="9 95 1 91 1 99"/>
  932. <polygon points="17 95 9 91 9 99"/>
  933. <rect x="31" y="81" width="82" height="32" rx="10"/>
  934. <rect x="29" y="79" width="82" height="32" class="terminal" rx="10"/>
  935. <text class="terminal" x="39" y="99">{$MAIN}</text>
  936. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfCode" xlink:title="Code">
  937. <rect x="153" y="47" width="52" height="32"/>
  938. <rect x="151" y="45" width="52" height="32" class="nonterminal"/>
  939. <text class="nonterminal" x="161" y="65">Code</text>
  940. </a>
  941. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfInherited" xlink:title="Inherited">
  942. <rect x="153" y="3" width="78" height="32"/>
  943. <rect x="151" y="1" width="78" height="32" class="nonterminal"/>
  944. <text class="nonterminal" x="161" y="21">Inherited</text>
  945. </a>
  946. <rect x="271" y="81" width="74" height="32" rx="10"/>
  947. <rect x="269" y="79" width="74" height="32" class="terminal" rx="10"/>
  948. <text class="terminal" x="279" y="99">{$END}</text>
  949. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 95 h2 m0 0 h10 m82 0 h10 m20 0 h10 m0 0 h88 m-118 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -14 q0 -10 10 -10 m98 34 l20 0 m-20 0 q10 0 10 -10 l0 -14 q0 -10 -10 -10 m-98 0 h10 m52 0 h10 m0 0 h26 m-108 10 l0 -44 q0 -10 10 -10 m108 54 l0 -44 q0 -10 -10 -10 m-98 0 h10 m78 0 h10 m20 78 h10 m74 0 h10 m3 0 h-3"/>
  950. <polygon points="363 95 371 91 371 99"/>
  951. <polygon points="363 95 355 91 355 99"/>
  952. </svg>
  953. <div class="ebnf code area">
  954. <a href="#ebnfClassMain" title="ClassMain">ClassMain</a> ::= '{$MAIN}' ( <a href="#ebnfCode" title="Code">Code</a> | <a href="#ebnfInherited" title="Inherited">Inherited</a> )* '{$END}'
  955. </div>
  956. <div class="references">
  957. <span>referenced by:</span>
  958. <ul>
  959. <li>
  960. <a href="#ebnfClass" title="Class">Class</a>
  961. </li>
  962. </ul>
  963. </div>
  964. </div>
  965. </div>
  966. </div>
  967. <div class="box closed">
  968. <div class="head">
  969. <div class="noselect icon open">+</div>
  970. <div class="noselect icon close">-</div>
  971. <h4>Example:</h4>
  972. </div>
  973. <div class="content">
  974. simple example:
  975. <div class="code area">
  976. <span class="pre">{<a href="#ebnfMain">$MAIN</a>}</span>
  977. <br/>
  978. <div>
  979. <span class="buildin">gl_Position</span> = <span class="buildin">gl_ModelViewProjectionMatrix</span> * <span class="buildin">gl_Vertex</span>;<br/>
  980. <span class="buildin">gl_FrontColor</span> = <span class="buildin">gl_Color</span>;<br/>
  981. </div>
  982. <span class="pre">{$END}</span>
  983. </div>
  984. <br/>
  985. resulting code:
  986. <div class="code area">
  987. <span class="type">void</span> main(<span class="type">void</span>)<br/>
  988. {<br/>
  989. <div>
  990. <span class="buildin">gl_Position</span> = <span class="buildin">gl_ModelViewProjectionMatrix</span> * <span class="buildin">gl_Vertex</span>;<br/>
  991. <span class="buildin">gl_FrontColor</span> = <span class="buildin">gl_Color</span>;<br/>
  992. </div>
  993. }
  994. </div>
  995. </div>
  996. </div>
  997. </div>
  998. <!-- Call -->
  999. <div id="Call">
  1000. <h2>Call</h2>
  1001. <div class="box closed">
  1002. <div class="head">
  1003. <div class="noselect icon open">+</div>
  1004. <div class="noselect icon close">-</div>
  1005. <h4>Description:</h4>
  1006. </div>
  1007. <div class="content">
  1008. The {<a href="#ebnfCall">$CALL</a>} token tells the precompiler to execute a method.<br/>
  1009. If the method is marked with the $INLINE token the code of this method will be copied and pasted in the resulting code. Be careful with inlined methods, because the precompiler will not check the variable names inside the method, so you maybe have a duplicate variable when it is pasted inside the resulting code.<br/>
  1010. If the method is not marked with the $INLINE token a normal method will be generated in the resulting code.<br/>
  1011. </div>
  1012. </div>
  1013. <div class="box closed">
  1014. <div class="head">
  1015. <div class="noselect icon open">+</div>
  1016. <div class="noselect icon close">-</div>
  1017. <h4>Syntax:</h4>
  1018. </div>
  1019. <div class="content">
  1020. <div id="ebnfCall" class="syntax_sub">
  1021. <h5>Call</h5>
  1022. <svg xmlns="http://www.w3.org/2000/svg" width="446" height="70">
  1023. <polygon points="9 51 1 47 1 55"/>
  1024. <polygon points="17 51 9 47 9 55"/>
  1025. <rect x="31" y="37" width="72" height="32" rx="10"/>
  1026. <rect x="29" y="35" width="72" height="32" class="terminal" rx="10"/>
  1027. <text class="terminal" x="39" y="55">{$CALL</text>
  1028. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfMethodName" xlink:title="MethodName">
  1029. <rect x="123" y="37" width="102" height="32"/>
  1030. <rect x="121" y="35" width="102" height="32" class="nonterminal"/>
  1031. <text class="nonterminal" x="131" y="55">MethodName</text>
  1032. </a>
  1033. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfParameter" xlink:title="Parameter">
  1034. <rect x="265" y="3" width="86" height="32"/>
  1035. <rect x="263" y="1" width="86" height="32" class="nonterminal"/>
  1036. <text class="nonterminal" x="273" y="21">Parameter</text>
  1037. </a>
  1038. <rect x="391" y="37" width="28" height="32" rx="10"/>
  1039. <rect x="389" y="35" width="28" height="32" class="terminal" rx="10"/>
  1040. <text class="terminal" x="399" y="55">}</text>
  1041. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 51 h2 m0 0 h10 m72 0 h10 m0 0 h10 m102 0 h10 m20 0 h10 m0 0 h96 m-126 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -14 q0 -10 10 -10 m106 34 l20 0 m-20 0 q10 0 10 -10 l0 -14 q0 -10 -10 -10 m-106 0 h10 m86 0 h10 m20 34 h10 m28 0 h10 m3 0 h-3"/>
  1042. <polygon points="437 51 445 47 445 55"/>
  1043. <polygon points="437 51 429 47 429 55"/>
  1044. </svg>
  1045. <div class="ebnf code area">
  1046. <a href="#ebnfCall" title="Call">Call</a> ::= '{$CALL' <a href="#ebnfMethodName" title="MethodName">MethodName</a> <a href="#ebnfParameter" title="Parameter">Parameter</a>* '}'
  1047. </div>
  1048. <div class="references">
  1049. <span>referenced by:</span>
  1050. <ul>
  1051. <li>
  1052. <a href="#ebnfCode" title="Code">Code</a>
  1053. </li>
  1054. </ul>
  1055. </div>
  1056. </div>
  1057. </div>
  1058. </div>
  1059. <div class="box closed">
  1060. <div class="head">
  1061. <div class="noselect icon open">+</div>
  1062. <div class="noselect icon close">-</div>
  1063. <h4>Example:</h4>
  1064. </div>
  1065. <div class="content">
  1066. simple example:
  1067. <div class="code area">
  1068. <span class="pre">{<a href="#ebnfFunction">$FUNC</a> 'vec4' 'getColor'}</span>
  1069. <br/>
  1070. <div>
  1071. <span class="pre">{<a href="#ebnfUniform">$UNIFORM</a> 'sampler2D' 'uColorMap'}</span>
  1072. <br/>
  1073. <span class="type">vec2</span> texCoord = <span class="buildin">gl_TexCoord</span>[<span class="number">0</span>].st;<br/>
  1074. <span class="keyword">return</span>
  1075. <span class="func">texture2D</span>(uColorMap, texCoord);<br/>
  1076. </div>
  1077. <span class="pre">{$END}</span>
  1078. <br/>
  1079. <br/>
  1080. <span class="buildin">gl_FragColor</span> = <span class="pre">{<a href="#ebnfCall">$CALL</a> getColor}</span>;
  1081. </div>
  1082. <br/>
  1083. resulting code:
  1084. <div class="code area">
  1085. <span class="keyword">uniform</span>
  1086. <span class="type">sampler2D</span> uColorMap;<br/>
  1087. <br/>
  1088. <span class="type">vec4</span> getColor()<br/>
  1089. {<br/>
  1090. <div>
  1091. <span class="type">vec2</span> texCoord = <span class="buildin">gl_TexCoord</span>[<span class="number">0</span>].st;<br/>
  1092. <span class="keyword">return</span>
  1093. <span class="func">texture2D</span>(uColorMap, texCoord);<br/>
  1094. </div>
  1095. }<br/>
  1096. <br/>
  1097. <span class="buildin">gl_FragColor</span> = getColor();
  1098. </div>
  1099. </div>
  1100. </div>
  1101. </div>
  1102. <!-- Inherited -->
  1103. <div id="Inherited">
  1104. <h2>Inherited</h2>
  1105. <div class="box closed">
  1106. <div class="head">
  1107. <div class="noselect icon open">+</div>
  1108. <div class="noselect icon close">-</div>
  1109. <h4>Description:</h4>
  1110. </div>
  1111. <div class="content">
  1112. The {<a href="#ebnfInherited">$INHERITED</a>} token is a special {<a href="#ebnfCall">$CALL</a>} token. It can only be used inside a {<a href="#ebnfClass">$CLASS</a>}. It will call a method inside a parent class. If you add the $INLINE token, the called method will be inlined. Be careful with inlined methods, because the precompiler will not check the variable names inside the method, so you maybe have a duplicate variable when it is pasted inside the resulting code.<br/>
  1113. </div>
  1114. </div>
  1115. <div class="box closed">
  1116. <div class="head">
  1117. <div class="noselect icon open">+</div>
  1118. <div class="noselect icon close">-</div>
  1119. <h4>Syntax:</h4>
  1120. </div>
  1121. <div class="content">
  1122. <div id="ebnfInherited" class="syntax_sub">
  1123. <h5>Inherited</h5>
  1124. <svg xmlns="http://www.w3.org/2000/svg" width="812" height="86">
  1125. <polygon points="9 51 1 47 1 55"/>
  1126. <polygon points="17 51 9 47 9 55"/>
  1127. <rect x="31" y="37" width="112" height="32" rx="10"/>
  1128. <rect x="29" y="35" width="112" height="32" class="terminal" rx="10"/>
  1129. <text class="terminal" x="39" y="55">{$INHERITED</text>
  1130. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfClassName" xlink:title="ClassName">
  1131. <rect x="183" y="37" width="90" height="32"/>
  1132. <rect x="181" y="35" width="90" height="32" class="nonterminal"/>
  1133. <text class="nonterminal" x="191" y="55">ClassName</text>
  1134. </a>
  1135. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfMethodName" xlink:title="MethodName">
  1136. <rect x="333" y="37" width="102" height="32"/>
  1137. <rect x="331" y="35" width="102" height="32" class="nonterminal"/>
  1138. <text class="nonterminal" x="341" y="55">MethodName</text>
  1139. </a>
  1140. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfParameter" xlink:title="Parameter">
  1141. <rect x="495" y="3" width="86" height="32"/>
  1142. <rect x="493" y="1" width="86" height="32" class="nonterminal"/>
  1143. <text class="nonterminal" x="503" y="21">Parameter</text>
  1144. </a>
  1145. <rect x="641" y="37" width="76" height="32" rx="10"/>
  1146. <rect x="639" y="35" width="76" height="32" class="terminal" rx="10"/>
  1147. <text class="terminal" x="649" y="55">$INLINE</text>
  1148. <rect x="757" y="37" width="28" height="32" rx="10"/>
  1149. <rect x="755" y="35" width="28" height="32" class="terminal" rx="10"/>
  1150. <text class="terminal" x="765" y="55">}</text>
  1151. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 51 h2 m0 0 h10 m112 0 h10 m20 0 h10 m90 0 h10 m-130 0 h20 m110 0 h20 m-150 0 q10 0 10 10 m130 0 q0 -10 10 -10 m-140 10 v14 m130 0 v-14 m-130 14 q0 10 10 10 m110 0 q10 0 10 -10 m-120 10 h10 m0 0 h100 m40 -34 h10 m102 0 h10 m-142 0 h20 m122 0 h20 m-162 0 q10 0 10 10 m142 0 q0 -10 10 -10 m-152 10 v14 m142 0 v-14 m-142 14 q0 10 10 10 m122 0 q10 0 10 -10 m-132 10 h10 m0 0 h112 m40 -34 h10 m0 0 h96 m-126 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -14 q0 -10 10 -10 m106 34 l20 0 m-20 0 q10 0 10 -10 l0 -14 q0 -10 -10 -10 m-106 0 h10 m86 0 h10 m40 34 h10 m76 0 h10 m-116 0 h20 m96 0 h20 m-136 0 q10 0 10 10 m116 0 q0 -10 10 -10 m-126 10 v14 m116 0 v-14 m-116 14 q0 10 10 10 m96 0 q10 0 10 -10 m-106 10 h10 m0 0 h86 m20 -34 h10 m28 0 h10 m3 0 h-3"/>
  1152. <polygon points="803 51 811 47 811 55"/>
  1153. <polygon points="803 51 795 47 795 55"/>
  1154. </svg>
  1155. <div class="ebnf code area">
  1156. <a href="#ebnfInherited" title="Inherited">Inherited</a> ::= '{$INHERITED' <a href="#ebnfClassName" title="ClassName">ClassName</a>? <a href="#ebnfMethodName" title="MethodName">MethodName</a>? <a href="#ebnfParameter" title="Parameter">Parameter</a>* '$INLINE'? '}'
  1157. </div>
  1158. <div class="references">
  1159. <span>referenced by:</span>
  1160. <ul>
  1161. <li>
  1162. <a href="#ebnfClassFunction" title="ClassFunction">ClassFunction</a>
  1163. </li>
  1164. <li>
  1165. <a href="#ebnfClassMain" title="ClassMain">ClassMain</a>
  1166. </li>
  1167. <li>
  1168. <a href="#ebnfClassProcedure" title="ClassProcedure">ClassProcedure</a>
  1169. </li>
  1170. </ul>
  1171. </div>
  1172. </div>
  1173. </div>
  1174. </div>
  1175. <div class="box closed">
  1176. <div class="head">
  1177. <div class="noselect icon open">+</div>
  1178. <div class="noselect icon close">-</div>
  1179. <h4>Example:</h4>
  1180. </div>
  1181. <div class="content">
  1182. example:
  1183. <div class="code area">
  1184. <span class="pre">{<a href="#ebnfClass">$CLASS</a> ColorVert}</span><br/>
  1185. <div>
  1186. <span class="pre">{<a href="#ebnfMain">$MAIN</a>}</span><br/>
  1187. <div>
  1188. <span class="buildin">gl_Position</span> = <span class="buildin">gl_ModelViewProjectionMatrix</span> * <span class="buildin">gl_Vertex</span>;<br/>
  1189. <span class="buildin">gl_TexCoord</span>[<span class="number">0</span>] = <span class="buildin">gl_MultiTexCoord0</span>;<br/>
  1190. </div>
  1191. <span class="pre">{$END}</span><br/>
  1192. </div>
  1193. <span class="pre">{$END}</span><br/>
  1194. <br/>
  1195. <span class="pre">{<a href="#ebnfClass">$CLASS</a> PhongLightVert $EXTENDS ColorVert}</span><br/>
  1196. <div>
  1197. <span class="pre">{<a href="#ebnfMain">$MAIN</a>}</span><br/>
  1198. <div>
  1199. <span class="pre">{<a href="#ebnfVarying">$VARYING</a> 'vec3' 'vNormal'}</span><br/>
  1200. <span class="pre">{<a href="#ebnfVarying">$VARYING</a> 'vec3' 'vVertex'}</span><br/>
  1201. <span class="pre">{<a href="#ebnfInherited">$INHERITED</a> ColorVert $INLINE};</span><br/>
  1202. vNormal = <span class="func">normalize</span>(<span class="buildin">gl_NormalMatrix</span> * <span class="buildin">gl_Normal</span>);<br/>
  1203. vVertex = <span class="type">vec3</span>(<span class="buildin">gl_ModelViewMatrix</span> * <span class="buildin">gl_Vertex</span>);<br/>
  1204. </div>
  1205. <span class="pre">{$END}</span><br/>
  1206. </div>
  1207. <span class="pre">{$END}</span><br/>
  1208. </div>
  1209. <br/>
  1210. resulting code:
  1211. <div class="code area">
  1212. <span class="keyword">varying</span> <span class="type">vec3</span> vNormal;<br/>
  1213. <span class="keyword">varying</span> <span class="type">vec3</span> vVertex;<br/>
  1214. <br/>
  1215. <span class="type">void</span> main(<span class="type">void</span>)<br/>
  1216. {<br/>
  1217. <div>
  1218. <span class="buildin">gl_Position</span> = <span class="buildin">gl_ModelViewProjectionMatrix</span> * <span class="buildin">gl_Vertex</span>;<br/>
  1219. <span class="buildin">gl_TexCoord</span>[<span class="number">0</span>] = <span class="buildin">gl_MultiTexCoord0</span>;<br/>
  1220. vNormal = <span class="func">normalize</span>(<span class="buildin">gl_NormalMatrix</span> * <span class="buildin">gl_Normal</span>);<br/>
  1221. vVertex = <span class="type">vec3</span>(<span class="buildin">gl_ModelViewMatrix</span> * <span class="buildin">gl_Vertex</span>);<br/>
  1222. </div>
  1223. }<br/>
  1224. </div>
  1225. </div>
  1226. </div>
  1227. </div>
  1228. <!-- Include -->
  1229. <div id="Include">
  1230. <h2>Include</h2>
  1231. <div class="box closed">
  1232. <div class="head">
  1233. <div class="icon open">+</div>
  1234. <div class="icon close">-</div>
  1235. <h4>Description:</h4>
  1236. </div>
  1237. <div class="content">
  1238. Using the {<a href="#ebnfInclude">$INCLUDE</a>} token you can add another shader file to the current file.
  1239. </div>
  1240. </div>
  1241. <div class="box closed">
  1242. <div class="head">
  1243. <div class="icon open">+</div>
  1244. <div class="icon close">-</div>
  1245. <h4>Syntax:</h4>
  1246. </div>
  1247. <div class="content">
  1248. <div id="ebnfInclude" class="syntax_sub">
  1249. <h5>Include</h5>
  1250. <svg xmlns="http://www.w3.org/2000/svg" width="294" height="36">
  1251. <polygon points="9 17 1 13 1 21"/>
  1252. <polygon points="17 17 9 13 9 21"/>
  1253. <rect x="31" y="3" width="98" height="32" rx="10"/>
  1254. <rect x="29" y="1" width="98" height="32" class="terminal" rx="10"/>
  1255. <text class="terminal" x="39" y="21">{$INCLUDE</text>
  1256. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfFilepath" xlink:title="Filepath">
  1257. <rect x="149" y="3" width="70" height="32"/>
  1258. <rect x="147" y="1" width="70" height="32" class="nonterminal"/>
  1259. <text class="nonterminal" x="157" y="21">Filepath</text>
  1260. </a>
  1261. <rect x="239" y="3" width="28" height="32" rx="10"/>
  1262. <rect x="237" y="1" width="28" height="32" class="terminal" rx="10"/>
  1263. <text class="terminal" x="247" y="21">}</text>
  1264. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m0 0 h10 m98 0 h10 m0 0 h10 m70 0 h10 m0 0 h10 m28 0 h10 m3 0 h-3"/>
  1265. <polygon points="285 17 293 13 293 21"/>
  1266. <polygon points="285 17 277 13 277 21"/>
  1267. </svg>
  1268. <div class="ebnf code area">
  1269. <a href="#ebnfInclude" title="Include">Include</a> ::= '{$INCLUDE' <a href="#ebnfFilepath" title="Filepath">Filepath</a> '}'
  1270. </div>
  1271. <div class="references">
  1272. <span>referenced by:</span>
  1273. <ul>
  1274. <li>
  1275. <a href="#ebnfCode" title="Code">Code</a>
  1276. </li>
  1277. </ul>
  1278. </div>
  1279. </div>
  1280. </div>
  1281. </div>
  1282. <div class="box closed">
  1283. <div class="head">
  1284. <div class="icon open">+</div>
  1285. <div class="icon close">-</div>
  1286. <h4>Example:</h4>
  1287. </div>
  1288. <div class="content code area">
  1289. <span class="pre">{<a href="#ebnfInclude">$INCLUDE</a> './path/to/file.shdr'}</span>
  1290. </div>
  1291. </div>
  1292. </div>
  1293. <!-- Property -->
  1294. <div id="Property">
  1295. <h2>Property</h2>
  1296. <div class="box closed">
  1297. <div class="head">
  1298. <div class="icon open">+</div>
  1299. <div class="icon close">-</div>
  1300. <h4>Description:</h4>
  1301. </div>
  1302. <div class="content">
  1303. The {<a href="#ebnfProperty">$PROPERTY</a>} token defines a property. The value of the property can be changed inside the application code, before generating the resulting shader code.
  1304. </div>
  1305. </div>
  1306. <div class="box closed">
  1307. <div class="head">
  1308. <div class="icon open">+</div>
  1309. <div class="icon close">-</div>
  1310. <h4>Syntax:</h4>
  1311. </div>
  1312. <div class="content">
  1313. <div id="ebnfProperty" class="syntax_sub">
  1314. <h5>Property</h5>
  1315. <svg xmlns="http://www.w3.org/2000/svg" width="496" height="96">
  1316. <polygon points="9 17 1 13 1 21"/>
  1317. <polygon points="17 17 9 13 9 21"/>
  1318. <rect x="31" y="3" width="110" height="32" rx="10"/>
  1319. <rect x="29" y="1" width="110" height="32" class="terminal" rx="10"/>
  1320. <text class="terminal" x="39" y="21">{$PROPERTY</text>
  1321. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfPropertyName" xlink:title="PropertyName">
  1322. <rect x="161" y="3" width="110" height="32"/>
  1323. <rect x="159" y="1" width="110" height="32" class="nonterminal"/>
  1324. <text class="nonterminal" x="169" y="21">PropertyName</text>
  1325. </a>
  1326. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfStaticName" xlink:title="StaticName">
  1327. <rect x="311" y="3" width="90" height="32"/>
  1328. <rect x="309" y="1" width="90" height="32" class="nonterminal"/>
  1329. <text class="nonterminal" x="319" y="21">StaticName</text>
  1330. </a>
  1331. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfValue" xlink:title="Value">
  1332. <rect x="311" y="47" width="54" height="32"/>
  1333. <rect x="309" y="45" width="54" height="32" class="nonterminal"/>
  1334. <text class="nonterminal" x="319" y="65">Value</text>
  1335. </a>
  1336. <rect x="441" y="3" width="28" height="32" rx="10"/>
  1337. <rect x="439" y="1" width="28" height="32" class="terminal" rx="10"/>
  1338. <text class="terminal" x="449" y="21">}</text>
  1339. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m0 0 h10 m110 0 h10 m0 0 h10 m110 0 h10 m20 0 h10 m90 0 h10 m-130 0 h20 m110 0 h20 m-150 0 q10 0 10 10 m130 0 q0 -10 10 -10 m-140 10 v24 m130 0 v-24 m-130 24 q0 10 10 10 m110 0 q10 0 10 -10 m-120 10 h10 m54 0 h10 m0 0 h36 m-120 -10 v20 m130 0 v-20 m-130 20 v14 m130 0 v-14 m-130 14 q0 10 10 10 m110 0 q10 0 10 -10 m-120 10 h10 m0 0 h100 m20 -78 h10 m28 0 h10 m3 0 h-3"/>
  1340. <polygon points="487 17 495 13 495 21"/>
  1341. <polygon points="487 17 479 13 479 21"/>
  1342. </svg>
  1343. <div class="ebnf code area">
  1344. <a href="#ebnfProperty" title="Property">Property</a> ::= '{$PROPERTY' <a href="#ebnfPropertyName" title="PropertyName">PropertyName</a> ( <a href="#ebnfStaticName" title="StaticName">StaticName</a> | <a href="#ebnfValue" title="Value">Value</a> )? '}'
  1345. </div>
  1346. <div class="references">
  1347. <span>referenced by:</span>
  1348. <ul>
  1349. <li>
  1350. <a href="#ebnfCode" title="Code">Code</a>
  1351. </li>
  1352. </ul>
  1353. </div>
  1354. </div>
  1355. </div>
  1356. </div>
  1357. <div class="box closed">
  1358. <div class="head">
  1359. <div class="icon open">+</div>
  1360. <div class="icon close">-</div>
  1361. <h4>Example:</h4>
  1362. </div>
  1363. <div class="content code area">
  1364. <span class="pre">{<a href="#ebnfProperty">$PROPERTY</a> MyBoolProperty 'true'}</span>
  1365. </div>
  1366. </div>
  1367. </div>
  1368. <!-- Static -->
  1369. <div id="Static">
  1370. <h2>Static</h2>
  1371. <div class="box closed">
  1372. <div class="head">
  1373. <div class="icon open">+</div>
  1374. <div class="icon close">-</div>
  1375. <h4>Description:</h4>
  1376. </div>
  1377. <div class="content">
  1378. The {<a href="#ebnfStatic">$STATIC</a>} token defines a static constant. It is used to name a magic value, for a better code.
  1379. </div>
  1380. </div>
  1381. <div class="box closed">
  1382. <div class="head">
  1383. <div class="icon open">+</div>
  1384. <div class="icon close">-</div>
  1385. <h4>Syntax:</h4>
  1386. </div>
  1387. <div class="content">
  1388. <div id="ebnfStatic" class="syntax_sub">
  1389. <h5>Static</h5>
  1390. <svg xmlns="http://www.w3.org/2000/svg" width="416" height="52">
  1391. <polygon points="9 17 1 13 1 21"/>
  1392. <polygon points="17 17 9 13 9 21"/>
  1393. <rect x="31" y="3" width="86" height="32" rx="10"/>
  1394. <rect x="29" y="1" width="86" height="32" class="terminal" rx="10"/>
  1395. <text class="terminal" x="39" y="21">{$STATIC</text>
  1396. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfStaticName" xlink:title="StaticName">
  1397. <rect x="137" y="3" width="90" height="32"/>
  1398. <rect x="135" y="1" width="90" height="32" class="nonterminal"/>
  1399. <text class="nonterminal" x="145" y="21">StaticName</text>
  1400. </a>
  1401. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfValue" xlink:title="Value">
  1402. <rect x="267" y="3" width="54" height="32"/>
  1403. <rect x="265" y="1" width="54" height="32" class="nonterminal"/>
  1404. <text class="nonterminal" x="275" y="21">Value</text>
  1405. </a>
  1406. <rect x="361" y="3" width="28" height="32" rx="10"/>
  1407. <rect x="359" y="1" width="28" height="32" class="terminal" rx="10"/>
  1408. <text class="terminal" x="369" y="21">}</text>
  1409. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m0 0 h10 m86 0 h10 m0 0 h10 m90 0 h10 m20 0 h10 m54 0 h10 m-94 0 h20 m74 0 h20 m-114 0 q10 0 10 10 m94 0 q0 -10 10 -10 m-104 10 v14 m94 0 v-14 m-94 14 q0 10 10 10 m74 0 q10 0 10 -10 m-84 10 h10 m0 0 h64 m20 -34 h10 m28 0 h10 m3 0 h-3"/>
  1410. <polygon points="407 17 415 13 415 21"/>
  1411. <polygon points="407 17 399 13 399 21"/>
  1412. </svg>
  1413. <div class="ebnf code area">
  1414. <a href="#ebnfStatic" title="Static">Static</a> ::= '{$STATIC' <a href="#ebnfStaticName" title="StaticName">StaticName</a> <a href="#ebnfValue" title="Value">Value</a>? '}'
  1415. </div>
  1416. <div class="references">
  1417. <span>referenced by:</span>
  1418. <ul>
  1419. <li>
  1420. <a href="#ebnfCode" title="Code">Code</a>
  1421. </li>
  1422. </ul>
  1423. </div>
  1424. </div>
  1425. </div>
  1426. </div>
  1427. <div class="box closed">
  1428. <div class="head">
  1429. <div class="icon open">+</div>
  1430. <div class="icon close">-</div>
  1431. <h4>Example:</h4>
  1432. </div>
  1433. <div class="content code area">
  1434. <span class="pre">{<a href="#ebnfStatic">$STATIC</a> MyStaticDouble '123.4'}</span>
  1435. </div>
  1436. </div>
  1437. </div>
  1438. <!-- If -->
  1439. <div id="If">
  1440. <h2>If</h2>
  1441. <div class="box closed">
  1442. <div class="head">
  1443. <div class="icon open">+</div>
  1444. <div class="icon close">-</div>
  1445. <h4>Description:</h4>
  1446. </div>
  1447. <div class="content">
  1448. Using the {<a href="#ebnfIf">$IF</a>} token you can add another path to the decision tree.
  1449. </div>
  1450. </div>
  1451. <div class="box closed">
  1452. <div class="head">
  1453. <div class="icon open">+</div>
  1454. <div class="icon close">-</div>
  1455. <h4>Syntax Diagram:</h4>
  1456. </div>
  1457. <div class="content">
  1458. <div id="ebnfIf" class="syntax_sub">
  1459. <h5>If</h5>
  1460. <svg xmlns="http://www.w3.org/2000/svg" width="684" height="96">
  1461. <polygon points="9 61 1 57 1 65"/>
  1462. <polygon points="17 61 9 57 9 65"/>
  1463. <rect x="31" y="47" width="52" height="32" rx="10"/>
  1464. <rect x="29" y="45" width="52" height="32" class="terminal" rx="10"/>
  1465. <text class="terminal" x="39" y="65">{$IF</text>
  1466. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfExpression" xlink:title="Expression">
  1467. <rect x="123" y="47" width="88" height="32"/>
  1468. <rect x="121" y="45" width="88" height="32" class="nonterminal"/>
  1469. <text class="nonterminal" x="131" y="65">Expression</text>
  1470. </a>
  1471. <rect x="231" y="47" width="28" height="32" rx="10"/>
  1472. <rect x="229" y="45" width="28" height="32" class="terminal" rx="10"/>
  1473. <text class="terminal" x="239" y="65">}</text>
  1474. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfCode" xlink:title="Code">
  1475. <rect x="279" y="47" width="52" height="32"/>
  1476. <rect x="277" y="45" width="52" height="32" class="nonterminal"/>
  1477. <text class="nonterminal" x="287" y="65">Code</text>
  1478. </a>
  1479. <rect x="123" y="3" width="68" height="32" rx="10"/>
  1480. <rect x="121" y="1" width="68" height="32" class="terminal" rx="10"/>
  1481. <text class="terminal" x="131" y="21">{$ELIF</text>
  1482. <rect x="391" y="47" width="80" height="32" rx="10"/>
  1483. <rect x="389" y="45" width="80" height="32" class="terminal" rx="10"/>
  1484. <text class="terminal" x="399" y="65">{$ELSE}</text>
  1485. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfCode" xlink:title="Code">
  1486. <rect x="491" y="47" width="52" height="32"/>
  1487. <rect x="489" y="45" width="52" height="32" class="nonterminal"/>
  1488. <text class="nonterminal" x="499" y="65">Code</text>
  1489. </a>
  1490. <rect x="583" y="47" width="74" height="32" rx="10"/>
  1491. <rect x="581" y="45" width="74" height="32" class="terminal" rx="10"/>
  1492. <text class="terminal" x="591" y="65">{$END}</text>
  1493. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 61 h2 m0 0 h10 m52 0 h10 m20 0 h10 m88 0 h10 m0 0 h10 m28 0 h10 m0 0 h10 m52 0 h10 m-248 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -24 q0 -10 10 -10 m228 44 l20 0 m-20 0 q10 0 10 -10 l0 -24 q0 -10 -10 -10 m-228 0 h10 m68 0 h10 m0 0 h140 m40 44 h10 m80 0 h10 m0 0 h10 m52 0 h10 m-192 0 h20 m172 0 h20 m-212 0 q10 0 10 10 m192 0 q0 -10 10 -10 m-202 10 v14 m192 0 v-14 m-192 14 q0 10 10 10 m172 0 q10 0 10 -10 m-182 10 h10 m0 0 h162 m20 -34 h10 m74 0 h10 m3 0 h-3"/>
  1494. <polygon points="675 61 683 57 683 65"/>
  1495. <polygon points="675 61 667 57 667 65"/>
  1496. </svg>
  1497. <div class="ebnf code area">
  1498. <a href="#ebnfIf" title="If">If</a> ::= '{$IF' <a href="#ebnfExpression" title="Expression">Expression</a> '}' <a href="#ebnfCode" title="Code">Code</a> ( '{$ELIF' <a href="#ebnfExpression" title="Expression">Expression</a> '}' <a href="#ebnfCode" title="Code">Code</a> )* ( '{$ELSE}' <a href="#ebnfCode" title="Code">Code</a> )? '{$END}'
  1499. </div>
  1500. <div class="references">
  1501. <span>referenced by:</span>
  1502. <ul>
  1503. <li>
  1504. <a href="#ebnfCode" title="Code">Code</a>
  1505. </li>
  1506. </ul>
  1507. </div>
  1508. </div>
  1509. </div>
  1510. </div>
  1511. <div class="box closed">
  1512. <div class="head">
  1513. <div class="icon open">+</div>
  1514. <div class="icon close">-</div>
  1515. <h4>Example:</h4>
  1516. </div>
  1517. <div class="content">
  1518. simple example:
  1519. <div class="code area">
  1520. <span class="pre">{<a href="#ebnfFunction">$FUNC</a> 'vec4' GetColor $INLINE}</span><br/>
  1521. <div>
  1522. <span class="pre">{<a href="#ebnfIf">$IF</a> UseColorMap}</span><br/>
  1523. <div>
  1524. <span class="pre">{<a href="#ebnfUniform">$UNIFORM</a> 'sampler2D' 'uColorMap'}</span><br/>
  1525. <span class="keyword">return</span><span class="func">texture2D</span>(uColorMap, <span class="buildin">gl_TexCoord</span>[<span class="number">0</span>].st);<br/>
  1526. </div>
  1527. <span class="pre">{<a href="#ebnfIf">$ELSE</a>}</span><br/>
  1528. <div>
  1529. <span class="keyword">return</span> <span class="buildin">gl_Color</span>;<br/>
  1530. </div>
  1531. <span class="pre">{$END}</span><br/>
  1532. </div>
  1533. <span class="pre">{$END}</span>
  1534. </div>
  1535. <br/>
  1536. resulting code for UseColorMap = true
  1537. <div class="code area">
  1538. <span class="keyword">uniform</span>
  1539. <span class="type">sampler2D</span> uColorMap;<br/>
  1540. <br/>
  1541. <span class="type">void</span> main(<span class="type">void</span>)<br/>
  1542. {<br/>
  1543. <div>
  1544. <span class="buildin">gl_FragColor</span> = (<span class="func">texture2D</span>(uColorMap, <span class="buildin">gl_TexCoord</span>[<span class="number">0</span>].st));<br/>
  1545. </div>
  1546. }
  1547. </div>
  1548. </div>
  1549. </div>
  1550. </div>
  1551. <!-- Messages -->
  1552. <div id="Messages">
  1553. <h2>Messages</h2>
  1554. <div class="box closed">
  1555. <div class="head">
  1556. <div class="icon open">+</div>
  1557. <div class="icon close">-</div>
  1558. <h4>Description:</h4>
  1559. </div>
  1560. <div class="content">
  1561. Using the {$INFO}, {$WARNING} or {$ERROR} token you can generate a log message, when the resulting code is generated.<br/>
  1562. Using the {$THROW} token will throw a exception while generating the resulting code.
  1563. </div>
  1564. </div>
  1565. <div class="box closed">
  1566. <div class="head">
  1567. <div class="icon open">+</div>
  1568. <div class="icon close">-</div>
  1569. <h4>Syntax Diagram:</h4>
  1570. </div>
  1571. <div class="content">
  1572. <div id="ebnfInfo" class="syntax_sub">
  1573. <h5>Info</h5>
  1574. <svg xmlns="http://www.w3.org/2000/svg" width="292" height="36">
  1575. <polygon points="9 17 1 13 1 21"/>
  1576. <polygon points="17 17 9 13 9 21"/>
  1577. <rect x="31" y="3" width="72" height="32" rx="10"/>
  1578. <rect x="29" y="1" width="72" height="32" class="terminal" rx="10"/>
  1579. <text class="terminal" x="39" y="21">{$INFO</text>
  1580. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfTextQuoted" xlink:title="TextQuoted">
  1581. <rect x="123" y="3" width="94" height="32"/>
  1582. <rect x="121" y="1" width="94" height="32" class="nonterminal"/>
  1583. <text class="nonterminal" x="131" y="21">TextQuoted</text>
  1584. </a>
  1585. <rect x="237" y="3" width="28" height="32" rx="10"/>
  1586. <rect x="235" y="1" width="28" height="32" class="terminal" rx="10"/>
  1587. <text class="terminal" x="245" y="21">}</text>
  1588. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m0 0 h10 m72 0 h10 m0 0 h10 m94 0 h10 m0 0 h10 m28 0 h10 m3 0 h-3"/>
  1589. <polygon points="283 17 291 13 291 21"/>
  1590. <polygon points="283 17 275 13 275 21"/>
  1591. </svg>
  1592. <div class="ebnf code area">
  1593. <a href="#ebnfInfo" title="Info">Info</a> ::= '{$INFO' <a href="#ebnfTextQuoted" title="TextQuoted">TextQuoted</a> '}'
  1594. </div>
  1595. <div class="references">
  1596. <span>referenced by:</span>
  1597. <ul>
  1598. <li>
  1599. <a href="#ebnfCode" title="Code">Code</a>
  1600. </li>
  1601. </ul>
  1602. </div>
  1603. </div>
  1604. <div id="ebnfWarning" class="syntax_sub">
  1605. <h5>Warning</h5>
  1606. <svg xmlns="http://www.w3.org/2000/svg" width="326" height="36">
  1607. <polygon points="9 17 1 13 1 21"/>
  1608. <polygon points="17 17 9 13 9 21"/>
  1609. <rect x="31" y="3" width="106" height="32" rx="10"/>
  1610. <rect x="29" y="1" width="106" height="32" class="terminal" rx="10"/>
  1611. <text class="terminal" x="39" y="21">{$WARNING</text>
  1612. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfTextQuoted" xlink:title="TextQuoted">
  1613. <rect x="157" y="3" width="94" height="32"/>
  1614. <rect x="155" y="1" width="94" height="32" class="nonterminal"/>
  1615. <text class="nonterminal" x="165" y="21">TextQuoted</text>
  1616. </a>
  1617. <rect x="271" y="3" width="28" height="32" rx="10"/>
  1618. <rect x="269" y="1" width="28" height="32" class="terminal" rx="10"/>
  1619. <text class="terminal" x="279" y="21">}</text>
  1620. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m0 0 h10 m106 0 h10 m0 0 h10 m94 0 h10 m0 0 h10 m28 0 h10 m3 0 h-3"/>
  1621. <polygon points="317 17 325 13 325 21"/>
  1622. <polygon points="317 17 309 13 309 21"/>
  1623. </svg>
  1624. <div class="ebnf code area">
  1625. <a href="#ebnfWarning" title="Warning">Warning</a> ::= '{$WARNING' <a href="#ebnfTextQuoted" title="TextQuoted">TextQuoted</a> '}'
  1626. </div>
  1627. <div class="references">
  1628. <span>referenced by:</span>
  1629. <ul>
  1630. <li>
  1631. <a href="#ebnfCode" title="Code">Code</a>
  1632. </li>
  1633. </ul>
  1634. </div>
  1635. </div>
  1636. <div id="ebnfError" class="syntax_sub">
  1637. <h5>Error</h5>
  1638. <svg xmlns="http://www.w3.org/2000/svg" width="304" height="36">
  1639. <polygon points="9 17 1 13 1 21"/>
  1640. <polygon points="17 17 9 13 9 21"/>
  1641. <rect x="31" y="3" width="84" height="32" rx="10"/>
  1642. <rect x="29" y="1" width="84" height="32" class="terminal" rx="10"/>
  1643. <text class="terminal" x="39" y="21">{$ERROR</text>
  1644. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfTextQuoted" xlink:title="TextQuoted">
  1645. <rect x="135" y="3" width="94" height="32"/>
  1646. <rect x="133" y="1" width="94" height="32" class="nonterminal"/>
  1647. <text class="nonterminal" x="143" y="21">TextQuoted</text>
  1648. </a>
  1649. <rect x="249" y="3" width="28" height="32" rx="10"/>
  1650. <rect x="247" y="1" width="28" height="32" class="terminal" rx="10"/>
  1651. <text class="terminal" x="257" y="21">}</text>
  1652. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m0 0 h10 m84 0 h10 m0 0 h10 m94 0 h10 m0 0 h10 m28 0 h10 m3 0 h-3"/>
  1653. <polygon points="295 17 303 13 303 21"/>
  1654. <polygon points="295 17 287 13 287 21"/>
  1655. </svg>
  1656. <div class="ebnf code area">
  1657. <a href="#ebnfError" title="Error">Error</a> ::= '{$ERROR' <a href="#ebnfTextQuoted" title="TextQuoted">TextQuoted</a> '}'
  1658. </div>
  1659. <div class="references">
  1660. <span>referenced by:</span>
  1661. <ul>
  1662. <li>
  1663. <a href="#ebnfCode" title="Code">Code</a>
  1664. </li>
  1665. </ul>
  1666. </div>
  1667. </div>
  1668. <div id="ebnfThrow" class="syntax_sub">
  1669. <h5>Throw</h5>
  1670. <svg xmlns="http://www.w3.org/2000/svg" width="310" height="36">
  1671. <polygon points="9 17 1 13 1 21"/>
  1672. <polygon points="17 17 9 13 9 21"/>
  1673. <rect x="31" y="3" width="90" height="32" rx="10"/>
  1674. <rect x="29" y="1" width="90" height="32" class="terminal" rx="10"/>
  1675. <text class="terminal" x="39" y="21">{$THROW</text>
  1676. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfTextQuoted" xlink:title="TextQuoted">
  1677. <rect x="141" y="3" width="94" height="32"/>
  1678. <rect x="139" y="1" width="94" height="32" class="nonterminal"/>
  1679. <text class="nonterminal" x="149" y="21">TextQuoted</text>
  1680. </a>
  1681. <rect x="255" y="3" width="28" height="32" rx="10"/>
  1682. <rect x="253" y="1" width="28" height="32" class="terminal" rx="10"/>
  1683. <text class="terminal" x="263" y="21">}</text>
  1684. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m0 0 h10 m90 0 h10 m0 0 h10 m94 0 h10 m0 0 h10 m28 0 h10 m3 0 h-3"/>
  1685. <polygon points="301 17 309 13 309 21"/>
  1686. <polygon points="301 17 293 13 293 21"/>
  1687. </svg>
  1688. <div class="ebnf code area">
  1689. <a href="#ebnfThrow" title="Throw">Throw</a> ::= '{$THROW' <a href="#ebnfTextQuoted" title="TextQuoted">TextQuoted</a> '}'
  1690. </div>
  1691. <div class="references">
  1692. <span>referenced by:</span>
  1693. <ul>
  1694. <li>
  1695. <a href="#ebnfCode" title="Code">Code</a>
  1696. </li>
  1697. </ul>
  1698. </div>
  1699. </div>
  1700. </div>
  1701. </div>
  1702. <div class="box closed">
  1703. <div class="head">
  1704. <div class="icon open">+</div>
  1705. <div class="icon close">-</div>
  1706. <h4>Example:</h4>
  1707. </div>
  1708. <div class="content code area">
  1709. <span class="pre">{$INFO 'This is a simple info message.'}</span>
  1710. </div>
  1711. </div>
  1712. </div>
  1713. <!-- Meta -->
  1714. <div id="Meta">
  1715. <h2>Meta</h2>
  1716. <div class="box closed">
  1717. <div class="head">
  1718. <div class="icon open">+</div>
  1719. <div class="icon close">-</div>
  1720. <h4>Description:</h4>
  1721. </div>
  1722. <div class="content">
  1723. The {<a href="#ebnfMeta">$META</a>} token is used to add meta information like version and extension to the resulting code.
  1724. </div>
  1725. </div>
  1726. <div class="box closed">
  1727. <div class="head">
  1728. <div class="icon open">+</div>
  1729. <div class="icon close">-</div>
  1730. <h4>Syntax:</h4>
  1731. </div>
  1732. <div class="content">
  1733. <div id="ebnfMeta" class="syntax_sub">
  1734. <h5>Meta</h5>
  1735. <svg xmlns="http://www.w3.org/2000/svg" width="630" height="212">
  1736. <polygon points="9 51 1 47 1 55"/>
  1737. <polygon points="17 51 9 47 9 55"/>
  1738. <rect x="31" y="37" width="74" height="32" rx="10"/>
  1739. <rect x="29" y="35" width="74" height="32" class="terminal" rx="10"/>
  1740. <text class="terminal" x="39" y="55">{$META</text>
  1741. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfTextQuoted" xlink:title="TextQuoted">
  1742. <rect x="165" y="3" width="94" height="32"/>
  1743. <rect x="163" y="1" width="94" height="32" class="nonterminal"/>
  1744. <text class="nonterminal" x="173" y="21">TextQuoted</text>
  1745. </a>
  1746. <rect x="145" y="69" width="90" height="32" rx="10"/>
  1747. <rect x="143" y="67" width="90" height="32" class="terminal" rx="10"/>
  1748. <text class="terminal" x="153" y="87">$VERSION</text>
  1749. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfVersionNumber" xlink:title="VersionNumber">
  1750. <rect x="255" y="69" width="116" height="32"/>
  1751. <rect x="253" y="67" width="116" height="32" class="nonterminal"/>
  1752. <text class="nonterminal" x="263" y="87">VersionNumber</text>
  1753. </a>
  1754. <rect x="411" y="69" width="104" height="32" rx="10"/>
  1755. <rect x="409" y="67" width="104" height="32" class="terminal" rx="10"/>
  1756. <text class="terminal" x="419" y="87">compatibility</text>
  1757. <rect x="145" y="135" width="108" height="32" rx="10"/>
  1758. <rect x="143" y="133" width="108" height="32" class="terminal" rx="10"/>
  1759. <text class="terminal" x="153" y="153">$EXTENSION</text>
  1760. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfExtensionName" xlink:title="ExtensionName">
  1761. <rect x="273" y="135" width="118" height="32"/>
  1762. <rect x="271" y="133" width="118" height="32" class="nonterminal"/>
  1763. <text class="nonterminal" x="281" y="153">ExtensionName</text>
  1764. </a>
  1765. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfExtensionValue" xlink:title="ExtensionValue">
  1766. <rect x="411" y="135" width="116" height="32"/>
  1767. <rect x="409" y="133" width="116" height="32" class="nonterminal"/>
  1768. <text class="nonterminal" x="419" y="153">ExtensionValue</text>
  1769. </a>
  1770. <rect x="145" y="179" width="84" height="32" rx="10"/>
  1771. <rect x="143" y="177" width="84" height="32" class="terminal" rx="10"/>
  1772. <text class="terminal" x="153" y="197">$LAYOUT</text>
  1773. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfLayoutValue" xlink:title="LayoutValue">
  1774. <rect x="249" y="179" width="98" height="32"/>
  1775. <rect x="247" y="177" width="98" height="32" class="nonterminal"/>
  1776. <text class="nonterminal" x="257" y="197">LayoutValue</text>
  1777. </a>
  1778. <rect x="575" y="37" width="28" height="32" rx="10"/>
  1779. <rect x="573" y="35" width="28" height="32" class="terminal" rx="10"/>
  1780. <text class="terminal" x="583" y="55">}</text>
  1781. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 51 h2 m0 0 h10 m74 0 h10 m40 0 h10 m0 0 h104 m-134 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -14 q0 -10 10 -10 m114 34 l20 0 m-20 0 q10 0 10 -10 l0 -14 q0 -10 -10 -10 m-114 0 h10 m94 0 h10 m20 34 h256 m-430 0 h20 m410 0 h20 m-450 0 q10 0 10 10 m430 0 q0 -10 10 -10 m-440 10 v12 m430 0 v-12 m-430 12 q0 10 10 10 m410 0 q10 0 10 -10 m-420 10 h10 m90 0 h10 m0 0 h10 m116 0 h10 m20 0 h10 m104 0 h10 m-144 0 h20 m124 0 h20 m-164 0 q10 0 10 10 m144 0 q0 -10 10 -10 m-154 10 v14 m144 0 v-14 m-144 14 q0 10 10 10 m124 0 q10 0 10 -10 m-134 10 h10 m0 0 h114 m-400 -44 v20 m430 0 v-20 m-430 20 v46 m430 0 v-46 m-430 46 q0 10 10 10 m410 0 q10 0 10 -10 m-420 10 h10 m108 0 h10 m0 0 h10 m118 0 h10 m0 0 h10 m116 0 h10 m0 0 h8 m-420 -10 v20 m430 0 v-20 m-430 20 v24 m430 0 v-24 m-430 24 q0 10 10 10 m410 0 q10 0 10 -10 m-420 10 h10 m84 0 h10 m0 0 h10 m98 0 h10 m0 0 h188 m20 -142 h10 m28 0 h10 m3 0 h-3"/>
  1782. <polygon points="621 51 629 47 629 55"/>
  1783. <polygon points="621 51 613 47 613 55"/>
  1784. </svg>
  1785. <div class="ebnf code area">
  1786. <a href="#ebnfMeta" title="Meta">Meta</a> ::= '{$META' ( <a href="#ebnfTextQuoted" title="TextQuoted">TextQuoted</a>* | '$VERSION' <a href="#ebnfVersionNumber" title="VersionNumber">VersionNumber</a> 'compatibility'? | '$EXTENSION' <a href="#ebnfExtensionName" title="ExtensionName">ExtensionName</a> <a href="#ebnfExtensionValue" title="ExtensionValue">ExtensionValue</a> | '$LAYOUT' <a href="#ebnfLayoutValue" title="LayoutValue">LayoutValue</a> ) '}'
  1787. </div>
  1788. <div class="references">
  1789. <span>referenced by:</span>
  1790. <ul>
  1791. <li>
  1792. <a href="#ebnfCode" title="Code">Code</a>
  1793. </li>
  1794. </ul>
  1795. </div>
  1796. </div>
  1797. </div>
  1798. </div>
  1799. <div class="box closed">
  1800. <div class="head">
  1801. <div class="icon open">+</div>
  1802. <div class="icon close">-</div>
  1803. <h4>Example:</h4>
  1804. </div>
  1805. <div class="content code area">
  1806. <span class="pre">{$META $VERSION 130 compatibility}</span>
  1807. </div>
  1808. </div>
  1809. </div>
  1810. <!-- Echo -->
  1811. <div id="Echo">
  1812. <h2>Echo</h2>
  1813. <div class="box closed">
  1814. <div class="head">
  1815. <div class="icon open">+</div>
  1816. <div class="icon close">-</div>
  1817. <h4>Description:</h4>
  1818. </div>
  1819. <div class="content">
  1820. The {<a href="#ebnfEcho">$ECHO</a>} token will add the value of a {<a href="#ebnfStatic">$STATIC</a>} or {<a href="#ebnfProperty">$PROPERTY</a>} to the resulting code.
  1821. </div>
  1822. </div>
  1823. <div class="box closed">
  1824. <div class="head">
  1825. <div class="icon open">+</div>
  1826. <div class="icon close">-</div>
  1827. <h4>Syntax:</h4>
  1828. </div>
  1829. <div class="content">
  1830. <div id="ebnfEcho" class="syntax_sub">
  1831. <h5>Echo</h5>
  1832. <svg xmlns="http://www.w3.org/2000/svg" width="352" height="124">
  1833. <polygon points="9 17 1 13 1 21"/>
  1834. <polygon points="17 17 9 13 9 21"/>
  1835. <rect x="31" y="3" width="76" height="32" rx="10"/>
  1836. <rect x="29" y="1" width="76" height="32" class="terminal" rx="10"/>
  1837. <text class="terminal" x="39" y="21">{$ECHO</text>
  1838. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfStaticName" xlink:title="StaticName">
  1839. <rect x="147" y="3" width="90" height="32"/>
  1840. <rect x="145" y="1" width="90" height="32" class="nonterminal"/>
  1841. <text class="nonterminal" x="155" y="21">StaticName</text>
  1842. </a>
  1843. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfPropertyName" xlink:title="PropertyName">
  1844. <rect x="147" y="47" width="110" height="32"/>
  1845. <rect x="145" y="45" width="110" height="32" class="nonterminal"/>
  1846. <text class="nonterminal" x="155" y="65">PropertyName</text>
  1847. </a>
  1848. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfTextQuoted" xlink:title="TextQuoted">
  1849. <rect x="147" y="91" width="94" height="32"/>
  1850. <rect x="145" y="89" width="94" height="32" class="nonterminal"/>
  1851. <text class="nonterminal" x="155" y="109">TextQuoted</text>
  1852. </a>
  1853. <rect x="297" y="3" width="28" height="32" rx="10"/>
  1854. <rect x="295" y="1" width="28" height="32" class="terminal" rx="10"/>
  1855. <text class="terminal" x="305" y="21">}</text>
  1856. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m0 0 h10 m76 0 h10 m20 0 h10 m90 0 h10 m0 0 h20 m-150 0 h20 m130 0 h20 m-170 0 q10 0 10 10 m150 0 q0 -10 10 -10 m-160 10 v24 m150 0 v-24 m-150 24 q0 10 10 10 m130 0 q10 0 10 -10 m-140 10 h10 m110 0 h10 m-140 -10 v20 m150 0 v-20 m-150 20 v24 m150 0 v-24 m-150 24 q0 10 10 10 m130 0 q10 0 10 -10 m-140 10 h10 m94 0 h10 m0 0 h16 m20 -88 h10 m28 0 h10 m3 0 h-3"/>
  1857. <polygon points="343 17 351 13 351 21"/>
  1858. <polygon points="343 17 335 13 335 21"/>
  1859. </svg>
  1860. <div class="ebnf code area">
  1861. <a href="#ebnfEcho" title="Echo">Echo</a> ::= '{$ECHO' ( <a href="#ebnfStaticName" title="StaticName">StaticName</a> | <a href="#ebnfPropertyName" title="PropertyName">PropertyName</a> | <a href="#ebnfTextQuoted" title="TextQuoted">TextQuoted</a> ) '}'
  1862. </div>
  1863. <div class="references">
  1864. <span>referenced by:</span>
  1865. <ul>
  1866. <li>
  1867. <a href="#ebnfCode" title="Code">Code</a>
  1868. </li>
  1869. </ul>
  1870. </div>
  1871. </div>
  1872. </div>
  1873. </div>
  1874. <div class="box closed">
  1875. <div class="head">
  1876. <div class="icon open">+</div>
  1877. <div class="icon close">-</div>
  1878. <h4>Example:</h4>
  1879. </div>
  1880. <div class="content">
  1881. simple example:
  1882. <div class="code area">
  1883. <span class="pre">{<a href="#ebnfProperty">$PROPERTY</a> MyProperty '/* this is a test */'}</span><br/>
  1884. <span class="pre">{<a href="#ebnfEcho">$ECHO</a> MyProperty}</span>
  1885. </div>
  1886. <br/>
  1887. resulting code:
  1888. <div class="code area">
  1889. <span class="comment">/* this is a test */</span>
  1890. </div>
  1891. </div>
  1892. </div>
  1893. </div>
  1894. <!-- Varying -->
  1895. <div id="Varying">
  1896. <h2>Varying</h2>
  1897. <div class="box closed">
  1898. <div class="head">
  1899. <div class="icon open">+</div>
  1900. <div class="icon close">-</div>
  1901. <h4>Description:</h4>
  1902. </div>
  1903. <div class="content">
  1904. The {<a href="#ebnfVarying">$VARYING</a>} token defines a varying inside the resuling code.
  1905. </div>
  1906. </div>
  1907. <div class="box closed">
  1908. <div class="head">
  1909. <div class="icon open">+</div>
  1910. <div class="icon close">-</div>
  1911. <h4>Syntax:</h4>
  1912. </div>
  1913. <div class="content">
  1914. <div id="ebnfVarying" class="syntax_sub">
  1915. <h5>Varying</h5>
  1916. <svg xmlns="http://www.w3.org/2000/svg" width="488" height="36">
  1917. <polygon points="9 17 1 13 1 21"/>
  1918. <polygon points="17 17 9 13 9 21"/>
  1919. <rect x="31" y="3" width="100" height="32" rx="10"/>
  1920. <rect x="29" y="1" width="100" height="32" class="terminal" rx="10"/>
  1921. <text class="terminal" x="39" y="21">{$VARYING</text>
  1922. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfglslTypeQuoted" xlink:title="glslTypeQuoted">
  1923. <rect x="151" y="3" width="118" height="32"/>
  1924. <rect x="149" y="1" width="118" height="32" class="nonterminal"/>
  1925. <text class="nonterminal" x="159" y="21">glslTypeQuoted</text>
  1926. </a>
  1927. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfIdentifierQuoted" xlink:title="IdentifierQuoted">
  1928. <rect x="289" y="3" width="124" height="32"/>
  1929. <rect x="287" y="1" width="124" height="32" class="nonterminal"/>
  1930. <text class="nonterminal" x="297" y="21">IdentifierQuoted</text>
  1931. </a>
  1932. <rect x="433" y="3" width="28" height="32" rx="10"/>
  1933. <rect x="431" y="1" width="28" height="32" class="terminal" rx="10"/>
  1934. <text class="terminal" x="441" y="21">}</text>
  1935. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m0 0 h10 m100 0 h10 m0 0 h10 m118 0 h10 m0 0 h10 m124 0 h10 m0 0 h10 m28 0 h10 m3 0 h-3"/>
  1936. <polygon points="479 17 487 13 487 21"/>
  1937. <polygon points="479 17 471 13 471 21"/>
  1938. </svg>
  1939. <div class="ebnf code area">
  1940. <a href="#ebnfVarying" title="Varying">Varying</a> ::= '{$VARYING' <a href="#ebnfglslTypeQuoted" title="glslTypeQuoted">glslTypeQuoted</a> <a href="#ebnfIdentifierQuoted" title="IdentifierQuoted">IdentifierQuoted</a> '}'
  1941. </div>
  1942. <div class="references">
  1943. <span>referenced by:</span>
  1944. <ul>
  1945. <li>
  1946. <a href="#ebnfCode" title="Code">Code</a>
  1947. </li>
  1948. </ul>
  1949. </div>
  1950. </div>
  1951. </div>
  1952. </div>
  1953. <div class="box closed">
  1954. <div class="head">
  1955. <div class="icon open">+</div>
  1956. <div class="icon close">-</div>
  1957. <h4>Example:</h4>
  1958. </div>
  1959. <div class="content">
  1960. simple example:
  1961. <div class="code area">
  1962. <span class="pre">{<a href="#ebnfVarying">$VARYING</a> 'vec4' 'vVertex'}</span><br/>
  1963. </div>
  1964. <br/>
  1965. resulting code:
  1966. <div class="code area">
  1967. <span class="keyword">varying</span> <span class="type">vec4</span> vVertex;
  1968. </div>
  1969. </div>
  1970. </div>
  1971. </div>
  1972. <!-- Uniform -->
  1973. <div id="Uniform">
  1974. <h2>Uniform</h2>
  1975. <div class="box closed">
  1976. <div class="head">
  1977. <div class="icon open">+</div>
  1978. <div class="icon close">-</div>
  1979. <h4>Description:</h4>
  1980. </div>
  1981. <div class="content">
  1982. The {<a href="#ebnfUniform">$UNIFORM</a>} token defines an uniform inside the resuling code.
  1983. </div>
  1984. </div>
  1985. <div class="box closed">
  1986. <div class="head">
  1987. <div class="icon open">+</div>
  1988. <div class="icon close">-</div>
  1989. <h4>Syntax:</h4>
  1990. </div>
  1991. <div class="content">
  1992. <div id="ebnfUniform" class="syntax_sub">
  1993. <h5>Uniform</h5>
  1994. <svg xmlns="http://www.w3.org/2000/svg" width="490" height="36">
  1995. <polygon points="9 17 1 13 1 21"/>
  1996. <polygon points="17 17 9 13 9 21"/>
  1997. <rect x="31" y="3" width="102" height="32" rx="10"/>
  1998. <rect x="29" y="1" width="102" height="32" class="terminal" rx="10"/>
  1999. <text class="terminal" x="39" y="21">{$UNIFORM</text>
  2000. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfglslTypeQuoted" xlink:title="glslTypeQuoted">
  2001. <rect x="153" y="3" width="118" height="32"/>
  2002. <rect x="151" y="1" width="118" height="32" class="nonterminal"/>
  2003. <text class="nonterminal" x="161" y="21">glslTypeQuoted</text>
  2004. </a>
  2005. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfIdentifierQuoted" xlink:title="IdentifierQuoted">
  2006. <rect x="291" y="3" width="124" height="32"/>
  2007. <rect x="289" y="1" width="124" height="32" class="nonterminal"/>
  2008. <text class="nonterminal" x="299" y="21">IdentifierQuoted</text>
  2009. </a>
  2010. <rect x="435" y="3" width="28" height="32" rx="10"/>
  2011. <rect x="433" y="1" width="28" height="32" class="terminal" rx="10"/>
  2012. <text class="terminal" x="443" y="21">}</text>
  2013. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m0 0 h10 m102 0 h10 m0 0 h10 m118 0 h10 m0 0 h10 m124 0 h10 m0 0 h10 m28 0 h10 m3 0 h-3"/>
  2014. <polygon points="481 17 489 13 489 21"/>
  2015. <polygon points="481 17 473 13 473 21"/>
  2016. </svg>
  2017. <div class="ebnf code area">
  2018. <a href="#ebnfUniform" title="Uniform">Uniform</a> ::= '{$UNIFORM' <a href="#ebnfglslTypeQuoted" title="glslTypeQuoted">glslTypeQuoted</a> <a href="#ebnfIdentifierQuoted" title="IdentifierQuoted">IdentifierQuoted</a> '}'
  2019. </div>
  2020. <div class="references">
  2021. <span>referenced by:</span>
  2022. <ul>
  2023. <li>
  2024. <a href="#ebnfCode" title="Code">Code</a>
  2025. </li>
  2026. </ul>
  2027. </div>
  2028. </div>
  2029. </div>
  2030. </div>
  2031. <div class="box closed">
  2032. <div class="head">
  2033. <div class="icon open">+</div>
  2034. <div class="icon close">-</div>
  2035. <h4>Example:</h4>
  2036. </div>
  2037. <div class="content">
  2038. simple example:
  2039. <div class="code area">
  2040. <span class="pre">{<a href="#ebnfUniform">$UNIFORM</a> 'vec4' 'uColor'}</span><br/>
  2041. </div>
  2042. <br/>
  2043. resulting code:
  2044. <div class="code area">
  2045. <span class="keyword">uniform</span> <span class="type">vec4</span> uColor;
  2046. </div>
  2047. </div>
  2048. </div>
  2049. </div>
  2050. <!-- Var -->
  2051. <div id="Var">
  2052. <h2>Var</h2>
  2053. <div class="box closed">
  2054. <div class="head">
  2055. <div class="icon open">+</div>
  2056. <div class="icon close">-</div>
  2057. <h4>Description:</h4>
  2058. </div>
  2059. <div class="content">
  2060. The {<a href="#ebnfVar">$VAR</a>} token defines a global variable inside the resuling code.
  2061. </div>
  2062. </div>
  2063. <div class="box closed">
  2064. <div class="head">
  2065. <div class="icon open">+</div>
  2066. <div class="icon close">-</div>
  2067. <h4>Syntax:</h4>
  2068. </div>
  2069. <div class="content">
  2070. <div id="ebnfVar" class="syntax_sub">
  2071. <h5>Var</h5>
  2072. <svg xmlns="http://www.w3.org/2000/svg" width="588" height="52">
  2073. <polygon points="9 17 1 13 1 21"/>
  2074. <polygon points="17 17 9 13 9 21"/>
  2075. <rect x="31" y="3" width="64" height="32" rx="10"/>
  2076. <rect x="29" y="1" width="64" height="32" class="terminal" rx="10"/>
  2077. <text class="terminal" x="39" y="21">{$VAR</text>
  2078. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfglslTypeQuoted" xlink:title="glslTypeQuoted">
  2079. <rect x="115" y="3" width="118" height="32"/>
  2080. <rect x="113" y="1" width="118" height="32" class="nonterminal"/>
  2081. <text class="nonterminal" x="123" y="21">glslTypeQuoted</text>
  2082. </a>
  2083. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfIdentifierQuoted" xlink:title="IdentifierQuoted">
  2084. <rect x="253" y="3" width="124" height="32"/>
  2085. <rect x="251" y="1" width="124" height="32" class="nonterminal"/>
  2086. <text class="nonterminal" x="261" y="21">IdentifierQuoted</text>
  2087. </a>
  2088. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfglslValue" xlink:title="glslValue">
  2089. <rect x="417" y="3" width="76" height="32"/>
  2090. <rect x="415" y="1" width="76" height="32" class="nonterminal"/>
  2091. <text class="nonterminal" x="425" y="21">glslValue</text>
  2092. </a>
  2093. <rect x="533" y="3" width="28" height="32" rx="10"/>
  2094. <rect x="531" y="1" width="28" height="32" class="terminal" rx="10"/>
  2095. <text class="terminal" x="541" y="21">}</text>
  2096. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m0 0 h10 m64 0 h10 m0 0 h10 m118 0 h10 m0 0 h10 m124 0 h10 m20 0 h10 m76 0 h10 m-116 0 h20 m96 0 h20 m-136 0 q10 0 10 10 m116 0 q0 -10 10 -10 m-126 10 v14 m116 0 v-14 m-116 14 q0 10 10 10 m96 0 q10 0 10 -10 m-106 10 h10 m0 0 h86 m20 -34 h10 m28 0 h10 m3 0 h-3"/>
  2097. <polygon points="579 17 587 13 587 21"/>
  2098. <polygon points="579 17 571 13 571 21"/>
  2099. </svg>
  2100. <div class="ebnf code area">
  2101. <a href="#ebnfVar" title="Var">Var</a> ::= '{$VAR' <a href="#ebnfglslTypeQuoted" title="glslTypeQuoted">glslTypeQuoted</a> <a href="#ebnfIdentifierQuoted" title="IdentifierQuoted">IdentifierQuoted</a> <a href="#ebnfglslValue" title="glslValue">glslValue</a>? '}'
  2102. </div>
  2103. <div class="references">
  2104. <span>referenced by:</span>
  2105. <ul>
  2106. <li>
  2107. <a href="#ebnfCode" title="Code">Code</a>
  2108. </li>
  2109. </ul>
  2110. </div>
  2111. </div>
  2112. </div>
  2113. </div>
  2114. <div class="box closed">
  2115. <div class="head">
  2116. <div class="icon open">+</div>
  2117. <div class="icon close">-</div>
  2118. <h4>Example:</h4>
  2119. </div>
  2120. <div class="content">
  2121. simple example:
  2122. <div class="code area">
  2123. <span class="pre">{<a href="#ebnfVar">$VAR</a> 'vec4' '_vertex' 'vec4(1.0)'}</span><br/>
  2124. </div>
  2125. <br/>
  2126. resulting code:
  2127. <div class="code area">
  2128. <span class="type">vec4</span> _vertex = <span class="type">vec4</span>(<span class="number">1.0</span>);
  2129. </div>
  2130. </div>
  2131. </div>
  2132. </div>
  2133. <!-- Const -->
  2134. <div id="Const">
  2135. <h2>Const</h2>
  2136. <div class="box closed">
  2137. <div class="head">
  2138. <div class="icon open">+</div>
  2139. <div class="icon close">-</div>
  2140. <h4>Description:</h4>
  2141. </div>
  2142. <div class="content">
  2143. The {<a href="#ebnfConst">$CONST</a>} token defines a global constant inside the resuling code.
  2144. </div>
  2145. </div>
  2146. <div class="box closed">
  2147. <div class="head">
  2148. <div class="icon open">+</div>
  2149. <div class="icon close">-</div>
  2150. <h4>Syntax:</h4>
  2151. </div>
  2152. <div class="content">
  2153. <div id="ebnfConst" class="syntax_sub">
  2154. <h5>Const</h5>
  2155. <svg xmlns="http://www.w3.org/2000/svg" width="568" height="36">
  2156. <polygon points="9 17 1 13 1 21"/>
  2157. <polygon points="17 17 9 13 9 21"/>
  2158. <rect x="31" y="3" width="84" height="32" rx="10"/>
  2159. <rect x="29" y="1" width="84" height="32" class="terminal" rx="10"/>
  2160. <text class="terminal" x="39" y="21">{$CONST</text>
  2161. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfglslTypeQuoted" xlink:title="glslTypeQuoted">
  2162. <rect x="135" y="3" width="118" height="32"/>
  2163. <rect x="133" y="1" width="118" height="32" class="nonterminal"/>
  2164. <text class="nonterminal" x="143" y="21">glslTypeQuoted</text>
  2165. </a>
  2166. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfIdentifierQuoted" xlink:title="IdentifierQuoted">
  2167. <rect x="273" y="3" width="124" height="32"/>
  2168. <rect x="271" y="1" width="124" height="32" class="nonterminal"/>
  2169. <text class="nonterminal" x="281" y="21">IdentifierQuoted</text>
  2170. </a>
  2171. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfglslValue" xlink:title="glslValue">
  2172. <rect x="417" y="3" width="76" height="32"/>
  2173. <rect x="415" y="1" width="76" height="32" class="nonterminal"/>
  2174. <text class="nonterminal" x="425" y="21">glslValue</text>
  2175. </a>
  2176. <rect x="513" y="3" width="28" height="32" rx="10"/>
  2177. <rect x="511" y="1" width="28" height="32" class="terminal" rx="10"/>
  2178. <text class="terminal" x="521" y="21">}</text>
  2179. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m0 0 h10 m84 0 h10 m0 0 h10 m118 0 h10 m0 0 h10 m124 0 h10 m0 0 h10 m76 0 h10 m0 0 h10 m28 0 h10 m3 0 h-3"/>
  2180. <polygon points="559 17 567 13 567 21"/>
  2181. <polygon points="559 17 551 13 551 21"/>
  2182. </svg>
  2183. <div class="ebnf code area">
  2184. <a href="#ebnfConst" title="Const">Const</a> ::= '{$CONST' <a href="#ebnfglslTypeQuoted" title="glslTypeQuoted">glslTypeQuoted</a> <a href="#ebnfIdentifierQuoted" title="IdentifierQuoted">IdentifierQuoted</a> <a href="#ebnfglslValue" title="glslValue">glslValue</a> '}'
  2185. </div>
  2186. <div class="references">
  2187. <span>referenced by:</span>
  2188. <ul>
  2189. <li>
  2190. <a href="#ebnfCode" title="Code">Code</a>
  2191. </li>
  2192. </ul>
  2193. </div>
  2194. </div>
  2195. </div>
  2196. </div>
  2197. <div class="box closed">
  2198. <div class="head">
  2199. <div class="icon open">+</div>
  2200. <div class="icon close">-</div>
  2201. <h4>Example:</h4>
  2202. </div>
  2203. <div class="content ">
  2204. simple example:
  2205. <div class="code area">
  2206. <span class="pre">{<a href="#ebnfConst">$CONST</a> 'vec4' 'VERTEX' 'vec4(1.0)'}</span><br/>
  2207. </div>
  2208. <br/>
  2209. resulting code:
  2210. <div class="code area">
  2211. <span class="keyword">const</span> <span class="type">vec4</span> VERTEX = <span class="type">vec4</span>(<span class="number">1.0</span>);
  2212. </div>
  2213. </div>
  2214. </div>
  2215. </div>
  2216. <!-- Types -->
  2217. <div id="Types">
  2218. <h2>Types</h2>
  2219. <div class="box closed">
  2220. <div class="head">
  2221. <div class="icon open">+</div>
  2222. <div class="icon close">-</div>
  2223. <h4>Syntax Diagram:</h4>
  2224. </div>
  2225. <div class="content">
  2226. <div id="ebnfParameter" class="syntax_sub">
  2227. <h5>Parameter</h5>
  2228. <svg xmlns="http://www.w3.org/2000/svg" width="218" height="124">
  2229. <polygon points="9 17 1 13 1 21"/>
  2230. <polygon points="17 17 9 13 9 21"/>
  2231. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfPropertyName" xlink:title="PropertyName">
  2232. <rect x="51" y="3" width="110" height="32"/>
  2233. <rect x="49" y="1" width="110" height="32" class="nonterminal"/>
  2234. <text class="nonterminal" x="59" y="21">PropertyName</text>
  2235. </a>
  2236. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfStaticName" xlink:title="StaticName">
  2237. <rect x="51" y="47" width="90" height="32"/>
  2238. <rect x="49" y="45" width="90" height="32" class="nonterminal"/>
  2239. <text class="nonterminal" x="59" y="65">StaticName</text>
  2240. </a>
  2241. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfglslCodeQuoted" xlink:title="glslCodeQuoted">
  2242. <rect x="51" y="91" width="120" height="32"/>
  2243. <rect x="49" y="89" width="120" height="32" class="nonterminal"/>
  2244. <text class="nonterminal" x="59" y="109">glslCodeQuoted</text>
  2245. </a>
  2246. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m20 0 h10 m110 0 h10 m0 0 h10 m-160 0 h20 m140 0 h20 m-180 0 q10 0 10 10 m160 0 q0 -10 10 -10 m-170 10 v24 m160 0 v-24 m-160 24 q0 10 10 10 m140 0 q10 0 10 -10 m-150 10 h10 m90 0 h10 m0 0 h30 m-150 -10 v20 m160 0 v-20 m-160 20 v24 m160 0 v-24 m-160 24 q0 10 10 10 m140 0 q10 0 10 -10 m-150 10 h10 m120 0 h10 m23 -88 h-3"/>
  2247. <polygon points="209 17 217 13 217 21"/>
  2248. <polygon points="209 17 201 13 201 21"/>
  2249. </svg>
  2250. <div class="ebnf code area">
  2251. <a href="#ebnfParameter" title="Parameter">Parameter</a> ::= <a href="#ebnfPropertyName" title="PropertyName">PropertyName</a> | <a href="#ebnfStaticName" title="StaticName">StaticName</a> | <a href="#ebnfglslCodeQuoted" title="glslCodeQuoted">glslCodeQuoted</a>
  2252. </div>
  2253. <div class="references">
  2254. <span>referenced by:</span>
  2255. <ul>
  2256. <li>
  2257. <a href="#ebnfCall" title="Call">Call</a>
  2258. </li>
  2259. <li>
  2260. <a href="#ebnfInherited" title="Inherited">Inherited</a>
  2261. </li>
  2262. </ul>
  2263. </div>
  2264. </div>
  2265. <div id="ebnfCode" class="syntax_sub">
  2266. <h5>Code</h5>
  2267. <svg xmlns="http://www.w3.org/2000/svg" width="172" height="716">
  2268. <polygon points="9 711 1 707 1 715"/>
  2269. <polygon points="17 711 9 707 9 715"/>
  2270. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfglslCode" xlink:title="glslCode">
  2271. <rect x="51" y="663" width="74" height="32"/>
  2272. <rect x="49" y="661" width="74" height="32" class="nonterminal"/>
  2273. <text class="nonterminal" x="59" y="681">glslCode</text>
  2274. </a>
  2275. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfCall" xlink:title="Call">
  2276. <rect x="51" y="619" width="42" height="32"/>
  2277. <rect x="49" y="617" width="42" height="32" class="nonterminal"/>
  2278. <text class="nonterminal" x="59" y="637">Call</text>
  2279. </a>
  2280. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfInclude" xlink:title="Include">
  2281. <rect x="51" y="575" width="66" height="32"/>
  2282. <rect x="49" y="573" width="66" height="32" class="nonterminal"/>
  2283. <text class="nonterminal" x="59" y="593">Include</text>
  2284. </a>
  2285. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfMeta" xlink:title="Meta">
  2286. <rect x="51" y="531" width="50" height="32"/>
  2287. <rect x="49" y="529" width="50" height="32" class="nonterminal"/>
  2288. <text class="nonterminal" x="59" y="549">Meta</text>
  2289. </a>
  2290. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfProperty" xlink:title="Property">
  2291. <rect x="51" y="487" width="74" height="32"/>
  2292. <rect x="49" y="485" width="74" height="32" class="nonterminal"/>
  2293. <text class="nonterminal" x="59" y="505">Property</text>
  2294. </a>
  2295. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfStatic" xlink:title="Static">
  2296. <rect x="51" y="443" width="54" height="32"/>
  2297. <rect x="49" y="441" width="54" height="32" class="nonterminal"/>
  2298. <text class="nonterminal" x="59" y="461">Static</text>
  2299. </a>
  2300. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfEcho" xlink:title="Echo">
  2301. <rect x="51" y="399" width="50" height="32"/>
  2302. <rect x="49" y="397" width="50" height="32" class="nonterminal"/>
  2303. <text class="nonterminal" x="59" y="417">Echo</text>
  2304. </a>
  2305. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfVar" xlink:title="Var">
  2306. <rect x="51" y="355" width="40" height="32"/>
  2307. <rect x="49" y="353" width="40" height="32" class="nonterminal"/>
  2308. <text class="nonterminal" x="59" y="373">Var</text>
  2309. </a>
  2310. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfVarying" xlink:title="Varying">
  2311. <rect x="51" y="311" width="66" height="32"/>
  2312. <rect x="49" y="309" width="66" height="32" class="nonterminal"/>
  2313. <text class="nonterminal" x="59" y="329">Varying</text>
  2314. </a>
  2315. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfUniform" xlink:title="Uniform">
  2316. <rect x="51" y="267" width="68" height="32"/>
  2317. <rect x="49" y="265" width="68" height="32" class="nonterminal"/>
  2318. <text class="nonterminal" x="59" y="285">Uniform</text>
  2319. </a>
  2320. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfConst" xlink:title="Const">
  2321. <rect x="51" y="223" width="56" height="32"/>
  2322. <rect x="49" y="221" width="56" height="32" class="nonterminal"/>
  2323. <text class="nonterminal" x="59" y="241">Const</text>
  2324. </a>
  2325. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfIf" xlink:title="If">
  2326. <rect x="51" y="179" width="28" height="32"/>
  2327. <rect x="49" y="177" width="28" height="32" class="nonterminal"/>
  2328. <text class="nonterminal" x="59" y="197">If</text>
  2329. </a>
  2330. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfInfo" xlink:title="Info">
  2331. <rect x="51" y="135" width="44" height="32"/>
  2332. <rect x="49" y="133" width="44" height="32" class="nonterminal"/>
  2333. <text class="nonterminal" x="59" y="153">Info</text>
  2334. </a>
  2335. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfWarning" xlink:title="Warning">
  2336. <rect x="51" y="91" width="72" height="32"/>
  2337. <rect x="49" y="89" width="72" height="32" class="nonterminal"/>
  2338. <text class="nonterminal" x="59" y="109">Warning</text>
  2339. </a>
  2340. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfError" xlink:title="Error">
  2341. <rect x="51" y="47" width="50" height="32"/>
  2342. <rect x="49" y="45" width="50" height="32" class="nonterminal"/>
  2343. <text class="nonterminal" x="59" y="65">Error</text>
  2344. </a>
  2345. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfThrow" xlink:title="Throw">
  2346. <rect x="51" y="3" width="58" height="32"/>
  2347. <rect x="49" y="1" width="58" height="32" class="nonterminal"/>
  2348. <text class="nonterminal" x="59" y="21">Throw</text>
  2349. </a>
  2350. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 711 h2 m20 0 h10 m0 0 h84 m-114 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -14 q0 -10 10 -10 m94 34 l20 0 m-20 0 q10 0 10 -10 l0 -14 q0 -10 -10 -10 m-94 0 h10 m74 0 h10 m-104 10 l0 -44 q0 -10 10 -10 m104 54 l0 -44 q0 -10 -10 -10 m-94 0 h10 m42 0 h10 m0 0 h32 m-104 10 l0 -44 q0 -10 10 -10 m104 54 l0 -44 q0 -10 -10 -10 m-94 0 h10 m66 0 h10 m0 0 h8 m-104 10 l0 -44 q0 -10 10 -10 m104 54 l0 -44 q0 -10 -10 -10 m-94 0 h10 m50 0 h10 m0 0 h24 m-104 10 l0 -44 q0 -10 10 -10 m104 54 l0 -44 q0 -10 -10 -10 m-94 0 h10 m74 0 h10 m-104 10 l0 -44 q0 -10 10 -10 m104 54 l0 -44 q0 -10 -10 -10 m-94 0 h10 m54 0 h10 m0 0 h20 m-104 10 l0 -44 q0 -10 10 -10 m104 54 l0 -44 q0 -10 -10 -10 m-94 0 h10 m50 0 h10 m0 0 h24 m-104 10 l0 -44 q0 -10 10 -10 m104 54 l0 -44 q0 -10 -10 -10 m-94 0 h10 m40 0 h10 m0 0 h34 m-104 10 l0 -44 q0 -10 10 -10 m104 54 l0 -44 q0 -10 -10 -10 m-94 0 h10 m66 0 h10 m0 0 h8 m-104 10 l0 -44 q0 -10 10 -10 m104 54 l0 -44 q0 -10 -10 -10 m-94 0 h10 m68 0 h10 m0 0 h6 m-104 10 l0 -44 q0 -10 10 -10 m104 54 l0 -44 q0 -10 -10 -10 m-94 0 h10 m56 0 h10 m0 0 h18 m-104 10 l0 -44 q0 -10 10 -10 m104 54 l0 -44 q0 -10 -10 -10 m-94 0 h10 m28 0 h10 m0 0 h46 m-104 10 l0 -44 q0 -10 10 -10 m104 54 l0 -44 q0 -10 -10 -10 m-94 0 h10 m44 0 h10 m0 0 h30 m-104 10 l0 -44 q0 -10 10 -10 m104 54 l0 -44 q0 -10 -10 -10 m-94 0 h10 m72 0 h10 m0 0 h2 m-104 10 l0 -44 q0 -10 10 -10 m104 54 l0 -44 q0 -10 -10 -10 m-94 0 h10 m50 0 h10 m0 0 h24 m-104 10 l0 -44 q0 -10 10 -10 m104 54 l0 -44 q0 -10 -10 -10 m-94 0 h10 m58 0 h10 m0 0 h16 m23 694 h-3"/>
  2351. <polygon points="163 711 171 707 171 715"/>
  2352. <polygon points="163 711 155 707 155 715"/>
  2353. </svg>
  2354. <div class="ebnf code area">
  2355. <a href="#ebnfCode" title="Code">Code</a> ::= ( <a href="#ebnfglslCode" title="glslCode">glslCode</a> | <a href="#ebnfCall" title="Call">Call</a> | <a href="#ebnfInclude" title="Include">Include</a> | <a href="#ebnfMeta" title="Meta">Meta</a> | <a href="#ebnfProperty" title="Property">Property</a> | <a href="#ebnfStatic" title="Static">Static</a> | <a href="#ebnfEcho" title="Echo">Echo</a> | <a href="#ebnfVar" title="Var">Var</a> | <a href="#ebnfVarying" title="Varying">Varying</a> | <a href="#ebnfUniform" title="Uniform">Uniform</a> | <a href="#ebnfConst" title="Const">Const</a> | <a href="#ebnfIf" title="If">If</a> | <a href="#ebnfInfo" title="Info">Info</a> | <a href="#ebnfWarning" title="Warning">Warning</a> | <a href="#ebnfError" title="Error">Error</a> | <a href="#ebnfThrow" title="Throw">Throw</a> )*
  2356. </div>
  2357. <div class="references">
  2358. <span>referenced by:</span>
  2359. <ul>
  2360. <li>
  2361. <a href="#ebnfClass" title="Class">Class</a>
  2362. </li>
  2363. <li>
  2364. <a href="#ebnfClassFunction" title="ClassFunction">ClassFunction</a>
  2365. </li>
  2366. <li>
  2367. <a href="#ebnfClassMain" title="ClassMain">ClassMain</a>
  2368. </li>
  2369. <li>
  2370. <a href="#ebnfClassProcedure" title="ClassProcedure">ClassProcedure</a>
  2371. </li>
  2372. <li>
  2373. <a href="#ebnfFunction" title="Function">Function</a>
  2374. </li>
  2375. <li>
  2376. <a href="#ebnfIf" title="If">If</a>
  2377. </li>
  2378. <li>
  2379. <a href="#ebnfMain" title="Main">Main</a>
  2380. </li>
  2381. <li>
  2382. <a href="#ebnfProcedure" title="Procedure">Procedure</a>
  2383. </li>
  2384. <li>
  2385. <a href="#ebnfShaderFile" title="ShaderFile">ShaderFile</a>
  2386. </li>
  2387. </ul>
  2388. </div>
  2389. </div>
  2390. <div id="ebnfExpression" class="syntax_sub">
  2391. <h5>Expression</h5>
  2392. <svg xmlns="http://www.w3.org/2000/svg" width="412" height="960">
  2393. <polygon points="9 17 1 13 1 21"/>
  2394. <polygon points="17 17 9 13 9 21"/>
  2395. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfPropertyName" xlink:title="PropertyName">
  2396. <rect x="51" y="3" width="110" height="32"/>
  2397. <rect x="49" y="1" width="110" height="32" class="nonterminal"/>
  2398. <text class="nonterminal" x="59" y="21">PropertyName</text>
  2399. </a>
  2400. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfStaticName" xlink:title="StaticName">
  2401. <rect x="51" y="47" width="90" height="32"/>
  2402. <rect x="49" y="45" width="90" height="32" class="nonterminal"/>
  2403. <text class="nonterminal" x="59" y="65">StaticName</text>
  2404. </a>
  2405. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfValue" xlink:title="Value">
  2406. <rect x="51" y="91" width="54" height="32"/>
  2407. <rect x="49" y="89" width="54" height="32" class="nonterminal"/>
  2408. <text class="nonterminal" x="59" y="109">Value</text>
  2409. </a>
  2410. <rect x="71" y="135" width="58" height="32" rx="10"/>
  2411. <rect x="69" y="133" width="58" height="32" class="terminal" rx="10"/>
  2412. <text class="terminal" x="79" y="153">$NOT</text>
  2413. <rect x="71" y="179" width="24" height="32" rx="10"/>
  2414. <rect x="69" y="177" width="24" height="32" class="terminal" rx="10"/>
  2415. <text class="terminal" x="79" y="197">!</text>
  2416. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfExpression" xlink:title="Expression">
  2417. <rect x="169" y="135" width="88" height="32"/>
  2418. <rect x="167" y="133" width="88" height="32" class="nonterminal"/>
  2419. <text class="nonterminal" x="177" y="153">Expression</text>
  2420. </a>
  2421. <rect x="51" y="223" width="26" height="32" rx="10"/>
  2422. <rect x="49" y="221" width="26" height="32" class="terminal" rx="10"/>
  2423. <text class="terminal" x="59" y="241">(</text>
  2424. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfExpression" xlink:title="Expression">
  2425. <rect x="97" y="223" width="88" height="32"/>
  2426. <rect x="95" y="221" width="88" height="32" class="nonterminal"/>
  2427. <text class="nonterminal" x="105" y="241">Expression</text>
  2428. </a>
  2429. <rect x="205" y="223" width="26" height="32" rx="10"/>
  2430. <rect x="203" y="221" width="26" height="32" class="terminal" rx="10"/>
  2431. <text class="terminal" x="213" y="241">)</text>
  2432. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfExpression" xlink:title="Expression">
  2433. <rect x="51" y="267" width="88" height="32"/>
  2434. <rect x="49" y="265" width="88" height="32" class="nonterminal"/>
  2435. <text class="nonterminal" x="59" y="285">Expression</text>
  2436. </a>
  2437. <rect x="179" y="267" width="48" height="32" rx="10"/>
  2438. <rect x="177" y="265" width="48" height="32" class="terminal" rx="10"/>
  2439. <text class="terminal" x="187" y="285">$OR</text>
  2440. <rect x="179" y="311" width="58" height="32" rx="10"/>
  2441. <rect x="177" y="309" width="58" height="32" class="terminal" rx="10"/>
  2442. <text class="terminal" x="187" y="329">$AND</text>
  2443. <rect x="179" y="355" width="58" height="32" rx="10"/>
  2444. <rect x="177" y="353" width="58" height="32" class="terminal" rx="10"/>
  2445. <text class="terminal" x="187" y="373">$XOR</text>
  2446. <rect x="179" y="399" width="30" height="32" rx="10"/>
  2447. <rect x="177" y="397" width="30" height="32" class="terminal" rx="10"/>
  2448. <text class="terminal" x="187" y="417">+</text>
  2449. <rect x="179" y="443" width="26" height="32" rx="10"/>
  2450. <rect x="177" y="441" width="26" height="32" class="terminal" rx="10"/>
  2451. <text class="terminal" x="187" y="461">-</text>
  2452. <rect x="179" y="487" width="28" height="32" rx="10"/>
  2453. <rect x="177" y="485" width="28" height="32" class="terminal" rx="10"/>
  2454. <text class="terminal" x="187" y="505">*</text>
  2455. <rect x="179" y="531" width="28" height="32" rx="10"/>
  2456. <rect x="177" y="529" width="28" height="32" class="terminal" rx="10"/>
  2457. <text class="terminal" x="187" y="549">/</text>
  2458. <rect x="179" y="575" width="30" height="32" rx="10"/>
  2459. <rect x="177" y="573" width="30" height="32" class="terminal" rx="10"/>
  2460. <text class="terminal" x="187" y="593">=</text>
  2461. <rect x="179" y="619" width="30" height="32" rx="10"/>
  2462. <rect x="177" y="617" width="30" height="32" class="terminal" rx="10"/>
  2463. <text class="terminal" x="187" y="637">&lt;</text>
  2464. <rect x="179" y="663" width="30" height="32" rx="10"/>
  2465. <rect x="177" y="661" width="30" height="32" class="terminal" rx="10"/>
  2466. <text class="terminal" x="187" y="681">&gt;</text>
  2467. <rect x="179" y="707" width="40" height="32" rx="10"/>
  2468. <rect x="177" y="705" width="40" height="32" class="terminal" rx="10"/>
  2469. <text class="terminal" x="187" y="725">&lt;=</text>
  2470. <rect x="179" y="751" width="40" height="32" rx="10"/>
  2471. <rect x="177" y="749" width="40" height="32" class="terminal" rx="10"/>
  2472. <text class="terminal" x="187" y="769">&gt;=</text>
  2473. <rect x="179" y="795" width="40" height="32" rx="10"/>
  2474. <rect x="177" y="793" width="40" height="32" class="terminal" rx="10"/>
  2475. <text class="terminal" x="187" y="813">&lt;&gt;</text>
  2476. <rect x="179" y="839" width="26" height="32" rx="10"/>
  2477. <rect x="177" y="837" width="26" height="32" class="terminal" rx="10"/>
  2478. <text class="terminal" x="187" y="857">|</text>
  2479. <rect x="179" y="883" width="30" height="32" rx="10"/>
  2480. <rect x="177" y="881" width="30" height="32" class="terminal" rx="10"/>
  2481. <text class="terminal" x="187" y="901">&amp;</text>
  2482. <rect x="179" y="927" width="30" height="32" rx="10"/>
  2483. <rect x="177" y="925" width="30" height="32" class="terminal" rx="10"/>
  2484. <text class="terminal" x="187" y="945">^</text>
  2485. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfExpression" xlink:title="Expression">
  2486. <rect x="277" y="267" width="88" height="32"/>
  2487. <rect x="275" y="265" width="88" height="32" class="nonterminal"/>
  2488. <text class="nonterminal" x="285" y="285">Expression</text>
  2489. </a>
  2490. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m20 0 h10 m110 0 h10 m0 0 h204 m-354 0 h20 m334 0 h20 m-374 0 q10 0 10 10 m354 0 q0 -10 10 -10 m-364 10 v24 m354 0 v-24 m-354 24 q0 10 10 10 m334 0 q10 0 10 -10 m-344 10 h10 m90 0 h10 m0 0 h224 m-344 -10 v20 m354 0 v-20 m-354 20 v24 m354 0 v-24 m-354 24 q0 10 10 10 m334 0 q10 0 10 -10 m-344 10 h10 m54 0 h10 m0 0 h260 m-344 -10 v20 m354 0 v-20 m-354 20 v24 m354 0 v-24 m-354 24 q0 10 10 10 m334 0 q10 0 10 -10 m-324 10 h10 m58 0 h10 m-98 0 h20 m78 0 h20 m-118 0 q10 0 10 10 m98 0 q0 -10 10 -10 m-108 10 v24 m98 0 v-24 m-98 24 q0 10 10 10 m78 0 q10 0 10 -10 m-88 10 h10 m24 0 h10 m0 0 h34 m20 -44 h10 m88 0 h10 m0 0 h108 m-344 -10 v20 m354 0 v-20 m-354 20 v68 m354 0 v-68 m-354 68 q0 10 10 10 m334 0 q10 0 10 -10 m-344 10 h10 m26 0 h10 m0 0 h10 m88 0 h10 m0 0 h10 m26 0 h10 m0 0 h134 m-344 -10 v20 m354 0 v-20 m-354 20 v24 m354 0 v-24 m-354 24 q0 10 10 10 m334 0 q10 0 10 -10 m-344 10 h10 m88 0 h10 m20 0 h10 m48 0 h10 m0 0 h10 m-98 0 h20 m78 0 h20 m-118 0 q10 0 10 10 m98 0 q0 -10 10 -10 m-108 10 v24 m98 0 v-24 m-98 24 q0 10 10 10 m78 0 q10 0 10 -10 m-88 10 h10 m58 0 h10 m-88 -10 v20 m98 0 v-20 m-98 20 v24 m98 0 v-24 m-98 24 q0 10 10 10 m78 0 q10 0 10 -10 m-88 10 h10 m58 0 h10 m-88 -10 v20 m98 0 v-20 m-98 20 v24 m98 0 v-24 m-98 24 q0 10 10 10 m78 0 q10 0 10 -10 m-88 10 h10 m30 0 h10 m0 0 h28 m-88 -10 v20 m98 0 v-20 m-98 20 v24 m98 0 v-24 m-98 24 q0 10 10 10 m78 0 q10 0 10 -10 m-88 10 h10 m26 0 h10 m0 0 h32 m-88 -10 v20 m98 0 v-20 m-98 20 v24 m98 0 v-24 m-98 24 q0 10 10 10 m78 0 q10 0 10 -10 m-88 10 h10 m28 0 h10 m0 0 h30 m-88 -10 v20 m98 0 v-20 m-98 20 v24 m98 0 v-24 m-98 24 q0 10 10 10 m78 0 q10 0 10 -10 m-88 10 h10 m28 0 h10 m0 0 h30 m-88 -10 v20 m98 0 v-20 m-98 20 v24 m98 0 v-24 m-98 24 q0 10 10 10 m78 0 q10 0 10 -10 m-88 10 h10 m30 0 h10 m0 0 h28 m-88 -10 v20 m98 0 v-20 m-98 20 v24 m98 0 v-24 m-98 24 q0 10 10 10 m78 0 q10 0 10 -10 m-88 10 h10 m30 0 h10 m0 0 h28 m-88 -10 v20 m98 0 v-20 m-98 20 v24 m98 0 v-24 m-98 24 q0 10 10 10 m78 0 q10 0 10 -10 m-88 10 h10 m30 0 h10 m0 0 h28 m-88 -10 v20 m98 0 v-20 m-98 20 v24 m98 0 v-24 m-98 24 q0 10 10 10 m78 0 q10 0 10 -10 m-88 10 h10 m40 0 h10 m0 0 h18 m-88 -10 v20 m98 0 v-20 m-98 20 v24 m98 0 v-24 m-98 24 q0 10 10 10 m78 0 q10 0 10 -10 m-88 10 h10 m40 0 h10 m0 0 h18 m-88 -10 v20 m98 0 v-20 m-98 20 v24 m98 0 v-24 m-98 24 q0 10 10 10 m78 0 q10 0 10 -10 m-88 10 h10 m40 0 h10 m0 0 h18 m-88 -10 v20 m98 0 v-20 m-98 20 v24 m98 0 v-24 m-98 24 q0 10 10 10 m78 0 q10 0 10 -10 m-88 10 h10 m26 0 h10 m0 0 h32 m-88 -10 v20 m98 0 v-20 m-98 20 v24 m98 0 v-24 m-98 24 q0 10 10 10 m78 0 q10 0 10 -10 m-88 10 h10 m30 0 h10 m0 0 h28 m-88 -10 v20 m98 0 v-20 m-98 20 v24 m98 0 v-24 m-98 24 q0 10 10 10 m78 0 q10 0 10 -10 m-88 10 h10 m30 0 h10 m0 0 h28 m20 -660 h10 m88 0 h10 m23 -264 h-3"/>
  2491. <polygon points="403 17 411 13 411 21"/>
  2492. <polygon points="403 17 395 13 395 21"/>
  2493. </svg>
  2494. <div class="ebnf code area">
  2495. <a href="#ebnfExpression" title="Expression">Expression</a> ::= <a href="#ebnfPropertyName" title="PropertyName">PropertyName</a> | <a href="#ebnfStaticName" title="StaticName">StaticName</a> | <a href="#ebnfValue" title="Value">Value</a> | ( '$NOT' | '!' ) <a href="#ebnfExpression" title="Expression">Expression</a> | '(' <a href="#ebnfExpression" title="Expression">Expression</a> ')' | <a href="#ebnfExpression" title="Expression">Expression</a> ( '$OR' | '$AND' | '$XOR' | '+' | '-' | '*' | '/' | '=' | '&lt;' | '&gt;' | '&lt;=' | '&gt;=' | '&lt;&gt;' | '|' | '&amp;' | '^' ) <a href="#ebnfExpression" title="Expression">Expression</a>
  2496. </div>
  2497. <div class="references">
  2498. <span>referenced by:</span>
  2499. <ul>
  2500. <li>
  2501. <a href="#ebnfExpression" title="Expression">Expression</a>
  2502. </li>
  2503. <li>
  2504. <a href="#ebnfIf" title="If">If</a>
  2505. </li>
  2506. </ul>
  2507. </div>
  2508. </div>
  2509. <div id="ebnfClassName" class="syntax_sub">
  2510. <h5>ClassName</h5>
  2511. <svg xmlns="http://www.w3.org/2000/svg" width="134" height="36">
  2512. <polygon points="9 17 1 13 1 21"/>
  2513. <polygon points="17 17 9 13 9 21"/>
  2514. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfIdentifier" xlink:title="Identifier">
  2515. <rect x="31" y="3" width="76" height="32"/>
  2516. <rect x="29" y="1" width="76" height="32" class="nonterminal"/>
  2517. <text class="nonterminal" x="39" y="21">Identifier</text>
  2518. </a>
  2519. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m0 0 h10 m76 0 h10 m3 0 h-3"/>
  2520. <polygon points="125 17 133 13 133 21"/>
  2521. <polygon points="125 17 117 13 117 21"/>
  2522. </svg>
  2523. <div class="ebnf code area">
  2524. <a href="#ebnfClassName" title="ClassName">ClassName</a> ::= <a href="#ebnfIdentifier" title="Identifier">Identifier</a>
  2525. </div>
  2526. <div class="references">
  2527. <span>referenced by:</span>
  2528. <ul>
  2529. <li>
  2530. <a href="#ebnfClass" title="Class">Class</a>
  2531. </li>
  2532. <li>
  2533. <a href="#ebnfInherited" title="Inherited">Inherited</a>
  2534. </li>
  2535. </ul>
  2536. </div>
  2537. </div>
  2538. <div id="ebnfMethodName" class="syntax_sub">
  2539. <h5>MethodName</h5>
  2540. <svg xmlns="http://www.w3.org/2000/svg" width="134" height="36">
  2541. <polygon points="9 17 1 13 1 21"/>
  2542. <polygon points="17 17 9 13 9 21"/>
  2543. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfIdentifier" xlink:title="Identifier">
  2544. <rect x="31" y="3" width="76" height="32"/>
  2545. <rect x="29" y="1" width="76" height="32" class="nonterminal"/>
  2546. <text class="nonterminal" x="39" y="21">Identifier</text>
  2547. </a>
  2548. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m0 0 h10 m76 0 h10 m3 0 h-3"/>
  2549. <polygon points="125 17 133 13 133 21"/>
  2550. <polygon points="125 17 117 13 117 21"/>
  2551. </svg>
  2552. <div class="ebnf code area">
  2553. <a href="#ebnfMethodName" title="MethodName">MethodName</a> ::= <a href="#ebnfIdentifier" title="Identifier">Identifier</a>
  2554. </div>
  2555. <div class="references">
  2556. <span>referenced by:</span>
  2557. <ul>
  2558. <li>
  2559. <a href="#ebnfCall" title="Call">Call</a>
  2560. </li>
  2561. <li>
  2562. <a href="#ebnfFunctionHead" title="FunctionHead">FunctionHead</a>
  2563. </li>
  2564. <li>
  2565. <a href="#ebnfInherited" title="Inherited">Inherited</a>
  2566. </li>
  2567. <li>
  2568. <a href="#ebnfProcedureHead" title="ProcedureHead">ProcedureHead</a>
  2569. </li>
  2570. </ul>
  2571. </div>
  2572. </div>
  2573. <div id="ebnfPropertyName" class="syntax_sub">
  2574. <h5>PropertyName</h5>
  2575. <svg xmlns="http://www.w3.org/2000/svg" width="134" height="36">
  2576. <polygon points="9 17 1 13 1 21"/>
  2577. <polygon points="17 17 9 13 9 21"/>
  2578. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfIdentifier" xlink:title="Identifier">
  2579. <rect x="31" y="3" width="76" height="32"/>
  2580. <rect x="29" y="1" width="76" height="32" class="nonterminal"/>
  2581. <text class="nonterminal" x="39" y="21">Identifier</text>
  2582. </a>
  2583. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m0 0 h10 m76 0 h10 m3 0 h-3"/>
  2584. <polygon points="125 17 133 13 133 21"/>
  2585. <polygon points="125 17 117 13 117 21"/>
  2586. </svg>
  2587. <div class="ebnf code area">
  2588. <a href="#ebnfPropertyName" title="PropertyName">PropertyName</a> ::= <a href="#ebnfIdentifier" title="Identifier">Identifier</a>
  2589. </div>
  2590. <div class="references">
  2591. <span>referenced by:</span>
  2592. <ul>
  2593. <li>
  2594. <a href="#ebnfEcho" title="Echo">Echo</a>
  2595. </li>
  2596. <li>
  2597. <a href="#ebnfExpression" title="Expression">Expression</a>
  2598. </li>
  2599. <li>
  2600. <a href="#ebnfParameter" title="Parameter">Parameter</a>
  2601. </li>
  2602. <li>
  2603. <a href="#ebnfProperty" title="Property">Property</a>
  2604. </li>
  2605. </ul>
  2606. </div>
  2607. </div>
  2608. <div id="ebnfStaticName" class="syntax_sub">
  2609. <h5>StaticName</h5>
  2610. <svg xmlns="http://www.w3.org/2000/svg" width="134" height="36">
  2611. <polygon points="9 17 1 13 1 21"/>
  2612. <polygon points="17 17 9 13 9 21"/>
  2613. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfIdentifier" xlink:title="Identifier">
  2614. <rect x="31" y="3" width="76" height="32"/>
  2615. <rect x="29" y="1" width="76" height="32" class="nonterminal"/>
  2616. <text class="nonterminal" x="39" y="21">Identifier</text>
  2617. </a>
  2618. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m0 0 h10 m76 0 h10 m3 0 h-3"/>
  2619. <polygon points="125 17 133 13 133 21"/>
  2620. <polygon points="125 17 117 13 117 21"/>
  2621. </svg>
  2622. <div class="ebnf code area">
  2623. <a href="#ebnfStaticName" title="StaticName">StaticName</a> ::= <a href="#ebnfIdentifier" title="Identifier">Identifier</a>
  2624. </div>
  2625. <div class="references">
  2626. <span>referenced by:</span>
  2627. <ul>
  2628. <li>
  2629. <a href="#ebnfEcho" title="Echo">Echo</a>
  2630. </li>
  2631. <li>
  2632. <a href="#ebnfExpression" title="Expression">Expression</a>
  2633. </li>
  2634. <li>
  2635. <a href="#ebnfParameter" title="Parameter">Parameter</a>
  2636. </li>
  2637. <li>
  2638. <a href="#ebnfProperty" title="Property">Property</a>
  2639. </li>
  2640. <li>
  2641. <a href="#ebnfStatic" title="Static">Static</a>
  2642. </li>
  2643. </ul>
  2644. </div>
  2645. </div>
  2646. <div id="ebnfExtensionName" class="syntax_sub">
  2647. <h5>ExtensionName</h5>
  2648. <svg xmlns="http://www.w3.org/2000/svg" width="182" height="36">
  2649. <polygon points="9 17 1 13 1 21"/>
  2650. <polygon points="17 17 9 13 9 21"/>
  2651. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfIdentifierQuoted" xlink:title="IdentifierQuoted">
  2652. <rect x="31" y="3" width="124" height="32"/>
  2653. <rect x="29" y="1" width="124" height="32" class="nonterminal"/>
  2654. <text class="nonterminal" x="39" y="21">IdentifierQuoted</text>
  2655. </a>
  2656. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m0 0 h10 m124 0 h10 m3 0 h-3"/>
  2657. <polygon points="173 17 181 13 181 21"/>
  2658. <polygon points="173 17 165 13 165 21"/>
  2659. </svg>
  2660. <div class="ebnf code area">
  2661. <a href="#ebnfExtensionName" title="ExtensionName">ExtensionName</a> ::= <a href="#ebnfIdentifierQuoted" title="IdentifierQuoted">IdentifierQuoted</a>
  2662. </div>
  2663. <div class="references">
  2664. <span>referenced by:</span>
  2665. <ul>
  2666. <li>
  2667. <a href="#ebnfMeta" title="Meta">Meta</a>
  2668. </li>
  2669. </ul>
  2670. </div>
  2671. </div>
  2672. <div id="ebnfParameterName" class="syntax_sub">
  2673. <h5>ParameterName</h5>
  2674. <svg xmlns="http://www.w3.org/2000/svg" width="182" height="36">
  2675. <polygon points="9 17 1 13 1 21"/>
  2676. <polygon points="17 17 9 13 9 21"/>
  2677. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfIdentifierQuoted" xlink:title="IdentifierQuoted">
  2678. <rect x="31" y="3" width="124" height="32"/>
  2679. <rect x="29" y="1" width="124" height="32" class="nonterminal"/>
  2680. <text class="nonterminal" x="39" y="21">IdentifierQuoted</text>
  2681. </a>
  2682. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m0 0 h10 m124 0 h10 m3 0 h-3"/>
  2683. <polygon points="173 17 181 13 181 21"/>
  2684. <polygon points="173 17 165 13 165 21"/>
  2685. </svg>
  2686. <div class="ebnf code area">
  2687. <a href="#ebnfParameterName" title="ParameterName">ParameterName</a> ::= <a href="#ebnfIdentifierQuoted" title="IdentifierQuoted">IdentifierQuoted</a>
  2688. </div>
  2689. <div class="references">
  2690. <span>referenced by:</span>
  2691. <ul>
  2692. <li>
  2693. <a href="#ebnfFunctionHead" title="FunctionHead">FunctionHead</a>
  2694. </li>
  2695. <li>
  2696. <a href="#ebnfProcedureHead" title="ProcedureHead">ProcedureHead</a>
  2697. </li>
  2698. </ul>
  2699. </div>
  2700. </div>
  2701. <div id="ebnfValue" class="syntax_sub">
  2702. <h5>Value</h5>
  2703. <svg xmlns="http://www.w3.org/2000/svg" width="152" height="36">
  2704. <polygon points="9 17 1 13 1 21"/>
  2705. <polygon points="17 17 9 13 9 21"/>
  2706. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfTextQuoted" xlink:title="TextQuoted">
  2707. <rect x="31" y="3" width="94" height="32"/>
  2708. <rect x="29" y="1" width="94" height="32" class="nonterminal"/>
  2709. <text class="nonterminal" x="39" y="21">TextQuoted</text>
  2710. </a>
  2711. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m0 0 h10 m94 0 h10 m3 0 h-3"/>
  2712. <polygon points="143 17 151 13 151 21"/>
  2713. <polygon points="143 17 135 13 135 21"/>
  2714. </svg>
  2715. <div class="ebnf code area">
  2716. <a href="#ebnfValue" title="Value">Value</a> ::= <a href="#ebnfTextQuoted" title="TextQuoted">TextQuoted</a>
  2717. </div>
  2718. <div class="references">
  2719. <span>referenced by:</span>
  2720. <ul>
  2721. <li>
  2722. <a href="#ebnfExpression" title="Expression">Expression</a>
  2723. </li>
  2724. <li>
  2725. <a href="#ebnfProperty" title="Property">Property</a>
  2726. </li>
  2727. <li>
  2728. <a href="#ebnfStatic" title="Static">Static</a>
  2729. </li>
  2730. </ul>
  2731. </div>
  2732. </div>
  2733. <div id="ebnfglslValue" class="syntax_sub">
  2734. <h5>glslValue</h5>
  2735. <svg xmlns="http://www.w3.org/2000/svg" width="178" height="36">
  2736. <polygon points="9 17 1 13 1 21"/>
  2737. <polygon points="17 17 9 13 9 21"/>
  2738. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfglslCodeQuoted" xlink:title="glslCodeQuoted">
  2739. <rect x="31" y="3" width="120" height="32"/>
  2740. <rect x="29" y="1" width="120" height="32" class="nonterminal"/>
  2741. <text class="nonterminal" x="39" y="21">glslCodeQuoted</text>
  2742. </a>
  2743. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m0 0 h10 m120 0 h10 m3 0 h-3"/>
  2744. <polygon points="169 17 177 13 177 21"/>
  2745. <polygon points="169 17 161 13 161 21"/>
  2746. </svg>
  2747. <div class="ebnf code area">
  2748. <a href="#ebnfglslValue" title="glslValue">glslValue</a> ::= <a href="#ebnfglslCodeQuoted" title="glslCodeQuoted">glslCodeQuoted</a>
  2749. </div>
  2750. <div class="references">
  2751. <span>referenced by:</span>
  2752. <ul>
  2753. <li>
  2754. <a href="#ebnfConst" title="Const">Const</a>
  2755. </li>
  2756. <li>
  2757. <a href="#ebnfVar" title="Var">Var</a>
  2758. </li>
  2759. </ul>
  2760. </div>
  2761. </div>
  2762. <div id="ebnfExtensionValue" class="syntax_sub">
  2763. <h5>ExtensionValue</h5>
  2764. <svg xmlns="http://www.w3.org/2000/svg" width="178" height="36">
  2765. <polygon points="9 17 1 13 1 21"/>
  2766. <polygon points="17 17 9 13 9 21"/>
  2767. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfglslCodeQuoted" xlink:title="glslCodeQuoted">
  2768. <rect x="31" y="3" width="120" height="32"/>
  2769. <rect x="29" y="1" width="120" height="32" class="nonterminal"/>
  2770. <text class="nonterminal" x="39" y="21">glslCodeQuoted</text>
  2771. </a>
  2772. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m0 0 h10 m120 0 h10 m3 0 h-3"/>
  2773. <polygon points="169 17 177 13 177 21"/>
  2774. <polygon points="169 17 161 13 161 21"/>
  2775. </svg>
  2776. <div class="ebnf code area">
  2777. <a href="#ebnfExtensionValue" title="ExtensionValue">ExtensionValue</a> ::= <a href="#ebnfglslCodeQuoted" title="glslCodeQuoted">glslCodeQuoted</a>
  2778. </div>
  2779. <div class="references">
  2780. <span>referenced by:</span>
  2781. <ul>
  2782. <li>
  2783. <a href="#ebnfMeta" title="Meta">Meta</a>
  2784. </li>
  2785. </ul>
  2786. </div>
  2787. </div>
  2788. <div id="ebnfLayoutValue" class="syntax_sub">
  2789. <h5>LayoutValue</h5>
  2790. <svg xmlns="http://www.w3.org/2000/svg" width="178" height="36">
  2791. <polygon points="9 17 1 13 1 21"/>
  2792. <polygon points="17 17 9 13 9 21"/>
  2793. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfglslCodeQuoted" xlink:title="glslCodeQuoted">
  2794. <rect x="31" y="3" width="120" height="32"/>
  2795. <rect x="29" y="1" width="120" height="32" class="nonterminal"/>
  2796. <text class="nonterminal" x="39" y="21">glslCodeQuoted</text>
  2797. </a>
  2798. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m0 0 h10 m120 0 h10 m3 0 h-3"/>
  2799. <polygon points="169 17 177 13 177 21"/>
  2800. <polygon points="169 17 161 13 161 21"/>
  2801. </svg>
  2802. <div class="ebnf code area">
  2803. <a href="#ebnfLayoutValue" title="LayoutValue">LayoutValue</a> ::= <a href="#ebnfglslCodeQuoted" title="glslCodeQuoted">glslCodeQuoted</a>
  2804. </div>
  2805. <div class="references">
  2806. <span>referenced by:</span>
  2807. <ul>
  2808. <li>
  2809. <a href="#ebnfMeta" title="Meta">Meta</a>
  2810. </li>
  2811. </ul>
  2812. </div>
  2813. </div>
  2814. <div id="ebnfReturnType" class="syntax_sub">
  2815. <h5>ReturnType</h5>
  2816. <svg xmlns="http://www.w3.org/2000/svg" width="176" height="36">
  2817. <polygon points="9 17 1 13 1 21"/>
  2818. <polygon points="17 17 9 13 9 21"/>
  2819. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfglslTypeQuoted" xlink:title="glslTypeQuoted">
  2820. <rect x="31" y="3" width="118" height="32"/>
  2821. <rect x="29" y="1" width="118" height="32" class="nonterminal"/>
  2822. <text class="nonterminal" x="39" y="21">glslTypeQuoted</text>
  2823. </a>
  2824. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m0 0 h10 m118 0 h10 m3 0 h-3"/>
  2825. <polygon points="167 17 175 13 175 21"/>
  2826. <polygon points="167 17 159 13 159 21"/>
  2827. </svg>
  2828. <div class="ebnf code area">
  2829. <a href="#ebnfReturnType" title="ReturnType">ReturnType</a> ::= <a href="#ebnfglslTypeQuoted" title="glslTypeQuoted">glslTypeQuoted</a>
  2830. </div>
  2831. <div class="references">
  2832. <span>referenced by:</span>
  2833. <ul>
  2834. <li>
  2835. <a href="#ebnfFunctionHead" title="FunctionHead">FunctionHead</a>
  2836. </li>
  2837. </ul>
  2838. </div>
  2839. </div>
  2840. <div id="ebnfParameterType" class="syntax_sub">
  2841. <h5>ParameterType</h5>
  2842. <svg xmlns="http://www.w3.org/2000/svg" width="176" height="36">
  2843. <polygon points="9 17 1 13 1 21"/>
  2844. <polygon points="17 17 9 13 9 21"/>
  2845. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfglslTypeQuoted" xlink:title="glslTypeQuoted">
  2846. <rect x="31" y="3" width="118" height="32"/>
  2847. <rect x="29" y="1" width="118" height="32" class="nonterminal"/>
  2848. <text class="nonterminal" x="39" y="21">glslTypeQuoted</text>
  2849. </a>
  2850. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m0 0 h10 m118 0 h10 m3 0 h-3"/>
  2851. <polygon points="167 17 175 13 175 21"/>
  2852. <polygon points="167 17 159 13 159 21"/>
  2853. </svg>
  2854. <div class="ebnf code area">
  2855. <a href="#ebnfParameterType" title="ParameterType">ParameterType</a> ::= <a href="#ebnfglslTypeQuoted" title="glslTypeQuoted">glslTypeQuoted</a>
  2856. </div>
  2857. <div class="references">
  2858. <span>referenced by:</span>
  2859. <ul>
  2860. <li>
  2861. <a href="#ebnfFunctionHead" title="FunctionHead">FunctionHead</a>
  2862. </li>
  2863. <li>
  2864. <a href="#ebnfProcedureHead" title="ProcedureHead">ProcedureHead</a>
  2865. </li>
  2866. </ul>
  2867. </div>
  2868. </div>
  2869. <div id="ebnfTextQuoted" class="syntax_sub">
  2870. <h5>TextQuoted</h5>
  2871. <svg xmlns="http://www.w3.org/2000/svg" width="192" height="36">
  2872. <polygon points="9 17 1 13 1 21"/>
  2873. <polygon points="17 17 9 13 9 21"/>
  2874. <rect x="31" y="3" width="24" height="32" rx="10"/>
  2875. <rect x="29" y="1" width="24" height="32" class="terminal" rx="10"/>
  2876. <text class="terminal" x="39" y="21">'</text>
  2877. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#Text" xlink:title="Text">
  2878. <rect x="75" y="3" width="46" height="32"/>
  2879. <rect x="73" y="1" width="46" height="32" class="nonterminal"/>
  2880. <text class="nonterminal" x="83" y="21">Text</text>
  2881. </a>
  2882. <rect x="141" y="3" width="24" height="32" rx="10"/>
  2883. <rect x="139" y="1" width="24" height="32" class="terminal" rx="10"/>
  2884. <text class="terminal" x="149" y="21">'</text>
  2885. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m0 0 h10 m24 0 h10 m0 0 h10 m46 0 h10 m0 0 h10 m24 0 h10 m3 0 h-3"/>
  2886. <polygon points="183 17 191 13 191 21"/>
  2887. <polygon points="183 17 175 13 175 21"/>
  2888. </svg>
  2889. <div class="ebnf code area">
  2890. <a href="#ebnfTextQuoted" title="TextQuoted">TextQuoted</a> ::= ['] <a href="#Text" title="Text">Text</a> [']
  2891. </div>
  2892. <div class="references">
  2893. <span>referenced by:</span>
  2894. <ul>
  2895. <li>
  2896. <a href="#ebnfEcho" title="Echo">Echo</a>
  2897. </li>
  2898. <li>
  2899. <a href="#ebnfError" title="Error">Error</a>
  2900. </li>
  2901. <li>
  2902. <a href="#ebnfInfo" title="Info">Info</a>
  2903. </li>
  2904. <li>
  2905. <a href="#ebnfMeta" title="Meta">Meta</a>
  2906. </li>
  2907. <li>
  2908. <a href="#ebnfThrow" title="Throw">Throw</a>
  2909. </li>
  2910. <li>
  2911. <a href="#ebnfValue" title="Value">Value</a>
  2912. </li>
  2913. <li>
  2914. <a href="#ebnfWarning" title="Warning">Warning</a>
  2915. </li>
  2916. </ul>
  2917. </div>
  2918. </div>
  2919. <div id="ebnfVersionNumber" class="syntax_sub">
  2920. <h5>VersionNumber</h5>
  2921. <svg xmlns="http://www.w3.org/2000/svg" width="118" height="36">
  2922. <polygon points="9 17 1 13 1 21"/>
  2923. <polygon points="17 17 9 13 9 21"/>
  2924. <polygon points="31 19 38 3 84 3 91 19 84 35 38 35"/>
  2925. <polygon points="29 17 36 1 82 1 89 17 82 33 36 33" class="regexp"/>
  2926. <text class="regexp" x="44" y="21">[0-9]</text>
  2927. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m0 0 h10 m60 0 h10 m3 0 h-3"/>
  2928. <polygon points="109 17 117 13 117 21"/>
  2929. <polygon points="109 17 101 13 101 21"/>
  2930. </svg>
  2931. <div class="ebnf code area">
  2932. <a href="#ebnfVersionNumber" title="VersionNumber">VersionNumber</a> ::= [0-9]
  2933. </div>
  2934. <div class="references">
  2935. <span>referenced by:</span>
  2936. <ul>
  2937. <li>
  2938. <a href="#ebnfMeta" title="Meta">Meta</a>
  2939. </li>
  2940. </ul>
  2941. </div>
  2942. </div>
  2943. <div id="ebnfIdentifierQuoted" class="syntax_sub">
  2944. <h5>IdentifierQuoted</h5>
  2945. <svg xmlns="http://www.w3.org/2000/svg" width="222" height="36">
  2946. <polygon points="9 17 1 13 1 21"/>
  2947. <polygon points="17 17 9 13 9 21"/>
  2948. <rect x="31" y="3" width="24" height="32" rx="10"/>
  2949. <rect x="29" y="1" width="24" height="32" class="terminal" rx="10"/>
  2950. <text class="terminal" x="39" y="21">'</text>
  2951. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfIdentifier" xlink:title="Identifier">
  2952. <rect x="75" y="3" width="76" height="32"/>
  2953. <rect x="73" y="1" width="76" height="32" class="nonterminal"/>
  2954. <text class="nonterminal" x="83" y="21">Identifier</text>
  2955. </a>
  2956. <rect x="171" y="3" width="24" height="32" rx="10"/>
  2957. <rect x="169" y="1" width="24" height="32" class="terminal" rx="10"/>
  2958. <text class="terminal" x="179" y="21">'</text>
  2959. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m0 0 h10 m24 0 h10 m0 0 h10 m76 0 h10 m0 0 h10 m24 0 h10 m3 0 h-3"/>
  2960. <polygon points="213 17 221 13 221 21"/>
  2961. <polygon points="213 17 205 13 205 21"/>
  2962. </svg>
  2963. <div class="ebnf code area">
  2964. <a href="#ebnfIdentifierQuoted" title="IdentifierQuoted">IdentifierQuoted</a> ::= ['] <a href="#ebnfIdentifier" title="Identifier">Identifier</a> [']
  2965. </div>
  2966. <div class="references">
  2967. <span>referenced by:</span>
  2968. <ul>
  2969. <li>
  2970. <a href="#ebnfConst" title="Const">Const</a>
  2971. </li>
  2972. <li>
  2973. <a href="#ebnfExtensionName" title="ExtensionName">ExtensionName</a>
  2974. </li>
  2975. <li>
  2976. <a href="#ebnfParameterName" title="ParameterName">ParameterName</a>
  2977. </li>
  2978. <li>
  2979. <a href="#ebnfUniform" title="Uniform">Uniform</a>
  2980. </li>
  2981. <li>
  2982. <a href="#ebnfVar" title="Var">Var</a>
  2983. </li>
  2984. <li>
  2985. <a href="#ebnfVarying" title="Varying">Varying</a>
  2986. </li>
  2987. </ul>
  2988. </div>
  2989. </div>
  2990. <div id="ebnfIdentifier" class="syntax_sub">
  2991. <h5>Identifier</h5>
  2992. <svg xmlns="http://www.w3.org/2000/svg" width="158" height="168">
  2993. <polygon points="9 17 1 13 1 21"/>
  2994. <polygon points="17 17 9 13 9 21"/>
  2995. <polygon points="51 19 58 3 104 3 111 19 104 35 58 35"/>
  2996. <polygon points="49 17 56 1 102 1 109 17 102 33 56 33" class="regexp"/>
  2997. <text class="regexp" x="64" y="21">[A-Z]</text>
  2998. <polygon points="51 63 58 47 104 47 111 63 104 79 58 79"/>
  2999. <polygon points="49 61 56 45 102 45 109 61 102 77 56 77" class="regexp"/>
  3000. <text class="regexp" x="64" y="65">[a-z]</text>
  3001. <polygon points="51 107 58 91 104 91 111 107 104 123 58 123"/>
  3002. <polygon points="49 105 56 89 102 89 109 105 102 121 56 121" class="regexp"/>
  3003. <text class="regexp" x="64" y="109">[0-9]</text>
  3004. <rect x="51" y="135" width="28" height="32" rx="10"/>
  3005. <rect x="49" y="133" width="28" height="32" class="terminal" rx="10"/>
  3006. <text class="terminal" x="59" y="153">_</text>
  3007. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m20 0 h10 m60 0 h10 m-100 0 h20 m80 0 h20 m-120 0 q10 0 10 10 m100 0 q0 -10 10 -10 m-110 10 v24 m100 0 v-24 m-100 24 q0 10 10 10 m80 0 q10 0 10 -10 m-90 10 h10 m60 0 h10 m-90 -10 v20 m100 0 v-20 m-100 20 v24 m100 0 v-24 m-100 24 q0 10 10 10 m80 0 q10 0 10 -10 m-90 10 h10 m60 0 h10 m-90 -10 v20 m100 0 v-20 m-100 20 v24 m100 0 v-24 m-100 24 q0 10 10 10 m80 0 q10 0 10 -10 m-90 10 h10 m28 0 h10 m0 0 h32 m23 -132 h-3"/>
  3008. <polygon points="149 17 157 13 157 21"/>
  3009. <polygon points="149 17 141 13 141 21"/>
  3010. </svg>
  3011. <div class="ebnf code area">
  3012. <a href="#Identifier" title="Identifier">Identifier</a> ::= [A-Za-z0-9_]
  3013. </div>
  3014. <div class="references">
  3015. <span>referenced by:</span>
  3016. <ul>
  3017. <li>
  3018. <a href="#ebnfClassName" title="ClassName">ClassName</a>
  3019. </li>
  3020. <li>
  3021. <a href="#ebnfIdentifierQuoted" title="IdentifierQuoted">IdentifierQuoted</a>
  3022. </li>
  3023. <li>
  3024. <a href="#ebnfMethodName" title="MethodName">MethodName</a>
  3025. </li>
  3026. <li>
  3027. <a href="#ebnfPropertyName" title="PropertyName">PropertyName</a>
  3028. </li>
  3029. <li>
  3030. <a href="#ebnfStaticName" title="StaticName">StaticName</a>
  3031. </li>
  3032. </ul>
  3033. </div>
  3034. </div>
  3035. <div id="ebnfFilepath" class="syntax_sub">
  3036. <h5>Filepath</h5>
  3037. <svg xmlns="http://www.w3.org/2000/svg" width="246" height="300">
  3038. <polygon points="9 17 1 13 1 21"/>
  3039. <polygon points="17 17 9 13 9 21"/>
  3040. <rect x="31" y="3" width="24" height="32" rx="10"/>
  3041. <rect x="29" y="1" width="24" height="32" class="terminal" rx="10"/>
  3042. <text class="terminal" x="39" y="21">'</text>
  3043. <polygon points="95 19 102 3 148 3 155 19 148 35 102 35"/>
  3044. <polygon points="93 17 100 1 146 1 153 17 146 33 100 33" class="regexp"/>
  3045. <text class="regexp" x="108" y="21">[A-Z]</text>
  3046. <polygon points="95 63 102 47 148 47 155 63 148 79 102 79"/>
  3047. <polygon points="93 61 100 45 146 45 153 61 146 77 100 77" class="regexp"/>
  3048. <text class="regexp" x="108" y="65">[a-z]</text>
  3049. <polygon points="95 107 102 91 148 91 155 107 148 123 102 123"/>
  3050. <polygon points="93 105 100 89 146 89 153 105 146 121 100 121" class="regexp"/>
  3051. <text class="regexp" x="108" y="109">[0-9]</text>
  3052. <rect x="95" y="135" width="28" height="32" rx="10"/>
  3053. <rect x="93" y="133" width="28" height="32" class="terminal" rx="10"/>
  3054. <text class="terminal" x="103" y="153">\</text>
  3055. <rect x="95" y="179" width="28" height="32" rx="10"/>
  3056. <rect x="93" y="177" width="28" height="32" class="terminal" rx="10"/>
  3057. <text class="terminal" x="103" y="197">/</text>
  3058. <rect x="95" y="223" width="28" height="32" rx="10"/>
  3059. <rect x="93" y="221" width="28" height="32" class="terminal" rx="10"/>
  3060. <text class="terminal" x="103" y="241">_</text>
  3061. <rect x="95" y="267" width="26" height="32" rx="10"/>
  3062. <rect x="93" y="265" width="26" height="32" class="terminal" rx="10"/>
  3063. <text class="terminal" x="103" y="285">-</text>
  3064. <rect x="195" y="3" width="24" height="32" rx="10"/>
  3065. <rect x="193" y="1" width="24" height="32" class="terminal" rx="10"/>
  3066. <text class="terminal" x="203" y="21">'</text>
  3067. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m0 0 h10 m24 0 h10 m20 0 h10 m60 0 h10 m-100 0 h20 m80 0 h20 m-120 0 q10 0 10 10 m100 0 q0 -10 10 -10 m-110 10 v24 m100 0 v-24 m-100 24 q0 10 10 10 m80 0 q10 0 10 -10 m-90 10 h10 m60 0 h10 m-90 -10 v20 m100 0 v-20 m-100 20 v24 m100 0 v-24 m-100 24 q0 10 10 10 m80 0 q10 0 10 -10 m-90 10 h10 m60 0 h10 m-90 -10 v20 m100 0 v-20 m-100 20 v24 m100 0 v-24 m-100 24 q0 10 10 10 m80 0 q10 0 10 -10 m-90 10 h10 m28 0 h10 m0 0 h32 m-90 -10 v20 m100 0 v-20 m-100 20 v24 m100 0 v-24 m-100 24 q0 10 10 10 m80 0 q10 0 10 -10 m-90 10 h10 m28 0 h10 m0 0 h32 m-90 -10 v20 m100 0 v-20 m-100 20 v24 m100 0 v-24 m-100 24 q0 10 10 10 m80 0 q10 0 10 -10 m-90 10 h10 m28 0 h10 m0 0 h32 m-90 -10 v20 m100 0 v-20 m-100 20 v24 m100 0 v-24 m-100 24 q0 10 10 10 m80 0 q10 0 10 -10 m-90 10 h10 m26 0 h10 m0 0 h34 m20 -264 h10 m24 0 h10 m3 0 h-3"/>
  3068. <polygon points="237 17 245 13 245 21"/>
  3069. <polygon points="237 17 229 13 229 21"/>
  3070. </svg>
  3071. <div class="ebnf code area">
  3072. <a href="#ebnfFilepath" title="Filepath">Filepath</a> ::= ['] [A-Za-z0-9\/_#x2D] [']
  3073. </div>
  3074. <div class="references">
  3075. <span>referenced by:</span>
  3076. <ul>
  3077. <li>
  3078. <a href="#ebnfInclude" title="Include">Include</a>
  3079. </li>
  3080. </ul>
  3081. </div>
  3082. </div>
  3083. <div id="ebnfglslCodeQuoted" class="syntax_sub">
  3084. <h5>glslCodeQuoted</h5>
  3085. <svg xmlns="http://www.w3.org/2000/svg" width="220" height="36">
  3086. <polygon points="9 17 1 13 1 21"/>
  3087. <polygon points="17 17 9 13 9 21"/>
  3088. <rect x="31" y="3" width="24" height="32" rx="10"/>
  3089. <rect x="29" y="1" width="24" height="32" class="terminal" rx="10"/>
  3090. <text class="terminal" x="39" y="21">'</text>
  3091. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfglslCode" xlink:title="glslCode">
  3092. <rect x="75" y="3" width="74" height="32"/>
  3093. <rect x="73" y="1" width="74" height="32" class="nonterminal"/>
  3094. <text class="nonterminal" x="83" y="21">glslCode</text>
  3095. </a>
  3096. <rect x="169" y="3" width="24" height="32" rx="10"/>
  3097. <rect x="167" y="1" width="24" height="32" class="terminal" rx="10"/>
  3098. <text class="terminal" x="177" y="21">'</text>
  3099. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m0 0 h10 m24 0 h10 m0 0 h10 m74 0 h10 m0 0 h10 m24 0 h10 m3 0 h-3"/>
  3100. <polygon points="211 17 219 13 219 21"/>
  3101. <polygon points="211 17 203 13 203 21"/>
  3102. </svg>
  3103. <div class="ebnf code area">
  3104. <a href="#ebnfglslCodeQuoted" title="glslCodeQuoted">glslCodeQuoted</a> ::= ['] <a href="#ebnfglslCode" title="glslCode">glslCode</a> [']
  3105. </div>
  3106. <div class="references">
  3107. <span>referenced by:</span>
  3108. <ul>
  3109. <li>
  3110. <a href="#ebnfExtensionValue" title="ExtensionValue">ExtensionValue</a>
  3111. </li>
  3112. <li>
  3113. <a href="#ebnfLayoutValue" title="LayoutValue">LayoutValue</a>
  3114. </li>
  3115. <li>
  3116. <a href="#ebnfParameter" title="Parameter">Parameter</a>
  3117. </li>
  3118. <li>
  3119. <a href="#ebnfglslValue" title="glslValue">glslValue</a>
  3120. </li>
  3121. </ul>
  3122. </div>
  3123. </div>
  3124. <div id="ebnfglslTypeQuoted" class="syntax_sub">
  3125. <h5>glslTypeQuoted</h5>
  3126. <svg xmlns="http://www.w3.org/2000/svg" width="216" height="36">
  3127. <polygon points="9 17 1 13 1 21"/>
  3128. <polygon points="17 17 9 13 9 21"/>
  3129. <rect x="31" y="3" width="24" height="32" rx="10"/>
  3130. <rect x="29" y="1" width="24" height="32" class="terminal" rx="10"/>
  3131. <text class="terminal" x="39" y="21">'</text>
  3132. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ebnfglslType" xlink:title="glslType">
  3133. <rect x="75" y="3" width="70" height="32"/>
  3134. <rect x="73" y="1" width="70" height="32" class="nonterminal"/>
  3135. <text class="nonterminal" x="83" y="21">glslType</text>
  3136. </a>
  3137. <rect x="165" y="3" width="24" height="32" rx="10"/>
  3138. <rect x="163" y="1" width="24" height="32" class="terminal" rx="10"/>
  3139. <text class="terminal" x="173" y="21">'</text>
  3140. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m0 0 h10 m24 0 h10 m0 0 h10 m70 0 h10 m0 0 h10 m24 0 h10 m3 0 h-3"/>
  3141. <polygon points="207 17 215 13 215 21"/>
  3142. <polygon points="207 17 199 13 199 21"/>
  3143. </svg>
  3144. <div class="ebnf code area">
  3145. <a href="#ebnfglslTypeQuoted" title="glslTypeQuoted">glslTypeQuoted</a> ::= ['] <a href="#ebnfglslType" title="glslType">glslType</a> [']
  3146. </div>
  3147. <div class="references">
  3148. <span>referenced by:</span>
  3149. <ul>
  3150. <li>
  3151. <a href="#ebnfConst" title="Const">Const</a>
  3152. </li>
  3153. <li>
  3154. <a href="#ebnfParameterType" title="ParameterType">ParameterType</a>
  3155. </li>
  3156. <li>
  3157. <a href="#ebnfReturnType" title="ReturnType">ReturnType</a>
  3158. </li>
  3159. <li>
  3160. <a href="#ebnfUniform" title="Uniform">Uniform</a>
  3161. </li>
  3162. <li>
  3163. <a href="#ebnfVar" title="Var">Var</a>
  3164. </li>
  3165. <li>
  3166. <a href="#ebnfVarying" title="Varying">Varying</a>
  3167. </li>
  3168. </ul>
  3169. </div>
  3170. </div>
  3171. <div id="ebnfglslType" class="syntax_sub">
  3172. <h5>glslType</h5>
  3173. <svg xmlns="http://www.w3.org/2000/svg" width="160" height="916">
  3174. <polygon points="9 17 1 13 1 21"/>
  3175. <polygon points="17 17 9 13 9 21"/>
  3176. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#int" xlink:title="int">
  3177. <rect x="51" y="3" width="36" height="32"/>
  3178. <rect x="49" y="1" width="36" height="32" class="nonterminal"/>
  3179. <text class="nonterminal" x="59" y="21">int</text>
  3180. </a>
  3181. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#float" xlink:title="float">
  3182. <rect x="51" y="47" width="48" height="32"/>
  3183. <rect x="49" y="45" width="48" height="32" class="nonterminal"/>
  3184. <text class="nonterminal" x="59" y="65">float</text>
  3185. </a>
  3186. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#double" xlink:title="double">
  3187. <rect x="51" y="91" width="62" height="32"/>
  3188. <rect x="49" y="89" width="62" height="32" class="nonterminal"/>
  3189. <text class="nonterminal" x="59" y="109">double</text>
  3190. </a>
  3191. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#vec2" xlink:title="vec2">
  3192. <rect x="51" y="135" width="48" height="32"/>
  3193. <rect x="49" y="133" width="48" height="32" class="nonterminal"/>
  3194. <text class="nonterminal" x="59" y="153">vec2</text>
  3195. </a>
  3196. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#vec3" xlink:title="vec3">
  3197. <rect x="51" y="179" width="48" height="32"/>
  3198. <rect x="49" y="177" width="48" height="32" class="nonterminal"/>
  3199. <text class="nonterminal" x="59" y="197">vec3</text>
  3200. </a>
  3201. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#vec4" xlink:title="vec4">
  3202. <rect x="51" y="223" width="48" height="32"/>
  3203. <rect x="49" y="221" width="48" height="32" class="nonterminal"/>
  3204. <text class="nonterminal" x="59" y="241">vec4</text>
  3205. </a>
  3206. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ivec2" xlink:title="ivec2">
  3207. <rect x="51" y="267" width="52" height="32"/>
  3208. <rect x="49" y="265" width="52" height="32" class="nonterminal"/>
  3209. <text class="nonterminal" x="59" y="285">ivec2</text>
  3210. </a>
  3211. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ivec3" xlink:title="ivec3">
  3212. <rect x="51" y="311" width="52" height="32"/>
  3213. <rect x="49" y="309" width="52" height="32" class="nonterminal"/>
  3214. <text class="nonterminal" x="59" y="329">ivec3</text>
  3215. </a>
  3216. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ivec4" xlink:title="ivec4">
  3217. <rect x="51" y="355" width="52" height="32"/>
  3218. <rect x="49" y="353" width="52" height="32" class="nonterminal"/>
  3219. <text class="nonterminal" x="59" y="373">ivec4</text>
  3220. </a>
  3221. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#dvec2" xlink:title="dvec2">
  3222. <rect x="51" y="399" width="56" height="32"/>
  3223. <rect x="49" y="397" width="56" height="32" class="nonterminal"/>
  3224. <text class="nonterminal" x="59" y="417">dvec2</text>
  3225. </a>
  3226. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#dvec3" xlink:title="dvec3">
  3227. <rect x="51" y="443" width="56" height="32"/>
  3228. <rect x="49" y="441" width="56" height="32" class="nonterminal"/>
  3229. <text class="nonterminal" x="59" y="461">dvec3</text>
  3230. </a>
  3231. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#dvec4" xlink:title="dvec4">
  3232. <rect x="51" y="487" width="56" height="32"/>
  3233. <rect x="49" y="485" width="56" height="32" class="nonterminal"/>
  3234. <text class="nonterminal" x="59" y="505">dvec4</text>
  3235. </a>
  3236. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#mat2" xlink:title="mat2">
  3237. <rect x="51" y="531" width="52" height="32"/>
  3238. <rect x="49" y="529" width="52" height="32" class="nonterminal"/>
  3239. <text class="nonterminal" x="59" y="549">mat2</text>
  3240. </a>
  3241. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#mat3" xlink:title="mat3">
  3242. <rect x="51" y="575" width="52" height="32"/>
  3243. <rect x="49" y="573" width="52" height="32" class="nonterminal"/>
  3244. <text class="nonterminal" x="59" y="593">mat3</text>
  3245. </a>
  3246. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#mat4" xlink:title="mat4">
  3247. <rect x="51" y="619" width="52" height="32"/>
  3248. <rect x="49" y="617" width="52" height="32" class="nonterminal"/>
  3249. <text class="nonterminal" x="59" y="637">mat4</text>
  3250. </a>
  3251. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#imat2" xlink:title="imat2">
  3252. <rect x="51" y="663" width="54" height="32"/>
  3253. <rect x="49" y="661" width="54" height="32" class="nonterminal"/>
  3254. <text class="nonterminal" x="59" y="681">imat2</text>
  3255. </a>
  3256. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#imat3" xlink:title="imat3">
  3257. <rect x="51" y="707" width="54" height="32"/>
  3258. <rect x="49" y="705" width="54" height="32" class="nonterminal"/>
  3259. <text class="nonterminal" x="59" y="725">imat3</text>
  3260. </a>
  3261. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#imat4" xlink:title="imat4">
  3262. <rect x="51" y="751" width="54" height="32"/>
  3263. <rect x="49" y="749" width="54" height="32" class="nonterminal"/>
  3264. <text class="nonterminal" x="59" y="769">imat4</text>
  3265. </a>
  3266. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#dmat2" xlink:title="dmat2">
  3267. <rect x="51" y="795" width="60" height="32"/>
  3268. <rect x="49" y="793" width="60" height="32" class="nonterminal"/>
  3269. <text class="nonterminal" x="59" y="813">dmat2</text>
  3270. </a>
  3271. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#dmat3" xlink:title="dmat3">
  3272. <rect x="51" y="839" width="60" height="32"/>
  3273. <rect x="49" y="837" width="60" height="32" class="nonterminal"/>
  3274. <text class="nonterminal" x="59" y="857">dmat3</text>
  3275. </a>
  3276. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#dmat4" xlink:title="dmat4">
  3277. <rect x="51" y="883" width="60" height="32"/>
  3278. <rect x="49" y="881" width="60" height="32" class="nonterminal"/>
  3279. <text class="nonterminal" x="59" y="901">dmat4</text>
  3280. </a>
  3281. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m20 0 h10 m36 0 h10 m0 0 h26 m-102 0 h20 m82 0 h20 m-122 0 q10 0 10 10 m102 0 q0 -10 10 -10 m-112 10 v24 m102 0 v-24 m-102 24 q0 10 10 10 m82 0 q10 0 10 -10 m-92 10 h10 m48 0 h10 m0 0 h14 m-92 -10 v20 m102 0 v-20 m-102 20 v24 m102 0 v-24 m-102 24 q0 10 10 10 m82 0 q10 0 10 -10 m-92 10 h10 m62 0 h10 m-92 -10 v20 m102 0 v-20 m-102 20 v24 m102 0 v-24 m-102 24 q0 10 10 10 m82 0 q10 0 10 -10 m-92 10 h10 m48 0 h10 m0 0 h14 m-92 -10 v20 m102 0 v-20 m-102 20 v24 m102 0 v-24 m-102 24 q0 10 10 10 m82 0 q10 0 10 -10 m-92 10 h10 m48 0 h10 m0 0 h14 m-92 -10 v20 m102 0 v-20 m-102 20 v24 m102 0 v-24 m-102 24 q0 10 10 10 m82 0 q10 0 10 -10 m-92 10 h10 m48 0 h10 m0 0 h14 m-92 -10 v20 m102 0 v-20 m-102 20 v24 m102 0 v-24 m-102 24 q0 10 10 10 m82 0 q10 0 10 -10 m-92 10 h10 m52 0 h10 m0 0 h10 m-92 -10 v20 m102 0 v-20 m-102 20 v24 m102 0 v-24 m-102 24 q0 10 10 10 m82 0 q10 0 10 -10 m-92 10 h10 m52 0 h10 m0 0 h10 m-92 -10 v20 m102 0 v-20 m-102 20 v24 m102 0 v-24 m-102 24 q0 10 10 10 m82 0 q10 0 10 -10 m-92 10 h10 m52 0 h10 m0 0 h10 m-92 -10 v20 m102 0 v-20 m-102 20 v24 m102 0 v-24 m-102 24 q0 10 10 10 m82 0 q10 0 10 -10 m-92 10 h10 m56 0 h10 m0 0 h6 m-92 -10 v20 m102 0 v-20 m-102 20 v24 m102 0 v-24 m-102 24 q0 10 10 10 m82 0 q10 0 10 -10 m-92 10 h10 m56 0 h10 m0 0 h6 m-92 -10 v20 m102 0 v-20 m-102 20 v24 m102 0 v-24 m-102 24 q0 10 10 10 m82 0 q10 0 10 -10 m-92 10 h10 m56 0 h10 m0 0 h6 m-92 -10 v20 m102 0 v-20 m-102 20 v24 m102 0 v-24 m-102 24 q0 10 10 10 m82 0 q10 0 10 -10 m-92 10 h10 m52 0 h10 m0 0 h10 m-92 -10 v20 m102 0 v-20 m-102 20 v24 m102 0 v-24 m-102 24 q0 10 10 10 m82 0 q10 0 10 -10 m-92 10 h10 m52 0 h10 m0 0 h10 m-92 -10 v20 m102 0 v-20 m-102 20 v24 m102 0 v-24 m-102 24 q0 10 10 10 m82 0 q10 0 10 -10 m-92 10 h10 m52 0 h10 m0 0 h10 m-92 -10 v20 m102 0 v-20 m-102 20 v24 m102 0 v-24 m-102 24 q0 10 10 10 m82 0 q10 0 10 -10 m-92 10 h10 m54 0 h10 m0 0 h8 m-92 -10 v20 m102 0 v-20 m-102 20 v24 m102 0 v-24 m-102 24 q0 10 10 10 m82 0 q10 0 10 -10 m-92 10 h10 m54 0 h10 m0 0 h8 m-92 -10 v20 m102 0 v-20 m-102 20 v24 m102 0 v-24 m-102 24 q0 10 10 10 m82 0 q10 0 10 -10 m-92 10 h10 m54 0 h10 m0 0 h8 m-92 -10 v20 m102 0 v-20 m-102 20 v24 m102 0 v-24 m-102 24 q0 10 10 10 m82 0 q10 0 10 -10 m-92 10 h10 m60 0 h10 m0 0 h2 m-92 -10 v20 m102 0 v-20 m-102 20 v24 m102 0 v-24 m-102 24 q0 10 10 10 m82 0 q10 0 10 -10 m-92 10 h10 m60 0 h10 m0 0 h2 m-92 -10 v20 m102 0 v-20 m-102 20 v24 m102 0 v-24 m-102 24 q0 10 10 10 m82 0 q10 0 10 -10 m-92 10 h10 m60 0 h10 m0 0 h2 m23 -880 h-3"/>
  3282. <polygon points="151 17 159 13 159 21"/>
  3283. <polygon points="151 17 143 13 143 21"/>
  3284. </svg>
  3285. <div class="ebnf code area">
  3286. <a href="#ebnfglslType" title="glslType">glslType</a> ::= <a href="#int" title="int">int</a> | <a href="#float" title="float">float</a> | <a href="#double" title="double">double</a> | <a href="#vec2" title="vec2">vec2</a> | <a href="#vec3" title="vec3">vec3</a> | <a href="#vec4" title="vec4">vec4</a> | <a href="#ivec2" title="ivec2">ivec2</a> | <a href="#ivec3" title="ivec3">ivec3</a> | <a href="#ivec4" title="ivec4">ivec4</a> | <a href="#dvec2" title="dvec2">dvec2</a> | <a href="#dvec3" title="dvec3">dvec3</a> | <a href="#dvec4" title="dvec4">dvec4</a> | <a href="#mat2" title="mat2">mat2</a> | <a href="#mat3" title="mat3">mat3</a> | <a href="#mat4" title="mat4">mat4</a> | <a href="#imat2" title="imat2">imat2</a> | <a href="#imat3" title="imat3">imat3</a> | <a href="#imat4" title="imat4">imat4</a> | <a href="#dmat2" title="dmat2">dmat2</a> | <a href="#dmat3" title="dmat3">dmat3</a> | <a href="#dmat4" title="dmat4">dmat4</a>
  3287. </div>
  3288. <div class="references">
  3289. <span>referenced by:</span>
  3290. <ul>
  3291. <li>
  3292. <a href="#ebnfglslTypeQuoted" title="glslTypeQuoted">glslTypeQuoted</a>
  3293. </li>
  3294. </ul>
  3295. </div>
  3296. </div>
  3297. <div id="ebnfglslCode" class="syntax_sub">
  3298. <h5>glslCode</h5>
  3299. <svg xmlns="http://www.w3.org/2000/svg" width="380" height="36">
  3300. <polygon points="9 17 1 13 1 21"/>
  3301. <polygon points="17 17 9 13 9 21"/>
  3302. <polygon points="31 19 38 3 346 3 353 19 346 35 38 35"/>
  3303. <polygon points="29 17 36 1 344 1 351 17 344 33 36 33" class="regexp"/>
  3304. <text class="regexp" x="44" y="21">[</text>
  3305. <a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="https://www.opengl.org/documentation/glsl/" xlink:title="https://www.opengl.org/documentation/glsl/" target="_blank">
  3306. <rect class="text" x="49" y="10" width="282" height="14"/>
  3307. <text class="regexp" x="49" y="21">https://www.opengl.org/documentation/glsl/</text>
  3308. </a>
  3309. <text class="regexp" x="332" y="21">]</text>
  3310. <svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m0 0 h10 m322 0 h10 m3 0 h-3"/>
  3311. <polygon points="371 17 379 13 379 21"/>
  3312. <polygon points="371 17 363 13 363 21"/>
  3313. </svg>
  3314. <div class="ebnf code area">
  3315. <a href="#ebnfglslCode" title="glslCode">glslCode</a> ::= [<a href="https://www.opengl.org/documentation/glsl/" title="https://www.opengl.org/documentation/glsl/" target="_blank">https://www.opengl.org/documentation/glsl/</a>]
  3316. </div>
  3317. <div class="references">
  3318. <span>referenced by:</span>
  3319. <ul>
  3320. <li>
  3321. <a href="#ebnfCode" title="Code">Code</a>
  3322. </li>
  3323. <li>
  3324. <a href="#ebnfglslCodeQuoted" title="glslCodeQuoted">glslCodeQuoted</a>
  3325. </li>
  3326. </ul>
  3327. </div>
  3328. </div>
  3329. </div>
  3330. </div>
  3331. </div>
  3332. </body>
  3333. </html>