1 /* DO NOT MODIFY - automatically generated by generate_builtins.py */
3 * Copyright © 2010 Intel Corporation
5 * Permission is hereby granted, free of charge, to any person obtaining a
6 * copy of this software and associated documentation files (the "Software"),
7 * to deal in the Software without restriction, including without limitation
8 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9 * and/or sell copies of the Software, and to permit persons to whom the
10 * Software is furnished to do so, subject to the following conditions:
12 * The above copyright notice and this permission notice (including the next
13 * paragraph) shall be included in all copies or substantial portions of the
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22 * DEALINGS IN THE SOFTWARE.
26 #include "main/compiler.h"
27 #include "glsl_parser_extras.h"
28 #include "ir_reader.h"
32 extern "C" struct gl_shader
*
33 _mesa_new_shader(GLcontext
*ctx
, GLuint name
, GLenum type
);
36 read_builtins(GLenum target
, const char *protos
, const char **functions
, unsigned count
)
38 gl_shader
*sh
= _mesa_new_shader(NULL
, 0, target
);
39 struct _mesa_glsl_parse_state
*st
=
40 new(sh
) _mesa_glsl_parse_state(NULL
, target
, sh
);
42 st
->language_version
= 130;
43 st
->ARB_texture_rectangle_enable
= true;
44 st
->EXT_texture_array_enable
= true;
45 _mesa_glsl_initialize_types(st
);
47 sh
->ir
= new(sh
) exec_list
;
48 sh
->symbols
= st
->symbols
;
50 /* Read the IR containing the prototypes */
51 _mesa_glsl_read_ir(st
, sh
->ir
, protos
, true);
53 /* Read ALL the function bodies, telling the IR reader not to scan for
54 * prototypes (we've already created them). The IR reader will skip any
55 * signature that does not already exist as a prototype.
57 for (unsigned i
= 0; i
< count
; i
++) {
58 _mesa_glsl_read_ir(st
, sh
->ir
, functions
[i
], false);
61 printf("error reading builtin: %.35s ...\n", functions
[i
]);
67 reparent_ir(sh
->ir
, sh
);
73 static const char *builtin_all
=
77 " (declare (in) bvec2 arg0))\n"
78 " ((return (expression bool && (swiz x (var_ref arg0))(swiz y (var_ref arg0))))))\n"
82 " (declare (in) bvec3 arg0))\n"
83 " ((return (expression bool && (expression bool && (swiz x (var_ref arg0))(swiz y (var_ref arg0))) (swiz z (var_ref arg0))))))\n"
87 " (declare (in) bvec4 arg0))\n"
88 " ((return (expression bool && (expression bool && (expression bool && (swiz x (var_ref arg0))(swiz y (var_ref arg0))) (swiz z (var_ref arg0))) (swiz w (var_ref arg0))))))\n"
92 static const char *builtin_textureProj
=
93 "((function textureProj\n"
96 " (declare (in) sampler1D sampler)\n"
97 " (declare (in) vec2 P) )\n"
98 " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () ))))\n"
100 " (signature ivec4\n"
102 " (declare (in) isampler1D sampler)\n"
103 " (declare (in) vec2 P) )\n"
104 " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () ))))\n"
106 " (signature uvec4\n"
108 " (declare (in) usampler1D sampler)\n"
109 " (declare (in) vec2 P) )\n"
110 " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () ))))\n"
114 " (declare (in) sampler1D sampler)\n"
115 " (declare (in) vec4 P) )\n"
116 " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
118 " (signature ivec4\n"
120 " (declare (in) isampler1D sampler)\n"
121 " (declare (in) vec4 P) )\n"
122 " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
124 " (signature uvec4\n"
126 " (declare (in) usampler1D sampler)\n"
127 " (declare (in) vec4 P) )\n"
128 " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
132 " (declare (in) sampler2D sampler)\n"
133 " (declare (in) vec3 P) )\n"
134 " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () ))))\n"
136 " (signature ivec4\n"
138 " (declare (in) isampler2D sampler)\n"
139 " (declare (in) vec3 P) )\n"
140 " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () ))))\n"
142 " (signature uvec4\n"
144 " (declare (in) usampler2D sampler)\n"
145 " (declare (in) vec3 P) )\n"
146 " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () ))))\n"
150 " (declare (in) sampler2D sampler)\n"
151 " (declare (in) vec4 P) )\n"
152 " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
154 " (signature ivec4\n"
156 " (declare (in) isampler2D sampler)\n"
157 " (declare (in) vec4 P) )\n"
158 " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
160 " (signature uvec4\n"
162 " (declare (in) usampler2D sampler)\n"
163 " (declare (in) vec4 P) )\n"
164 " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
168 " (declare (in) sampler3D sampler)\n"
169 " (declare (in) vec4 P) )\n"
170 " ((return (tex (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
172 " (signature ivec4\n"
174 " (declare (in) isampler3D sampler)\n"
175 " (declare (in) vec4 P) )\n"
176 " ((return (tex (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
178 " (signature uvec4\n"
180 " (declare (in) usampler3D sampler)\n"
181 " (declare (in) vec4 P) )\n"
182 " ((return (tex (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
186 " (declare (in) sampler1D sampler)\n"
187 " (declare (in) vec2 P) \n"
188 " (declare (in) float bias) )\n"
189 " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref bias) ))))\n"
191 " (signature ivec4\n"
193 " (declare (in) isampler1D sampler)\n"
194 " (declare (in) vec2 P) \n"
195 " (declare (in) float bias) )\n"
196 " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref bias) ))))\n"
198 " (signature uvec4\n"
200 " (declare (in) usampler1D sampler)\n"
201 " (declare (in) vec2 P) \n"
202 " (declare (in) float bias) )\n"
203 " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref bias) ))))\n"
207 " (declare (in) sampler1D sampler)\n"
208 " (declare (in) vec4 P) \n"
209 " (declare (in) float bias) )\n"
210 " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
212 " (signature ivec4\n"
214 " (declare (in) isampler1D sampler)\n"
215 " (declare (in) vec4 P) \n"
216 " (declare (in) float bias) )\n"
217 " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
219 " (signature uvec4\n"
221 " (declare (in) usampler1D sampler)\n"
222 " (declare (in) vec4 P) \n"
223 " (declare (in) float bias) )\n"
224 " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
228 " (declare (in) sampler2D sampler)\n"
229 " (declare (in) vec3 P) \n"
230 " (declare (in) float bias) )\n"
231 " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref bias) ))))\n"
233 " (signature ivec4\n"
235 " (declare (in) isampler2D sampler)\n"
236 " (declare (in) vec3 P) \n"
237 " (declare (in) float bias) )\n"
238 " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref bias) ))))\n"
240 " (signature uvec4\n"
242 " (declare (in) usampler2D sampler)\n"
243 " (declare (in) vec3 P) \n"
244 " (declare (in) float bias) )\n"
245 " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref bias) ))))\n"
249 " (declare (in) sampler2D sampler)\n"
250 " (declare (in) vec4 P) \n"
251 " (declare (in) float bias) )\n"
252 " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
254 " (signature ivec4\n"
256 " (declare (in) isampler2D sampler)\n"
257 " (declare (in) vec4 P) \n"
258 " (declare (in) float bias) )\n"
259 " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
261 " (signature uvec4\n"
263 " (declare (in) usampler2D sampler)\n"
264 " (declare (in) vec4 P) \n"
265 " (declare (in) float bias) )\n"
266 " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
270 " (declare (in) sampler3D sampler)\n"
271 " (declare (in) vec4 P) \n"
272 " (declare (in) float bias) )\n"
273 " ((return (txb (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
275 " (signature ivec4\n"
277 " (declare (in) isampler3D sampler)\n"
278 " (declare (in) vec4 P) \n"
279 " (declare (in) float bias) )\n"
280 " ((return (txb (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
282 " (signature uvec4\n"
284 " (declare (in) usampler3D sampler)\n"
285 " (declare (in) vec4 P) \n"
286 " (declare (in) float bias) )\n"
287 " ((return (txb (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
292 static const char *builtin_fwidth
=
293 "((function fwidth\n"
294 " (signature float\n"
296 " (declare (in) float p))\n"
297 " ((return (expression float +\n"
298 " (expression float abs (expression float dFdx (var_ref p)))\n"
299 " (expression float abs (expression float dFdy (var_ref p)))))))\n"
303 " (declare (in) vec2 p))\n"
304 " ((return (expression vec2 +\n"
305 " (expression vec2 abs (expression vec2 dFdx (var_ref p)))\n"
306 " (expression vec2 abs (expression vec2 dFdy (var_ref p)))))))\n"
310 " (declare (in) vec3 p))\n"
311 " ((return (expression vec3 +\n"
312 " (expression vec3 abs (expression vec3 dFdx (var_ref p)))\n"
313 " (expression vec3 abs (expression vec3 dFdy (var_ref p)))))))\n"
317 " (declare (in) vec4 p))\n"
318 " ((return (expression vec4 +\n"
319 " (expression vec4 abs (expression vec4 dFdx (var_ref p)))\n"
320 " (expression vec4 abs (expression vec4 dFdy (var_ref p)))))))\n"
324 static const char *builtin_texture2DProj
=
325 "((function texture2DProj\n"
328 " (declare (in) sampler2D sampler)\n"
329 " (declare (in) vec3 P) )\n"
330 " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () ))))\n"
334 " (declare (in) sampler2D sampler)\n"
335 " (declare (in) vec4 P) )\n"
336 " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
340 " (declare (in) sampler2D sampler)\n"
341 " (declare (in) vec3 P) \n"
342 " (declare (in) float bias) )\n"
343 " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref bias) ))))\n"
347 " (declare (in) sampler2D sampler)\n"
348 " (declare (in) vec4 P) \n"
349 " (declare (in) float bias) )\n"
350 " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
355 static const char *builtin_shadow1DProjLod
=
356 "((function shadow1DProjLod\n"
359 " (declare (in) sampler1DShadow sampler)\n"
360 " (declare (in) vec4 P) \n"
361 " (declare (in) float lod) )\n"
362 " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) (swiz z (var_ref P)) (var_ref lod) ))))\n"
367 static const char *builtin_texture3DLod
=
368 "((function texture3DLod\n"
371 " (declare (in) sampler3D sampler)\n"
372 " (declare (in) vec3 P) \n"
373 " (declare (in) float lod) )\n"
374 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
379 static const char *builtin_textureCubeLod
=
380 "((function textureCubeLod\n"
383 " (declare (in) samplerCube sampler)\n"
384 " (declare (in) vec3 P) \n"
385 " (declare (in) float lod) )\n"
386 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
391 static const char *builtin_texture
=
392 "((function texture\n"
395 " (declare (in) sampler1D sampler)\n"
396 " (declare (in) float P) )\n"
397 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
399 " (signature ivec4\n"
401 " (declare (in) isampler1D sampler)\n"
402 " (declare (in) float P) )\n"
403 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
405 " (signature uvec4\n"
407 " (declare (in) usampler1D sampler)\n"
408 " (declare (in) float P) )\n"
409 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
413 " (declare (in) sampler2D sampler)\n"
414 " (declare (in) vec2 P) )\n"
415 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
417 " (signature ivec4\n"
419 " (declare (in) isampler2D sampler)\n"
420 " (declare (in) vec2 P) )\n"
421 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
423 " (signature uvec4\n"
425 " (declare (in) usampler2D sampler)\n"
426 " (declare (in) vec2 P) )\n"
427 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
431 " (declare (in) sampler3D sampler)\n"
432 " (declare (in) vec3 P) )\n"
433 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
435 " (signature ivec4\n"
437 " (declare (in) isampler3D sampler)\n"
438 " (declare (in) vec3 P) )\n"
439 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
441 " (signature uvec4\n"
443 " (declare (in) usampler3D sampler)\n"
444 " (declare (in) vec3 P) )\n"
445 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
449 " (declare (in) samplerCube sampler)\n"
450 " (declare (in) vec3 P) )\n"
451 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
453 " (signature ivec4\n"
455 " (declare (in) isamplerCube sampler)\n"
456 " (declare (in) vec3 P) )\n"
457 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
459 " (signature uvec4\n"
461 " (declare (in) usamplerCube sampler)\n"
462 " (declare (in) vec3 P) )\n"
463 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
467 " (declare (in) sampler1DArray sampler)\n"
468 " (declare (in) vec2 P) )\n"
469 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
471 " (signature ivec4\n"
473 " (declare (in) isampler1DArray sampler)\n"
474 " (declare (in) vec2 P) )\n"
475 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
477 " (signature uvec4\n"
479 " (declare (in) usampler1DArray sampler)\n"
480 " (declare (in) vec2 P) )\n"
481 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
485 " (declare (in) sampler2DArray sampler)\n"
486 " (declare (in) vec3 P) )\n"
487 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
489 " (signature ivec4\n"
491 " (declare (in) isampler2DArray sampler)\n"
492 " (declare (in) vec3 P) )\n"
493 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
495 " (signature uvec4\n"
497 " (declare (in) usampler2DArray sampler)\n"
498 " (declare (in) vec3 P) )\n"
499 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
503 " (declare (in) sampler1D sampler)\n"
504 " (declare (in) float P) \n"
505 " (declare (in) float bias) )\n"
506 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
508 " (signature ivec4\n"
510 " (declare (in) isampler1D sampler)\n"
511 " (declare (in) float P) \n"
512 " (declare (in) float bias) )\n"
513 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
515 " (signature uvec4\n"
517 " (declare (in) usampler1D sampler)\n"
518 " (declare (in) float P) \n"
519 " (declare (in) float bias) )\n"
520 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
524 " (declare (in) sampler2D sampler)\n"
525 " (declare (in) vec2 P) \n"
526 " (declare (in) float bias) )\n"
527 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
529 " (signature ivec4\n"
531 " (declare (in) isampler2D sampler)\n"
532 " (declare (in) vec2 P) \n"
533 " (declare (in) float bias) )\n"
534 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
536 " (signature uvec4\n"
538 " (declare (in) usampler2D sampler)\n"
539 " (declare (in) vec2 P) \n"
540 " (declare (in) float bias) )\n"
541 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
545 " (declare (in) sampler3D sampler)\n"
546 " (declare (in) vec3 P) \n"
547 " (declare (in) float bias) )\n"
548 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
550 " (signature ivec4\n"
552 " (declare (in) isampler3D sampler)\n"
553 " (declare (in) vec3 P) \n"
554 " (declare (in) float bias) )\n"
555 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
557 " (signature uvec4\n"
559 " (declare (in) usampler3D sampler)\n"
560 " (declare (in) vec3 P) \n"
561 " (declare (in) float bias) )\n"
562 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
566 " (declare (in) samplerCube sampler)\n"
567 " (declare (in) vec3 P) \n"
568 " (declare (in) float bias) )\n"
569 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
571 " (signature ivec4\n"
573 " (declare (in) isamplerCube sampler)\n"
574 " (declare (in) vec3 P) \n"
575 " (declare (in) float bias) )\n"
576 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
578 " (signature uvec4\n"
580 " (declare (in) usamplerCube sampler)\n"
581 " (declare (in) vec3 P) \n"
582 " (declare (in) float bias) )\n"
583 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
587 " (declare (in) sampler1DArray sampler)\n"
588 " (declare (in) vec2 P) \n"
589 " (declare (in) float bias) )\n"
590 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
592 " (signature ivec4\n"
594 " (declare (in) isampler1DArray sampler)\n"
595 " (declare (in) vec2 P) \n"
596 " (declare (in) float bias) )\n"
597 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
599 " (signature uvec4\n"
601 " (declare (in) usampler1DArray sampler)\n"
602 " (declare (in) vec2 P) \n"
603 " (declare (in) float bias) )\n"
604 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
608 " (declare (in) sampler2DArray sampler)\n"
609 " (declare (in) vec3 P) \n"
610 " (declare (in) float bias) )\n"
611 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
613 " (signature ivec4\n"
615 " (declare (in) isampler2DArray sampler)\n"
616 " (declare (in) vec3 P) \n"
617 " (declare (in) float bias) )\n"
618 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
620 " (signature uvec4\n"
622 " (declare (in) usampler2DArray sampler)\n"
623 " (declare (in) vec3 P) \n"
624 " (declare (in) float bias) )\n"
625 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
630 static const char *builtin_degrees
=
631 "((function degrees\n"
632 " (signature float\n"
634 " (declare (in) float arg0))\n"
635 " ((return (expression float * (var_ref arg0) (constant float (57.295780))))))\n"
639 " (declare (in) vec2 arg0))\n"
640 " ((return (expression vec2 * (var_ref arg0) (constant float (57.295780))))))\n"
644 " (declare (in) vec3 arg0))\n"
645 " ((return (expression vec3 * (var_ref arg0) (constant float (57.295780))))))\n"
649 " (declare (in) vec4 arg0))\n"
650 " ((return (expression vec4 * (var_ref arg0) (constant float (57.295780))))))\n"
654 static const char *builtin_texture2DArrayLod
=
655 "((function texture2DArrayLod\n"
658 " (declare (in) sampler2DArray sampler)\n"
659 " (declare (in) vec3 P) \n"
660 " (declare (in) float lod) )\n"
661 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
666 static const char *builtin_ceil
=
668 " (signature float\n"
670 " (declare (in) float arg0))\n"
671 " ((return (expression float ceil (var_ref arg0)))))\n"
675 " (declare (in) vec2 arg0))\n"
676 " ((return (expression vec2 ceil (var_ref arg0)))))\n"
680 " (declare (in) vec3 arg0))\n"
681 " ((return (expression vec3 ceil (var_ref arg0)))))\n"
685 " (declare (in) vec4 arg0))\n"
686 " ((return (expression vec4 ceil (var_ref arg0)))))\n"
690 static const char *builtin_texture1D
=
691 "((function texture1D\n"
694 " (declare (in) sampler1D sampler)\n"
695 " (declare (in) float P) )\n"
696 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
700 " (declare (in) sampler1D sampler)\n"
701 " (declare (in) float P) \n"
702 " (declare (in) float bias) )\n"
703 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
708 static const char *builtin_not
=
710 " (signature bvec2\n"
712 " (declare (in) bvec2 arg0))\n"
713 " ((return (expression bvec2 ! (var_ref arg0)))))\n"
715 " (signature bvec3\n"
717 " (declare (in) bvec3 arg0))\n"
718 " ((return (expression bvec3 ! (var_ref arg0)))))\n"
720 " (signature bvec4\n"
722 " (declare (in) bvec4 arg0))\n"
723 " ((return (expression bvec4 ! (var_ref arg0)))))\n"
727 static const char *builtin_texture2DRectProj
=
728 "((function texture2DRectProj\n"
731 " (declare (in) sampler2DRect sampler)\n"
732 " (declare (in) vec3 P) )\n"
733 " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () ))))\n"
737 " (declare (in) sampler2DRect sampler)\n"
738 " (declare (in) vec4 P) )\n"
739 " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
744 static const char *builtin_mod
=
746 " (signature float\n"
748 " (declare (in) float arg0)\n"
749 " (declare (in) float arg1))\n"
750 " ((return (expression float % (var_ref arg0) (var_ref arg1)))))\n"
754 " (declare (in) vec2 arg0)\n"
755 " (declare (in) vec2 arg1))\n"
756 " ((return (expression vec2 % (var_ref arg0) (var_ref arg1)))))\n"
760 " (declare (in) vec3 arg0)\n"
761 " (declare (in) vec3 arg1))\n"
762 " ((return (expression vec3 % (var_ref arg0) (var_ref arg1)))))\n"
766 " (declare (in) vec4 arg0)\n"
767 " (declare (in) vec4 arg1))\n"
768 " ((return (expression vec4 % (var_ref arg0) (var_ref arg1)))))\n"
772 " (declare (in) vec2 arg0)\n"
773 " (declare (in) float arg1))\n"
774 " ((return (expression vec2 % (var_ref arg0) (var_ref arg1)))))\n"
778 " (declare (in) vec3 arg0)\n"
779 " (declare (in) float arg1))\n"
780 " ((return (expression vec3 % (var_ref arg0) (var_ref arg1)))))\n"
784 " (declare (in) vec4 arg0)\n"
785 " (declare (in) float arg1))\n"
786 " ((return (expression vec4 % (var_ref arg0) (var_ref arg1)))))\n"
790 static const char *builtin_radians
=
791 "((function radians\n"
792 " (signature float\n"
794 " (declare (in) float arg0))\n"
795 " ((return (expression float * (var_ref arg0) (constant float (0.017453))))))\n"
799 " (declare (in) vec2 arg0))\n"
800 " ((return (expression vec2 * (var_ref arg0) (constant float (0.017453))))))\n"
804 " (declare (in) vec3 arg0))\n"
805 " ((return (expression vec3 * (var_ref arg0) (constant float (0.017453))))))\n"
809 " (declare (in) vec4 arg0))\n"
810 " ((return (expression vec4 * (var_ref arg0) (constant float (0.017453))))))\n"
814 static const char *builtin_smoothstep
=
815 "((function smoothstep\n"
816 " (signature float\n"
818 " (declare (in) float edge0)\n"
819 " (declare (in) float edge1)\n"
820 " (declare (in) float x))\n"
821 " ((declare () float t)\n"
823 " (assign (constant bool (1)) (var_ref t)\n"
824 " (expression float max\n"
825 " (expression float min\n"
826 " (expression float / (expression float - (var_ref x) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
827 " (constant float (1.0)))\n"
828 " (constant float (0.0))))\n"
829 " (return (expression float * (var_ref t) (expression float * (var_ref t) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (var_ref t))))))))\n"
833 " (declare (in) float edge0)\n"
834 " (declare (in) float edge1)\n"
835 " (declare (in) vec2 x))\n"
836 " ((declare () vec2 t)\n"
837 " (declare () vec2 retval)\n"
839 " (assign (constant bool (1)) (swiz x (var_ref t))\n"
840 " (expression float max\n"
841 " (expression float min\n"
842 " (expression float / (expression float - (swiz x (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
843 " (constant float (1.0)))\n"
844 " (constant float (0.0))))\n"
845 " (assign (constant bool (1)) (swiz x (var_ref retval)) (expression float * (swiz x (var_ref t)) (expression float * (swiz x (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz x (var_ref t)))))))\n"
847 " (assign (constant bool (1)) (swiz y (var_ref t))\n"
848 " (expression float max\n"
849 " (expression float min\n"
850 " (expression float / (expression float - (swiz y (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
851 " (constant float (1.0)))\n"
852 " (constant float (0.0))))\n"
853 " (assign (constant bool (1)) (swiz y (var_ref retval)) (expression float * (swiz y (var_ref t)) (expression float * (swiz y (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz y (var_ref t)))))))\n"
854 " (return (var_ref retval))\n"
859 " (declare (in) float edge0)\n"
860 " (declare (in) float edge1)\n"
861 " (declare (in) vec3 x))\n"
862 " ((declare () vec3 t)\n"
863 " (declare () vec3 retval)\n"
865 " (assign (constant bool (1)) (swiz x (var_ref t))\n"
866 " (expression float max\n"
867 " (expression float min\n"
868 " (expression float / (expression float - (swiz x (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
869 " (constant float (1.0)))\n"
870 " (constant float (0.0))))\n"
871 " (assign (constant bool (1)) (swiz x (var_ref retval)) (expression float * (swiz x (var_ref t)) (expression float * (swiz x (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz x (var_ref t)))))))\n"
873 " (assign (constant bool (1)) (swiz y (var_ref t))\n"
874 " (expression float max\n"
875 " (expression float min\n"
876 " (expression float / (expression float - (swiz y (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
877 " (constant float (1.0)))\n"
878 " (constant float (0.0))))\n"
879 " (assign (constant bool (1)) (swiz y (var_ref retval)) (expression float * (swiz y (var_ref t)) (expression float * (swiz y (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz y (var_ref t)))))))\n"
881 " (assign (constant bool (1)) (swiz z (var_ref t))\n"
882 " (expression float max\n"
883 " (expression float min\n"
884 " (expression float / (expression float - (swiz z (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
885 " (constant float (1.0)))\n"
886 " (constant float (0.0))))\n"
887 " (assign (constant bool (1)) (swiz z (var_ref retval)) (expression float * (swiz z (var_ref t)) (expression float * (swiz z (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz z (var_ref t)))))))\n"
888 " (return (var_ref retval))\n"
894 " (declare (in) float edge0)\n"
895 " (declare (in) float edge1)\n"
896 " (declare (in) vec4 x))\n"
897 " ((declare () vec4 t)\n"
898 " (declare () vec4 retval)\n"
900 " (assign (constant bool (1)) (swiz x (var_ref t))\n"
901 " (expression float max\n"
902 " (expression float min\n"
903 " (expression float / (expression float - (swiz x (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
904 " (constant float (1.0)))\n"
905 " (constant float (0.0))))\n"
906 " (assign (constant bool (1)) (swiz x (var_ref retval)) (expression float * (swiz x (var_ref t)) (expression float * (swiz x (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz x (var_ref t)))))))\n"
908 " (assign (constant bool (1)) (swiz y (var_ref t))\n"
909 " (expression float max\n"
910 " (expression float min\n"
911 " (expression float / (expression float - (swiz y (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
912 " (constant float (1.0)))\n"
913 " (constant float (0.0))))\n"
914 " (assign (constant bool (1)) (swiz y (var_ref retval)) (expression float * (swiz y (var_ref t)) (expression float * (swiz y (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz y (var_ref t)))))))\n"
916 " (assign (constant bool (1)) (swiz z (var_ref t))\n"
917 " (expression float max\n"
918 " (expression float min\n"
919 " (expression float / (expression float - (swiz z (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
920 " (constant float (1.0)))\n"
921 " (constant float (0.0))))\n"
922 " (assign (constant bool (1)) (swiz z (var_ref retval)) (expression float * (swiz z (var_ref t)) (expression float * (swiz z (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz z (var_ref t)))))))\n"
924 " (assign (constant bool (1)) (swiz w (var_ref t))\n"
925 " (expression float max\n"
926 " (expression float min\n"
927 " (expression float / (expression float - (swiz w (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n"
928 " (constant float (1.0)))\n"
929 " (constant float (0.0))))\n"
930 " (assign (constant bool (1)) (swiz w (var_ref retval)) (expression float * (swiz w (var_ref t)) (expression float * (swiz w (var_ref t)) (expression float - (constant float (3.000000)) (expression float * (constant float (2.000000)) (swiz w (var_ref t)))))))\n"
931 " (return (var_ref retval))\n"
936 " (declare (in) vec2 edge0)\n"
937 " (declare (in) vec2 edge1)\n"
938 " (declare (in) vec2 x))\n"
939 " ((return (expression vec2 max\n"
940 " (expression vec2 min\n"
941 " (expression vec2 / (expression vec2 - (var_ref x) (var_ref edge0)) (expression vec2 - (var_ref edge1) (var_ref edge0)))\n"
942 " (constant vec2 (1.0 1.0)))\n"
943 " (constant vec2 (0.0 0.0))))))\n"
947 " (declare (in) vec3 edge0)\n"
948 " (declare (in) vec3 edge1)\n"
949 " (declare (in) vec3 x))\n"
950 " ((return (expression vec3 max\n"
951 " (expression vec3 min\n"
952 " (expression vec3 / (expression vec3 - (var_ref x) (var_ref edge0)) (expression vec3 - (var_ref edge1) (var_ref edge0)))\n"
953 " (constant vec3 (1.0 1.0 1.0)))\n"
954 " (constant vec3 (0.0 0.0 0.0))))))\n"
958 " (declare (in) vec4 edge0)\n"
959 " (declare (in) vec4 edge1)\n"
960 " (declare (in) vec4 x))\n"
961 " ((return (expression vec4 max\n"
962 " (expression vec4 min\n"
963 " (expression vec4 / (expression vec4 - (var_ref x) (var_ref edge0)) (expression vec4 - (var_ref edge1) (var_ref edge0)))\n"
964 " (constant vec4 (1.0 1.0 1.0 1.0)))\n"
965 " (constant vec4 (0.0 0.0 0.0 0.0))))))\n"
970 static const char *builtin_textureProjGrad
=
971 "((function textureProjGrad\n"
974 " (declare (in) sampler1D sampler)\n"
975 " (declare (in) vec2 P) \n"
976 " (declare (in) float dPdx) \n"
977 " (declare (in) float dPdy) )\n"
978 " ((return (txd (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
980 " (signature ivec4\n"
982 " (declare (in) isampler1D sampler)\n"
983 " (declare (in) vec2 P) \n"
984 " (declare (in) float dPdx) \n"
985 " (declare (in) float dPdy) )\n"
986 " ((return (txd (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
988 " (signature uvec4\n"
990 " (declare (in) usampler1D sampler)\n"
991 " (declare (in) vec2 P) \n"
992 " (declare (in) float dPdx) \n"
993 " (declare (in) float dPdy) )\n"
994 " ((return (txd (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
998 " (declare (in) sampler1D sampler)\n"
999 " (declare (in) vec4 P) \n"
1000 " (declare (in) float dPdx) \n"
1001 " (declare (in) float dPdy) )\n"
1002 " ((return (txd (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
1004 " (signature ivec4\n"
1006 " (declare (in) isampler1D sampler)\n"
1007 " (declare (in) vec4 P) \n"
1008 " (declare (in) float dPdx) \n"
1009 " (declare (in) float dPdy) )\n"
1010 " ((return (txd (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
1012 " (signature uvec4\n"
1014 " (declare (in) usampler1D sampler)\n"
1015 " (declare (in) vec4 P) \n"
1016 " (declare (in) float dPdx) \n"
1017 " (declare (in) float dPdy) )\n"
1018 " ((return (txd (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
1020 " (signature vec4\n"
1022 " (declare (in) sampler2D sampler)\n"
1023 " (declare (in) vec3 P) \n"
1024 " (declare (in) vec2 dPdx) \n"
1025 " (declare (in) vec2 dPdy) )\n"
1026 " ((return (txd (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
1028 " (signature ivec4\n"
1030 " (declare (in) isampler2D sampler)\n"
1031 " (declare (in) vec3 P) \n"
1032 " (declare (in) vec2 dPdx) \n"
1033 " (declare (in) vec2 dPdy) )\n"
1034 " ((return (txd (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
1036 " (signature uvec4\n"
1038 " (declare (in) usampler2D sampler)\n"
1039 " (declare (in) vec3 P) \n"
1040 " (declare (in) vec2 dPdx) \n"
1041 " (declare (in) vec2 dPdy) )\n"
1042 " ((return (txd (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
1044 " (signature vec4\n"
1046 " (declare (in) sampler2D sampler)\n"
1047 " (declare (in) vec4 P) \n"
1048 " (declare (in) vec2 dPdx) \n"
1049 " (declare (in) vec2 dPdy) )\n"
1050 " ((return (txd (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
1052 " (signature ivec4\n"
1054 " (declare (in) isampler2D sampler)\n"
1055 " (declare (in) vec4 P) \n"
1056 " (declare (in) vec2 dPdx) \n"
1057 " (declare (in) vec2 dPdy) )\n"
1058 " ((return (txd (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
1060 " (signature uvec4\n"
1062 " (declare (in) usampler2D sampler)\n"
1063 " (declare (in) vec4 P) \n"
1064 " (declare (in) vec2 dPdx) \n"
1065 " (declare (in) vec2 dPdy) )\n"
1066 " ((return (txd (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
1068 " (signature vec4\n"
1070 " (declare (in) sampler3D sampler)\n"
1071 " (declare (in) vec4 P) \n"
1072 " (declare (in) vec3 dPdx) \n"
1073 " (declare (in) vec3 dPdy) )\n"
1074 " ((return (txd (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
1076 " (signature ivec4\n"
1078 " (declare (in) isampler3D sampler)\n"
1079 " (declare (in) vec4 P) \n"
1080 " (declare (in) vec3 dPdx) \n"
1081 " (declare (in) vec3 dPdy) )\n"
1082 " ((return (txd (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
1084 " (signature uvec4\n"
1086 " (declare (in) usampler3D sampler)\n"
1087 " (declare (in) vec4 P) \n"
1088 " (declare (in) vec3 dPdx) \n"
1089 " (declare (in) vec3 dPdy) )\n"
1090 " ((return (txd (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
1095 static const char *builtin_dFdx
=
1097 " (signature float\n"
1099 " (declare (in) float p))\n"
1100 " ((return (expression float dFdx (var_ref p)))))\n"
1102 " (signature vec2\n"
1104 " (declare (in) vec2 p))\n"
1105 " ((return (expression vec2 dFdx (var_ref p)))))\n"
1107 " (signature vec3\n"
1109 " (declare (in) vec3 p))\n"
1110 " ((return (expression vec3 dFdx (var_ref p)))))\n"
1112 " (signature vec4\n"
1114 " (declare (in) vec4 p))\n"
1115 " ((return (expression vec4 dFdx (var_ref p)))))\n"
1119 static const char *builtin_dFdy
=
1121 " (signature float\n"
1123 " (declare (in) float p))\n"
1124 " ((return (expression float dFdy (var_ref p)))))\n"
1126 " (signature vec2\n"
1128 " (declare (in) vec2 p))\n"
1129 " ((return (expression vec2 dFdy (var_ref p)))))\n"
1131 " (signature vec3\n"
1133 " (declare (in) vec3 p))\n"
1134 " ((return (expression vec3 dFdy (var_ref p)))))\n"
1136 " (signature vec4\n"
1138 " (declare (in) vec4 p))\n"
1139 " ((return (expression vec4 dFdy (var_ref p)))))\n"
1143 static const char *builtin_textureGrad
=
1144 "((function textureGrad\n"
1145 " (signature vec4\n"
1147 " (declare (in) sampler1D sampler)\n"
1148 " (declare (in) float P) \n"
1149 " (declare (in) float dPdx) \n"
1150 " (declare (in) float dPdy) )\n"
1151 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
1153 " (signature ivec4\n"
1155 " (declare (in) isampler1D sampler)\n"
1156 " (declare (in) float P) \n"
1157 " (declare (in) float dPdx) \n"
1158 " (declare (in) float dPdy) )\n"
1159 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
1161 " (signature uvec4\n"
1163 " (declare (in) usampler1D sampler)\n"
1164 " (declare (in) float P) \n"
1165 " (declare (in) float dPdx) \n"
1166 " (declare (in) float dPdy) )\n"
1167 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
1169 " (signature vec4\n"
1171 " (declare (in) sampler2D sampler)\n"
1172 " (declare (in) vec2 P) \n"
1173 " (declare (in) vec2 dPdx) \n"
1174 " (declare (in) vec2 dPdy) )\n"
1175 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
1177 " (signature ivec4\n"
1179 " (declare (in) isampler2D sampler)\n"
1180 " (declare (in) vec2 P) \n"
1181 " (declare (in) vec2 dPdx) \n"
1182 " (declare (in) vec2 dPdy) )\n"
1183 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
1185 " (signature uvec4\n"
1187 " (declare (in) usampler2D sampler)\n"
1188 " (declare (in) vec2 P) \n"
1189 " (declare (in) vec2 dPdx) \n"
1190 " (declare (in) vec2 dPdy) )\n"
1191 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
1193 " (signature vec4\n"
1195 " (declare (in) sampler3D sampler)\n"
1196 " (declare (in) vec3 P) \n"
1197 " (declare (in) vec3 dPdx) \n"
1198 " (declare (in) vec3 dPdy) )\n"
1199 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
1201 " (signature ivec4\n"
1203 " (declare (in) isampler3D sampler)\n"
1204 " (declare (in) vec3 P) \n"
1205 " (declare (in) vec3 dPdx) \n"
1206 " (declare (in) vec3 dPdy) )\n"
1207 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
1209 " (signature uvec4\n"
1211 " (declare (in) usampler3D sampler)\n"
1212 " (declare (in) vec3 P) \n"
1213 " (declare (in) vec3 dPdx) \n"
1214 " (declare (in) vec3 dPdy) )\n"
1215 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
1217 " (signature vec4\n"
1219 " (declare (in) samplerCube sampler)\n"
1220 " (declare (in) vec3 P) \n"
1221 " (declare (in) vec3 dPdx) \n"
1222 " (declare (in) vec3 dPdy) )\n"
1223 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
1225 " (signature ivec4\n"
1227 " (declare (in) isamplerCube sampler)\n"
1228 " (declare (in) vec3 P) \n"
1229 " (declare (in) vec3 dPdx) \n"
1230 " (declare (in) vec3 dPdy) )\n"
1231 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
1233 " (signature uvec4\n"
1235 " (declare (in) usamplerCube sampler)\n"
1236 " (declare (in) vec3 P) \n"
1237 " (declare (in) vec3 dPdx) \n"
1238 " (declare (in) vec3 dPdy) )\n"
1239 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
1241 " (signature vec4\n"
1243 " (declare (in) sampler1DArray sampler)\n"
1244 " (declare (in) vec2 P) \n"
1245 " (declare (in) vec2 dPdx) \n"
1246 " (declare (in) vec2 dPdy) )\n"
1247 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
1249 " (signature ivec4\n"
1251 " (declare (in) isampler1DArray sampler)\n"
1252 " (declare (in) vec2 P) \n"
1253 " (declare (in) vec2 dPdx) \n"
1254 " (declare (in) vec2 dPdy) )\n"
1255 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
1257 " (signature uvec4\n"
1259 " (declare (in) usampler1DArray sampler)\n"
1260 " (declare (in) vec2 P) \n"
1261 " (declare (in) vec2 dPdx) \n"
1262 " (declare (in) vec2 dPdy) )\n"
1263 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
1265 " (signature vec4\n"
1267 " (declare (in) sampler2DArray sampler)\n"
1268 " (declare (in) vec3 P) \n"
1269 " (declare (in) vec3 dPdx) \n"
1270 " (declare (in) vec3 dPdy) )\n"
1271 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
1273 " (signature ivec4\n"
1275 " (declare (in) isampler2DArray sampler)\n"
1276 " (declare (in) vec3 P) \n"
1277 " (declare (in) vec3 dPdx) \n"
1278 " (declare (in) vec3 dPdy) )\n"
1279 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
1281 " (signature uvec4\n"
1283 " (declare (in) usampler2DArray sampler)\n"
1284 " (declare (in) vec3 P) \n"
1285 " (declare (in) vec3 dPdx) \n"
1286 " (declare (in) vec3 dPdy) )\n"
1287 " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n"
1292 static const char *builtin_clamp
=
1293 "((function clamp\n"
1294 " (signature float\n"
1296 " (declare (in) float arg0)\n"
1297 " (declare (in) float arg1)\n"
1298 " (declare (in) float arg2))\n"
1299 " ((return (expression float max (expression float min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
1301 " (signature vec2\n"
1303 " (declare (in) vec2 arg0)\n"
1304 " (declare (in) vec2 arg1)\n"
1305 " (declare (in) vec2 arg2))\n"
1306 " ((return (expression vec2 max (expression vec2 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
1308 " (signature vec3\n"
1310 " (declare (in) vec3 arg0)\n"
1311 " (declare (in) vec3 arg1)\n"
1312 " (declare (in) vec3 arg2))\n"
1313 " ((return (expression vec3 max (expression vec3 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
1315 " (signature vec4\n"
1317 " (declare (in) vec4 arg0)\n"
1318 " (declare (in) vec4 arg1)\n"
1319 " (declare (in) vec4 arg2))\n"
1320 " ((return (expression vec4 max (expression vec4 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
1322 " (signature vec2\n"
1324 " (declare (in) vec2 arg0)\n"
1325 " (declare (in) float arg1)\n"
1326 " (declare (in) float arg2))\n"
1327 " ((return (expression vec2 max (expression vec2 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
1329 " (signature vec3\n"
1331 " (declare (in) vec3 arg0)\n"
1332 " (declare (in) float arg1)\n"
1333 " (declare (in) float arg2))\n"
1334 " ((return (expression vec3 max (expression vec3 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
1336 " (signature vec4\n"
1338 " (declare (in) vec4 arg0)\n"
1339 " (declare (in) float arg1)\n"
1340 " (declare (in) float arg2))\n"
1341 " ((return (expression vec4 max (expression vec4 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
1345 " (declare (in) int arg0)\n"
1346 " (declare (in) int arg1)\n"
1347 " (declare (in) int arg2))\n"
1348 " ((return (expression int max (expression int min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
1350 " (signature ivec2\n"
1352 " (declare (in) ivec2 arg0)\n"
1353 " (declare (in) ivec2 arg1)\n"
1354 " (declare (in) ivec2 arg2))\n"
1355 " ((return (expression ivec2 max (expression ivec2 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
1357 " (signature ivec3\n"
1359 " (declare (in) ivec3 arg0)\n"
1360 " (declare (in) ivec3 arg1)\n"
1361 " (declare (in) ivec3 arg2))\n"
1362 " ((return (expression ivec3 max (expression ivec3 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
1364 " (signature ivec4\n"
1366 " (declare (in) ivec4 arg0)\n"
1367 " (declare (in) ivec4 arg1)\n"
1368 " (declare (in) ivec4 arg2))\n"
1369 " ((return (expression ivec4 max (expression ivec4 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
1371 " (signature ivec2\n"
1373 " (declare (in) ivec2 arg0)\n"
1374 " (declare (in) int arg1)\n"
1375 " (declare (in) int arg2))\n"
1376 " ((return (expression ivec2 max (expression ivec2 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
1378 " (signature ivec3\n"
1380 " (declare (in) ivec3 arg0)\n"
1381 " (declare (in) int arg1)\n"
1382 " (declare (in) int arg2))\n"
1383 " ((return (expression ivec3 max (expression ivec3 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
1385 " (signature ivec4\n"
1387 " (declare (in) ivec4 arg0)\n"
1388 " (declare (in) int arg1)\n"
1389 " (declare (in) int arg2))\n"
1390 " ((return (expression ivec4 max (expression ivec4 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
1392 " (signature uint\n"
1394 " (declare (in) uint arg0)\n"
1395 " (declare (in) uint arg1)\n"
1396 " (declare (in) uint arg2))\n"
1397 " ((return (expression uint max (expression uint min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
1399 " (signature uvec2\n"
1401 " (declare (in) uvec2 arg0)\n"
1402 " (declare (in) uvec2 arg1)\n"
1403 " (declare (in) uvec2 arg2))\n"
1404 " ((return (expression uvec2 max (expression uvec2 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
1406 " (signature uvec3\n"
1408 " (declare (in) uvec3 arg0)\n"
1409 " (declare (in) uvec3 arg1)\n"
1410 " (declare (in) uvec3 arg2))\n"
1411 " ((return (expression uvec3 max (expression uvec3 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
1413 " (signature uvec4\n"
1415 " (declare (in) uvec4 arg0)\n"
1416 " (declare (in) uvec4 arg1)\n"
1417 " (declare (in) uvec4 arg2))\n"
1418 " ((return (expression uvec4 max (expression uvec4 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
1420 " (signature uvec2\n"
1422 " (declare (in) uvec2 arg0)\n"
1423 " (declare (in) uint arg1)\n"
1424 " (declare (in) uint arg2))\n"
1425 " ((return (expression uvec2 max (expression uvec2 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
1427 " (signature uvec3\n"
1429 " (declare (in) uvec3 arg0)\n"
1430 " (declare (in) uint arg1)\n"
1431 " (declare (in) uint arg2))\n"
1432 " ((return (expression uvec3 max (expression uvec3 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
1434 " (signature uvec4\n"
1436 " (declare (in) uvec4 arg0)\n"
1437 " (declare (in) uint arg1)\n"
1438 " (declare (in) uint arg2))\n"
1439 " ((return (expression uvec4 max (expression uvec4 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n"
1443 static const char *builtin_texture2DRect
=
1444 "((function texture2DRect\n"
1445 " (signature vec4\n"
1447 " (declare (in) sampler2DRect sampler)\n"
1448 " (declare (in) vec2 P) )\n"
1449 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
1454 static const char *builtin_cosh
=
1456 " (signature float\n"
1458 " (declare (in) float x))\n"
1459 " ((return (expression float * (constant float (0.5))\n"
1460 " (expression float +\n"
1461 " (expression float exp (var_ref x))\n"
1462 " (expression float exp (expression float neg (var_ref x))))))))\n"
1463 " (signature vec2\n"
1465 " (declare (in) vec2 x))\n"
1466 " ((return (expression vec2 * (constant vec2 (0.5))\n"
1467 " (expression vec2 +\n"
1468 " (expression vec2 exp (var_ref x))\n"
1469 " (expression vec2 exp (expression vec2 neg (var_ref x))))))))\n"
1470 " (signature vec3\n"
1472 " (declare (in) vec3 x))\n"
1473 " ((return (expression vec3 * (constant vec3 (0.5))\n"
1474 " (expression vec3 +\n"
1475 " (expression vec3 exp (var_ref x))\n"
1476 " (expression vec3 exp (expression vec3 neg (var_ref x))))))))\n"
1477 " (signature vec4\n"
1479 " (declare (in) vec4 x))\n"
1480 " ((return (expression vec4 * (constant vec4 (0.5))\n"
1481 " (expression vec4 +\n"
1482 " (expression vec4 exp (var_ref x))\n"
1483 " (expression vec4 exp (expression vec4 neg (var_ref x))))))))\n"
1487 static const char *builtin_texture1DArrayLod
=
1488 "((function texture1DArrayLod\n"
1489 " (signature vec4\n"
1491 " (declare (in) sampler1DArray sampler)\n"
1492 " (declare (in) vec2 P) \n"
1493 " (declare (in) float lod) )\n"
1494 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
1499 static const char *builtin_asin
=
1501 " (signature float\n"
1503 " (declare (in) float x))\n"
1504 " ((return (expression float *\n"
1505 " (expression float sign (var_ref x))\n"
1506 " (expression float -\n"
1507 " (expression float *\n"
1508 " (constant float (3.1415926))\n"
1509 " (constant float (0.5)))\n"
1510 " (expression float *\n"
1511 " (expression float sqrt\n"
1512 " (expression float -\n"
1513 " (constant float (1.0))\n"
1514 " (expression float abs (var_ref x))))\n"
1515 " (expression float +\n"
1516 " (constant float (1.5707288))\n"
1517 " (expression float *\n"
1518 " (expression float abs (var_ref x))\n"
1519 " (expression float +\n"
1520 " (constant float (-0.2121144))\n"
1521 " (expression float *\n"
1522 " (constant float (0.0742610))\n"
1523 " (expression float abs (var_ref x))))))))))))\n"
1525 " (signature vec2\n"
1527 " (declare (in) vec2 x))\n"
1528 " ((return (expression vec2 *\n"
1529 " (expression vec2 sign (var_ref x))\n"
1530 " (expression vec2 -\n"
1531 " (expression float *\n"
1532 " (constant float (3.1415926))\n"
1533 " (constant float (0.5)))\n"
1534 " (expression vec2 *\n"
1535 " (expression vec2 sqrt\n"
1536 " (expression vec2 -\n"
1537 " (constant float (1.0))\n"
1538 " (expression vec2 abs (var_ref x))))\n"
1539 " (expression vec2 +\n"
1540 " (constant float (1.5707288))\n"
1541 " (expression vec2 *\n"
1542 " (expression vec2 abs (var_ref x))\n"
1543 " (expression vec2 +\n"
1544 " (constant float (-0.2121144))\n"
1545 " (expression vec2 *\n"
1546 " (constant float (0.0742610))\n"
1547 " (expression vec2 abs (var_ref x))))))))))))\n"
1549 " (signature vec3\n"
1551 " (declare (in) vec3 x))\n"
1552 " ((return (expression vec3 *\n"
1553 " (expression vec3 sign (var_ref x))\n"
1554 " (expression vec3 -\n"
1555 " (expression float *\n"
1556 " (constant float (3.1415926))\n"
1557 " (constant float (0.5)))\n"
1558 " (expression vec3 *\n"
1559 " (expression vec3 sqrt\n"
1560 " (expression vec3 -\n"
1561 " (constant float (1.0))\n"
1562 " (expression vec3 abs (var_ref x))))\n"
1563 " (expression vec3 +\n"
1564 " (constant float (1.5707288))\n"
1565 " (expression vec3 *\n"
1566 " (expression vec3 abs (var_ref x))\n"
1567 " (expression vec3 +\n"
1568 " (constant float (-0.2121144))\n"
1569 " (expression vec3 *\n"
1570 " (constant float (0.0742610))\n"
1571 " (expression vec3 abs (var_ref x))))))))))))\n"
1573 " (signature vec4\n"
1575 " (declare (in) vec4 x))\n"
1576 " ((return (expression vec4 *\n"
1577 " (expression vec4 sign (var_ref x))\n"
1578 " (expression vec4 -\n"
1579 " (expression float *\n"
1580 " (constant float (3.1415926))\n"
1581 " (constant float (0.5)))\n"
1582 " (expression vec4 *\n"
1583 " (expression vec4 sqrt\n"
1584 " (expression vec4 -\n"
1585 " (constant float (1.0))\n"
1586 " (expression vec4 abs (var_ref x))))\n"
1587 " (expression vec4 +\n"
1588 " (constant float (1.5707288))\n"
1589 " (expression vec4 *\n"
1590 " (expression vec4 abs (var_ref x))\n"
1591 " (expression vec4 +\n"
1592 " (constant float (-0.2121144))\n"
1593 " (expression vec4 *\n"
1594 " (constant float (0.0742610))\n"
1595 " (expression vec4 abs (var_ref x))))))))))))\n"
1599 static const char *builtin_texture1DProj
=
1600 "((function texture1DProj\n"
1601 " (signature vec4\n"
1603 " (declare (in) sampler1D sampler)\n"
1604 " (declare (in) vec2 P) )\n"
1605 " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () ))))\n"
1607 " (signature vec4\n"
1609 " (declare (in) sampler1D sampler)\n"
1610 " (declare (in) vec4 P) )\n"
1611 " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
1613 " (signature vec4\n"
1615 " (declare (in) sampler1D sampler)\n"
1616 " (declare (in) vec2 P) \n"
1617 " (declare (in) float bias) )\n"
1618 " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref bias) ))))\n"
1620 " (signature vec4\n"
1622 " (declare (in) sampler1D sampler)\n"
1623 " (declare (in) vec4 P) \n"
1624 " (declare (in) float bias) )\n"
1625 " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
1630 static const char *builtin_lessThan
=
1631 "((function lessThan\n"
1632 " (signature bvec2\n"
1634 " (declare (in) vec2 arg0)\n"
1635 " (declare (in) vec2 arg1))\n"
1636 " ((declare () bvec2 temp)\n"
1637 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1638 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1639 " (return (var_ref temp))))\n"
1641 " (signature bvec3\n"
1643 " (declare (in) vec3 arg0)\n"
1644 " (declare (in) vec3 arg1))\n"
1645 " ((declare () bvec3 temp)\n"
1646 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1647 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1648 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool < (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
1649 " (return (var_ref temp))))\n"
1651 " (signature bvec4\n"
1653 " (declare (in) vec4 arg0)\n"
1654 " (declare (in) vec4 arg1))\n"
1655 " ((declare () bvec4 temp)\n"
1656 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1657 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1658 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool < (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
1659 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool < (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
1660 " (return (var_ref temp))))\n"
1662 " (signature bvec2\n"
1664 " (declare (in) ivec2 arg0)\n"
1665 " (declare (in) ivec2 arg1))\n"
1666 " ((declare () bvec2 temp)\n"
1667 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1668 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1669 " (return (var_ref temp))))\n"
1671 " (signature bvec3\n"
1673 " (declare (in) ivec3 arg0)\n"
1674 " (declare (in) ivec3 arg1))\n"
1675 " ((declare () bvec3 temp)\n"
1676 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1677 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1678 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool < (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
1679 " (return (var_ref temp))))\n"
1681 " (signature bvec4\n"
1683 " (declare (in) ivec4 arg0)\n"
1684 " (declare (in) ivec4 arg1))\n"
1685 " ((declare () bvec4 temp)\n"
1686 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1687 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1688 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool < (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
1689 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool < (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
1690 " (return (var_ref temp))))\n"
1692 " (signature bvec2\n"
1694 " (declare (in) uvec2 arg0)\n"
1695 " (declare (in) uvec2 arg1))\n"
1696 " ((declare () bvec2 temp)\n"
1697 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1698 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1699 " (return (var_ref temp))))\n"
1701 " (signature bvec3\n"
1703 " (declare (in) uvec3 arg0)\n"
1704 " (declare (in) uvec3 arg1))\n"
1705 " ((declare () bvec3 temp)\n"
1706 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1707 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1708 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool < (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
1709 " (return (var_ref temp))))\n"
1711 " (signature bvec4\n"
1713 " (declare (in) uvec4 arg0)\n"
1714 " (declare (in) uvec4 arg1))\n"
1715 " ((declare () bvec4 temp)\n"
1716 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1717 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1718 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool < (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
1719 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool < (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
1720 " (return (var_ref temp))))\n"
1724 static const char *builtin_shadow2DProj
=
1725 "((function shadow2DProj\n"
1726 " (signature vec4\n"
1728 " (declare (in) sampler2DShadow sampler)\n"
1729 " (declare (in) vec4 P) )\n"
1730 " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) (swiz z (var_ref P)) ))))\n"
1732 " (signature vec4\n"
1734 " (declare (in) sampler2DShadow sampler)\n"
1735 " (declare (in) vec4 P) \n"
1736 " (declare (in) float bias) )\n"
1737 " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) (swiz z (var_ref P)) (var_ref bias) ))))\n"
1742 static const char *builtin_textureLod
=
1743 "((function textureLod\n"
1744 " (signature vec4\n"
1746 " (declare (in) sampler1D sampler)\n"
1747 " (declare (in) float P) \n"
1748 " (declare (in) float lod) )\n"
1749 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
1751 " (signature ivec4\n"
1753 " (declare (in) isampler1D sampler)\n"
1754 " (declare (in) float P) \n"
1755 " (declare (in) float lod) )\n"
1756 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
1758 " (signature uvec4\n"
1760 " (declare (in) usampler1D sampler)\n"
1761 " (declare (in) float P) \n"
1762 " (declare (in) float lod) )\n"
1763 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
1765 " (signature vec4\n"
1767 " (declare (in) sampler2D sampler)\n"
1768 " (declare (in) vec2 P) \n"
1769 " (declare (in) float lod) )\n"
1770 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
1772 " (signature ivec4\n"
1774 " (declare (in) isampler2D sampler)\n"
1775 " (declare (in) vec2 P) \n"
1776 " (declare (in) float lod) )\n"
1777 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
1779 " (signature uvec4\n"
1781 " (declare (in) usampler2D sampler)\n"
1782 " (declare (in) vec2 P) \n"
1783 " (declare (in) float lod) )\n"
1784 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
1786 " (signature vec4\n"
1788 " (declare (in) sampler3D sampler)\n"
1789 " (declare (in) vec3 P) \n"
1790 " (declare (in) float lod) )\n"
1791 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
1793 " (signature ivec4\n"
1795 " (declare (in) isampler3D sampler)\n"
1796 " (declare (in) vec3 P) \n"
1797 " (declare (in) float lod) )\n"
1798 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
1800 " (signature uvec4\n"
1802 " (declare (in) usampler3D sampler)\n"
1803 " (declare (in) vec3 P) \n"
1804 " (declare (in) float lod) )\n"
1805 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
1807 " (signature vec4\n"
1809 " (declare (in) samplerCube sampler)\n"
1810 " (declare (in) vec3 P) \n"
1811 " (declare (in) float lod) )\n"
1812 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
1814 " (signature ivec4\n"
1816 " (declare (in) isamplerCube sampler)\n"
1817 " (declare (in) vec3 P) \n"
1818 " (declare (in) float lod) )\n"
1819 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
1821 " (signature uvec4\n"
1823 " (declare (in) usamplerCube sampler)\n"
1824 " (declare (in) vec3 P) \n"
1825 " (declare (in) float lod) )\n"
1826 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
1828 " (signature vec4\n"
1830 " (declare (in) sampler1DArray sampler)\n"
1831 " (declare (in) vec2 P) \n"
1832 " (declare (in) float lod) )\n"
1833 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
1835 " (signature ivec4\n"
1837 " (declare (in) isampler1DArray sampler)\n"
1838 " (declare (in) vec2 P) \n"
1839 " (declare (in) float lod) )\n"
1840 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
1842 " (signature uvec4\n"
1844 " (declare (in) usampler1DArray sampler)\n"
1845 " (declare (in) vec2 P) \n"
1846 " (declare (in) float lod) )\n"
1847 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
1849 " (signature vec4\n"
1851 " (declare (in) sampler2DArray sampler)\n"
1852 " (declare (in) vec3 P) \n"
1853 " (declare (in) float lod) )\n"
1854 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
1856 " (signature ivec4\n"
1858 " (declare (in) isampler2DArray sampler)\n"
1859 " (declare (in) vec3 P) \n"
1860 " (declare (in) float lod) )\n"
1861 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
1863 " (signature uvec4\n"
1865 " (declare (in) usampler2DArray sampler)\n"
1866 " (declare (in) vec3 P) \n"
1867 " (declare (in) float lod) )\n"
1868 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
1873 static const char *builtin_faceforward
=
1874 "((function faceforward\n"
1875 " (signature float\n"
1877 " (declare (in) float N)\n"
1878 " (declare (in) float I)\n"
1879 " (declare (in) float Nref))\n"
1880 " ((if (expression bool < (expression float dot (var_ref Nref) (var_ref I)) (constant float (0)))\n"
1881 " ((return (var_ref N)))\n"
1882 " ((return (expression float neg (var_ref N)))))))\n"
1884 " (signature vec2\n"
1886 " (declare (in) vec2 N)\n"
1887 " (declare (in) vec2 I)\n"
1888 " (declare (in) vec2 Nref))\n"
1889 " ((if (expression bool < (expression float dot (var_ref Nref) (var_ref I)) (constant float (0)))\n"
1890 " ((return (var_ref N)))\n"
1891 " ((return (expression vec2 neg (var_ref N)))))))\n"
1893 " (signature vec3\n"
1895 " (declare (in) vec3 N)\n"
1896 " (declare (in) vec3 I)\n"
1897 " (declare (in) vec3 Nref))\n"
1898 " ((if (expression bool < (expression float dot (var_ref Nref) (var_ref I)) (constant float (0)))\n"
1899 " ((return (var_ref N)))\n"
1900 " ((return (expression vec3 neg (var_ref N)))))))\n"
1902 " (signature vec4\n"
1904 " (declare (in) vec4 N)\n"
1905 " (declare (in) vec4 I)\n"
1906 " (declare (in) vec4 Nref))\n"
1907 " ((if (expression bool < (expression float dot (var_ref Nref) (var_ref I)) (constant float (0)))\n"
1908 " ((return (var_ref N)))\n"
1909 " ((return (expression vec4 neg (var_ref N)))))))\n"
1913 static const char *builtin_abs
=
1915 " (signature float\n"
1917 " (declare (in) float arg0))\n"
1918 " ((return (expression float abs (var_ref arg0)))))\n"
1920 " (signature vec2\n"
1922 " (declare (in) vec2 arg0))\n"
1923 " ((return (expression vec2 abs (var_ref arg0)))))\n"
1925 " (signature vec3\n"
1927 " (declare (in) vec3 arg0))\n"
1928 " ((return (expression vec3 abs (var_ref arg0)))))\n"
1930 " (signature vec4\n"
1932 " (declare (in) vec4 arg0))\n"
1933 " ((return (expression vec4 abs (var_ref arg0)))))\n"
1937 static const char *builtin_log2
=
1939 " (signature float\n"
1941 " (declare (in) float arg0))\n"
1942 " ((return (expression float log2 (var_ref arg0)))))\n"
1944 " (signature vec2\n"
1946 " (declare (in) vec2 arg0))\n"
1947 " ((return (expression vec2 log2 (var_ref arg0)))))\n"
1949 " (signature vec3\n"
1951 " (declare (in) vec3 arg0))\n"
1952 " ((return (expression vec3 log2 (var_ref arg0)))))\n"
1954 " (signature vec4\n"
1956 " (declare (in) vec4 arg0))\n"
1957 " ((return (expression vec4 log2 (var_ref arg0)))))\n"
1961 static const char *builtin_shadow2DRect
=
1962 "((function shadow2DRect\n"
1963 " (signature vec4\n"
1965 " (declare (in) sampler2DRectShadow sampler)\n"
1966 " (declare (in) vec3 P) )\n"
1967 " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) ))))\n"
1972 static const char *builtin_lessThanEqual
=
1973 "((function lessThanEqual\n"
1974 " (signature bvec2\n"
1976 " (declare (in) vec2 arg0)\n"
1977 " (declare (in) vec2 arg1))\n"
1978 " ((declare () bvec2 temp)\n"
1979 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1980 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1981 " (return (var_ref temp))))\n"
1983 " (signature bvec3\n"
1985 " (declare (in) vec3 arg0)\n"
1986 " (declare (in) vec3 arg1))\n"
1987 " ((declare () bvec3 temp)\n"
1988 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1989 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
1990 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool <= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
1991 " (return (var_ref temp))))\n"
1993 " (signature bvec4\n"
1995 " (declare (in) vec4 arg0)\n"
1996 " (declare (in) vec4 arg1))\n"
1997 " ((declare () bvec4 temp)\n"
1998 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
1999 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
2000 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool <= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
2001 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool <= (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
2002 " (return (var_ref temp))))\n"
2004 " (signature bvec2\n"
2006 " (declare (in) ivec2 arg0)\n"
2007 " (declare (in) ivec2 arg1))\n"
2008 " ((declare () bvec2 temp)\n"
2009 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
2010 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
2011 " (return (var_ref temp))))\n"
2013 " (signature bvec3\n"
2015 " (declare (in) ivec3 arg0)\n"
2016 " (declare (in) ivec3 arg1))\n"
2017 " ((declare () bvec3 temp)\n"
2018 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
2019 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
2020 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool <= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
2021 " (return (var_ref temp))))\n"
2023 " (signature bvec4\n"
2025 " (declare (in) ivec4 arg0)\n"
2026 " (declare (in) ivec4 arg1))\n"
2027 " ((declare () bvec4 temp)\n"
2028 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
2029 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
2030 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool <= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
2031 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool <= (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
2032 " (return (var_ref temp))))\n"
2034 " (signature bvec2\n"
2036 " (declare (in) uvec2 arg0)\n"
2037 " (declare (in) uvec2 arg1))\n"
2038 " ((declare () bvec2 temp)\n"
2039 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
2040 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
2041 " (return (var_ref temp))))\n"
2043 " (signature bvec3\n"
2045 " (declare (in) uvec3 arg0)\n"
2046 " (declare (in) uvec3 arg1))\n"
2047 " ((declare () bvec3 temp)\n"
2048 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
2049 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
2050 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool <= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
2051 " (return (var_ref temp))))\n"
2053 " (signature bvec4\n"
2055 " (declare (in) uvec4 arg0)\n"
2056 " (declare (in) uvec4 arg1))\n"
2057 " ((declare () bvec4 temp)\n"
2058 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
2059 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
2060 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool <= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
2061 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool <= (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
2062 " (return (var_ref temp))))\n"
2066 static const char *builtin_transpose
=
2067 "((function transpose\n"
2068 " (signature mat2\n"
2070 " (declare (in) mat2 m))\n"
2071 " ((declare () mat2 t)\n"
2072 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (0))))) \n"
2073 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (0))))) \n"
2074 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (1))))) \n"
2075 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (1))))) \n"
2076 "(return (var_ref t))))\n"
2078 " (signature mat3x2\n"
2080 " (declare (in) mat2x3 m))\n"
2081 " ((declare () mat3x2 t)\n"
2082 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (0))))) \n"
2083 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (0))))) \n"
2084 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (0))))) \n"
2085 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (1))))) \n"
2086 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (1))))) \n"
2087 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (1))))) \n"
2088 "(return (var_ref t))))\n"
2090 " (signature mat4x2\n"
2092 " (declare (in) mat2x4 m))\n"
2093 " ((declare () mat4x2 t)\n"
2094 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (0))))) \n"
2095 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (0))))) \n"
2096 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (0))))) \n"
2097 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (3)))) (swiz w (array_ref (var_ref m) (constant int (0))))) \n"
2098 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (1))))) \n"
2099 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (1))))) \n"
2100 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (1))))) \n"
2101 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (3)))) (swiz w (array_ref (var_ref m) (constant int (1))))) \n"
2102 "(return (var_ref t))))\n"
2104 " (signature mat2x3\n"
2106 " (declare (in) mat3x2 m))\n"
2107 " ((declare () mat2x3 t)\n"
2108 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (0))))) \n"
2109 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (0))))) \n"
2110 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (1))))) \n"
2111 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (1))))) \n"
2112 " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (2))))) \n"
2113 " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (2))))) \n"
2114 "(return (var_ref t))))\n"
2116 " (signature mat3\n"
2118 " (declare (in) mat3 m))\n"
2119 " ((declare () mat3 t)\n"
2120 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (0))))) \n"
2121 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (0))))) \n"
2122 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (0))))) \n"
2123 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (1))))) \n"
2124 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (1))))) \n"
2125 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (1))))) \n"
2126 " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (2))))) \n"
2127 " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (2))))) \n"
2128 " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (2))))) \n"
2129 "(return (var_ref t))))\n"
2131 " (signature mat4x3\n"
2133 " (declare (in) mat3x4 m))\n"
2134 " ((declare () mat4x3 t)\n"
2135 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (0))))) \n"
2136 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (0))))) \n"
2137 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (0))))) \n"
2138 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (3)))) (swiz w (array_ref (var_ref m) (constant int (0))))) \n"
2139 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (1))))) \n"
2140 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (1))))) \n"
2141 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (1))))) \n"
2142 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (3)))) (swiz w (array_ref (var_ref m) (constant int (1))))) \n"
2143 " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (2))))) \n"
2144 " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (2))))) \n"
2145 " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (2))))) \n"
2146 " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (3)))) (swiz w (array_ref (var_ref m) (constant int (2))))) \n"
2147 "(return (var_ref t))))\n"
2149 " (signature mat2x4\n"
2151 " (declare (in) mat4x2 m))\n"
2152 " ((declare () mat2x4 t)\n"
2153 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (0))))) \n"
2154 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (0))))) \n"
2155 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (1))))) \n"
2156 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (1))))) \n"
2157 " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (2))))) \n"
2158 " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (2))))) \n"
2159 " (assign (constant bool (1)) (swiz w (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (3))))) \n"
2160 " (assign (constant bool (1)) (swiz w (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (3))))) \n"
2161 "(return (var_ref t))))\n"
2163 " (signature mat3x4\n"
2165 " (declare (in) mat4x3 m))\n"
2166 " ((declare () mat3x4 t)\n"
2167 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (0))))) \n"
2168 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (0))))) \n"
2169 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (0))))) \n"
2170 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (1))))) \n"
2171 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (1))))) \n"
2172 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (1))))) \n"
2173 " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (2))))) \n"
2174 " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (2))))) \n"
2175 " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (2))))) \n"
2176 " (assign (constant bool (1)) (swiz w (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (3))))) \n"
2177 " (assign (constant bool (1)) (swiz w (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (3))))) \n"
2178 " (assign (constant bool (1)) (swiz w (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (3))))) \n"
2179 "(return (var_ref t))))\n"
2181 " (signature mat4\n"
2183 " (declare (in) mat4 m))\n"
2184 " ((declare () mat4 t)\n"
2185 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (0))))) \n"
2186 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (0))))) \n"
2187 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (0))))) \n"
2188 " (assign (constant bool (1)) (swiz x (array_ref (var_ref t) (constant int (3)))) (swiz w (array_ref (var_ref m) (constant int (0))))) \n"
2189 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (1))))) \n"
2190 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (1))))) \n"
2191 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (1))))) \n"
2192 " (assign (constant bool (1)) (swiz y (array_ref (var_ref t) (constant int (3)))) (swiz w (array_ref (var_ref m) (constant int (1))))) \n"
2193 " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (2))))) \n"
2194 " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (2))))) \n"
2195 " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (2))))) \n"
2196 " (assign (constant bool (1)) (swiz z (array_ref (var_ref t) (constant int (3)))) (swiz w (array_ref (var_ref m) (constant int (2))))) \n"
2197 " (assign (constant bool (1)) (swiz w (array_ref (var_ref t) (constant int (0)))) (swiz x (array_ref (var_ref m) (constant int (3))))) \n"
2198 " (assign (constant bool (1)) (swiz w (array_ref (var_ref t) (constant int (1)))) (swiz y (array_ref (var_ref m) (constant int (3))))) \n"
2199 " (assign (constant bool (1)) (swiz w (array_ref (var_ref t) (constant int (2)))) (swiz z (array_ref (var_ref m) (constant int (3))))) \n"
2200 " (assign (constant bool (1)) (swiz w (array_ref (var_ref t) (constant int (3)))) (swiz w (array_ref (var_ref m) (constant int (3))))) \n"
2201 "(return (var_ref t))))\n"
2208 static const char *builtin_step
=
2210 " (signature float\n"
2212 " (declare (in) float edge)\n"
2213 " (declare (in) float x))\n"
2214 " ((return (expression float b2f (expression bool >= (var_ref x) (var_ref edge))))))\n"
2216 " (signature vec2\n"
2218 " (declare (in) float edge)\n"
2219 " (declare (in) vec2 x))\n"
2220 " ((declare () vec2 t)\n"
2221 " (assign (constant bool (1)) (swiz x (var_ref t)) (expression float b2f (expression bool >= (swiz x (var_ref x))(var_ref edge))))\n"
2222 " (assign (constant bool (1)) (swiz y (var_ref t)) (expression float b2f (expression bool >= (swiz y (var_ref x))(var_ref edge))))\n"
2223 " (return (var_ref t))))\n"
2225 " (signature vec3\n"
2227 " (declare (in) float edge)\n"
2228 " (declare (in) vec3 x))\n"
2229 " ((declare () vec3 t)\n"
2230 " (assign (constant bool (1)) (swiz x (var_ref t)) (expression float b2f (expression bool >= (swiz x (var_ref x))(var_ref edge))))\n"
2231 " (assign (constant bool (1)) (swiz y (var_ref t)) (expression float b2f (expression bool >= (swiz y (var_ref x))(var_ref edge))))\n"
2232 " (assign (constant bool (1)) (swiz z (var_ref t)) (expression float b2f (expression bool >= (swiz z (var_ref x))(var_ref edge))))\n"
2233 " (return (var_ref t))))\n"
2235 " (signature vec4\n"
2237 " (declare (in) float edge)\n"
2238 " (declare (in) vec4 x))\n"
2239 " ((declare () vec4 t)\n"
2240 " (assign (constant bool (1)) (swiz x (var_ref t)) (expression float b2f (expression bool >= (swiz x (var_ref x))(var_ref edge))))\n"
2241 " (assign (constant bool (1)) (swiz y (var_ref t)) (expression float b2f (expression bool >= (swiz y (var_ref x))(var_ref edge))))\n"
2242 " (assign (constant bool (1)) (swiz z (var_ref t)) (expression float b2f (expression bool >= (swiz z (var_ref x))(var_ref edge))))\n"
2243 " (assign (constant bool (1)) (swiz w (var_ref t)) (expression float b2f (expression bool >= (swiz w (var_ref x))(var_ref edge))))\n"
2244 " (return (var_ref t))))\n"
2246 " (signature vec2\n"
2248 " (declare (in) vec2 edge)\n"
2249 " (declare (in) vec2 x))\n"
2250 " ((declare () vec2 t)\n"
2251 " (assign (constant bool (1)) (swiz x (var_ref t)) (expression float b2f (expression bool >= (swiz x (var_ref x))(swiz x (var_ref edge)))))\n"
2252 " (assign (constant bool (1)) (swiz y (var_ref t)) (expression float b2f (expression bool >= (swiz y (var_ref x))(swiz y (var_ref edge)))))\n"
2253 " (return (var_ref t))))\n"
2255 " (signature vec3\n"
2257 " (declare (in) vec3 edge)\n"
2258 " (declare (in) vec3 x))\n"
2259 " ((declare () vec3 t)\n"
2260 " (assign (constant bool (1)) (swiz x (var_ref t)) (expression float b2f (expression bool >= (swiz x (var_ref x))(swiz x (var_ref edge)))))\n"
2261 " (assign (constant bool (1)) (swiz y (var_ref t)) (expression float b2f (expression bool >= (swiz y (var_ref x))(swiz y (var_ref edge)))))\n"
2262 " (assign (constant bool (1)) (swiz z (var_ref t)) (expression float b2f (expression bool >= (swiz z (var_ref x))(swiz z (var_ref edge)))))\n"
2263 " (return (var_ref t))))\n"
2265 " (signature vec4\n"
2267 " (declare (in) vec4 edge)\n"
2268 " (declare (in) vec4 x))\n"
2269 " ((declare () vec4 t)\n"
2270 " (assign (constant bool (1)) (swiz x (var_ref t)) (expression float b2f (expression bool >= (swiz x (var_ref x))(swiz x (var_ref edge)))))\n"
2271 " (assign (constant bool (1)) (swiz y (var_ref t)) (expression float b2f (expression bool >= (swiz y (var_ref x))(swiz y (var_ref edge)))))\n"
2272 " (assign (constant bool (1)) (swiz z (var_ref t)) (expression float b2f (expression bool >= (swiz y (var_ref x))(swiz z (var_ref edge)))))\n"
2273 " (assign (constant bool (1)) (swiz w (var_ref t)) (expression float b2f (expression bool >= (swiz w (var_ref x))(swiz w (var_ref edge)))))\n"
2274 " (return (var_ref t))))\n"
2279 static const char *builtin_sinh
=
2281 " (signature float\n"
2283 " (declare (in) float x))\n"
2284 " ((return (expression float * (constant float (0.5))\n"
2285 " (expression float -\n"
2286 " (expression float exp (var_ref x))\n"
2287 " (expression float exp (expression float neg (var_ref x))))))))\n"
2288 " (signature vec2\n"
2290 " (declare (in) vec2 x))\n"
2291 " ((return (expression vec2 * (constant vec2 (0.5))\n"
2292 " (expression vec2 -\n"
2293 " (expression vec2 exp (var_ref x))\n"
2294 " (expression vec2 exp (expression vec2 neg (var_ref x))))))))\n"
2295 " (signature vec3\n"
2297 " (declare (in) vec3 x))\n"
2298 " ((return (expression vec3 * (constant vec3 (0.5))\n"
2299 " (expression vec3 -\n"
2300 " (expression vec3 exp (var_ref x))\n"
2301 " (expression vec3 exp (expression vec3 neg (var_ref x))))))))\n"
2302 " (signature vec4\n"
2304 " (declare (in) vec4 x))\n"
2305 " ((return (expression vec4 * (constant vec4 (0.5))\n"
2306 " (expression vec4 -\n"
2307 " (expression vec4 exp (var_ref x))\n"
2308 " (expression vec4 exp (expression vec4 neg (var_ref x))))))))\n"
2312 static const char *builtin_cos
=
2314 " (signature float\n"
2316 " (declare (in) float angle))\n"
2317 " ((return (expression float cos (var_ref angle)))))\n"
2319 " (signature vec2\n"
2321 " (declare (in) vec2 angle))\n"
2322 " ((return (expression vec2 cos (var_ref angle)))))\n"
2324 " (signature vec3\n"
2326 " (declare (in) vec3 angle))\n"
2327 " ((return (expression vec3 cos (var_ref angle)))))\n"
2329 " (signature vec4\n"
2331 " (declare (in) vec4 angle))\n"
2332 " ((return (expression vec4 cos (var_ref angle)))))\n"
2336 static const char *builtin_shadow2DProjLod
=
2337 "((function shadow2DProjLod\n"
2338 " (signature vec4\n"
2340 " (declare (in) sampler2DShadow sampler)\n"
2341 " (declare (in) vec4 P) \n"
2342 " (declare (in) float lod) )\n"
2343 " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) (swiz z (var_ref P)) (var_ref lod) ))))\n"
2348 static const char *builtin_shadow2DArray
=
2349 "((function shadow2DArray\n"
2350 " (signature vec4\n"
2352 " (declare (in) sampler2DArrayShadow sampler)\n"
2353 " (declare (in) vec4 P) )\n"
2354 " ((return (tex (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) 1 (swiz w (var_ref P)) ))))\n"
2359 static const char *builtin_equal
=
2360 "((function equal\n"
2361 " (signature bvec2\n"
2363 " (declare (in) vec2 arg0)\n"
2364 " (declare (in) vec2 arg1))\n"
2365 " ((declare () bvec2 temp)\n"
2366 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
2367 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
2368 " (return (var_ref temp))))\n"
2370 " (signature bvec3\n"
2372 " (declare (in) vec3 arg0)\n"
2373 " (declare (in) vec3 arg1))\n"
2374 " ((declare () bvec3 temp)\n"
2375 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
2376 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
2377 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool == (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
2378 " (return (var_ref temp))))\n"
2380 " (signature bvec4\n"
2382 " (declare (in) vec4 arg0)\n"
2383 " (declare (in) vec4 arg1))\n"
2384 " ((declare () bvec4 temp)\n"
2385 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
2386 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
2387 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool == (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
2388 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool == (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
2389 " (return (var_ref temp))))\n"
2391 " (signature bvec2\n"
2393 " (declare (in) ivec2 arg0)\n"
2394 " (declare (in) ivec2 arg1))\n"
2395 " ((declare () bvec2 temp)\n"
2396 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
2397 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
2398 " (return (var_ref temp))))\n"
2400 " (signature bvec3\n"
2402 " (declare (in) ivec3 arg0)\n"
2403 " (declare (in) ivec3 arg1))\n"
2404 " ((declare () bvec3 temp)\n"
2405 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
2406 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
2407 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool == (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
2408 " (return (var_ref temp))))\n"
2410 " (signature bvec4\n"
2412 " (declare (in) ivec4 arg0)\n"
2413 " (declare (in) ivec4 arg1))\n"
2414 " ((declare () bvec4 temp)\n"
2415 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
2416 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
2417 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool == (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
2418 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool == (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
2419 " (return (var_ref temp))))\n"
2421 " (signature bvec2\n"
2423 " (declare (in) uvec2 arg0)\n"
2424 " (declare (in) uvec2 arg1))\n"
2425 " ((declare () bvec2 temp)\n"
2426 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
2427 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
2428 " (return (var_ref temp))))\n"
2430 " (signature bvec3\n"
2432 " (declare (in) uvec3 arg0)\n"
2433 " (declare (in) uvec3 arg1))\n"
2434 " ((declare () bvec3 temp)\n"
2435 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
2436 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
2437 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool == (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
2438 " (return (var_ref temp))))\n"
2440 " (signature bvec4\n"
2442 " (declare (in) uvec4 arg0)\n"
2443 " (declare (in) uvec4 arg1))\n"
2444 " ((declare () bvec4 temp)\n"
2445 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
2446 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
2447 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool == (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
2448 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool == (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
2449 " (return (var_ref temp))))\n"
2453 static const char *builtin_length
=
2454 "((function length\n"
2455 " (signature float\n"
2457 " (declare (in) float arg0))\n"
2458 " ((return (expression float sqrt (expression float dot (var_ref arg0) (var_ref arg0))))))\n"
2460 " (signature float\n"
2462 " (declare (in) vec2 arg0))\n"
2463 " ((return (expression float sqrt (expression float dot (var_ref arg0) (var_ref arg0))))))\n"
2465 " (signature float\n"
2467 " (declare (in) vec3 arg0))\n"
2468 " ((return (expression float sqrt (expression float dot (var_ref arg0) (var_ref arg0))))))\n"
2470 " (signature float\n"
2472 " (declare (in) vec4 arg0))\n"
2473 " ((return (expression float sqrt (expression float dot (var_ref arg0) (var_ref arg0))))))\n"
2477 static const char *builtin_acos
=
2479 " (signature float\n"
2481 " (declare (in) float x))\n"
2482 " ((return (expression float - (constant float (1.5707963))\n"
2483 " (call asin ((var_ref x)))))))\n"
2484 " (signature vec2\n"
2486 " (declare (in) vec2 x))\n"
2487 " ((return (expression vec2 - (constant float (1.5707963))\n"
2488 " (call asin ((var_ref x)))))))\n"
2489 " (signature vec3\n"
2491 " (declare (in) vec3 x))\n"
2492 " ((return (expression vec3 - (constant float (1.5707963))\n"
2493 " (call asin ((var_ref x)))))))\n"
2494 " (signature vec4\n"
2496 " (declare (in) vec4 x))\n"
2497 " ((return (expression vec4 - (constant float (1.5707963))\n"
2498 " (call asin ((var_ref x)))))))\n"
2502 static const char *builtin_matrixCompMult
=
2503 "((function matrixCompMult\n"
2504 " (signature mat2\n"
2506 " (declare (in) mat2 x)\n"
2507 " (declare (in) mat2 y))\n"
2508 " ((declare () mat2 z)\n"
2509 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (0))) (expression vec2 * (array_ref (var_ref x) (constant int (0))) (array_ref (var_ref y) (constant int (0))))) \n"
2510 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (1))) (expression vec2 * (array_ref (var_ref x) (constant int (1))) (array_ref (var_ref y) (constant int (1))))) \n"
2511 "(return (var_ref z))))\n"
2513 " (signature mat3\n"
2515 " (declare (in) mat3 x)\n"
2516 " (declare (in) mat3 y))\n"
2517 " ((declare () mat3 z)\n"
2518 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (0))) (expression vec3 * (array_ref (var_ref x) (constant int (0))) (array_ref (var_ref y) (constant int (0))))) \n"
2519 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (1))) (expression vec3 * (array_ref (var_ref x) (constant int (1))) (array_ref (var_ref y) (constant int (1))))) \n"
2520 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (2))) (expression vec3 * (array_ref (var_ref x) (constant int (2))) (array_ref (var_ref y) (constant int (2))))) \n"
2521 "(return (var_ref z))))\n"
2523 " (signature mat4\n"
2525 " (declare (in) mat4 x)\n"
2526 " (declare (in) mat4 y))\n"
2527 " ((declare () mat4 z)\n"
2528 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (0))) (expression vec4 * (array_ref (var_ref x) (constant int (0))) (array_ref (var_ref y) (constant int (0))))) \n"
2529 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (1))) (expression vec4 * (array_ref (var_ref x) (constant int (1))) (array_ref (var_ref y) (constant int (1))))) \n"
2530 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (2))) (expression vec4 * (array_ref (var_ref x) (constant int (2))) (array_ref (var_ref y) (constant int (2))))) \n"
2531 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (3))) (expression vec4 * (array_ref (var_ref x) (constant int (3))) (array_ref (var_ref y) (constant int (3))))) \n"
2532 "(return (var_ref z))))\n"
2534 " (signature mat2x3\n"
2536 " (declare (in) mat2x3 x)\n"
2537 " (declare (in) mat2x3 y))\n"
2538 " ((declare () mat2x3 z)\n"
2539 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (0))) (expression vec3 * (array_ref (var_ref x) (constant int (0))) (array_ref (var_ref y) (constant int (0))))) \n"
2540 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (1))) (expression vec3 * (array_ref (var_ref x) (constant int (1))) (array_ref (var_ref y) (constant int (1))))) \n"
2541 "(return (var_ref z))))\n"
2543 " (signature mat3x2\n"
2545 " (declare (in) mat3x2 x)\n"
2546 " (declare (in) mat3x2 y))\n"
2547 " ((declare () mat3x2 z)\n"
2548 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (0))) (expression vec2 * (array_ref (var_ref x) (constant int (0))) (array_ref (var_ref y) (constant int (0))))) \n"
2549 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (1))) (expression vec2 * (array_ref (var_ref x) (constant int (1))) (array_ref (var_ref y) (constant int (1))))) \n"
2550 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (2))) (expression vec2 * (array_ref (var_ref x) (constant int (2))) (array_ref (var_ref y) (constant int (2))))) \n"
2551 "(return (var_ref z))))\n"
2553 " (signature mat2x4\n"
2555 " (declare (in) mat2x4 x)\n"
2556 " (declare (in) mat2x4 y))\n"
2557 " ((declare () mat2x4 z)\n"
2558 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (0))) (expression vec4 * (array_ref (var_ref x) (constant int (0))) (array_ref (var_ref y) (constant int (0))))) \n"
2559 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (1))) (expression vec4 * (array_ref (var_ref x) (constant int (1))) (array_ref (var_ref y) (constant int (1))))) \n"
2560 "(return (var_ref z))))\n"
2562 " (signature mat4x2\n"
2564 " (declare (in) mat4x2 x)\n"
2565 " (declare (in) mat4x2 y))\n"
2566 " ((declare () mat4x2 z)\n"
2567 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (0))) (expression vec2 * (array_ref (var_ref x) (constant int (0))) (array_ref (var_ref y) (constant int (0))))) \n"
2568 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (1))) (expression vec2 * (array_ref (var_ref x) (constant int (1))) (array_ref (var_ref y) (constant int (1))))) \n"
2569 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (2))) (expression vec2 * (array_ref (var_ref x) (constant int (2))) (array_ref (var_ref y) (constant int (2))))) \n"
2570 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (3))) (expression vec2 * (array_ref (var_ref x) (constant int (3))) (array_ref (var_ref y) (constant int (3))))) \n"
2571 "(return (var_ref z))))\n"
2573 " (signature mat3x4\n"
2575 " (declare (in) mat3x4 x)\n"
2576 " (declare (in) mat3x4 y))\n"
2577 " ((declare () mat3x4 z)\n"
2578 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (0))) (expression vec4 * (array_ref (var_ref x) (constant int (0))) (array_ref (var_ref y) (constant int (0))))) \n"
2579 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (1))) (expression vec4 * (array_ref (var_ref x) (constant int (1))) (array_ref (var_ref y) (constant int (1))))) \n"
2580 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (2))) (expression vec4 * (array_ref (var_ref x) (constant int (2))) (array_ref (var_ref y) (constant int (2))))) \n"
2581 "(return (var_ref z))))\n"
2583 " (signature mat4x3\n"
2585 " (declare (in) mat4x3 x)\n"
2586 " (declare (in) mat4x3 y))\n"
2587 " ((declare () mat4x3 z)\n"
2588 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (0))) (expression vec3 * (array_ref (var_ref x) (constant int (0))) (array_ref (var_ref y) (constant int (0))))) \n"
2589 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (1))) (expression vec3 * (array_ref (var_ref x) (constant int (1))) (array_ref (var_ref y) (constant int (1))))) \n"
2590 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (2))) (expression vec3 * (array_ref (var_ref x) (constant int (2))) (array_ref (var_ref y) (constant int (2))))) \n"
2591 " (assign (constant bool (1)) (array_ref (var_ref z) (constant int (3))) (expression vec3 * (array_ref (var_ref x) (constant int (3))) (array_ref (var_ref y) (constant int (3))))) \n"
2592 "(return (var_ref z))))\n"
2596 static const char *builtin_pow
=
2598 " (signature float\n"
2600 " (declare (in) float arg0)\n"
2601 " (declare (in) float arg1))\n"
2602 " ((return (expression float pow (var_ref arg0) (var_ref arg1)))))\n"
2604 " (signature vec2\n"
2606 " (declare (in) vec2 arg0)\n"
2607 " (declare (in) vec2 arg1))\n"
2608 " ((return (expression vec2 pow (var_ref arg0) (var_ref arg1)))))\n"
2610 " (signature vec3\n"
2612 " (declare (in) vec3 arg0)\n"
2613 " (declare (in) vec3 arg1))\n"
2614 " ((return (expression vec3 pow (var_ref arg0) (var_ref arg1)))))\n"
2616 " (signature vec4\n"
2618 " (declare (in) vec4 arg0)\n"
2619 " (declare (in) vec4 arg1))\n"
2620 " ((return (expression vec4 pow (var_ref arg0) (var_ref arg1)))))\n"
2624 static const char *builtin_texture2DProjLod
=
2625 "((function texture2DProjLod\n"
2626 " (signature vec4\n"
2628 " (declare (in) sampler2D sampler)\n"
2629 " (declare (in) vec3 P) \n"
2630 " (declare (in) float lod) )\n"
2631 " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref lod) ))))\n"
2633 " (signature vec4\n"
2635 " (declare (in) sampler2D sampler)\n"
2636 " (declare (in) vec4 P) \n"
2637 " (declare (in) float lod) )\n"
2638 " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
2643 static const char *builtin_textureProjLod
=
2644 "((function textureProjLod\n"
2645 " (signature vec4\n"
2647 " (declare (in) sampler1D sampler)\n"
2648 " (declare (in) vec2 P) \n"
2649 " (declare (in) float lod) )\n"
2650 " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref lod) ))))\n"
2652 " (signature ivec4\n"
2654 " (declare (in) isampler1D sampler)\n"
2655 " (declare (in) vec2 P) \n"
2656 " (declare (in) float lod) )\n"
2657 " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref lod) ))))\n"
2659 " (signature uvec4\n"
2661 " (declare (in) usampler1D sampler)\n"
2662 " (declare (in) vec2 P) \n"
2663 " (declare (in) float lod) )\n"
2664 " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref lod) ))))\n"
2666 " (signature vec4\n"
2668 " (declare (in) sampler1D sampler)\n"
2669 " (declare (in) vec4 P) \n"
2670 " (declare (in) float lod) )\n"
2671 " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
2673 " (signature ivec4\n"
2675 " (declare (in) isampler1D sampler)\n"
2676 " (declare (in) vec4 P) \n"
2677 " (declare (in) float lod) )\n"
2678 " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
2680 " (signature uvec4\n"
2682 " (declare (in) usampler1D sampler)\n"
2683 " (declare (in) vec4 P) \n"
2684 " (declare (in) float lod) )\n"
2685 " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
2687 " (signature vec4\n"
2689 " (declare (in) sampler2D sampler)\n"
2690 " (declare (in) vec3 P) \n"
2691 " (declare (in) float lod) )\n"
2692 " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref lod) ))))\n"
2694 " (signature ivec4\n"
2696 " (declare (in) isampler2D sampler)\n"
2697 " (declare (in) vec3 P) \n"
2698 " (declare (in) float lod) )\n"
2699 " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref lod) ))))\n"
2701 " (signature uvec4\n"
2703 " (declare (in) usampler2D sampler)\n"
2704 " (declare (in) vec3 P) \n"
2705 " (declare (in) float lod) )\n"
2706 " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref lod) ))))\n"
2708 " (signature vec4\n"
2710 " (declare (in) sampler2D sampler)\n"
2711 " (declare (in) vec4 P) \n"
2712 " (declare (in) float lod) )\n"
2713 " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
2715 " (signature ivec4\n"
2717 " (declare (in) isampler2D sampler)\n"
2718 " (declare (in) vec4 P) \n"
2719 " (declare (in) float lod) )\n"
2720 " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
2722 " (signature uvec4\n"
2724 " (declare (in) usampler2D sampler)\n"
2725 " (declare (in) vec4 P) \n"
2726 " (declare (in) float lod) )\n"
2727 " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
2729 " (signature vec4\n"
2731 " (declare (in) sampler3D sampler)\n"
2732 " (declare (in) vec4 P) \n"
2733 " (declare (in) float lod) )\n"
2734 " ((return (txl (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
2736 " (signature ivec4\n"
2738 " (declare (in) isampler3D sampler)\n"
2739 " (declare (in) vec4 P) \n"
2740 " (declare (in) float lod) )\n"
2741 " ((return (txl (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
2743 " (signature uvec4\n"
2745 " (declare (in) usampler3D sampler)\n"
2746 " (declare (in) vec4 P) \n"
2747 " (declare (in) float lod) )\n"
2748 " ((return (txl (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
2753 static const char *builtin_log
=
2755 " (signature float\n"
2757 " (declare (in) float arg0))\n"
2758 " ((return (expression float log (var_ref arg0)))))\n"
2760 " (signature vec2\n"
2762 " (declare (in) vec2 arg0))\n"
2763 " ((return (expression vec2 log (var_ref arg0)))))\n"
2765 " (signature vec3\n"
2767 " (declare (in) vec3 arg0))\n"
2768 " ((return (expression vec3 log (var_ref arg0)))))\n"
2770 " (signature vec4\n"
2772 " (declare (in) vec4 arg0))\n"
2773 " ((return (expression vec4 log (var_ref arg0)))))\n"
2777 static const char *builtin_exp2
=
2779 " (signature float\n"
2781 " (declare (in) float arg0))\n"
2782 " ((return (expression float exp2 (var_ref arg0)))))\n"
2784 " (signature vec2\n"
2786 " (declare (in) vec2 arg0))\n"
2787 " ((return (expression vec2 exp2 (var_ref arg0)))))\n"
2789 " (signature vec3\n"
2791 " (declare (in) vec3 arg0))\n"
2792 " ((return (expression vec3 exp2 (var_ref arg0)))))\n"
2794 " (signature vec4\n"
2796 " (declare (in) vec4 arg0))\n"
2797 " ((return (expression vec4 exp2 (var_ref arg0)))))\n"
2801 static const char *builtin_fract
=
2802 "((function fract\n"
2803 " (signature float\n"
2805 " (declare (in) float x))\n"
2806 " ((return (expression float fract (var_ref x)))))\n"
2808 " (signature vec2\n"
2810 " (declare (in) vec2 x))\n"
2811 " ((return (expression vec2 fract (var_ref x)))))\n"
2813 " (signature vec3\n"
2815 " (declare (in) vec3 x))\n"
2816 " ((return (expression vec3 fract (var_ref x)))))\n"
2818 " (signature vec4\n"
2820 " (declare (in) vec4 x))\n"
2821 " ((return (expression vec4 fract (var_ref x)))))\n"
2826 static const char *builtin_shadow1DLod
=
2827 "((function shadow1DLod\n"
2828 " (signature vec4\n"
2830 " (declare (in) sampler1DShadow sampler)\n"
2831 " (declare (in) vec3 P) \n"
2832 " (declare (in) float lod) )\n"
2833 " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) (var_ref lod) ))))\n"
2838 static const char *builtin_texture1DLod
=
2839 "((function texture1DLod\n"
2840 " (signature vec4\n"
2842 " (declare (in) sampler1D sampler)\n"
2843 " (declare (in) float P) \n"
2844 " (declare (in) float lod) )\n"
2845 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
2850 static const char *builtin_texture2DArray
=
2851 "((function texture2DArray\n"
2852 " (signature vec4\n"
2854 " (declare (in) sampler2DArray sampler)\n"
2855 " (declare (in) vec3 P) )\n"
2856 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
2858 " (signature vec4\n"
2860 " (declare (in) sampler2DArray sampler)\n"
2861 " (declare (in) vec3 P) \n"
2862 " (declare (in) float bias) )\n"
2863 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
2868 static const char *builtin_texture3DProj
=
2869 "((function texture3DProj\n"
2870 " (signature vec4\n"
2872 " (declare (in) sampler3D sampler)\n"
2873 " (declare (in) vec4 P) )\n"
2874 " ((return (tex (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n"
2876 " (signature vec4\n"
2878 " (declare (in) sampler3D sampler)\n"
2879 " (declare (in) vec4 P) \n"
2880 " (declare (in) float bias) )\n"
2881 " ((return (txb (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n"
2886 static const char *builtin_sign
=
2888 " (signature float\n"
2890 " (declare (in) float x))\n"
2891 " ((return (expression float sign (var_ref x)))))\n"
2893 " (signature vec2\n"
2895 " (declare (in) vec2 x))\n"
2896 " ((return (expression vec2 sign (var_ref x)))))\n"
2898 " (signature vec3\n"
2900 " (declare (in) vec3 x))\n"
2901 " ((return (expression vec3 sign (var_ref x)))))\n"
2903 " (signature vec4\n"
2905 " (declare (in) vec4 x))\n"
2906 " ((return (expression vec4 sign (var_ref x)))))\n"
2910 " (declare (in) int x))\n"
2911 " ((return (expression int sign (var_ref x)))))\n"
2913 " (signature ivec2\n"
2915 " (declare (in) ivec2 x))\n"
2916 " ((return (expression ivec2 sign (var_ref x)))))\n"
2918 " (signature ivec3\n"
2920 " (declare (in) ivec3 x))\n"
2921 " ((return (expression ivec3 sign (var_ref x)))))\n"
2923 " (signature ivec4\n"
2925 " (declare (in) ivec4 x))\n"
2926 " ((return (expression ivec4 sign (var_ref x)))))\n"
2931 static const char *builtin_inversesqrt
=
2932 "((function inversesqrt\n"
2933 " (signature float\n"
2935 " (declare (in) float arg0))\n"
2936 " ((return (expression float rsq (var_ref arg0)))))\n"
2938 " (signature vec2\n"
2940 " (declare (in) vec2 arg0))\n"
2941 " ((return (expression vec2 rsq (var_ref arg0)))))\n"
2943 " (signature vec3\n"
2945 " (declare (in) vec3 arg0))\n"
2946 " ((return (expression vec3 rsq (var_ref arg0)))))\n"
2948 " (signature vec4\n"
2950 " (declare (in) vec4 arg0))\n"
2951 " ((return (expression vec4 rsq (var_ref arg0)))))\n"
2955 static const char *builtin_distance
=
2956 "((function distance\n"
2957 " (signature float\n"
2959 " (declare (in) float p0)\n"
2960 " (declare (in) float p1))\n"
2961 " ((declare () float p)\n"
2962 " (assign (constant bool (1)) (var_ref p) (expression float - (var_ref p0) (var_ref p1)))\n"
2963 " (return (expression float sqrt (expression float dot (var_ref p) (var_ref p))))))\n"
2965 " (signature float\n"
2967 " (declare (in) vec2 p0)\n"
2968 " (declare (in) vec2 p1))\n"
2969 " ((declare () vec2 p)\n"
2970 " (assign (constant bool (1)) (var_ref p) (expression vec2 - (var_ref p0) (var_ref p1)))\n"
2971 " (return (expression float sqrt (expression float dot (var_ref p) (var_ref p))))))\n"
2973 " (signature float\n"
2975 " (declare (in) vec3 p0)\n"
2976 " (declare (in) vec3 p1))\n"
2977 " ((declare () vec3 p)\n"
2978 " (assign (constant bool (1)) (var_ref p) (expression vec3 - (var_ref p0) (var_ref p1)))\n"
2979 " (return (expression float sqrt (expression float dot (var_ref p) (var_ref p))))))\n"
2981 " (signature float\n"
2983 " (declare (in) vec4 p0)\n"
2984 " (declare (in) vec4 p1))\n"
2985 " ((declare () vec4 p)\n"
2986 " (assign (constant bool (1)) (var_ref p) (expression vec4 - (var_ref p0) (var_ref p1)))\n"
2987 " (return (expression float sqrt (expression float dot (var_ref p) (var_ref p))))))\n"
2991 static const char *builtin_noise2
=
2992 "((function noise2\n"
2993 " (signature vec2\n"
2995 " (declare (in) float x))\n"
2996 " ((return (constant vec2 (0 0)))))\n"
2997 " (signature vec2\n"
2999 " (declare (in) vec2 x))\n"
3000 " ((return (constant vec2 (0 0)))))\n"
3001 " (signature vec2\n"
3003 " (declare (in) vec3 x))\n"
3004 " ((return (constant vec2 (0 0)))))\n"
3005 " (signature vec2\n"
3007 " (declare (in) vec4 x))\n"
3008 " ((return (constant vec2 (0 0)))))\n"
3012 static const char *builtin_tanh
=
3014 " (signature float\n"
3016 " (declare (in) float x))\n"
3017 " ((return (expression float /\n"
3018 " (expression float -\n"
3019 " (expression float exp (var_ref x))\n"
3020 " (expression float exp (expression float neg (var_ref x))))\n"
3021 " (expression float +\n"
3022 " (expression float exp (var_ref x))\n"
3023 " (expression float exp (expression float neg (var_ref x))))))))\n"
3024 " (signature vec2\n"
3026 " (declare (in) vec2 x))\n"
3027 " ((return (expression vec2 /\n"
3028 " (expression vec2 -\n"
3029 " (expression vec2 exp (var_ref x))\n"
3030 " (expression vec2 exp (expression vec2 neg (var_ref x))))\n"
3031 " (expression vec2 +\n"
3032 " (expression vec2 exp (var_ref x))\n"
3033 " (expression vec2 exp (expression vec2 neg (var_ref x))))))))\n"
3034 " (signature vec3\n"
3036 " (declare (in) vec3 x))\n"
3037 " ((return (expression vec3 /\n"
3038 " (expression vec3 -\n"
3039 " (expression vec3 exp (var_ref x))\n"
3040 " (expression vec3 exp (expression vec3 neg (var_ref x))))\n"
3041 " (expression vec3 +\n"
3042 " (expression vec3 exp (var_ref x))\n"
3043 " (expression vec3 exp (expression vec3 neg (var_ref x))))))))\n"
3044 " (signature vec4\n"
3046 " (declare (in) vec4 x))\n"
3047 " ((return (expression vec4 /\n"
3048 " (expression vec4 -\n"
3049 " (expression vec4 exp (var_ref x))\n"
3050 " (expression vec4 exp (expression vec4 neg (var_ref x))))\n"
3051 " (expression vec4 +\n"
3052 " (expression vec4 exp (var_ref x))\n"
3053 " (expression vec4 exp (expression vec4 neg (var_ref x))))))))\n"
3057 static const char *builtin_texture1DProjLod
=
3058 "((function texture1DProjLod\n"
3059 " (signature vec4\n"
3061 " (declare (in) sampler1D sampler)\n"
3062 " (declare (in) vec2 P) \n"
3063 " (declare (in) float lod) )\n"
3064 " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref lod) ))))\n"
3066 " (signature vec4\n"
3068 " (declare (in) sampler1D sampler)\n"
3069 " (declare (in) vec4 P) \n"
3070 " (declare (in) float lod) )\n"
3071 " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
3076 static const char *builtin_texture1DArray
=
3077 "((function texture1DArray\n"
3078 " (signature vec4\n"
3080 " (declare (in) sampler1DArray sampler)\n"
3081 " (declare (in) vec2 P) )\n"
3082 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
3084 " (signature vec4\n"
3086 " (declare (in) sampler1DArray sampler)\n"
3087 " (declare (in) vec2 P) \n"
3088 " (declare (in) float bias) )\n"
3089 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
3094 static const char *builtin_texture2D
=
3095 "((function texture2D\n"
3096 " (signature vec4\n"
3098 " (declare (in) sampler2D sampler)\n"
3099 " (declare (in) vec2 P) )\n"
3100 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
3102 " (signature vec4\n"
3104 " (declare (in) sampler2D sampler)\n"
3105 " (declare (in) vec2 P) \n"
3106 " (declare (in) float bias) )\n"
3107 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
3112 static const char *builtin_greaterThanEqual
=
3113 "((function greaterThanEqual\n"
3114 " (signature bvec2\n"
3116 " (declare (in) vec2 arg0)\n"
3117 " (declare (in) vec2 arg1))\n"
3118 " ((declare () bvec2 temp)\n"
3119 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
3120 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
3121 " (return (var_ref temp))))\n"
3123 " (signature bvec3\n"
3125 " (declare (in) vec3 arg0)\n"
3126 " (declare (in) vec3 arg1))\n"
3127 " ((declare () bvec3 temp)\n"
3128 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
3129 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
3130 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool >= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
3131 " (return (var_ref temp))))\n"
3133 " (signature bvec4\n"
3135 " (declare (in) vec4 arg0)\n"
3136 " (declare (in) vec4 arg1))\n"
3137 " ((declare () bvec4 temp)\n"
3138 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
3139 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
3140 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool >= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
3141 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool >= (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
3142 " (return (var_ref temp))))\n"
3144 " (signature bvec2\n"
3146 " (declare (in) ivec2 arg0)\n"
3147 " (declare (in) ivec2 arg1))\n"
3148 " ((declare () bvec2 temp)\n"
3149 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
3150 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
3151 " (return (var_ref temp))))\n"
3153 " (signature bvec3\n"
3155 " (declare (in) ivec3 arg0)\n"
3156 " (declare (in) ivec3 arg1))\n"
3157 " ((declare () bvec3 temp)\n"
3158 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
3159 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
3160 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool >= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
3161 " (return (var_ref temp))))\n"
3163 " (signature bvec4\n"
3165 " (declare (in) ivec4 arg0)\n"
3166 " (declare (in) ivec4 arg1))\n"
3167 " ((declare () bvec4 temp)\n"
3168 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
3169 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
3170 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool >= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
3171 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool >= (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
3172 " (return (var_ref temp))))\n"
3174 " (signature bvec2\n"
3176 " (declare (in) uvec2 arg0)\n"
3177 " (declare (in) uvec2 arg1))\n"
3178 " ((declare () bvec2 temp)\n"
3179 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
3180 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
3181 " (return (var_ref temp))))\n"
3183 " (signature bvec3\n"
3185 " (declare (in) uvec3 arg0)\n"
3186 " (declare (in) uvec3 arg1))\n"
3187 " ((declare () bvec3 temp)\n"
3188 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
3189 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
3190 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool >= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
3191 " (return (var_ref temp))))\n"
3193 " (signature bvec4\n"
3195 " (declare (in) uvec4 arg0)\n"
3196 " (declare (in) uvec4 arg1))\n"
3197 " ((declare () bvec4 temp)\n"
3198 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
3199 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
3200 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool >= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
3201 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool >= (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
3202 " (return (var_ref temp))))\n"
3206 static const char *builtin_texture3DProjLod
=
3207 "((function texture3DProjLod\n"
3208 " (signature vec4\n"
3210 " (declare (in) sampler3D sampler)\n"
3211 " (declare (in) vec4 P) \n"
3212 " (declare (in) float lod) )\n"
3213 " ((return (txl (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n"
3218 static const char *builtin_tan
=
3220 " (signature float\n"
3222 " (declare (in) float angle))\n"
3223 " ((return (expression float / (expression float sin (var_ref angle)) (expression float cos (var_ref angle))))))\n"
3225 " (signature vec2\n"
3227 " (declare (in) vec2 angle))\n"
3228 " ((return (expression vec2 / (expression vec2 sin (var_ref angle)) (expression vec2 cos (var_ref angle))))))\n"
3230 " (signature vec3\n"
3232 " (declare (in) vec3 angle))\n"
3233 " ((return (expression vec3 / (expression vec3 sin (var_ref angle)) (expression vec3 cos (var_ref angle))))))\n"
3235 " (signature vec4\n"
3237 " (declare (in) vec4 angle))\n"
3238 " ((return (expression vec4 / (expression vec4 sin (var_ref angle)) (expression vec4 cos (var_ref angle))))))\n"
3242 static const char *builtin_any
=
3244 " (signature bool\n"
3246 " (declare (in) bvec2 arg0))\n"
3247 " ((return (expression bool || (swiz x (var_ref arg0))(swiz y (var_ref arg0))))))\n"
3249 " (signature bool\n"
3251 " (declare (in) bvec3 arg0))\n"
3252 " ((return (expression bool || (expression bool || (swiz x (var_ref arg0))(swiz y (var_ref arg0))) (swiz z (var_ref arg0))))))\n"
3254 " (signature bool\n"
3256 " (declare (in) bvec4 arg0))\n"
3257 " ((return (expression bool || (expression bool || (expression bool || (swiz x (var_ref arg0))(swiz y (var_ref arg0))) (swiz z (var_ref arg0))) (swiz w (var_ref arg0))))))\n"
3261 static const char *builtin_normalize
=
3262 "((function normalize\n"
3263 " (signature float\n"
3265 " (declare (in) float arg0))\n"
3266 " ((return (expression float * (var_ref arg0) (expression float rsq (expression float dot (var_ref arg0) (var_ref arg0)))))))\n"
3268 " (signature vec2\n"
3270 " (declare (in) vec2 arg0))\n"
3271 " ((return (expression vec2 * (var_ref arg0) (expression float rsq (expression float dot (var_ref arg0) (var_ref arg0)))))))\n"
3273 " (signature vec3\n"
3275 " (declare (in) vec3 arg0))\n"
3276 " ((return (expression vec3 * (var_ref arg0) (expression float rsq (expression float dot (var_ref arg0) (var_ref arg0)))))))\n"
3278 " (signature vec4\n"
3280 " (declare (in) vec4 arg0))\n"
3281 " ((return (expression vec4 * (var_ref arg0) (expression float rsq (expression float dot (var_ref arg0) (var_ref arg0)))))))\n"
3285 static const char *builtin_shadow1DProj
=
3286 "((function shadow1DProj\n"
3287 " (signature vec4\n"
3289 " (declare (in) sampler1DShadow sampler)\n"
3290 " (declare (in) vec4 P) )\n"
3291 " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) (swiz z (var_ref P)) ))))\n"
3293 " (signature vec4\n"
3295 " (declare (in) sampler1DShadow sampler)\n"
3296 " (declare (in) vec4 P) \n"
3297 " (declare (in) float bias) )\n"
3298 " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) (swiz z (var_ref P)) (var_ref bias) ))))\n"
3303 static const char *builtin_floor
=
3304 "((function floor\n"
3305 " (signature float\n"
3307 " (declare (in) float arg0))\n"
3308 " ((return (expression float floor (var_ref arg0)))))\n"
3310 " (signature vec2\n"
3312 " (declare (in) vec2 arg0))\n"
3313 " ((return (expression vec2 floor (var_ref arg0)))))\n"
3315 " (signature vec3\n"
3317 " (declare (in) vec3 arg0))\n"
3318 " ((return (expression vec3 floor (var_ref arg0)))))\n"
3320 " (signature vec4\n"
3322 " (declare (in) vec4 arg0))\n"
3323 " ((return (expression vec4 floor (var_ref arg0)))))\n"
3327 static const char *builtin_cross
=
3328 "((function cross\n"
3329 " (signature vec3\n"
3331 " (declare (in) vec3 arg0)\n"
3332 " (declare (in) vec3 arg1))\n"
3333 " ((return (expression vec3 cross (var_ref arg0) (var_ref arg1)))))\n"
3337 static const char *builtin_sqrt
=
3339 " (signature float\n"
3341 " (declare (in) float arg0))\n"
3342 " ((return (expression float sqrt (var_ref arg0)))))\n"
3344 " (signature vec2\n"
3346 " (declare (in) vec2 arg0))\n"
3347 " ((return (expression vec2 sqrt (var_ref arg0)))))\n"
3349 " (signature vec3\n"
3351 " (declare (in) vec3 arg0))\n"
3352 " ((return (expression vec3 sqrt (var_ref arg0)))))\n"
3354 " (signature vec4\n"
3356 " (declare (in) vec4 arg0))\n"
3357 " ((return (expression vec4 sqrt (var_ref arg0)))))\n"
3361 static const char *builtin_mix
=
3363 " (signature float\n"
3365 " (declare (in) float arg0)\n"
3366 " (declare (in) float arg1)\n"
3367 " (declare (in) float arg2))\n"
3368 " ((return (expression float + (expression float * (var_ref arg0) (expression float - (constant float (1.000000)) (var_ref arg2))) (expression float * (var_ref arg1) (var_ref arg2))))))\n"
3370 " (signature vec2\n"
3372 " (declare (in) vec2 arg0)\n"
3373 " (declare (in) vec2 arg1)\n"
3374 " (declare (in) vec2 arg2))\n"
3375 " ((return (expression vec2 + (expression vec2 * (var_ref arg0) (expression vec2 - (constant float (1.000000)) (var_ref arg2))) (expression vec2 * (var_ref arg1) (var_ref arg2))))))\n"
3377 " (signature vec3\n"
3379 " (declare (in) vec3 arg0)\n"
3380 " (declare (in) vec3 arg1)\n"
3381 " (declare (in) vec3 arg2))\n"
3382 " ((return (expression vec3 + (expression vec3 * (var_ref arg0) (expression vec3 - (constant float (1.000000)) (var_ref arg2))) (expression vec3 * (var_ref arg1) (var_ref arg2))))))\n"
3384 " (signature vec4\n"
3386 " (declare (in) vec4 arg0)\n"
3387 " (declare (in) vec4 arg1)\n"
3388 " (declare (in) vec4 arg2))\n"
3389 " ((return (expression vec4 + (expression vec4 * (var_ref arg0) (expression vec4 - (constant float (1.000000)) (var_ref arg2))) (expression vec4 * (var_ref arg1) (var_ref arg2))))))\n"
3391 " (signature vec2\n"
3393 " (declare (in) vec2 arg0)\n"
3394 " (declare (in) vec2 arg1)\n"
3395 " (declare (in) float arg2))\n"
3396 " ((return (expression vec2 + (expression vec2 * (var_ref arg0) (expression float - (constant float (1.000000)) (var_ref arg2))) (expression vec2 * (var_ref arg1) (var_ref arg2))))))\n"
3398 " (signature vec3\n"
3400 " (declare (in) vec3 arg0)\n"
3401 " (declare (in) vec3 arg1)\n"
3402 " (declare (in) float arg2))\n"
3403 " ((return (expression vec3 + (expression vec3 * (var_ref arg0) (expression float - (constant float (1.000000)) (var_ref arg2))) (expression vec3 * (var_ref arg1) (var_ref arg2))))))\n"
3405 " (signature vec4\n"
3407 " (declare (in) vec4 arg0)\n"
3408 " (declare (in) vec4 arg1)\n"
3409 " (declare (in) float arg2))\n"
3410 " ((return (expression vec4 + (expression vec4 * (var_ref arg0) (expression float - (constant float (1.000000)) (var_ref arg2))) (expression vec4 * (var_ref arg1) (var_ref arg2))))))\n"
3412 " (signature float\n"
3414 " (declare (in) float v1)\n"
3415 " (declare (in) float v2)\n"
3416 " (declare (in) bool a))\n"
3417 " ((assign (var_ref a) (var_ref v1) (var_ref v2))\n"
3418 " (return (var_ref v1))))\n"
3420 " (signature vec2\n"
3422 " (declare (in) vec2 v1)\n"
3423 " (declare (in) vec2 v2)\n"
3424 " (declare (in) bvec2 a))\n"
3425 " ((assign (swiz x (var_ref a)) (swiz x (var_ref v1)) (swiz x (var_ref v2)))\n"
3426 " (assign (swiz y (var_ref a)) (swiz y (var_ref v1)) (swiz y (var_ref v2)))\n"
3427 " (return (var_ref v1))))\n"
3429 " (signature vec3\n"
3431 " (declare (in) vec3 v1)\n"
3432 " (declare (in) vec3 v2)\n"
3433 " (declare (in) bvec3 a))\n"
3434 " ((assign (swiz x (var_ref a)) (swiz x (var_ref v1)) (swiz x (var_ref v2)))\n"
3435 " (assign (swiz y (var_ref a)) (swiz y (var_ref v1)) (swiz y (var_ref v2)))\n"
3436 " (assign (swiz z (var_ref a)) (swiz z (var_ref v1)) (swiz z (var_ref v2)))\n"
3437 " (return (var_ref v1))))\n"
3439 " (signature vec4\n"
3441 " (declare (in) vec4 v1)\n"
3442 " (declare (in) vec4 v2)\n"
3443 " (declare (in) bvec4 a))\n"
3444 " ((assign (swiz x (var_ref a)) (swiz x (var_ref v1)) (swiz x (var_ref v2)))\n"
3445 " (assign (swiz y (var_ref a)) (swiz y (var_ref v1)) (swiz y (var_ref v2)))\n"
3446 " (assign (swiz z (var_ref a)) (swiz z (var_ref v1)) (swiz z (var_ref v2)))\n"
3447 " (assign (swiz w (var_ref a)) (swiz w (var_ref v1)) (swiz w (var_ref v2)))\n"
3448 " (return (var_ref v1))))\n"
3452 static const char *builtin_shadow1DArrayLod
=
3453 "((function shadow1DArrayLod\n"
3454 " (signature vec4\n"
3456 " (declare (in) sampler1DArrayShadow sampler)\n"
3457 " (declare (in) vec3 P) \n"
3458 " (declare (in) float lod) )\n"
3459 " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) (var_ref lod) ))))\n"
3464 static const char *builtin_ftransform
=
3465 "((declare (uniform) mat4 gl_ModelViewProjectionMatrix)\n"
3466 " (declare (in) vec4 gl_Vertex)\n"
3467 " (function ftransform\n"
3468 " (signature vec4\n"
3470 " ((return (expression vec4 *\n"
3471 " (var_ref gl_ModelViewProjectionMatrix)\n"
3472 " (var_ref gl_Vertex)))))\n"
3476 static const char *builtin_sin
=
3478 " (signature float\n"
3480 " (declare (in) float angle))\n"
3481 " ((return (expression float sin (var_ref angle)))))\n"
3483 " (signature vec2\n"
3485 " (declare (in) vec2 angle))\n"
3486 " ((return (expression vec2 sin (var_ref angle)))))\n"
3488 " (signature vec3\n"
3490 " (declare (in) vec3 angle))\n"
3491 " ((return (expression vec3 sin (var_ref angle)))))\n"
3493 " (signature vec4\n"
3495 " (declare (in) vec4 angle))\n"
3496 " ((return (expression vec4 sin (var_ref angle)))))\n"
3500 static const char *builtin_shadow2D
=
3501 "((function shadow2D\n"
3502 " (signature vec4\n"
3504 " (declare (in) sampler2DShadow sampler)\n"
3505 " (declare (in) vec3 P) )\n"
3506 " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) ))))\n"
3508 " (signature vec4\n"
3510 " (declare (in) sampler2DShadow sampler)\n"
3511 " (declare (in) vec3 P) \n"
3512 " (declare (in) float bias) )\n"
3513 " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) (var_ref bias) ))))\n"
3518 static const char *builtin_shadow2DLod
=
3519 "((function shadow2DLod\n"
3520 " (signature vec4\n"
3522 " (declare (in) sampler2DShadow sampler)\n"
3523 " (declare (in) vec3 P) \n"
3524 " (declare (in) float lod) )\n"
3525 " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) (var_ref lod) ))))\n"
3530 static const char *builtin_shadow2DRectProj
=
3531 "((function shadow2DRectProj\n"
3532 " (signature vec4\n"
3534 " (declare (in) sampler2DRectShadow sampler)\n"
3535 " (declare (in) vec4 P) )\n"
3536 " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) (swiz z (var_ref P)) ))))\n"
3541 static const char *builtin_atan
=
3543 " (signature float\n"
3545 " (declare (in) float x))\n"
3546 " ((return (call asin ((expression float *\n"
3548 " (expression float rsq\n"
3549 " (expression float +\n"
3550 " (expression float *\n"
3553 " (constant float (1.0))))))))))\n"
3555 " (signature vec2\n"
3557 " (declare (in) vec2 y_over_x))\n"
3558 " ((return (call asin ((expression vec2 *\n"
3559 " (var_ref y_over_x)\n"
3560 " (expression vec2 rsq\n"
3561 " (expression vec2 +\n"
3562 " (expression vec2 *\n"
3563 " (var_ref y_over_x)\n"
3564 " (var_ref y_over_x))\n"
3565 " (constant float (1.0))))))))))\n"
3567 " (signature vec3\n"
3569 " (declare (in) vec3 y_over_x))\n"
3570 " ((return (call asin ((expression vec3 *\n"
3571 " (var_ref y_over_x)\n"
3572 " (expression vec3 rsq\n"
3573 " (expression vec3 +\n"
3574 " (expression vec3 *\n"
3575 " (var_ref y_over_x)\n"
3576 " (var_ref y_over_x))\n"
3577 " (constant float (1.0))))))))))\n"
3579 " (signature vec4\n"
3581 " (declare (in) vec4 y_over_x))\n"
3582 " ((return (call asin ((expression vec4 *\n"
3583 " (var_ref y_over_x)\n"
3584 " (expression vec4 rsq\n"
3585 " (expression vec4 +\n"
3586 " (expression vec4 *\n"
3587 " (var_ref y_over_x)\n"
3588 " (var_ref y_over_x))\n"
3589 " (constant float (1.0))))))))))\n"
3591 " (signature float\n"
3593 " (declare (in ) float y)\n"
3594 " (declare (in ) float x)\n"
3597 " (declare () float r)\n"
3598 " (declare ( ) float abs_retval)\n"
3599 " (assign (constant bool (1)) (var_ref abs_retval) (call abs ((var_ref x) ))\n"
3601 " (if (expression bool > (var_ref abs_retval) (constant float (0.000100)) ) (\n"
3602 " (declare ( ) float atan_retval)\n"
3603 " (assign (constant bool (1)) (var_ref atan_retval) (call atan ((expression float / (var_ref y) (var_ref x) ) ))\n"
3605 " (assign (constant bool (1)) (var_ref r) (var_ref atan_retval) ) \n"
3606 " (if (expression bool < (var_ref x) (constant float (0.000000)) ) (\n"
3607 " (if (expression bool >= (var_ref y) (constant float (0.000000)) ) (\n"
3608 " (declare ( ) float assignment_tmp)\n"
3609 " (assign (constant bool (1)) (var_ref assignment_tmp) (expression float + (var_ref r) (constant float (3.141593)) ) ) \n"
3610 " (assign (constant bool (1)) (var_ref r) (var_ref assignment_tmp) ) \n"
3613 " (declare ( ) float assignment_tmp)\n"
3614 " (assign (constant bool (1)) (var_ref assignment_tmp) (expression float - (var_ref r) (constant float (3.141593)) ) ) \n"
3615 " (assign (constant bool (1)) (var_ref r) (var_ref assignment_tmp) ) \n"
3624 " (if (expression bool >= (var_ref y) (constant float (0.000000)) ) (\n"
3625 " (assign (constant bool (1)) (var_ref r) (constant float (1.570796)) ) \n"
3628 " (assign (constant bool (1)) (var_ref r) (constant float (-1.570796)) ) \n"
3633 " (return (var_ref r) )\n"
3638 " (signature vec2\n"
3640 " (declare (in) vec2 y)\n"
3641 " (declare (in) vec2 x))\n"
3642 " ((declare () vec2 r)\n"
3643 " (assign (constant bool (1))\n"
3644 " (swiz x (var_ref r))\n"
3645 " (call atan ((swiz x (var_ref y))\n"
3646 " (swiz x (var_ref x)))))\n"
3647 " (assign (constant bool (1))\n"
3648 " (swiz y (var_ref r))\n"
3649 " (call atan ((swiz y (var_ref y))\n"
3650 " (swiz y (var_ref x)))))\n"
3651 " (return (var_ref r))))\n"
3653 " (signature vec3\n"
3655 " (declare (in) vec3 y)\n"
3656 " (declare (in) vec3 x))\n"
3657 " ((declare () vec3 r)\n"
3658 " (assign (constant bool (1))\n"
3659 " (swiz x (var_ref r))\n"
3660 " (call atan ((swiz x (var_ref y))\n"
3661 " (swiz x (var_ref x)))))\n"
3662 " (assign (constant bool (1))\n"
3663 " (swiz y (var_ref r))\n"
3664 " (call atan ((swiz y (var_ref y))\n"
3665 " (swiz y (var_ref x)))))\n"
3666 " (assign (constant bool (1))\n"
3667 " (swiz z (var_ref r))\n"
3668 " (call atan ((swiz z (var_ref y))\n"
3669 " (swiz z (var_ref x)))))\n"
3670 " (return (var_ref r))))\n"
3672 " (signature vec4\n"
3674 " (declare (in) vec4 y)\n"
3675 " (declare (in) vec4 x))\n"
3676 " ((declare () vec4 r)\n"
3677 " (assign (constant bool (1))\n"
3678 " (swiz x (var_ref r))\n"
3679 " (call atan ((swiz x (var_ref y))\n"
3680 " (swiz x (var_ref x)))))\n"
3681 " (assign (constant bool (1))\n"
3682 " (swiz y (var_ref r))\n"
3683 " (call atan ((swiz y (var_ref y))\n"
3684 " (swiz y (var_ref x)))))\n"
3685 " (assign (constant bool (1))\n"
3686 " (swiz z (var_ref r))\n"
3687 " (call atan ((swiz z (var_ref y))\n"
3688 " (swiz z (var_ref x)))))\n"
3689 " (assign (constant bool (1))\n"
3690 " (swiz w (var_ref r))\n"
3691 " (call atan ((swiz w (var_ref y))\n"
3692 " (swiz w (var_ref x)))))\n"
3693 " (return (var_ref r)))))\n"
3698 static const char *builtin_max
=
3700 " (signature float\n"
3702 " (declare (in) float arg0)\n"
3703 " (declare (in) float arg1))\n"
3704 " ((return (expression float max (var_ref arg0) (var_ref arg1)))))\n"
3706 " (signature vec2\n"
3708 " (declare (in) vec2 arg0)\n"
3709 " (declare (in) vec2 arg1))\n"
3710 " ((return (expression vec2 max (var_ref arg0) (var_ref arg1)))))\n"
3712 " (signature vec3\n"
3714 " (declare (in) vec3 arg0)\n"
3715 " (declare (in) vec3 arg1))\n"
3716 " ((return (expression vec3 max (var_ref arg0) (var_ref arg1)))))\n"
3718 " (signature vec4\n"
3720 " (declare (in) vec4 arg0)\n"
3721 " (declare (in) vec4 arg1))\n"
3722 " ((return (expression vec4 max (var_ref arg0) (var_ref arg1)))))\n"
3724 " (signature vec2\n"
3726 " (declare (in) vec2 arg0)\n"
3727 " (declare (in) float arg1))\n"
3728 " ((return (expression vec2 max (var_ref arg0) (var_ref arg1)))))\n"
3730 " (signature vec3\n"
3732 " (declare (in) vec3 arg0)\n"
3733 " (declare (in) float arg1))\n"
3734 " ((return (expression vec3 max (var_ref arg0) (var_ref arg1)))))\n"
3736 " (signature vec4\n"
3738 " (declare (in) vec4 arg0)\n"
3739 " (declare (in) float arg1))\n"
3740 " ((return (expression vec4 max (var_ref arg0) (var_ref arg1)))))\n"
3744 " (declare (in) int arg0)\n"
3745 " (declare (in) int arg1))\n"
3746 " ((return (expression int max (var_ref arg0) (var_ref arg1)))))\n"
3748 " (signature ivec2\n"
3750 " (declare (in) ivec2 arg0)\n"
3751 " (declare (in) ivec2 arg1))\n"
3752 " ((return (expression ivec2 max (var_ref arg0) (var_ref arg1)))))\n"
3754 " (signature ivec3\n"
3756 " (declare (in) ivec3 arg0)\n"
3757 " (declare (in) ivec3 arg1))\n"
3758 " ((return (expression ivec3 max (var_ref arg0) (var_ref arg1)))))\n"
3760 " (signature ivec4\n"
3762 " (declare (in) ivec4 arg0)\n"
3763 " (declare (in) ivec4 arg1))\n"
3764 " ((return (expression ivec4 max (var_ref arg0) (var_ref arg1)))))\n"
3766 " (signature ivec2\n"
3768 " (declare (in) ivec2 arg0)\n"
3769 " (declare (in) int arg1))\n"
3770 " ((return (expression ivec2 max (var_ref arg0) (var_ref arg1)))))\n"
3772 " (signature ivec3\n"
3774 " (declare (in) ivec3 arg0)\n"
3775 " (declare (in) int arg1))\n"
3776 " ((return (expression ivec3 max (var_ref arg0) (var_ref arg1)))))\n"
3778 " (signature ivec4\n"
3780 " (declare (in) ivec4 arg0)\n"
3781 " (declare (in) int arg1))\n"
3782 " ((return (expression ivec4 max (var_ref arg0) (var_ref arg1)))))\n"
3784 " (signature uint\n"
3786 " (declare (in) uint arg0)\n"
3787 " (declare (in) uint arg1))\n"
3788 " ((return (expression uint max (var_ref arg0) (var_ref arg1)))))\n"
3790 " (signature uvec2\n"
3792 " (declare (in) uvec2 arg0)\n"
3793 " (declare (in) uvec2 arg1))\n"
3794 " ((return (expression uvec2 max (var_ref arg0) (var_ref arg1)))))\n"
3796 " (signature uvec3\n"
3798 " (declare (in) uvec3 arg0)\n"
3799 " (declare (in) uvec3 arg1))\n"
3800 " ((return (expression uvec3 max (var_ref arg0) (var_ref arg1)))))\n"
3802 " (signature uvec4\n"
3804 " (declare (in) uvec4 arg0)\n"
3805 " (declare (in) uvec4 arg1))\n"
3806 " ((return (expression uvec4 max (var_ref arg0) (var_ref arg1)))))\n"
3808 " (signature uvec2\n"
3810 " (declare (in) uvec2 arg0)\n"
3811 " (declare (in) uint arg1))\n"
3812 " ((return (expression uvec2 max (var_ref arg0) (var_ref arg1)))))\n"
3814 " (signature uvec3\n"
3816 " (declare (in) uvec3 arg0)\n"
3817 " (declare (in) uint arg1))\n"
3818 " ((return (expression uvec3 max (var_ref arg0) (var_ref arg1)))))\n"
3820 " (signature uvec4\n"
3822 " (declare (in) uvec4 arg0)\n"
3823 " (declare (in) uint arg1))\n"
3824 " ((return (expression uvec4 max (var_ref arg0) (var_ref arg1)))))\n"
3828 static const char *builtin_reflect
=
3829 "((function reflect\n"
3830 " (signature float\n"
3832 " (declare (in) float i)\n"
3833 " (declare (in) float n))\n"
3834 " ((return (expression float -\n"
3836 " (expression float *\n"
3837 " (constant float (2.0))\n"
3838 " (expression float *\n"
3839 " (expression float dot\n"
3842 " (var_ref n)))))))\n"
3844 " (signature vec2\n"
3846 " (declare (in) vec2 i)\n"
3847 " (declare (in) vec2 n))\n"
3848 " ((return (expression vec2 -\n"
3850 " (expression vec2 *\n"
3851 " (constant float (2.0))\n"
3852 " (expression vec2 *\n"
3853 " (expression float dot\n"
3856 " (var_ref n)))))))\n"
3858 " (signature vec3\n"
3860 " (declare (in) vec3 i)\n"
3861 " (declare (in) vec3 n))\n"
3862 " ((return (expression vec3 -\n"
3864 " (expression vec3 *\n"
3865 " (constant float (2.0))\n"
3866 " (expression vec3 *\n"
3867 " (expression float dot\n"
3870 " (var_ref n)))))))\n"
3872 " (signature vec4\n"
3874 " (declare (in) vec4 i)\n"
3875 " (declare (in) vec4 n))\n"
3876 " ((return (expression vec4 -\n"
3878 " (expression vec4 *\n"
3879 " (constant float (2.0))\n"
3880 " (expression vec4 *\n"
3881 " (expression float dot\n"
3884 " (var_ref n)))))))\n"
3889 static const char *builtin_texture3D
=
3890 "((function texture3D\n"
3891 " (signature vec4\n"
3893 " (declare (in) sampler3D sampler)\n"
3894 " (declare (in) vec3 P) )\n"
3895 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
3897 " (signature vec4\n"
3899 " (declare (in) sampler3D sampler)\n"
3900 " (declare (in) vec3 P) \n"
3901 " (declare (in) float bias) )\n"
3902 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
3907 static const char *builtin_texelFetch
=
3908 "((function texelFetch\n"
3909 " (signature vec4\n"
3911 " (declare (in) sampler1D sampler)\n"
3912 " (declare (in) int P) \n"
3913 " (declare (in) int lod) )\n"
3914 " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
3916 " (signature ivec4\n"
3918 " (declare (in) isampler1D sampler)\n"
3919 " (declare (in) int P) \n"
3920 " (declare (in) int lod) )\n"
3921 " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
3923 " (signature uvec4\n"
3925 " (declare (in) usampler1D sampler)\n"
3926 " (declare (in) int P) \n"
3927 " (declare (in) int lod) )\n"
3928 " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
3930 " (signature vec4\n"
3932 " (declare (in) sampler2D sampler)\n"
3933 " (declare (in) ivec2 P) \n"
3934 " (declare (in) int lod) )\n"
3935 " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
3937 " (signature ivec4\n"
3939 " (declare (in) isampler2D sampler)\n"
3940 " (declare (in) ivec2 P) \n"
3941 " (declare (in) int lod) )\n"
3942 " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
3944 " (signature uvec4\n"
3946 " (declare (in) usampler2D sampler)\n"
3947 " (declare (in) ivec2 P) \n"
3948 " (declare (in) int lod) )\n"
3949 " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
3951 " (signature vec4\n"
3953 " (declare (in) sampler3D sampler)\n"
3954 " (declare (in) ivec3 P) \n"
3955 " (declare (in) int lod) )\n"
3956 " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
3958 " (signature ivec4\n"
3960 " (declare (in) isampler3D sampler)\n"
3961 " (declare (in) ivec3 P) \n"
3962 " (declare (in) int lod) )\n"
3963 " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
3965 " (signature uvec4\n"
3967 " (declare (in) usampler3D sampler)\n"
3968 " (declare (in) ivec3 P) \n"
3969 " (declare (in) int lod) )\n"
3970 " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
3972 " (signature vec4\n"
3974 " (declare (in) sampler1DArray sampler)\n"
3975 " (declare (in) ivec2 P) \n"
3976 " (declare (in) int lod) )\n"
3977 " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
3979 " (signature ivec4\n"
3981 " (declare (in) isampler1DArray sampler)\n"
3982 " (declare (in) ivec2 P) \n"
3983 " (declare (in) int lod) )\n"
3984 " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
3986 " (signature uvec4\n"
3988 " (declare (in) usampler1DArray sampler)\n"
3989 " (declare (in) ivec2 P) \n"
3990 " (declare (in) int lod) )\n"
3991 " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
3993 " (signature vec4\n"
3995 " (declare (in) sampler2DArray sampler)\n"
3996 " (declare (in) ivec3 P) \n"
3997 " (declare (in) int lod) )\n"
3998 " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
4000 " (signature ivec4\n"
4002 " (declare (in) isampler2DArray sampler)\n"
4003 " (declare (in) ivec3 P) \n"
4004 " (declare (in) int lod) )\n"
4005 " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
4007 " (signature uvec4\n"
4009 " (declare (in) usampler2DArray sampler)\n"
4010 " (declare (in) ivec3 P) \n"
4011 " (declare (in) int lod) )\n"
4012 " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n"
4017 static const char *builtin_noise4
=
4018 "((function noise4\n"
4019 " (signature vec4\n"
4021 " (declare (in) float x))\n"
4022 " ((return (constant vec4 (0 0 0 0)))))\n"
4023 " (signature vec4\n"
4025 " (declare (in) vec2 x))\n"
4026 " ((return (constant vec4 (0 0 0 0)))))\n"
4027 " (signature vec4\n"
4029 " (declare (in) vec3 x))\n"
4030 " ((return (constant vec4 (0 0 0 0)))))\n"
4031 " (signature vec4\n"
4033 " (declare (in) vec4 x))\n"
4034 " ((return (constant vec4 (0 0 0 0)))))\n"
4038 static const char *builtin_notEqual
=
4039 "((function notEqual\n"
4040 " (signature bvec2\n"
4042 " (declare (in) vec2 arg0)\n"
4043 " (declare (in) vec2 arg1))\n"
4044 " ((declare () bvec2 temp)\n"
4045 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool != (swiz x (var_ref arg0))(swiz x (var_ref arg1))))\n"
4046 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool != (swiz y (var_ref arg0))(swiz y (var_ref arg1))))\n"
4047 " (return (var_ref temp))))\n"
4049 " (signature bvec3\n"
4051 " (declare (in) vec3 arg0)\n"
4052 " (declare (in) vec3 arg1))\n"
4053 " ((declare () bvec3 temp)\n"
4054 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool != (swiz x (var_ref arg0))(swiz x (var_ref arg1))))\n"
4055 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool != (swiz y (var_ref arg0))(swiz y (var_ref arg1))))\n"
4056 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool != (swiz z (var_ref arg0))(swiz z (var_ref arg1))))\n"
4057 " (return (var_ref temp))))\n"
4059 " (signature bvec4\n"
4061 " (declare (in) vec4 arg0)\n"
4062 " (declare (in) vec4 arg1))\n"
4063 " ((declare () bvec4 temp)\n"
4064 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool != (swiz x (var_ref arg0))(swiz x (var_ref arg1))))\n"
4065 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool != (swiz y (var_ref arg0))(swiz y (var_ref arg1))))\n"
4066 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool != (swiz z (var_ref arg0))(swiz z (var_ref arg1))))\n"
4067 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool != (swiz w (var_ref arg0))(swiz w (var_ref arg1))))\n"
4068 " (return (var_ref temp))))\n"
4070 " (signature bvec2\n"
4072 " (declare (in) ivec2 arg0)\n"
4073 " (declare (in) ivec2 arg1))\n"
4074 " ((declare () bvec2 temp)\n"
4075 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool != (swiz x (var_ref arg0))(swiz x (var_ref arg1))))\n"
4076 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool != (swiz y (var_ref arg0))(swiz y (var_ref arg1))))\n"
4077 " (return (var_ref temp))))\n"
4079 " (signature bvec3\n"
4081 " (declare (in) ivec3 arg0)\n"
4082 " (declare (in) ivec3 arg1))\n"
4083 " ((declare () bvec3 temp)\n"
4084 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool != (swiz x (var_ref arg0))(swiz x (var_ref arg1))))\n"
4085 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool != (swiz y (var_ref arg0))(swiz y (var_ref arg1))))\n"
4086 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool != (swiz z (var_ref arg0))(swiz z (var_ref arg1))))\n"
4087 " (return (var_ref temp))))\n"
4089 " (signature bvec4\n"
4091 " (declare (in) ivec4 arg0)\n"
4092 " (declare (in) ivec4 arg1))\n"
4093 " ((declare () bvec4 temp)\n"
4094 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool != (swiz x (var_ref arg0))(swiz x (var_ref arg1))))\n"
4095 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool != (swiz y (var_ref arg0))(swiz y (var_ref arg1))))\n"
4096 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool != (swiz z (var_ref arg0))(swiz z (var_ref arg1))))\n"
4097 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool != (swiz w (var_ref arg0))(swiz w (var_ref arg1))))\n"
4098 " (return (var_ref temp))))\n"
4100 " (signature bvec2\n"
4102 " (declare (in) uvec2 arg0)\n"
4103 " (declare (in) uvec2 arg1))\n"
4104 " ((declare () bvec2 temp)\n"
4105 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool != (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
4106 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool != (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
4107 " (return (var_ref temp))))\n"
4109 " (signature bvec3\n"
4111 " (declare (in) uvec3 arg0)\n"
4112 " (declare (in) uvec3 arg1))\n"
4113 " ((declare () bvec3 temp)\n"
4114 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool != (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
4115 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool != (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
4116 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool != (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
4117 " (return (var_ref temp))))\n"
4119 " (signature bvec4\n"
4121 " (declare (in) uvec4 arg0)\n"
4122 " (declare (in) uvec4 arg1))\n"
4123 " ((declare () bvec4 temp)\n"
4124 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool != (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
4125 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool != (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
4126 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool != (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
4127 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool != (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
4128 " (return (var_ref temp))))\n"
4132 static const char *builtin_outerProduct
=
4133 "((function outerProduct\n"
4134 " (signature mat2\n"
4136 " (declare (in) vec2 u)\n"
4137 " (declare (in) vec2 v))\n"
4138 " ((declare () mat2 m)\n"
4139 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (0))) (expression vec2 * (var_ref u) (swiz x (var_ref v))))\n"
4140 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (1))) (expression vec2 * (var_ref u) (swiz y (var_ref v))))\n"
4141 " (return (var_ref m))))\n"
4143 " (signature mat2x3\n"
4145 " (declare (in) vec3 u)\n"
4146 " (declare (in) vec2 v))\n"
4147 " ((declare () mat2x3 m)\n"
4148 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (0))) (expression vec3 * (var_ref u) (swiz x (var_ref v))))\n"
4149 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (1))) (expression vec3 * (var_ref u) (swiz y (var_ref v))))\n"
4150 " (return (var_ref m))))\n"
4152 " (signature mat2x4\n"
4154 " (declare (in) vec4 u)\n"
4155 " (declare (in) vec2 v))\n"
4156 " ((declare () mat2x4 m)\n"
4157 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (0))) (expression vec4 * (var_ref u) (swiz x (var_ref v))))\n"
4158 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (1))) (expression vec4 * (var_ref u) (swiz y (var_ref v))))\n"
4159 " (return (var_ref m))))\n"
4161 " (signature mat3x2\n"
4163 " (declare (in) vec2 u)\n"
4164 " (declare (in) vec3 v))\n"
4165 " ((declare () mat3x2 m)\n"
4166 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (0))) (expression vec2 * (var_ref u) (swiz x (var_ref v))))\n"
4167 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (1))) (expression vec2 * (var_ref u) (swiz y (var_ref v))))\n"
4168 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (2))) (expression vec2 * (var_ref u) (swiz z (var_ref v))))\n"
4169 " (return (var_ref m))\n"
4172 " (signature mat3\n"
4174 " (declare (in) vec3 u)\n"
4175 " (declare (in) vec3 v))\n"
4176 " ((declare () mat3 m)\n"
4177 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (0))) (expression vec3 * (var_ref u) (swiz x (var_ref v))))\n"
4178 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (1))) (expression vec3 * (var_ref u) (swiz y (var_ref v))))\n"
4179 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (2))) (expression vec3 * (var_ref u) (swiz z (var_ref v))))\n"
4180 " (return (var_ref m))))\n"
4182 " (signature mat3x4\n"
4184 " (declare (in) vec4 u)\n"
4185 " (declare (in) vec3 v))\n"
4186 " ((declare () mat3x4 m)\n"
4187 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (0))) (expression vec4 * (var_ref u) (swiz x (var_ref v))))\n"
4188 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (1))) (expression vec4 * (var_ref u) (swiz y (var_ref v))))\n"
4189 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (2))) (expression vec4 * (var_ref u) (swiz z (var_ref v))))\n"
4190 " (return (var_ref m))))\n"
4192 " (signature mat4x2\n"
4194 " (declare (in) vec2 u)\n"
4195 " (declare (in) vec4 v))\n"
4196 " ((declare () mat4x2 m)\n"
4197 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (0))) (expression vec2 * (var_ref u) (swiz x (var_ref v))))\n"
4198 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (1))) (expression vec2 * (var_ref u) (swiz y (var_ref v))))\n"
4199 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (2))) (expression vec2 * (var_ref u) (swiz z (var_ref v))))\n"
4200 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (3))) (expression vec2 * (var_ref u) (swiz w (var_ref v))))\n"
4201 " (return (var_ref m))))\n"
4203 " (signature mat4x3\n"
4205 " (declare (in) vec3 u)\n"
4206 " (declare (in) vec4 v))\n"
4207 " ((declare () mat4x3 m)\n"
4208 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (0))) (expression vec3 * (var_ref u) (swiz x (var_ref v))))\n"
4209 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (1))) (expression vec3 * (var_ref u) (swiz y (var_ref v))))\n"
4210 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (2))) (expression vec3 * (var_ref u) (swiz z (var_ref v))))\n"
4211 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (3))) (expression vec3 * (var_ref u) (swiz w (var_ref v))))\n"
4212 " (return (var_ref m))))\n"
4214 " (signature mat4\n"
4216 " (declare (in) vec4 u)\n"
4217 " (declare (in) vec4 v))\n"
4218 " ((declare () mat4 m)\n"
4219 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (0))) (expression vec4 * (var_ref u) (swiz x (var_ref v))))\n"
4220 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (1))) (expression vec4 * (var_ref u) (swiz y (var_ref v))))\n"
4221 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (2))) (expression vec4 * (var_ref u) (swiz z (var_ref v))))\n"
4222 " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (3))) (expression vec4 * (var_ref u) (swiz w (var_ref v))))\n"
4223 " (return (var_ref m))))\n"
4227 static const char *builtin_shadow1D
=
4228 "((function shadow1D\n"
4229 " (signature vec4\n"
4231 " (declare (in) sampler1DShadow sampler)\n"
4232 " (declare (in) vec3 P) )\n"
4233 " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) ))))\n"
4235 " (signature vec4\n"
4237 " (declare (in) sampler1DShadow sampler)\n"
4238 " (declare (in) vec3 P) \n"
4239 " (declare (in) float bias) )\n"
4240 " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) (var_ref bias) ))))\n"
4245 static const char *builtin_noise1
=
4246 "((function noise1\n"
4247 " (signature float\n"
4249 " (declare (in) float x))\n"
4250 " ((return (constant float (0)))))\n"
4251 " (signature float\n"
4253 " (declare (in) vec2 x))\n"
4254 " ((return (constant float (0)))))\n"
4255 " (signature float\n"
4257 " (declare (in) vec3 x))\n"
4258 " ((return (constant float (0)))))\n"
4259 " (signature float\n"
4261 " (declare (in) vec4 x))\n"
4262 " ((return (constant float (0)))))\n"
4266 static const char *builtin_refract
=
4267 "((function refract\n"
4268 " (signature float\n"
4270 " (declare (in) float i)\n"
4271 " (declare (in) float n)\n"
4272 " (declare (in) float eta))\n"
4273 " ((declare () float k)\n"
4274 " (assign (constant bool (1)) (var_ref k)\n"
4275 " (expression float - (constant float (1.0))\n"
4276 " (expression float * (var_ref eta)\n"
4277 " (expression float * (var_ref eta)\n"
4278 " (expression float - (constant float (1.0))\n"
4279 " (expression float * \n"
4280 " (expression float dot (var_ref n) (var_ref i))\n"
4281 " (expression float dot (var_ref n) (var_ref i))))))))\n"
4282 " (if (expression bool < (var_ref k) (constant float (0.0)))\n"
4283 " ((return (constant float (0.0))))\n"
4284 " ((return (expression float -\n"
4285 " (expression float * (var_ref eta) (var_ref i))\n"
4286 " (expression float *\n"
4287 " (expression float +\n"
4288 " (expression float * (var_ref eta)\n"
4289 " (expression float dot (var_ref n) (var_ref i)))\n"
4290 " (expression float sqrt (var_ref k)))\n"
4291 " (var_ref n))))))))\n"
4293 " (signature vec2\n"
4295 " (declare (in) vec2 i)\n"
4296 " (declare (in) vec2 n)\n"
4297 " (declare (in) float eta))\n"
4298 " ((declare () float k)\n"
4299 " (assign (constant bool (1)) (var_ref k)\n"
4300 " (expression float - (constant float (1.0))\n"
4301 " (expression float * (var_ref eta)\n"
4302 " (expression float * (var_ref eta)\n"
4303 " (expression float - (constant float (1.0))\n"
4304 " (expression float * \n"
4305 " (expression float dot (var_ref n) (var_ref i))\n"
4306 " (expression float dot (var_ref n) (var_ref i))))))))\n"
4307 " (if (expression bool < (var_ref k) (constant float (0.0)))\n"
4308 " ((return (constant vec2 (0.0 0.0))))\n"
4309 " ((return (expression vec2 -\n"
4310 " (expression vec2 * (var_ref eta) (var_ref i))\n"
4311 " (expression vec2 *\n"
4312 " (expression float +\n"
4313 " (expression float * (var_ref eta)\n"
4314 " (expression float dot (var_ref n) (var_ref i)))\n"
4315 " (expression float sqrt (var_ref k)))\n"
4316 " (var_ref n))))))))\n"
4318 " (signature vec3\n"
4320 " (declare (in) vec3 i)\n"
4321 " (declare (in) vec3 n)\n"
4322 " (declare (in) float eta))\n"
4323 " ((declare () float k)\n"
4324 " (assign (constant bool (1)) (var_ref k)\n"
4325 " (expression float - (constant float (1.0))\n"
4326 " (expression float * (var_ref eta)\n"
4327 " (expression float * (var_ref eta)\n"
4328 " (expression float - (constant float (1.0))\n"
4329 " (expression float * \n"
4330 " (expression float dot (var_ref n) (var_ref i))\n"
4331 " (expression float dot (var_ref n) (var_ref i))))))))\n"
4332 " (if (expression bool < (var_ref k) (constant float (0.0)))\n"
4333 " ((return (constant vec3 (0.0 0.0 0.0))))\n"
4334 " ((return (expression vec3 -\n"
4335 " (expression vec3 * (var_ref eta) (var_ref i))\n"
4336 " (expression vec3 *\n"
4337 " (expression float +\n"
4338 " (expression float * (var_ref eta)\n"
4339 " (expression float dot (var_ref n) (var_ref i)))\n"
4340 " (expression float sqrt (var_ref k)))\n"
4341 " (var_ref n))))))))\n"
4343 " (signature vec4\n"
4345 " (declare (in) vec4 i)\n"
4346 " (declare (in) vec4 n)\n"
4347 " (declare (in) float eta))\n"
4348 " ((declare () float k)\n"
4349 " (assign (constant bool (1)) (var_ref k)\n"
4350 " (expression float - (constant float (1.0))\n"
4351 " (expression float * (var_ref eta)\n"
4352 " (expression float * (var_ref eta)\n"
4353 " (expression float - (constant float (1.0))\n"
4354 " (expression float * \n"
4355 " (expression float dot (var_ref n) (var_ref i))\n"
4356 " (expression float dot (var_ref n) (var_ref i))))))))\n"
4357 " (if (expression bool < (var_ref k) (constant float (0.0)))\n"
4358 " ((return (constant vec4 (0.0 0.0 0.0 0.0))))\n"
4359 " ((return (expression vec4 -\n"
4360 " (expression vec4 * (var_ref eta) (var_ref i))\n"
4361 " (expression vec4 *\n"
4362 " (expression float +\n"
4363 " (expression float * (var_ref eta)\n"
4364 " (expression float dot (var_ref n) (var_ref i)))\n"
4365 " (expression float sqrt (var_ref k)))\n"
4366 " (var_ref n))))))))\n"
4371 static const char *builtin_noise3
=
4372 "((function noise3\n"
4373 " (signature vec3\n"
4375 " (declare (in) float x))\n"
4376 " ((return (constant vec3 (0 0 0)))))\n"
4377 " (signature vec3\n"
4379 " (declare (in) vec2 x))\n"
4380 " ((return (constant vec3 (0 0 0)))))\n"
4381 " (signature vec3\n"
4383 " (declare (in) vec3 x))\n"
4384 " ((return (constant vec3 (0 0 0)))))\n"
4385 " (signature vec3\n"
4387 " (declare (in) vec4 x))\n"
4388 " ((return (constant vec3 (0 0 0)))))\n"
4392 static const char *builtin_min
=
4394 " (signature float\n"
4396 " (declare (in) float arg0)\n"
4397 " (declare (in) float arg1))\n"
4398 " ((return (expression float min (var_ref arg0) (var_ref arg1)))))\n"
4400 " (signature vec2\n"
4402 " (declare (in) vec2 arg0)\n"
4403 " (declare (in) vec2 arg1))\n"
4404 " ((return (expression vec2 min (var_ref arg0) (var_ref arg1)))))\n"
4406 " (signature vec3\n"
4408 " (declare (in) vec3 arg0)\n"
4409 " (declare (in) vec3 arg1))\n"
4410 " ((return (expression vec3 min (var_ref arg0) (var_ref arg1)))))\n"
4412 " (signature vec4\n"
4414 " (declare (in) vec4 arg0)\n"
4415 " (declare (in) vec4 arg1))\n"
4416 " ((return (expression vec4 min (var_ref arg0) (var_ref arg1)))))\n"
4418 " (signature vec2\n"
4420 " (declare (in) vec2 arg0)\n"
4421 " (declare (in) float arg1))\n"
4422 " ((return (expression vec2 min (var_ref arg0) (var_ref arg1)))))\n"
4424 " (signature vec3\n"
4426 " (declare (in) vec3 arg0)\n"
4427 " (declare (in) float arg1))\n"
4428 " ((return (expression vec3 min (var_ref arg0) (var_ref arg1)))))\n"
4430 " (signature vec4\n"
4432 " (declare (in) vec4 arg0)\n"
4433 " (declare (in) float arg1))\n"
4434 " ((return (expression vec4 min (var_ref arg0) (var_ref arg1)))))\n"
4438 " (declare (in) int arg0)\n"
4439 " (declare (in) int arg1))\n"
4440 " ((return (expression int min (var_ref arg0) (var_ref arg1)))))\n"
4442 " (signature ivec2\n"
4444 " (declare (in) ivec2 arg0)\n"
4445 " (declare (in) ivec2 arg1))\n"
4446 " ((return (expression ivec2 min (var_ref arg0) (var_ref arg1)))))\n"
4448 " (signature ivec3\n"
4450 " (declare (in) ivec3 arg0)\n"
4451 " (declare (in) ivec3 arg1))\n"
4452 " ((return (expression ivec3 min (var_ref arg0) (var_ref arg1)))))\n"
4454 " (signature ivec4\n"
4456 " (declare (in) ivec4 arg0)\n"
4457 " (declare (in) ivec4 arg1))\n"
4458 " ((return (expression ivec4 min (var_ref arg0) (var_ref arg1)))))\n"
4460 " (signature ivec2\n"
4462 " (declare (in) ivec2 arg0)\n"
4463 " (declare (in) int arg1))\n"
4464 " ((return (expression ivec2 min (var_ref arg0) (var_ref arg1)))))\n"
4466 " (signature ivec3\n"
4468 " (declare (in) ivec3 arg0)\n"
4469 " (declare (in) int arg1))\n"
4470 " ((return (expression ivec3 min (var_ref arg0) (var_ref arg1)))))\n"
4472 " (signature ivec4\n"
4474 " (declare (in) ivec4 arg0)\n"
4475 " (declare (in) int arg1))\n"
4476 " ((return (expression ivec4 min (var_ref arg0) (var_ref arg1)))))\n"
4478 " (signature uint\n"
4480 " (declare (in) uint arg0)\n"
4481 " (declare (in) uint arg1))\n"
4482 " ((return (expression uint min (var_ref arg0) (var_ref arg1)))))\n"
4484 " (signature uvec2\n"
4486 " (declare (in) uvec2 arg0)\n"
4487 " (declare (in) uvec2 arg1))\n"
4488 " ((return (expression uvec2 min (var_ref arg0) (var_ref arg1)))))\n"
4490 " (signature uvec3\n"
4492 " (declare (in) uvec3 arg0)\n"
4493 " (declare (in) uvec3 arg1))\n"
4494 " ((return (expression uvec3 min (var_ref arg0) (var_ref arg1)))))\n"
4496 " (signature uvec4\n"
4498 " (declare (in) uvec4 arg0)\n"
4499 " (declare (in) uvec4 arg1))\n"
4500 " ((return (expression uvec4 min (var_ref arg0) (var_ref arg1)))))\n"
4502 " (signature uvec2\n"
4504 " (declare (in) uvec2 arg0)\n"
4505 " (declare (in) uint arg1))\n"
4506 " ((return (expression uvec2 min (var_ref arg0) (var_ref arg1)))))\n"
4508 " (signature uvec3\n"
4510 " (declare (in) uvec3 arg0)\n"
4511 " (declare (in) uint arg1))\n"
4512 " ((return (expression uvec3 min (var_ref arg0) (var_ref arg1)))))\n"
4514 " (signature uvec4\n"
4516 " (declare (in) uvec4 arg0)\n"
4517 " (declare (in) uint arg1))\n"
4518 " ((return (expression uvec4 min (var_ref arg0) (var_ref arg1)))))\n"
4522 static const char *builtin_textureCube
=
4523 "((function textureCube\n"
4524 " (signature vec4\n"
4526 " (declare (in) samplerCube sampler)\n"
4527 " (declare (in) vec3 P) )\n"
4528 " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n"
4530 " (signature vec4\n"
4532 " (declare (in) samplerCube sampler)\n"
4533 " (declare (in) vec3 P) \n"
4534 " (declare (in) float bias) )\n"
4535 " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n"
4540 static const char *builtin_shadow1DArray
=
4541 "((function shadow1DArray\n"
4542 " (signature vec4\n"
4544 " (declare (in) sampler1DArrayShadow sampler)\n"
4545 " (declare (in) vec3 P) )\n"
4546 " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) ))))\n"
4548 " (signature vec4\n"
4550 " (declare (in) sampler1DArrayShadow sampler)\n"
4551 " (declare (in) vec3 P) \n"
4552 " (declare (in) float bias) )\n"
4553 " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) (var_ref bias) ))))\n"
4558 static const char *builtin_exp
=
4560 " (signature float\n"
4562 " (declare (in) float arg0))\n"
4563 " ((return (expression float exp (var_ref arg0)))))\n"
4565 " (signature vec2\n"
4567 " (declare (in) vec2 arg0))\n"
4568 " ((return (expression vec2 exp (var_ref arg0)))))\n"
4570 " (signature vec3\n"
4572 " (declare (in) vec3 arg0))\n"
4573 " ((return (expression vec3 exp (var_ref arg0)))))\n"
4575 " (signature vec4\n"
4577 " (declare (in) vec4 arg0))\n"
4578 " ((return (expression vec4 exp (var_ref arg0)))))\n"
4582 static const char *builtin_greaterThan
=
4583 "((function greaterThan\n"
4584 " (signature bvec2\n"
4586 " (declare (in) vec2 arg0)\n"
4587 " (declare (in) vec2 arg1))\n"
4588 " ((declare () bvec2 temp)\n"
4589 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
4590 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
4591 " (return (var_ref temp))))\n"
4593 " (signature bvec3\n"
4595 " (declare (in) vec3 arg0)\n"
4596 " (declare (in) vec3 arg1))\n"
4597 " ((declare () bvec3 temp)\n"
4598 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
4599 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
4600 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool > (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
4601 " (return (var_ref temp))))\n"
4603 " (signature bvec4\n"
4605 " (declare (in) vec4 arg0)\n"
4606 " (declare (in) vec4 arg1))\n"
4607 " ((declare () bvec4 temp)\n"
4608 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
4609 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
4610 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool > (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
4611 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool > (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
4612 " (return (var_ref temp))))\n"
4614 " (signature bvec2\n"
4616 " (declare (in) ivec2 arg0)\n"
4617 " (declare (in) ivec2 arg1))\n"
4618 " ((declare () bvec2 temp)\n"
4619 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
4620 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
4621 " (return (var_ref temp))))\n"
4623 " (signature bvec3\n"
4625 " (declare (in) ivec3 arg0)\n"
4626 " (declare (in) ivec3 arg1))\n"
4627 " ((declare () bvec3 temp)\n"
4628 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
4629 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
4630 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool > (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
4631 " (return (var_ref temp))))\n"
4633 " (signature bvec4\n"
4635 " (declare (in) ivec4 arg0)\n"
4636 " (declare (in) ivec4 arg1))\n"
4637 " ((declare () bvec4 temp)\n"
4638 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
4639 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
4640 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool > (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
4641 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool > (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
4642 " (return (var_ref temp))))\n"
4644 " (signature bvec2\n"
4646 " (declare (in) uvec2 arg0)\n"
4647 " (declare (in) uvec2 arg1))\n"
4648 " ((declare () bvec2 temp)\n"
4649 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
4650 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
4651 " (return (var_ref temp))))\n"
4653 " (signature bvec3\n"
4655 " (declare (in) uvec3 arg0)\n"
4656 " (declare (in) uvec3 arg1))\n"
4657 " ((declare () bvec3 temp)\n"
4658 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
4659 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
4660 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool > (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
4661 " (return (var_ref temp))))\n"
4663 " (signature bvec4\n"
4665 " (declare (in) uvec4 arg0)\n"
4666 " (declare (in) uvec4 arg1))\n"
4667 " ((declare () bvec4 temp)\n"
4668 " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n"
4669 " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n"
4670 " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool > (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n"
4671 " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool > (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n"
4672 " (return (var_ref temp))))\n"
4676 static const char *builtin_texture2DLod
=
4677 "((function texture2DLod\n"
4678 " (signature vec4\n"
4680 " (declare (in) sampler2D sampler)\n"
4681 " (declare (in) vec2 P) \n"
4682 " (declare (in) float lod) )\n"
4683 " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n"
4688 static const char *builtin_dot
=
4690 " (signature float\n"
4692 " (declare (in) float arg0)\n"
4693 " (declare (in) float arg1))\n"
4694 " ((return (expression float dot (var_ref arg0) (var_ref arg1)))))\n"
4696 " (signature float\n"
4698 " (declare (in) vec2 arg0)\n"
4699 " (declare (in) vec2 arg1))\n"
4700 " ((return (expression float dot (var_ref arg0) (var_ref arg1)))))\n"
4702 " (signature float\n"
4704 " (declare (in) vec3 arg0)\n"
4705 " (declare (in) vec3 arg1))\n"
4706 " ((return (expression float dot (var_ref arg0) (var_ref arg1)))))\n"
4708 " (signature float\n"
4710 " (declare (in) vec4 arg0)\n"
4711 " (declare (in) vec4 arg1))\n"
4712 " ((return (expression float dot (var_ref arg0) (var_ref arg1)))))\n"
4716 static const char *prototypes_for_120_vert
=
4718 "(function radians\n"
4719 " (signature float\n"
4721 " (declare (in ) float degrees@0x22143e0)\n"
4726 " (signature vec2\n"
4728 " (declare (in ) vec2 degrees@0x22147b0)\n"
4733 " (signature vec3\n"
4735 " (declare (in ) vec3 degrees@0x22149a0)\n"
4740 " (signature vec4\n"
4742 " (declare (in ) vec4 degrees@0x2214b90)\n"
4749 "(function degrees\n"
4750 " (signature float\n"
4752 " (declare (in ) float radians@0x2214d80)\n"
4757 " (signature vec2\n"
4759 " (declare (in ) vec2 radians@0x2215150)\n"
4764 " (signature vec3\n"
4766 " (declare (in ) vec3 radians@0x2215340)\n"
4771 " (signature vec4\n"
4773 " (declare (in ) vec4 radians@0x2215530)\n"
4781 " (signature float\n"
4783 " (declare (in ) float angle@0x2215720)\n"
4788 " (signature vec2\n"
4790 " (declare (in ) vec2 angle@0x2215ad0)\n"
4795 " (signature vec3\n"
4797 " (declare (in ) vec3 angle@0x2215cb0)\n"
4802 " (signature vec4\n"
4804 " (declare (in ) vec4 angle@0x2215e90)\n"
4812 " (signature float\n"
4814 " (declare (in ) float angle@0x2216070)\n"
4819 " (signature vec2\n"
4821 " (declare (in ) vec2 angle@0x2216420)\n"
4826 " (signature vec3\n"
4828 " (declare (in ) vec3 angle@0x2216600)\n"
4833 " (signature vec4\n"
4835 " (declare (in ) vec4 angle@0x22167e0)\n"
4843 " (signature float\n"
4845 " (declare (in ) float angle@0x22169c0)\n"
4850 " (signature vec2\n"
4852 " (declare (in ) vec2 angle@0x2216d70)\n"
4857 " (signature vec3\n"
4859 " (declare (in ) vec3 angle@0x2216f50)\n"
4864 " (signature vec4\n"
4866 " (declare (in ) vec4 angle@0x2217130)\n"
4874 " (signature float\n"
4876 " (declare (in ) float angle@0x2217310)\n"
4881 " (signature vec2\n"
4883 " (declare (in ) vec2 angle@0x22176c0)\n"
4888 " (signature vec3\n"
4890 " (declare (in ) vec3 angle@0x22178a0)\n"
4895 " (signature vec4\n"
4897 " (declare (in ) vec4 angle@0x2217a80)\n"
4905 " (signature float\n"
4907 " (declare (in ) float angle@0x2217c60)\n"
4912 " (signature vec2\n"
4914 " (declare (in ) vec2 angle@0x2218010)\n"
4919 " (signature vec3\n"
4921 " (declare (in ) vec3 angle@0x22181f0)\n"
4926 " (signature vec4\n"
4928 " (declare (in ) vec4 angle@0x22183d0)\n"
4936 " (signature float\n"
4938 " (declare (in ) float y@0x22185b0)\n"
4939 " (declare (in ) float x@0x22186c0)\n"
4944 " (signature vec2\n"
4946 " (declare (in ) vec2 y@0x2218a70)\n"
4947 " (declare (in ) vec2 x@0x2218b80)\n"
4952 " (signature vec3\n"
4954 " (declare (in ) vec3 y@0x2218d60)\n"
4955 " (declare (in ) vec3 x@0x2218e70)\n"
4960 " (signature vec4\n"
4962 " (declare (in ) vec4 y@0x2219050)\n"
4963 " (declare (in ) vec4 x@0x2219160)\n"
4968 " (signature float\n"
4970 " (declare (in ) float y_over_x@0x2219340)\n"
4975 " (signature vec2\n"
4977 " (declare (in ) vec2 y_over_x@0x2219530)\n"
4982 " (signature vec3\n"
4984 " (declare (in ) vec3 y_over_x@0x2219720)\n"
4989 " (signature vec4\n"
4991 " (declare (in ) vec4 y_over_x@0x2219910)\n"
4999 " (signature float\n"
5001 " (declare (in ) float x@0x2219b00)\n"
5002 " (declare (in ) float y@0x2219c10)\n"
5007 " (signature vec2\n"
5009 " (declare (in ) vec2 x@0x2219fc0)\n"
5010 " (declare (in ) vec2 y@0x221a0d0)\n"
5015 " (signature vec3\n"
5017 " (declare (in ) vec3 x@0x221a2b0)\n"
5018 " (declare (in ) vec3 y@0x221a3c0)\n"
5023 " (signature vec4\n"
5025 " (declare (in ) vec4 x@0x221a5a0)\n"
5026 " (declare (in ) vec4 y@0x221a6b0)\n"
5034 " (signature float\n"
5036 " (declare (in ) float x@0x221a890)\n"
5041 " (signature vec2\n"
5043 " (declare (in ) vec2 x@0x221ac40)\n"
5048 " (signature vec3\n"
5050 " (declare (in ) vec3 x@0x221ae20)\n"
5055 " (signature vec4\n"
5057 " (declare (in ) vec4 x@0x221b000)\n"
5065 " (signature float\n"
5067 " (declare (in ) float x@0x221b1e0)\n"
5072 " (signature vec2\n"
5074 " (declare (in ) vec2 x@0x221b590)\n"
5079 " (signature vec3\n"
5081 " (declare (in ) vec3 x@0x221b770)\n"
5086 " (signature vec4\n"
5088 " (declare (in ) vec4 x@0x221b950)\n"
5096 " (signature float\n"
5098 " (declare (in ) float x@0x221bb30)\n"
5103 " (signature vec2\n"
5105 " (declare (in ) vec2 x@0x221bee0)\n"
5110 " (signature vec3\n"
5112 " (declare (in ) vec3 x@0x221c0c0)\n"
5117 " (signature vec4\n"
5119 " (declare (in ) vec4 x@0x221c2a0)\n"
5127 " (signature float\n"
5129 " (declare (in ) float x@0x221c480)\n"
5134 " (signature vec2\n"
5136 " (declare (in ) vec2 x@0x221c830)\n"
5141 " (signature vec3\n"
5143 " (declare (in ) vec3 x@0x221ca10)\n"
5148 " (signature vec4\n"
5150 " (declare (in ) vec4 x@0x221cbf0)\n"
5158 " (signature float\n"
5160 " (declare (in ) float x@0x221cdd0)\n"
5165 " (signature vec2\n"
5167 " (declare (in ) vec2 x@0x221d180)\n"
5172 " (signature vec3\n"
5174 " (declare (in ) vec3 x@0x221d360)\n"
5179 " (signature vec4\n"
5181 " (declare (in ) vec4 x@0x221d540)\n"
5188 "(function inversesqrt\n"
5189 " (signature float\n"
5191 " (declare (in ) float x@0x221d720)\n"
5196 " (signature vec2\n"
5198 " (declare (in ) vec2 x@0x221dae0)\n"
5203 " (signature vec3\n"
5205 " (declare (in ) vec3 x@0x221dcc0)\n"
5210 " (signature vec4\n"
5212 " (declare (in ) vec4 x@0x221dea0)\n"
5220 " (signature float\n"
5222 " (declare (in ) float x@0x221e080)\n"
5227 " (signature vec2\n"
5229 " (declare (in ) vec2 x@0x221e430)\n"
5234 " (signature vec3\n"
5236 " (declare (in ) vec3 x@0x221e610)\n"
5241 " (signature vec4\n"
5243 " (declare (in ) vec4 x@0x221e7f0)\n"
5251 " (signature float\n"
5253 " (declare (in ) float x@0x221e9d0)\n"
5258 " (signature vec2\n"
5260 " (declare (in ) vec2 x@0x221ed80)\n"
5265 " (signature vec3\n"
5267 " (declare (in ) vec3 x@0x221ef60)\n"
5272 " (signature vec4\n"
5274 " (declare (in ) vec4 x@0x221f140)\n"
5282 " (signature float\n"
5284 " (declare (in ) float x@0x221f320)\n"
5289 " (signature vec2\n"
5291 " (declare (in ) vec2 x@0x221f6d0)\n"
5296 " (signature vec3\n"
5298 " (declare (in ) vec3 x@0x221f8b0)\n"
5303 " (signature vec4\n"
5305 " (declare (in ) vec4 x@0x221fa90)\n"
5313 " (signature float\n"
5315 " (declare (in ) float x@0x221fc70)\n"
5320 " (signature vec2\n"
5322 " (declare (in ) vec2 x@0x2220020)\n"
5327 " (signature vec3\n"
5329 " (declare (in ) vec3 x@0x2220200)\n"
5334 " (signature vec4\n"
5336 " (declare (in ) vec4 x@0x22203e0)\n"
5344 " (signature float\n"
5346 " (declare (in ) float x@0x22205c0)\n"
5351 " (signature vec2\n"
5353 " (declare (in ) vec2 x@0x2220970)\n"
5358 " (signature vec3\n"
5360 " (declare (in ) vec3 x@0x2220b50)\n"
5365 " (signature vec4\n"
5367 " (declare (in ) vec4 x@0x2220d30)\n"
5375 " (signature float\n"
5377 " (declare (in ) float x@0x2220f10)\n"
5378 " (declare (in ) float y@0x2221020)\n"
5383 " (signature vec2\n"
5385 " (declare (in ) vec2 x@0x22213d0)\n"
5386 " (declare (in ) float y@0x22214e0)\n"
5391 " (signature vec3\n"
5393 " (declare (in ) vec3 x@0x22216c0)\n"
5394 " (declare (in ) float y@0x22217d0)\n"
5399 " (signature vec4\n"
5401 " (declare (in ) vec4 x@0x22219b0)\n"
5402 " (declare (in ) float y@0x2221ac0)\n"
5407 " (signature vec2\n"
5409 " (declare (in ) vec2 x@0x2221ca0)\n"
5410 " (declare (in ) vec2 y@0x2221db0)\n"
5415 " (signature vec3\n"
5417 " (declare (in ) vec3 x@0x2221f90)\n"
5418 " (declare (in ) vec3 y@0x22220a0)\n"
5423 " (signature vec4\n"
5425 " (declare (in ) vec4 x@0x2222280)\n"
5426 " (declare (in ) vec4 y@0x2222390)\n"
5434 " (signature float\n"
5436 " (declare (in ) float x@0x2222570)\n"
5437 " (declare (in ) float y@0x2222680)\n"
5442 " (signature vec2\n"
5444 " (declare (in ) vec2 x@0x2222a30)\n"
5445 " (declare (in ) vec2 y@0x2222b40)\n"
5450 " (signature vec3\n"
5452 " (declare (in ) vec3 x@0x2222d20)\n"
5453 " (declare (in ) vec3 y@0x2222e30)\n"
5458 " (signature vec4\n"
5460 " (declare (in ) vec4 x@0x2223010)\n"
5461 " (declare (in ) vec4 y@0x2223120)\n"
5466 " (signature vec2\n"
5468 " (declare (in ) vec2 x@0x2223300)\n"
5469 " (declare (in ) float y@0x2223410)\n"
5474 " (signature vec3\n"
5476 " (declare (in ) vec3 x@0x22235f0)\n"
5477 " (declare (in ) float y@0x2223700)\n"
5482 " (signature vec4\n"
5484 " (declare (in ) vec4 x@0x22238e0)\n"
5485 " (declare (in ) float y@0x22239f0)\n"
5493 " (signature float\n"
5495 " (declare (in ) float x@0x2223bd0)\n"
5496 " (declare (in ) float y@0x2223ce0)\n"
5501 " (signature vec2\n"
5503 " (declare (in ) vec2 x@0x2224090)\n"
5504 " (declare (in ) vec2 y@0x22241a0)\n"
5509 " (signature vec3\n"
5511 " (declare (in ) vec3 x@0x2224380)\n"
5512 " (declare (in ) vec3 y@0x2224490)\n"
5517 " (signature vec4\n"
5519 " (declare (in ) vec4 x@0x2224670)\n"
5520 " (declare (in ) vec4 y@0x2224780)\n"
5525 " (signature vec2\n"
5527 " (declare (in ) vec2 x@0x2224960)\n"
5528 " (declare (in ) float y@0x2224a70)\n"
5533 " (signature vec3\n"
5535 " (declare (in ) vec3 x@0x2224c50)\n"
5536 " (declare (in ) float y@0x2224d60)\n"
5541 " (signature vec4\n"
5543 " (declare (in ) vec4 x@0x2224f40)\n"
5544 " (declare (in ) float y@0x2225050)\n"
5552 " (signature float\n"
5554 " (declare (in ) float x@0x2225230)\n"
5555 " (declare (in ) float minVal@0x2225340)\n"
5556 " (declare (in ) float maxVal@0x2225450)\n"
5561 " (signature vec2\n"
5563 " (declare (in ) vec2 x@0x2225800)\n"
5564 " (declare (in ) vec2 minVal@0x2225910)\n"
5565 " (declare (in ) vec2 maxVal@0x2225a20)\n"
5570 " (signature vec3\n"
5572 " (declare (in ) vec3 x@0x2225c00)\n"
5573 " (declare (in ) vec3 minVal@0x2225d10)\n"
5574 " (declare (in ) vec3 maxVal@0x2225e20)\n"
5579 " (signature vec4\n"
5581 " (declare (in ) vec4 x@0x2226000)\n"
5582 " (declare (in ) vec4 minVal@0x2226110)\n"
5583 " (declare (in ) vec4 maxVal@0x2226220)\n"
5588 " (signature vec2\n"
5590 " (declare (in ) vec2 x@0x2226400)\n"
5591 " (declare (in ) float minVal@0x2226510)\n"
5592 " (declare (in ) float maxVal@0x2226620)\n"
5597 " (signature vec3\n"
5599 " (declare (in ) vec3 x@0x2226800)\n"
5600 " (declare (in ) float minVal@0x2226910)\n"
5601 " (declare (in ) float maxVal@0x2226a20)\n"
5606 " (signature vec4\n"
5608 " (declare (in ) vec4 x@0x2226c00)\n"
5609 " (declare (in ) float minVal@0x2226d10)\n"
5610 " (declare (in ) float maxVal@0x2226e20)\n"
5618 " (signature float\n"
5620 " (declare (in ) float x@0x2227000)\n"
5621 " (declare (in ) float y@0x2227110)\n"
5622 " (declare (in ) float a@0x2227220)\n"
5627 " (signature vec2\n"
5629 " (declare (in ) vec2 x@0x22275d0)\n"
5630 " (declare (in ) vec2 y@0x22276e0)\n"
5631 " (declare (in ) vec2 a@0x22277f0)\n"
5636 " (signature vec3\n"
5638 " (declare (in ) vec3 x@0x22279d0)\n"
5639 " (declare (in ) vec3 y@0x2227ae0)\n"
5640 " (declare (in ) vec3 a@0x2227bf0)\n"
5645 " (signature vec4\n"
5647 " (declare (in ) vec4 x@0x2227dd0)\n"
5648 " (declare (in ) vec4 y@0x2227ee0)\n"
5649 " (declare (in ) vec4 a@0x2227ff0)\n"
5654 " (signature vec2\n"
5656 " (declare (in ) vec2 x@0x22281d0)\n"
5657 " (declare (in ) vec2 y@0x22282e0)\n"
5658 " (declare (in ) float a@0x22283f0)\n"
5663 " (signature vec3\n"
5665 " (declare (in ) vec3 x@0x22285d0)\n"
5666 " (declare (in ) vec3 y@0x22286e0)\n"
5667 " (declare (in ) float a@0x22287f0)\n"
5672 " (signature vec4\n"
5674 " (declare (in ) vec4 x@0x22289d0)\n"
5675 " (declare (in ) vec4 y@0x2228ae0)\n"
5676 " (declare (in ) float a@0x2228bf0)\n"
5684 " (signature float\n"
5686 " (declare (in ) float edge@0x2228dd0)\n"
5687 " (declare (in ) float x@0x2228ee0)\n"
5692 " (signature vec2\n"
5694 " (declare (in ) vec2 edge@0x2229290)\n"
5695 " (declare (in ) vec2 x@0x22293a0)\n"
5700 " (signature vec3\n"
5702 " (declare (in ) vec3 edge@0x2229580)\n"
5703 " (declare (in ) vec3 x@0x2229690)\n"
5708 " (signature vec4\n"
5710 " (declare (in ) vec4 edge@0x2229870)\n"
5711 " (declare (in ) vec4 x@0x2229980)\n"
5716 " (signature vec2\n"
5718 " (declare (in ) float edge@0x2229b60)\n"
5719 " (declare (in ) vec2 x@0x2229c70)\n"
5724 " (signature vec3\n"
5726 " (declare (in ) float edge@0x2229e50)\n"
5727 " (declare (in ) vec3 x@0x2229f60)\n"
5732 " (signature vec4\n"
5734 " (declare (in ) float edge@0x222a140)\n"
5735 " (declare (in ) vec4 x@0x222a250)\n"
5742 "(function smoothstep\n"
5743 " (signature float\n"
5745 " (declare (in ) float edge0@0x222a430)\n"
5746 " (declare (in ) float edge1@0x222a540)\n"
5747 " (declare (in ) float x@0x222a650)\n"
5752 " (signature vec2\n"
5754 " (declare (in ) vec2 edge0@0x222aa10)\n"
5755 " (declare (in ) vec2 edge1@0x222ab20)\n"
5756 " (declare (in ) vec2 x@0x222ac30)\n"
5761 " (signature vec3\n"
5763 " (declare (in ) vec3 edge0@0x222ae10)\n"
5764 " (declare (in ) vec3 edge1@0x222af20)\n"
5765 " (declare (in ) vec3 x@0x222b030)\n"
5770 " (signature vec4\n"
5772 " (declare (in ) vec4 edge0@0x222b210)\n"
5773 " (declare (in ) vec4 edge1@0x222b320)\n"
5774 " (declare (in ) vec4 x@0x222b430)\n"
5779 " (signature vec2\n"
5781 " (declare (in ) float edge0@0x222b610)\n"
5782 " (declare (in ) float edge1@0x222b720)\n"
5783 " (declare (in ) vec2 x@0x222b830)\n"
5788 " (signature vec3\n"
5790 " (declare (in ) float edge0@0x222ba10)\n"
5791 " (declare (in ) float edge1@0x222bb20)\n"
5792 " (declare (in ) vec3 x@0x222bc30)\n"
5797 " (signature vec4\n"
5799 " (declare (in ) float edge0@0x222be10)\n"
5800 " (declare (in ) float edge1@0x222bf20)\n"
5801 " (declare (in ) vec4 x@0x222c030)\n"
5808 "(function length\n"
5809 " (signature float\n"
5811 " (declare (in ) float x@0x222c210)\n"
5816 " (signature float\n"
5818 " (declare (in ) vec2 x@0x222c5c0)\n"
5823 " (signature float\n"
5825 " (declare (in ) vec3 x@0x222c7a0)\n"
5830 " (signature float\n"
5832 " (declare (in ) vec4 x@0x222c980)\n"
5839 "(function distance\n"
5840 " (signature float\n"
5842 " (declare (in ) float p0@0x222cb60)\n"
5843 " (declare (in ) float p1@0x222cc70)\n"
5848 " (signature float\n"
5850 " (declare (in ) vec2 p0@0x222d030)\n"
5851 " (declare (in ) vec2 p1@0x222d140)\n"
5856 " (signature float\n"
5858 " (declare (in ) vec3 p0@0x222d320)\n"
5859 " (declare (in ) vec3 p1@0x222d430)\n"
5864 " (signature float\n"
5866 " (declare (in ) vec4 p0@0x222d610)\n"
5867 " (declare (in ) vec4 p1@0x222d720)\n"
5875 " (signature float\n"
5877 " (declare (in ) float x@0x222d900)\n"
5878 " (declare (in ) float y@0x222da10)\n"
5883 " (signature float\n"
5885 " (declare (in ) vec2 x@0x222ddc0)\n"
5886 " (declare (in ) vec2 y@0x222ded0)\n"
5891 " (signature float\n"
5893 " (declare (in ) vec3 x@0x222e0b0)\n"
5894 " (declare (in ) vec3 y@0x222e1c0)\n"
5899 " (signature float\n"
5901 " (declare (in ) vec4 x@0x222e3a0)\n"
5902 " (declare (in ) vec4 y@0x222e4b0)\n"
5910 " (signature vec3\n"
5912 " (declare (in ) vec3 x@0x222e690)\n"
5913 " (declare (in ) vec3 y@0x222e7a0)\n"
5920 "(function normalize\n"
5921 " (signature float\n"
5923 " (declare (in ) float x@0x222eb50)\n"
5928 " (signature vec2\n"
5930 " (declare (in ) vec2 x@0x222ef10)\n"
5935 " (signature vec3\n"
5937 " (declare (in ) vec3 x@0x222f0f0)\n"
5942 " (signature vec4\n"
5944 " (declare (in ) vec4 x@0x222f2d0)\n"
5951 "(function ftransform\n"
5952 " (signature vec4\n"
5960 "(function faceforward\n"
5961 " (signature float\n"
5963 " (declare (in ) float N@0x222f760)\n"
5964 " (declare (in ) float I@0x222f870)\n"
5965 " (declare (in ) float Nref@0x222f980)\n"
5970 " (signature vec2\n"
5972 " (declare (in ) vec2 N@0x222fd40)\n"
5973 " (declare (in ) vec2 I@0x222fe50)\n"
5974 " (declare (in ) vec2 Nref@0x222ff60)\n"
5979 " (signature vec3\n"
5981 " (declare (in ) vec3 N@0x2230140)\n"
5982 " (declare (in ) vec3 I@0x2230250)\n"
5983 " (declare (in ) vec3 Nref@0x2230360)\n"
5988 " (signature vec4\n"
5990 " (declare (in ) vec4 N@0x2230540)\n"
5991 " (declare (in ) vec4 I@0x2230650)\n"
5992 " (declare (in ) vec4 Nref@0x2230760)\n"
5999 "(function reflect\n"
6000 " (signature float\n"
6002 " (declare (in ) float I@0x2230940)\n"
6003 " (declare (in ) float N@0x2230a50)\n"
6008 " (signature vec2\n"
6010 " (declare (in ) vec2 I@0x2230e10)\n"
6011 " (declare (in ) vec2 N@0x2230f20)\n"
6016 " (signature vec3\n"
6018 " (declare (in ) vec3 I@0x2231100)\n"
6019 " (declare (in ) vec3 N@0x2231210)\n"
6024 " (signature vec4\n"
6026 " (declare (in ) vec4 I@0x22313f0)\n"
6027 " (declare (in ) vec4 N@0x2231500)\n"
6034 "(function refract\n"
6035 " (signature float\n"
6037 " (declare (in ) float I@0x22316e0)\n"
6038 " (declare (in ) float N@0x22317f0)\n"
6039 " (declare (in ) float eta@0x2231900)\n"
6044 " (signature vec2\n"
6046 " (declare (in ) vec2 I@0x2231cc0)\n"
6047 " (declare (in ) vec2 N@0x2231dd0)\n"
6048 " (declare (in ) float eta@0x2231ee0)\n"
6053 " (signature vec3\n"
6055 " (declare (in ) vec3 I@0x22320c0)\n"
6056 " (declare (in ) vec3 N@0x22321d0)\n"
6057 " (declare (in ) float eta@0x22322e0)\n"
6062 " (signature vec4\n"
6064 " (declare (in ) vec4 I@0x22324c0)\n"
6065 " (declare (in ) vec4 N@0x22325d0)\n"
6066 " (declare (in ) float eta@0x22326e0)\n"
6073 "(function matrixCompMult\n"
6074 " (signature mat2\n"
6076 " (declare (in ) mat2 x@0x22328c0)\n"
6077 " (declare (in ) mat2 y@0x22329d0)\n"
6082 " (signature mat3\n"
6084 " (declare (in ) mat3 x@0x2232d90)\n"
6085 " (declare (in ) mat3 y@0x2232ea0)\n"
6090 " (signature mat4\n"
6092 " (declare (in ) mat4 x@0x2233080)\n"
6093 " (declare (in ) mat4 y@0x2233190)\n"
6098 " (signature mat2x3\n"
6100 " (declare (in ) mat2x3 x@0x2233370)\n"
6101 " (declare (in ) mat2x3 y@0x2233480)\n"
6106 " (signature mat2x4\n"
6108 " (declare (in ) mat2x4 x@0x2233660)\n"
6109 " (declare (in ) mat2x4 y@0x2233770)\n"
6114 " (signature mat3x2\n"
6116 " (declare (in ) mat3x2 x@0x2233950)\n"
6117 " (declare (in ) mat3x2 y@0x2233a60)\n"
6122 " (signature mat3x4\n"
6124 " (declare (in ) mat3x4 x@0x2233c40)\n"
6125 " (declare (in ) mat3x4 y@0x2233d50)\n"
6130 " (signature mat4x2\n"
6132 " (declare (in ) mat4x2 x@0x2233f30)\n"
6133 " (declare (in ) mat4x2 y@0x2234040)\n"
6138 " (signature mat4x3\n"
6140 " (declare (in ) mat4x3 x@0x2234220)\n"
6141 " (declare (in ) mat4x3 y@0x2234330)\n"
6148 "(function outerProduct\n"
6149 " (signature mat2\n"
6151 " (declare (in ) vec2 c@0x2234510)\n"
6152 " (declare (in ) vec2 r@0x2234620)\n"
6157 " (signature mat3\n"
6159 " (declare (in ) vec3 c@0x22349e0)\n"
6160 " (declare (in ) vec3 r@0x2234af0)\n"
6165 " (signature mat4\n"
6167 " (declare (in ) vec4 c@0x2234cd0)\n"
6168 " (declare (in ) vec4 r@0x2234de0)\n"
6173 " (signature mat2x3\n"
6175 " (declare (in ) vec3 c@0x2234fc0)\n"
6176 " (declare (in ) vec2 r@0x22350d0)\n"
6181 " (signature mat3x2\n"
6183 " (declare (in ) vec2 c@0x22352b0)\n"
6184 " (declare (in ) vec3 r@0x22353c0)\n"
6189 " (signature mat2x4\n"
6191 " (declare (in ) vec4 c@0x22355a0)\n"
6192 " (declare (in ) vec2 r@0x22356b0)\n"
6197 " (signature mat4x2\n"
6199 " (declare (in ) vec2 c@0x2235890)\n"
6200 " (declare (in ) vec4 r@0x22359a0)\n"
6205 " (signature mat3x4\n"
6207 " (declare (in ) vec4 c@0x2235b80)\n"
6208 " (declare (in ) vec3 r@0x2235c90)\n"
6213 " (signature mat4x3\n"
6215 " (declare (in ) vec3 c@0x2235e70)\n"
6216 " (declare (in ) vec4 r@0x2235f80)\n"
6223 "(function transpose\n"
6224 " (signature mat2\n"
6226 " (declare (in ) mat2 m@0x2236160)\n"
6231 " (signature mat3\n"
6233 " (declare (in ) mat3 m@0x2236520)\n"
6238 " (signature mat4\n"
6240 " (declare (in ) mat4 m@0x2236700)\n"
6245 " (signature mat2x3\n"
6247 " (declare (in ) mat3x2 m@0x22368e0)\n"
6252 " (signature mat3x2\n"
6254 " (declare (in ) mat2x3 m@0x2236ac0)\n"
6259 " (signature mat2x4\n"
6261 " (declare (in ) mat4x2 m@0x2236ca0)\n"
6266 " (signature mat4x2\n"
6268 " (declare (in ) mat2x4 m@0x2236e80)\n"
6273 " (signature mat3x4\n"
6275 " (declare (in ) mat4x3 m@0x2237060)\n"
6280 " (signature mat4x3\n"
6282 " (declare (in ) mat3x4 m@0x2237240)\n"
6289 "(function lessThan\n"
6290 " (signature bvec2\n"
6292 " (declare (in ) vec2 x@0x2237420)\n"
6293 " (declare (in ) vec2 y@0x2237530)\n"
6298 " (signature bvec3\n"
6300 " (declare (in ) vec3 x@0x22378f0)\n"
6301 " (declare (in ) vec3 y@0x2237a00)\n"
6306 " (signature bvec4\n"
6308 " (declare (in ) vec4 x@0x2237be0)\n"
6309 " (declare (in ) vec4 y@0x2237cf0)\n"
6314 " (signature bvec2\n"
6316 " (declare (in ) ivec2 x@0x2237ed0)\n"
6317 " (declare (in ) ivec2 y@0x2237fe0)\n"
6322 " (signature bvec3\n"
6324 " (declare (in ) ivec3 x@0x22381c0)\n"
6325 " (declare (in ) ivec3 y@0x22382d0)\n"
6330 " (signature bvec4\n"
6332 " (declare (in ) ivec4 x@0x22384b0)\n"
6333 " (declare (in ) ivec4 y@0x22385c0)\n"
6340 "(function lessThanEqual\n"
6341 " (signature bvec2\n"
6343 " (declare (in ) vec2 x@0x22387a0)\n"
6344 " (declare (in ) vec2 y@0x22388b0)\n"
6349 " (signature bvec3\n"
6351 " (declare (in ) vec3 x@0x2238c70)\n"
6352 " (declare (in ) vec3 y@0x2238d80)\n"
6357 " (signature bvec4\n"
6359 " (declare (in ) vec4 x@0x2238f60)\n"
6360 " (declare (in ) vec4 y@0x2239070)\n"
6365 " (signature bvec2\n"
6367 " (declare (in ) ivec2 x@0x2239250)\n"
6368 " (declare (in ) ivec2 y@0x2239360)\n"
6373 " (signature bvec3\n"
6375 " (declare (in ) ivec3 x@0x2239540)\n"
6376 " (declare (in ) ivec3 y@0x2239650)\n"
6381 " (signature bvec4\n"
6383 " (declare (in ) ivec4 x@0x2239830)\n"
6384 " (declare (in ) ivec4 y@0x2239940)\n"
6391 "(function greaterThan\n"
6392 " (signature bvec2\n"
6394 " (declare (in ) vec2 x@0x2239b20)\n"
6395 " (declare (in ) vec2 y@0x2239c30)\n"
6400 " (signature bvec3\n"
6402 " (declare (in ) vec3 x@0x2239ff0)\n"
6403 " (declare (in ) vec3 y@0x223a100)\n"
6408 " (signature bvec4\n"
6410 " (declare (in ) vec4 x@0x223a2e0)\n"
6411 " (declare (in ) vec4 y@0x223a3f0)\n"
6416 " (signature bvec2\n"
6418 " (declare (in ) ivec2 x@0x223a5d0)\n"
6419 " (declare (in ) ivec2 y@0x223a6e0)\n"
6424 " (signature bvec3\n"
6426 " (declare (in ) ivec3 x@0x223a8c0)\n"
6427 " (declare (in ) ivec3 y@0x223a9d0)\n"
6432 " (signature bvec4\n"
6434 " (declare (in ) ivec4 x@0x223abb0)\n"
6435 " (declare (in ) ivec4 y@0x223acc0)\n"
6442 "(function greaterThanEqual\n"
6443 " (signature bvec2\n"
6445 " (declare (in ) vec2 x@0x223aea0)\n"
6446 " (declare (in ) vec2 y@0x223afb0)\n"
6451 " (signature bvec3\n"
6453 " (declare (in ) vec3 x@0x223b370)\n"
6454 " (declare (in ) vec3 y@0x223b480)\n"
6459 " (signature bvec4\n"
6461 " (declare (in ) vec4 x@0x223b660)\n"
6462 " (declare (in ) vec4 y@0x223b770)\n"
6467 " (signature bvec2\n"
6469 " (declare (in ) ivec2 x@0x223b950)\n"
6470 " (declare (in ) ivec2 y@0x223ba60)\n"
6475 " (signature bvec3\n"
6477 " (declare (in ) ivec3 x@0x223bc40)\n"
6478 " (declare (in ) ivec3 y@0x223bd50)\n"
6483 " (signature bvec4\n"
6485 " (declare (in ) ivec4 x@0x223bf30)\n"
6486 " (declare (in ) ivec4 y@0x223c040)\n"
6494 " (signature bvec2\n"
6496 " (declare (in ) vec2 x@0x223c220)\n"
6497 " (declare (in ) vec2 y@0x223c330)\n"
6502 " (signature bvec3\n"
6504 " (declare (in ) vec3 x@0x223c6e0)\n"
6505 " (declare (in ) vec3 y@0x223c7f0)\n"
6510 " (signature bvec4\n"
6512 " (declare (in ) vec4 x@0x223c9d0)\n"
6513 " (declare (in ) vec4 y@0x223cae0)\n"
6518 " (signature bvec2\n"
6520 " (declare (in ) ivec2 x@0x223ccc0)\n"
6521 " (declare (in ) ivec2 y@0x223cdd0)\n"
6526 " (signature bvec3\n"
6528 " (declare (in ) ivec3 x@0x223cfb0)\n"
6529 " (declare (in ) ivec3 y@0x223d0c0)\n"
6534 " (signature bvec4\n"
6536 " (declare (in ) ivec4 x@0x223d2a0)\n"
6537 " (declare (in ) ivec4 y@0x223d3b0)\n"
6542 " (signature bvec2\n"
6544 " (declare (in ) bvec2 x@0x223d590)\n"
6545 " (declare (in ) bvec2 y@0x223d6a0)\n"
6550 " (signature bvec3\n"
6552 " (declare (in ) bvec3 x@0x223d880)\n"
6553 " (declare (in ) bvec3 y@0x223d990)\n"
6558 " (signature bvec4\n"
6560 " (declare (in ) bvec4 x@0x223db70)\n"
6561 " (declare (in ) bvec4 y@0x223dc80)\n"
6568 "(function notEqual\n"
6569 " (signature bvec2\n"
6571 " (declare (in ) vec2 x@0x223de60)\n"
6572 " (declare (in ) vec2 y@0x223df70)\n"
6577 " (signature bvec3\n"
6579 " (declare (in ) vec3 x@0x223e330)\n"
6580 " (declare (in ) vec3 y@0x223e440)\n"
6585 " (signature bvec4\n"
6587 " (declare (in ) vec4 x@0x223e620)\n"
6588 " (declare (in ) vec4 y@0x223e730)\n"
6593 " (signature bvec2\n"
6595 " (declare (in ) ivec2 x@0x223e910)\n"
6596 " (declare (in ) ivec2 y@0x223ea20)\n"
6601 " (signature bvec3\n"
6603 " (declare (in ) ivec3 x@0x223ec00)\n"
6604 " (declare (in ) ivec3 y@0x223ed10)\n"
6609 " (signature bvec4\n"
6611 " (declare (in ) ivec4 x@0x223eef0)\n"
6612 " (declare (in ) ivec4 y@0x223f000)\n"
6617 " (signature bvec2\n"
6619 " (declare (in ) bvec2 x@0x223f1e0)\n"
6620 " (declare (in ) bvec2 y@0x223f2f0)\n"
6625 " (signature bvec3\n"
6627 " (declare (in ) bvec3 x@0x223f4d0)\n"
6628 " (declare (in ) bvec3 y@0x223f5e0)\n"
6633 " (signature bvec4\n"
6635 " (declare (in ) bvec4 x@0x223f7c0)\n"
6636 " (declare (in ) bvec4 y@0x223f8d0)\n"
6644 " (signature bool\n"
6646 " (declare (in ) bvec2 x@0x223fab0)\n"
6651 " (signature bool\n"
6653 " (declare (in ) bvec3 x@0x223fe60)\n"
6658 " (signature bool\n"
6660 " (declare (in ) bvec4 x@0x2240040)\n"
6668 " (signature bool\n"
6670 " (declare (in ) bvec2 x@0x2240220)\n"
6675 " (signature bool\n"
6677 " (declare (in ) bvec3 x@0x22405d0)\n"
6682 " (signature bool\n"
6684 " (declare (in ) bvec4 x@0x22407b0)\n"
6692 " (signature bvec2\n"
6694 " (declare (in ) bvec2 x@0x2240990)\n"
6699 " (signature bvec3\n"
6701 " (declare (in ) bvec3 x@0x2240d40)\n"
6706 " (signature bvec4\n"
6708 " (declare (in ) bvec4 x@0x2240f20)\n"
6715 "(function texture1D\n"
6716 " (signature vec4\n"
6718 " (declare (in ) sampler1D sampler@0x2241100)\n"
6719 " (declare (in ) float coord@0x2241220)\n"
6726 "(function texture1DProj\n"
6727 " (signature vec4\n"
6729 " (declare (in ) sampler1D sampler@0x22415e0)\n"
6730 " (declare (in ) vec2 coord@0x2241700)\n"
6735 " (signature vec4\n"
6737 " (declare (in ) sampler1D sampler@0x2241ac0)\n"
6738 " (declare (in ) vec4 coord@0x2241be0)\n"
6745 "(function texture1DLod\n"
6746 " (signature vec4\n"
6748 " (declare (in ) sampler1D sampler@0x2241dc0)\n"
6749 " (declare (in ) float coord@0x2241ee0)\n"
6750 " (declare (in ) float lod@0x2241ff0)\n"
6757 "(function texture1DProjLod\n"
6758 " (signature vec4\n"
6760 " (declare (in ) sampler1D sampler@0x22423b0)\n"
6761 " (declare (in ) vec2 coord@0x22424d0)\n"
6762 " (declare (in ) float lod@0x22425e0)\n"
6767 " (signature vec4\n"
6769 " (declare (in ) sampler1D sampler@0x22429a0)\n"
6770 " (declare (in ) vec4 coord@0x2242ac0)\n"
6771 " (declare (in ) float lod@0x2242bd0)\n"
6778 "(function texture2D\n"
6779 " (signature vec4\n"
6781 " (declare (in ) sampler2D sampler@0x2242db0)\n"
6782 " (declare (in ) vec2 coord@0x2242ed0)\n"
6789 "(function texture2DProj\n"
6790 " (signature vec4\n"
6792 " (declare (in ) sampler2D sampler@0x2243290)\n"
6793 " (declare (in ) vec3 coord@0x22433b0)\n"
6798 " (signature vec4\n"
6800 " (declare (in ) sampler2D sampler@0x2243770)\n"
6801 " (declare (in ) vec4 coord@0x2243890)\n"
6808 "(function texture2DLod\n"
6809 " (signature vec4\n"
6811 " (declare (in ) sampler2D sampler@0x2243a70)\n"
6812 " (declare (in ) vec2 coord@0x2243b90)\n"
6813 " (declare (in ) float lod@0x2243ca0)\n"
6820 "(function texture2DProjLod\n"
6821 " (signature vec4\n"
6823 " (declare (in ) sampler2D sampler@0x2244060)\n"
6824 " (declare (in ) vec3 coord@0x2244180)\n"
6825 " (declare (in ) float lod@0x2244290)\n"
6830 " (signature vec4\n"
6832 " (declare (in ) sampler2D sampler@0x2244650)\n"
6833 " (declare (in ) vec4 coord@0x2244770)\n"
6834 " (declare (in ) float lod@0x2244880)\n"
6841 "(function texture3D\n"
6842 " (signature vec4\n"
6844 " (declare (in ) sampler3D sampler@0x2244a60)\n"
6845 " (declare (in ) vec3 coord@0x2244b80)\n"
6852 "(function texture3DProj\n"
6853 " (signature vec4\n"
6855 " (declare (in ) sampler3D sampler@0x2244f40)\n"
6856 " (declare (in ) vec4 coord@0x2245060)\n"
6863 "(function texture3DLod\n"
6864 " (signature vec4\n"
6866 " (declare (in ) sampler3D sampler@0x2245420)\n"
6867 " (declare (in ) vec3 coord@0x2245540)\n"
6868 " (declare (in ) float lod@0x2245650)\n"
6875 "(function texture3DProjLod\n"
6876 " (signature vec4\n"
6878 " (declare (in ) sampler3D sampler@0x2245a10)\n"
6879 " (declare (in ) vec4 coord@0x2245b30)\n"
6880 " (declare (in ) float lod@0x2245c40)\n"
6887 "(function textureCube\n"
6888 " (signature vec4\n"
6890 " (declare (in ) samplerCube sampler@0x2246000)\n"
6891 " (declare (in ) vec3 coord@0x2246120)\n"
6898 "(function textureCubeLod\n"
6899 " (signature vec4\n"
6901 " (declare (in ) samplerCube sampler@0x22464e0)\n"
6902 " (declare (in ) vec3 coord@0x2246600)\n"
6903 " (declare (in ) float lod@0x2246710)\n"
6910 "(function shadow1D\n"
6911 " (signature vec4\n"
6913 " (declare (in ) sampler1DShadow sampler@0x2246ad0)\n"
6914 " (declare (in ) vec3 coord@0x2246bf0)\n"
6921 "(function shadow2D\n"
6922 " (signature vec4\n"
6924 " (declare (in ) sampler2DShadow sampler@0x2246fb0)\n"
6925 " (declare (in ) vec3 coord@0x22470d0)\n"
6932 "(function shadow1DProj\n"
6933 " (signature vec4\n"
6935 " (declare (in ) sampler1DShadow sampler@0x2247490)\n"
6936 " (declare (in ) vec4 coord@0x22475b0)\n"
6943 "(function shadow2DProj\n"
6944 " (signature vec4\n"
6946 " (declare (in ) sampler2DShadow sampler@0x2247970)\n"
6947 " (declare (in ) vec4 coord@0x2247a90)\n"
6954 "(function shadow1DLod\n"
6955 " (signature vec4\n"
6957 " (declare (in ) sampler1DShadow sampler@0x2247e50)\n"
6958 " (declare (in ) vec3 coord@0x2247f70)\n"
6959 " (declare (in ) float lod@0x2248080)\n"
6966 "(function shadow2DLod\n"
6967 " (signature vec4\n"
6969 " (declare (in ) sampler2DShadow sampler@0x2248440)\n"
6970 " (declare (in ) vec3 coord@0x2248560)\n"
6971 " (declare (in ) float lod@0x2248670)\n"
6978 "(function shadow1DProjLod\n"
6979 " (signature vec4\n"
6981 " (declare (in ) sampler1DShadow sampler@0x2248a30)\n"
6982 " (declare (in ) vec4 coord@0x2248b50)\n"
6983 " (declare (in ) float lod@0x2248c60)\n"
6990 "(function shadow2DProjLod\n"
6991 " (signature vec4\n"
6993 " (declare (in ) sampler2DShadow sampler@0x2249020)\n"
6994 " (declare (in ) vec4 coord@0x2249140)\n"
6995 " (declare (in ) float lod@0x2249250)\n"
7002 "(function noise1\n"
7003 " (signature float\n"
7005 " (declare (in ) float x@0x2249610)\n"
7010 " (signature float\n"
7012 " (declare (in ) vec2 x@0x22499c0)\n"
7017 " (signature float\n"
7019 " (declare (in ) vec3 x@0x2249ba0)\n"
7024 " (signature float\n"
7026 " (declare (in ) vec4 x@0x2249d80)\n"
7033 "(function noise2\n"
7034 " (signature vec2\n"
7036 " (declare (in ) float x@0x2249f60)\n"
7041 " (signature vec2\n"
7043 " (declare (in ) vec2 x@0x224a310)\n"
7048 " (signature vec2\n"
7050 " (declare (in ) vec3 x@0x224a4f0)\n"
7055 " (signature vec2\n"
7057 " (declare (in ) vec4 x@0x224a6d0)\n"
7064 "(function noise3\n"
7065 " (signature vec3\n"
7067 " (declare (in ) float x@0x224a8b0)\n"
7072 " (signature vec3\n"
7074 " (declare (in ) vec2 x@0x224ac60)\n"
7079 " (signature vec3\n"
7081 " (declare (in ) vec3 x@0x224ae40)\n"
7086 " (signature vec3\n"
7088 " (declare (in ) vec4 x@0x224b020)\n"
7095 "(function noise4\n"
7096 " (signature vec4\n"
7098 " (declare (in ) float x@0x224b200)\n"
7103 " (signature vec4\n"
7105 " (declare (in ) vec2 x@0x224b5b0)\n"
7110 " (signature vec4\n"
7112 " (declare (in ) vec3 x@0x224b790)\n"
7117 " (signature vec4\n"
7119 " (declare (in ) vec4 x@0x224b970)\n"
7129 static const char *functions_for_120_vert
[] = {
7131 builtin_matrixCompMult
,
7132 builtin_shadow2DProjLod
,
7134 builtin_texture3DProjLod
,
7136 builtin_texture2DProj
,
7137 builtin_greaterThanEqual
,
7139 builtin_texture3DProj
,
7142 builtin_faceforward
,
7144 builtin_shadow2DProj
,
7145 builtin_shadow1DProjLod
,
7147 builtin_shadow1DProj
,
7150 builtin_texture1DProj
,
7157 builtin_texture3DLod
,
7161 builtin_shadow1DLod
,
7165 builtin_shadow2DLod
,
7171 builtin_lessThanEqual
,
7173 builtin_outerProduct
,
7176 builtin_textureCubeLod
,
7179 builtin_greaterThan
,
7182 builtin_texture2DProjLod
,
7183 builtin_inversesqrt
,
7192 builtin_texture2DLod
,
7196 builtin_texture1DProjLod
,
7197 builtin_textureCube
,
7199 builtin_texture1DLod
,
7205 static const char *prototypes_for_EXT_texture_array_frag
=
7207 "(function texture1DArray\n"
7208 " (signature vec4\n"
7210 " (declare (in ) sampler1DArray sampler@0xb9bd60)\n"
7211 " (declare (in ) vec2 coord@0xb9be80)\n"
7216 " (signature vec4\n"
7218 " (declare (in ) sampler1DArray sampler@0xb9c240)\n"
7219 " (declare (in ) vec2 coord@0xb9c360)\n"
7220 " (declare (in ) float bias@0xb9c470)\n"
7227 "(function texture2DArray\n"
7228 " (signature vec4\n"
7230 " (declare (in ) sampler1DArray sampler@0xb9c650)\n"
7231 " (declare (in ) vec2 coord@0xb9c770)\n"
7236 " (signature vec4\n"
7238 " (declare (in ) sampler1DArray sampler@0xb9cb30)\n"
7239 " (declare (in ) vec2 coord@0xb9cc50)\n"
7240 " (declare (in ) float bias@0xb9cd60)\n"
7247 "(function shadow1DArray\n"
7248 " (signature vec4\n"
7250 " (declare (in ) sampler1DArrayShadow sampler@0xb9cf40)\n"
7251 " (declare (in ) vec3 coord@0xb9d060)\n"
7256 " (signature vec4\n"
7258 " (declare (in ) sampler1DArrayShadow sampler@0xb9d420)\n"
7259 " (declare (in ) vec3 coord@0xb9d540)\n"
7260 " (declare (in ) float bias@0xb9d650)\n"
7267 "(function shadow2DArray\n"
7268 " (signature vec4\n"
7270 " (declare (in ) sampler2DArrayShadow sampler@0xb9d830)\n"
7271 " (declare (in ) vec4 coord@0xb9d950)\n"
7281 static const char *functions_for_EXT_texture_array_frag
[] = {
7282 builtin_shadow2DArray
,
7283 builtin_shadow1DArray
,
7284 builtin_texture1DArray
,
7285 builtin_texture2DArray
,
7287 static const char *prototypes_for_110_vert
=
7289 "(function radians\n"
7290 " (signature float\n"
7292 " (declare (in ) float degrees@0x9e3c50)\n"
7297 " (signature vec2\n"
7299 " (declare (in ) vec2 degrees@0x9e4020)\n"
7304 " (signature vec3\n"
7306 " (declare (in ) vec3 degrees@0x9e4210)\n"
7311 " (signature vec4\n"
7313 " (declare (in ) vec4 degrees@0x9e4400)\n"
7320 "(function degrees\n"
7321 " (signature float\n"
7323 " (declare (in ) float radians@0x9e45f0)\n"
7328 " (signature vec2\n"
7330 " (declare (in ) vec2 radians@0x9e49c0)\n"
7335 " (signature vec3\n"
7337 " (declare (in ) vec3 radians@0x9e4bb0)\n"
7342 " (signature vec4\n"
7344 " (declare (in ) vec4 radians@0x9e4da0)\n"
7352 " (signature float\n"
7354 " (declare (in ) float angle@0x9e4f90)\n"
7359 " (signature vec2\n"
7361 " (declare (in ) vec2 angle@0x9e5340)\n"
7366 " (signature vec3\n"
7368 " (declare (in ) vec3 angle@0x9e5520)\n"
7373 " (signature vec4\n"
7375 " (declare (in ) vec4 angle@0x9e5700)\n"
7383 " (signature float\n"
7385 " (declare (in ) float angle@0x9e58e0)\n"
7390 " (signature vec2\n"
7392 " (declare (in ) vec2 angle@0x9e5c90)\n"
7397 " (signature vec3\n"
7399 " (declare (in ) vec3 angle@0x9e5e70)\n"
7404 " (signature vec4\n"
7406 " (declare (in ) vec4 angle@0x9e6050)\n"
7414 " (signature float\n"
7416 " (declare (in ) float angle@0x9e6230)\n"
7421 " (signature vec2\n"
7423 " (declare (in ) vec2 angle@0x9e65e0)\n"
7428 " (signature vec3\n"
7430 " (declare (in ) vec3 angle@0x9e67c0)\n"
7435 " (signature vec4\n"
7437 " (declare (in ) vec4 angle@0x9e69a0)\n"
7445 " (signature float\n"
7447 " (declare (in ) float angle@0x9e6b80)\n"
7452 " (signature vec2\n"
7454 " (declare (in ) vec2 angle@0x9e6f30)\n"
7459 " (signature vec3\n"
7461 " (declare (in ) vec3 angle@0x9e7110)\n"
7466 " (signature vec4\n"
7468 " (declare (in ) vec4 angle@0x9e72f0)\n"
7476 " (signature float\n"
7478 " (declare (in ) float angle@0x9e74d0)\n"
7483 " (signature vec2\n"
7485 " (declare (in ) vec2 angle@0x9e7880)\n"
7490 " (signature vec3\n"
7492 " (declare (in ) vec3 angle@0x9e7a60)\n"
7497 " (signature vec4\n"
7499 " (declare (in ) vec4 angle@0x9e7c40)\n"
7507 " (signature float\n"
7509 " (declare (in ) float y@0x9e7e20)\n"
7510 " (declare (in ) float x@0x9e7f30)\n"
7515 " (signature vec2\n"
7517 " (declare (in ) vec2 y@0x9e82e0)\n"
7518 " (declare (in ) vec2 x@0x9e83f0)\n"
7523 " (signature vec3\n"
7525 " (declare (in ) vec3 y@0x9e85d0)\n"
7526 " (declare (in ) vec3 x@0x9e86e0)\n"
7531 " (signature vec4\n"
7533 " (declare (in ) vec4 y@0x9e88c0)\n"
7534 " (declare (in ) vec4 x@0x9e89d0)\n"
7539 " (signature float\n"
7541 " (declare (in ) float y_over_x@0x9e8bb0)\n"
7546 " (signature vec2\n"
7548 " (declare (in ) vec2 y_over_x@0x9e8da0)\n"
7553 " (signature vec3\n"
7555 " (declare (in ) vec3 y_over_x@0x9e8f90)\n"
7560 " (signature vec4\n"
7562 " (declare (in ) vec4 y_over_x@0x9e9180)\n"
7570 " (signature float\n"
7572 " (declare (in ) float x@0x9e9370)\n"
7573 " (declare (in ) float y@0x9e9480)\n"
7578 " (signature vec2\n"
7580 " (declare (in ) vec2 x@0x9e9830)\n"
7581 " (declare (in ) vec2 y@0x9e9940)\n"
7586 " (signature vec3\n"
7588 " (declare (in ) vec3 x@0x9e9b20)\n"
7589 " (declare (in ) vec3 y@0x9e9c30)\n"
7594 " (signature vec4\n"
7596 " (declare (in ) vec4 x@0x9e9e10)\n"
7597 " (declare (in ) vec4 y@0x9e9f20)\n"
7605 " (signature float\n"
7607 " (declare (in ) float x@0x9ea100)\n"
7612 " (signature vec2\n"
7614 " (declare (in ) vec2 x@0x9ea4b0)\n"
7619 " (signature vec3\n"
7621 " (declare (in ) vec3 x@0x9ea690)\n"
7626 " (signature vec4\n"
7628 " (declare (in ) vec4 x@0x9ea870)\n"
7636 " (signature float\n"
7638 " (declare (in ) float x@0x9eaa50)\n"
7643 " (signature vec2\n"
7645 " (declare (in ) vec2 x@0x9eae00)\n"
7650 " (signature vec3\n"
7652 " (declare (in ) vec3 x@0x9eafe0)\n"
7657 " (signature vec4\n"
7659 " (declare (in ) vec4 x@0x9eb1c0)\n"
7667 " (signature float\n"
7669 " (declare (in ) float x@0x9eb3a0)\n"
7674 " (signature vec2\n"
7676 " (declare (in ) vec2 x@0x9eb750)\n"
7681 " (signature vec3\n"
7683 " (declare (in ) vec3 x@0x9eb930)\n"
7688 " (signature vec4\n"
7690 " (declare (in ) vec4 x@0x9ebb10)\n"
7698 " (signature float\n"
7700 " (declare (in ) float x@0x9ebcf0)\n"
7705 " (signature vec2\n"
7707 " (declare (in ) vec2 x@0x9ec0a0)\n"
7712 " (signature vec3\n"
7714 " (declare (in ) vec3 x@0x9ec280)\n"
7719 " (signature vec4\n"
7721 " (declare (in ) vec4 x@0x9ec460)\n"
7729 " (signature float\n"
7731 " (declare (in ) float x@0x9ec640)\n"
7736 " (signature vec2\n"
7738 " (declare (in ) vec2 x@0x9ec9f0)\n"
7743 " (signature vec3\n"
7745 " (declare (in ) vec3 x@0x9ecbd0)\n"
7750 " (signature vec4\n"
7752 " (declare (in ) vec4 x@0x9ecdb0)\n"
7759 "(function inversesqrt\n"
7760 " (signature float\n"
7762 " (declare (in ) float x@0x9ecf90)\n"
7767 " (signature vec2\n"
7769 " (declare (in ) vec2 x@0x9ed350)\n"
7774 " (signature vec3\n"
7776 " (declare (in ) vec3 x@0x9ed530)\n"
7781 " (signature vec4\n"
7783 " (declare (in ) vec4 x@0x9ed710)\n"
7791 " (signature float\n"
7793 " (declare (in ) float x@0x9ed8f0)\n"
7798 " (signature vec2\n"
7800 " (declare (in ) vec2 x@0x9edca0)\n"
7805 " (signature vec3\n"
7807 " (declare (in ) vec3 x@0x9ede80)\n"
7812 " (signature vec4\n"
7814 " (declare (in ) vec4 x@0x9ee060)\n"
7822 " (signature float\n"
7824 " (declare (in ) float x@0x9ee240)\n"
7829 " (signature vec2\n"
7831 " (declare (in ) vec2 x@0x9ee5f0)\n"
7836 " (signature vec3\n"
7838 " (declare (in ) vec3 x@0x9ee7d0)\n"
7843 " (signature vec4\n"
7845 " (declare (in ) vec4 x@0x9ee9b0)\n"
7853 " (signature float\n"
7855 " (declare (in ) float x@0x9eeb90)\n"
7860 " (signature vec2\n"
7862 " (declare (in ) vec2 x@0x9eef40)\n"
7867 " (signature vec3\n"
7869 " (declare (in ) vec3 x@0x9ef120)\n"
7874 " (signature vec4\n"
7876 " (declare (in ) vec4 x@0x9ef300)\n"
7884 " (signature float\n"
7886 " (declare (in ) float x@0x9ef4e0)\n"
7891 " (signature vec2\n"
7893 " (declare (in ) vec2 x@0x9ef890)\n"
7898 " (signature vec3\n"
7900 " (declare (in ) vec3 x@0x9efa70)\n"
7905 " (signature vec4\n"
7907 " (declare (in ) vec4 x@0x9efc50)\n"
7915 " (signature float\n"
7917 " (declare (in ) float x@0x9efe30)\n"
7922 " (signature vec2\n"
7924 " (declare (in ) vec2 x@0x9f01e0)\n"
7929 " (signature vec3\n"
7931 " (declare (in ) vec3 x@0x9f03c0)\n"
7936 " (signature vec4\n"
7938 " (declare (in ) vec4 x@0x9f05a0)\n"
7946 " (signature float\n"
7948 " (declare (in ) float x@0x9f0780)\n"
7949 " (declare (in ) float y@0x9f0890)\n"
7954 " (signature vec2\n"
7956 " (declare (in ) vec2 x@0x9f0c40)\n"
7957 " (declare (in ) float y@0x9f0d50)\n"
7962 " (signature vec3\n"
7964 " (declare (in ) vec3 x@0x9f0f30)\n"
7965 " (declare (in ) float y@0x9f1040)\n"
7970 " (signature vec4\n"
7972 " (declare (in ) vec4 x@0x9f1220)\n"
7973 " (declare (in ) float y@0x9f1330)\n"
7978 " (signature vec2\n"
7980 " (declare (in ) vec2 x@0x9f1510)\n"
7981 " (declare (in ) vec2 y@0x9f1620)\n"
7986 " (signature vec3\n"
7988 " (declare (in ) vec3 x@0x9f1800)\n"
7989 " (declare (in ) vec3 y@0x9f1910)\n"
7994 " (signature vec4\n"
7996 " (declare (in ) vec4 x@0x9f1af0)\n"
7997 " (declare (in ) vec4 y@0x9f1c00)\n"
8005 " (signature float\n"
8007 " (declare (in ) float x@0x9f1de0)\n"
8008 " (declare (in ) float y@0x9f1ef0)\n"
8013 " (signature vec2\n"
8015 " (declare (in ) vec2 x@0x9f22a0)\n"
8016 " (declare (in ) vec2 y@0x9f23b0)\n"
8021 " (signature vec3\n"
8023 " (declare (in ) vec3 x@0x9f2590)\n"
8024 " (declare (in ) vec3 y@0x9f26a0)\n"
8029 " (signature vec4\n"
8031 " (declare (in ) vec4 x@0x9f2880)\n"
8032 " (declare (in ) vec4 y@0x9f2990)\n"
8037 " (signature vec2\n"
8039 " (declare (in ) vec2 x@0x9f2b70)\n"
8040 " (declare (in ) float y@0x9f2c80)\n"
8045 " (signature vec3\n"
8047 " (declare (in ) vec3 x@0x9f2e60)\n"
8048 " (declare (in ) float y@0x9f2f70)\n"
8053 " (signature vec4\n"
8055 " (declare (in ) vec4 x@0x9f3150)\n"
8056 " (declare (in ) float y@0x9f3260)\n"
8064 " (signature float\n"
8066 " (declare (in ) float x@0x9f3440)\n"
8067 " (declare (in ) float y@0x9f3550)\n"
8072 " (signature vec2\n"
8074 " (declare (in ) vec2 x@0x9f3900)\n"
8075 " (declare (in ) vec2 y@0x9f3a10)\n"
8080 " (signature vec3\n"
8082 " (declare (in ) vec3 x@0x9f3bf0)\n"
8083 " (declare (in ) vec3 y@0x9f3d00)\n"
8088 " (signature vec4\n"
8090 " (declare (in ) vec4 x@0x9f3ee0)\n"
8091 " (declare (in ) vec4 y@0x9f3ff0)\n"
8096 " (signature vec2\n"
8098 " (declare (in ) vec2 x@0x9f41d0)\n"
8099 " (declare (in ) float y@0x9f42e0)\n"
8104 " (signature vec3\n"
8106 " (declare (in ) vec3 x@0x9f44c0)\n"
8107 " (declare (in ) float y@0x9f45d0)\n"
8112 " (signature vec4\n"
8114 " (declare (in ) vec4 x@0x9f47b0)\n"
8115 " (declare (in ) float y@0x9f48c0)\n"
8123 " (signature float\n"
8125 " (declare (in ) float x@0x9f4aa0)\n"
8126 " (declare (in ) float minVal@0x9f4bb0)\n"
8127 " (declare (in ) float maxVal@0x9f4cc0)\n"
8132 " (signature vec2\n"
8134 " (declare (in ) vec2 x@0x9f5070)\n"
8135 " (declare (in ) vec2 minVal@0x9f5180)\n"
8136 " (declare (in ) vec2 maxVal@0x9f5290)\n"
8141 " (signature vec3\n"
8143 " (declare (in ) vec3 x@0x9f5470)\n"
8144 " (declare (in ) vec3 minVal@0x9f5580)\n"
8145 " (declare (in ) vec3 maxVal@0x9f5690)\n"
8150 " (signature vec4\n"
8152 " (declare (in ) vec4 x@0x9f5870)\n"
8153 " (declare (in ) vec4 minVal@0x9f5980)\n"
8154 " (declare (in ) vec4 maxVal@0x9f5a90)\n"
8159 " (signature vec2\n"
8161 " (declare (in ) vec2 x@0x9f5c70)\n"
8162 " (declare (in ) float minVal@0x9f5d80)\n"
8163 " (declare (in ) float maxVal@0x9f5e90)\n"
8168 " (signature vec3\n"
8170 " (declare (in ) vec3 x@0x9f6070)\n"
8171 " (declare (in ) float minVal@0x9f6180)\n"
8172 " (declare (in ) float maxVal@0x9f6290)\n"
8177 " (signature vec4\n"
8179 " (declare (in ) vec4 x@0x9f6470)\n"
8180 " (declare (in ) float minVal@0x9f6580)\n"
8181 " (declare (in ) float maxVal@0x9f6690)\n"
8189 " (signature float\n"
8191 " (declare (in ) float x@0x9f6870)\n"
8192 " (declare (in ) float y@0x9f6980)\n"
8193 " (declare (in ) float a@0x9f6a90)\n"
8198 " (signature vec2\n"
8200 " (declare (in ) vec2 x@0x9f6e40)\n"
8201 " (declare (in ) vec2 y@0x9f6f50)\n"
8202 " (declare (in ) vec2 a@0x9f7060)\n"
8207 " (signature vec3\n"
8209 " (declare (in ) vec3 x@0x9f7240)\n"
8210 " (declare (in ) vec3 y@0x9f7350)\n"
8211 " (declare (in ) vec3 a@0x9f7460)\n"
8216 " (signature vec4\n"
8218 " (declare (in ) vec4 x@0x9f7640)\n"
8219 " (declare (in ) vec4 y@0x9f7750)\n"
8220 " (declare (in ) vec4 a@0x9f7860)\n"
8225 " (signature vec2\n"
8227 " (declare (in ) vec2 x@0x9f7a40)\n"
8228 " (declare (in ) vec2 y@0x9f7b50)\n"
8229 " (declare (in ) float a@0x9f7c60)\n"
8234 " (signature vec3\n"
8236 " (declare (in ) vec3 x@0x9f7e40)\n"
8237 " (declare (in ) vec3 y@0x9f7f50)\n"
8238 " (declare (in ) float a@0x9f8060)\n"
8243 " (signature vec4\n"
8245 " (declare (in ) vec4 x@0x9f8240)\n"
8246 " (declare (in ) vec4 y@0x9f8350)\n"
8247 " (declare (in ) float a@0x9f8460)\n"
8255 " (signature float\n"
8257 " (declare (in ) float edge@0x9f8640)\n"
8258 " (declare (in ) float x@0x9f8750)\n"
8263 " (signature vec2\n"
8265 " (declare (in ) vec2 edge@0x9f8b00)\n"
8266 " (declare (in ) vec2 x@0x9f8c10)\n"
8271 " (signature vec3\n"
8273 " (declare (in ) vec3 edge@0x9f8df0)\n"
8274 " (declare (in ) vec3 x@0x9f8f00)\n"
8279 " (signature vec4\n"
8281 " (declare (in ) vec4 edge@0x9f90e0)\n"
8282 " (declare (in ) vec4 x@0x9f91f0)\n"
8287 " (signature vec2\n"
8289 " (declare (in ) float edge@0x9f93d0)\n"
8290 " (declare (in ) vec2 x@0x9f94e0)\n"
8295 " (signature vec3\n"
8297 " (declare (in ) float edge@0x9f96c0)\n"
8298 " (declare (in ) vec3 x@0x9f97d0)\n"
8303 " (signature vec4\n"
8305 " (declare (in ) float edge@0x9f99b0)\n"
8306 " (declare (in ) vec4 x@0x9f9ac0)\n"
8313 "(function smoothstep\n"
8314 " (signature float\n"
8316 " (declare (in ) float edge0@0x9f9ca0)\n"
8317 " (declare (in ) float edge1@0x9f9db0)\n"
8318 " (declare (in ) float x@0x9f9ec0)\n"
8323 " (signature vec2\n"
8325 " (declare (in ) vec2 edge0@0x9fa280)\n"
8326 " (declare (in ) vec2 edge1@0x9fa390)\n"
8327 " (declare (in ) vec2 x@0x9fa4a0)\n"
8332 " (signature vec3\n"
8334 " (declare (in ) vec3 edge0@0x9fa680)\n"
8335 " (declare (in ) vec3 edge1@0x9fa790)\n"
8336 " (declare (in ) vec3 x@0x9fa8a0)\n"
8341 " (signature vec4\n"
8343 " (declare (in ) vec4 edge0@0x9faa80)\n"
8344 " (declare (in ) vec4 edge1@0x9fab90)\n"
8345 " (declare (in ) vec4 x@0x9faca0)\n"
8350 " (signature vec2\n"
8352 " (declare (in ) float edge0@0x9fae80)\n"
8353 " (declare (in ) float edge1@0x9faf90)\n"
8354 " (declare (in ) vec2 x@0x9fb0a0)\n"
8359 " (signature vec3\n"
8361 " (declare (in ) float edge0@0x9fb280)\n"
8362 " (declare (in ) float edge1@0x9fb390)\n"
8363 " (declare (in ) vec3 x@0x9fb4a0)\n"
8368 " (signature vec4\n"
8370 " (declare (in ) float edge0@0x9fb680)\n"
8371 " (declare (in ) float edge1@0x9fb790)\n"
8372 " (declare (in ) vec4 x@0x9fb8a0)\n"
8379 "(function length\n"
8380 " (signature float\n"
8382 " (declare (in ) float x@0x9fba80)\n"
8387 " (signature float\n"
8389 " (declare (in ) vec2 x@0x9fbe30)\n"
8394 " (signature float\n"
8396 " (declare (in ) vec3 x@0x9fc010)\n"
8401 " (signature float\n"
8403 " (declare (in ) vec4 x@0x9fc1f0)\n"
8410 "(function distance\n"
8411 " (signature float\n"
8413 " (declare (in ) float p0@0x9fc3d0)\n"
8414 " (declare (in ) float p1@0x9fc4e0)\n"
8419 " (signature float\n"
8421 " (declare (in ) vec2 p0@0x9fc8a0)\n"
8422 " (declare (in ) vec2 p1@0x9fc9b0)\n"
8427 " (signature float\n"
8429 " (declare (in ) vec3 p0@0x9fcb90)\n"
8430 " (declare (in ) vec3 p1@0x9fcca0)\n"
8435 " (signature float\n"
8437 " (declare (in ) vec4 p0@0x9fce80)\n"
8438 " (declare (in ) vec4 p1@0x9fcf90)\n"
8446 " (signature float\n"
8448 " (declare (in ) float x@0x9fd170)\n"
8449 " (declare (in ) float y@0x9fd280)\n"
8454 " (signature float\n"
8456 " (declare (in ) vec2 x@0x9fd630)\n"
8457 " (declare (in ) vec2 y@0x9fd740)\n"
8462 " (signature float\n"
8464 " (declare (in ) vec3 x@0x9fd920)\n"
8465 " (declare (in ) vec3 y@0x9fda30)\n"
8470 " (signature float\n"
8472 " (declare (in ) vec4 x@0x9fdc10)\n"
8473 " (declare (in ) vec4 y@0x9fdd20)\n"
8481 " (signature vec3\n"
8483 " (declare (in ) vec3 x@0x9fdf00)\n"
8484 " (declare (in ) vec3 y@0x9fe010)\n"
8491 "(function normalize\n"
8492 " (signature float\n"
8494 " (declare (in ) float x@0x9fe3c0)\n"
8499 " (signature vec2\n"
8501 " (declare (in ) vec2 x@0x9fe780)\n"
8506 " (signature vec3\n"
8508 " (declare (in ) vec3 x@0x9fe960)\n"
8513 " (signature vec4\n"
8515 " (declare (in ) vec4 x@0x9feb40)\n"
8522 "(function ftransform\n"
8523 " (signature vec4\n"
8531 "(function faceforward\n"
8532 " (signature float\n"
8534 " (declare (in ) float N@0x9fefd0)\n"
8535 " (declare (in ) float I@0x9ff0e0)\n"
8536 " (declare (in ) float Nref@0x9ff1f0)\n"
8541 " (signature vec2\n"
8543 " (declare (in ) vec2 N@0x9ff5b0)\n"
8544 " (declare (in ) vec2 I@0x9ff6c0)\n"
8545 " (declare (in ) vec2 Nref@0x9ff7d0)\n"
8550 " (signature vec3\n"
8552 " (declare (in ) vec3 N@0x9ff9b0)\n"
8553 " (declare (in ) vec3 I@0x9ffac0)\n"
8554 " (declare (in ) vec3 Nref@0x9ffbd0)\n"
8559 " (signature vec4\n"
8561 " (declare (in ) vec4 N@0x9ffdb0)\n"
8562 " (declare (in ) vec4 I@0x9ffec0)\n"
8563 " (declare (in ) vec4 Nref@0x9fffd0)\n"
8570 "(function reflect\n"
8571 " (signature float\n"
8573 " (declare (in ) float I@0xa001b0)\n"
8574 " (declare (in ) float N@0xa002c0)\n"
8579 " (signature vec2\n"
8581 " (declare (in ) vec2 I@0xa00680)\n"
8582 " (declare (in ) vec2 N@0xa00790)\n"
8587 " (signature vec3\n"
8589 " (declare (in ) vec3 I@0xa00970)\n"
8590 " (declare (in ) vec3 N@0xa00a80)\n"
8595 " (signature vec4\n"
8597 " (declare (in ) vec4 I@0xa00c60)\n"
8598 " (declare (in ) vec4 N@0xa00d70)\n"
8605 "(function refract\n"
8606 " (signature float\n"
8608 " (declare (in ) float I@0xa00f50)\n"
8609 " (declare (in ) float N@0xa01060)\n"
8610 " (declare (in ) float eta@0xa01170)\n"
8615 " (signature vec2\n"
8617 " (declare (in ) vec2 I@0xa01530)\n"
8618 " (declare (in ) vec2 N@0xa01640)\n"
8619 " (declare (in ) float eta@0xa01750)\n"
8624 " (signature vec3\n"
8626 " (declare (in ) vec3 I@0xa01930)\n"
8627 " (declare (in ) vec3 N@0xa01a40)\n"
8628 " (declare (in ) float eta@0xa01b50)\n"
8633 " (signature vec4\n"
8635 " (declare (in ) vec4 I@0xa01d30)\n"
8636 " (declare (in ) vec4 N@0xa01e40)\n"
8637 " (declare (in ) float eta@0xa01f50)\n"
8644 "(function matrixCompMult\n"
8645 " (signature mat2\n"
8647 " (declare (in ) mat2 x@0xa02130)\n"
8648 " (declare (in ) mat2 y@0xa02240)\n"
8653 " (signature mat3\n"
8655 " (declare (in ) mat3 x@0xa02600)\n"
8656 " (declare (in ) mat3 y@0xa02710)\n"
8661 " (signature mat4\n"
8663 " (declare (in ) mat4 x@0xa028f0)\n"
8664 " (declare (in ) mat4 y@0xa02a00)\n"
8671 "(function lessThan\n"
8672 " (signature bvec2\n"
8674 " (declare (in ) vec2 x@0xa02be0)\n"
8675 " (declare (in ) vec2 y@0xa02cf0)\n"
8680 " (signature bvec3\n"
8682 " (declare (in ) vec3 x@0xa030b0)\n"
8683 " (declare (in ) vec3 y@0xa031c0)\n"
8688 " (signature bvec4\n"
8690 " (declare (in ) vec4 x@0xa033a0)\n"
8691 " (declare (in ) vec4 y@0xa034b0)\n"
8696 " (signature bvec2\n"
8698 " (declare (in ) ivec2 x@0xa03690)\n"
8699 " (declare (in ) ivec2 y@0xa037a0)\n"
8704 " (signature bvec3\n"
8706 " (declare (in ) ivec3 x@0xa03980)\n"
8707 " (declare (in ) ivec3 y@0xa03a90)\n"
8712 " (signature bvec4\n"
8714 " (declare (in ) ivec4 x@0xa03c70)\n"
8715 " (declare (in ) ivec4 y@0xa03d80)\n"
8722 "(function lessThanEqual\n"
8723 " (signature bvec2\n"
8725 " (declare (in ) vec2 x@0xa03f60)\n"
8726 " (declare (in ) vec2 y@0xa04070)\n"
8731 " (signature bvec3\n"
8733 " (declare (in ) vec3 x@0xa04430)\n"
8734 " (declare (in ) vec3 y@0xa04540)\n"
8739 " (signature bvec4\n"
8741 " (declare (in ) vec4 x@0xa04720)\n"
8742 " (declare (in ) vec4 y@0xa04830)\n"
8747 " (signature bvec2\n"
8749 " (declare (in ) ivec2 x@0xa04a10)\n"
8750 " (declare (in ) ivec2 y@0xa04b20)\n"
8755 " (signature bvec3\n"
8757 " (declare (in ) ivec3 x@0xa04d00)\n"
8758 " (declare (in ) ivec3 y@0xa04e10)\n"
8763 " (signature bvec4\n"
8765 " (declare (in ) ivec4 x@0xa04ff0)\n"
8766 " (declare (in ) ivec4 y@0xa05100)\n"
8773 "(function greaterThan\n"
8774 " (signature bvec2\n"
8776 " (declare (in ) vec2 x@0xa052e0)\n"
8777 " (declare (in ) vec2 y@0xa053f0)\n"
8782 " (signature bvec3\n"
8784 " (declare (in ) vec3 x@0xa057b0)\n"
8785 " (declare (in ) vec3 y@0xa058c0)\n"
8790 " (signature bvec4\n"
8792 " (declare (in ) vec4 x@0xa05aa0)\n"
8793 " (declare (in ) vec4 y@0xa05bb0)\n"
8798 " (signature bvec2\n"
8800 " (declare (in ) ivec2 x@0xa05d90)\n"
8801 " (declare (in ) ivec2 y@0xa05ea0)\n"
8806 " (signature bvec3\n"
8808 " (declare (in ) ivec3 x@0xa06080)\n"
8809 " (declare (in ) ivec3 y@0xa06190)\n"
8814 " (signature bvec4\n"
8816 " (declare (in ) ivec4 x@0xa06370)\n"
8817 " (declare (in ) ivec4 y@0xa06480)\n"
8824 "(function greaterThanEqual\n"
8825 " (signature bvec2\n"
8827 " (declare (in ) vec2 x@0xa06660)\n"
8828 " (declare (in ) vec2 y@0xa06770)\n"
8833 " (signature bvec3\n"
8835 " (declare (in ) vec3 x@0xa06b30)\n"
8836 " (declare (in ) vec3 y@0xa06c40)\n"
8841 " (signature bvec4\n"
8843 " (declare (in ) vec4 x@0xa06e20)\n"
8844 " (declare (in ) vec4 y@0xa06f30)\n"
8849 " (signature bvec2\n"
8851 " (declare (in ) ivec2 x@0xa07110)\n"
8852 " (declare (in ) ivec2 y@0xa07220)\n"
8857 " (signature bvec3\n"
8859 " (declare (in ) ivec3 x@0xa07400)\n"
8860 " (declare (in ) ivec3 y@0xa07510)\n"
8865 " (signature bvec4\n"
8867 " (declare (in ) ivec4 x@0xa076f0)\n"
8868 " (declare (in ) ivec4 y@0xa07800)\n"
8876 " (signature bvec2\n"
8878 " (declare (in ) vec2 x@0xa079e0)\n"
8879 " (declare (in ) vec2 y@0xa07af0)\n"
8884 " (signature bvec3\n"
8886 " (declare (in ) vec3 x@0xa07ea0)\n"
8887 " (declare (in ) vec3 y@0xa07fb0)\n"
8892 " (signature bvec4\n"
8894 " (declare (in ) vec4 x@0xa08190)\n"
8895 " (declare (in ) vec4 y@0xa082a0)\n"
8900 " (signature bvec2\n"
8902 " (declare (in ) ivec2 x@0xa08480)\n"
8903 " (declare (in ) ivec2 y@0xa08590)\n"
8908 " (signature bvec3\n"
8910 " (declare (in ) ivec3 x@0xa08770)\n"
8911 " (declare (in ) ivec3 y@0xa08880)\n"
8916 " (signature bvec4\n"
8918 " (declare (in ) ivec4 x@0xa08a60)\n"
8919 " (declare (in ) ivec4 y@0xa08b70)\n"
8924 " (signature bvec2\n"
8926 " (declare (in ) bvec2 x@0xa08d50)\n"
8927 " (declare (in ) bvec2 y@0xa08e60)\n"
8932 " (signature bvec3\n"
8934 " (declare (in ) bvec3 x@0xa09040)\n"
8935 " (declare (in ) bvec3 y@0xa09150)\n"
8940 " (signature bvec4\n"
8942 " (declare (in ) bvec4 x@0xa09330)\n"
8943 " (declare (in ) bvec4 y@0xa09440)\n"
8950 "(function notEqual\n"
8951 " (signature bvec2\n"
8953 " (declare (in ) vec2 x@0xa09620)\n"
8954 " (declare (in ) vec2 y@0xa09730)\n"
8959 " (signature bvec3\n"
8961 " (declare (in ) vec3 x@0xa09af0)\n"
8962 " (declare (in ) vec3 y@0xa09c00)\n"
8967 " (signature bvec4\n"
8969 " (declare (in ) vec4 x@0xa09de0)\n"
8970 " (declare (in ) vec4 y@0xa09ef0)\n"
8975 " (signature bvec2\n"
8977 " (declare (in ) ivec2 x@0xa0a0d0)\n"
8978 " (declare (in ) ivec2 y@0xa0a1e0)\n"
8983 " (signature bvec3\n"
8985 " (declare (in ) ivec3 x@0xa0a3c0)\n"
8986 " (declare (in ) ivec3 y@0xa0a4d0)\n"
8991 " (signature bvec4\n"
8993 " (declare (in ) ivec4 x@0xa0a6b0)\n"
8994 " (declare (in ) ivec4 y@0xa0a7c0)\n"
8999 " (signature bvec2\n"
9001 " (declare (in ) bvec2 x@0xa0a9a0)\n"
9002 " (declare (in ) bvec2 y@0xa0aab0)\n"
9007 " (signature bvec3\n"
9009 " (declare (in ) bvec3 x@0xa0ac90)\n"
9010 " (declare (in ) bvec3 y@0xa0ada0)\n"
9015 " (signature bvec4\n"
9017 " (declare (in ) bvec4 x@0xa0af80)\n"
9018 " (declare (in ) bvec4 y@0xa0b090)\n"
9026 " (signature bool\n"
9028 " (declare (in ) bvec2 x@0xa0b270)\n"
9033 " (signature bool\n"
9035 " (declare (in ) bvec3 x@0xa0b620)\n"
9040 " (signature bool\n"
9042 " (declare (in ) bvec4 x@0xa0b800)\n"
9050 " (signature bool\n"
9052 " (declare (in ) bvec2 x@0xa0b9e0)\n"
9057 " (signature bool\n"
9059 " (declare (in ) bvec3 x@0xa0bd90)\n"
9064 " (signature bool\n"
9066 " (declare (in ) bvec4 x@0xa0bf70)\n"
9074 " (signature bvec2\n"
9076 " (declare (in ) bvec2 x@0xa0c150)\n"
9081 " (signature bvec3\n"
9083 " (declare (in ) bvec3 x@0xa0c500)\n"
9088 " (signature bvec4\n"
9090 " (declare (in ) bvec4 x@0xa0c6e0)\n"
9097 "(function texture1D\n"
9098 " (signature vec4\n"
9100 " (declare (in ) sampler1D sampler@0xa0c8c0)\n"
9101 " (declare (in ) float coord@0xa0c9e0)\n"
9108 "(function texture1DProj\n"
9109 " (signature vec4\n"
9111 " (declare (in ) sampler1D sampler@0xa0cda0)\n"
9112 " (declare (in ) vec2 coord@0xa0cec0)\n"
9117 " (signature vec4\n"
9119 " (declare (in ) sampler1D sampler@0xa0d280)\n"
9120 " (declare (in ) vec4 coord@0xa0d3a0)\n"
9127 "(function texture1DLod\n"
9128 " (signature vec4\n"
9130 " (declare (in ) sampler1D sampler@0xa0d580)\n"
9131 " (declare (in ) float coord@0xa0d6a0)\n"
9132 " (declare (in ) float lod@0xa0d7b0)\n"
9139 "(function texture1DProjLod\n"
9140 " (signature vec4\n"
9142 " (declare (in ) sampler1D sampler@0xa0db70)\n"
9143 " (declare (in ) vec2 coord@0xa0dc90)\n"
9144 " (declare (in ) float lod@0xa0dda0)\n"
9149 " (signature vec4\n"
9151 " (declare (in ) sampler1D sampler@0xa0e160)\n"
9152 " (declare (in ) vec4 coord@0xa0e280)\n"
9153 " (declare (in ) float lod@0xa0e390)\n"
9160 "(function texture2D\n"
9161 " (signature vec4\n"
9163 " (declare (in ) sampler2D sampler@0xa0e570)\n"
9164 " (declare (in ) vec2 coord@0xa0e690)\n"
9171 "(function texture2DProj\n"
9172 " (signature vec4\n"
9174 " (declare (in ) sampler2D sampler@0xa0ea50)\n"
9175 " (declare (in ) vec3 coord@0xa0eb70)\n"
9180 " (signature vec4\n"
9182 " (declare (in ) sampler2D sampler@0xa0ef30)\n"
9183 " (declare (in ) vec4 coord@0xa0f050)\n"
9190 "(function texture2DLod\n"
9191 " (signature vec4\n"
9193 " (declare (in ) sampler2D sampler@0xa0f230)\n"
9194 " (declare (in ) vec2 coord@0xa0f350)\n"
9195 " (declare (in ) float lod@0xa0f460)\n"
9202 "(function texture2DProjLod\n"
9203 " (signature vec4\n"
9205 " (declare (in ) sampler2D sampler@0xa0f820)\n"
9206 " (declare (in ) vec3 coord@0xa0f940)\n"
9207 " (declare (in ) float lod@0xa0fa50)\n"
9212 " (signature vec4\n"
9214 " (declare (in ) sampler2D sampler@0xa0fe10)\n"
9215 " (declare (in ) vec4 coord@0xa0ff30)\n"
9216 " (declare (in ) float lod@0xa10040)\n"
9223 "(function texture3D\n"
9224 " (signature vec4\n"
9226 " (declare (in ) sampler3D sampler@0xa10220)\n"
9227 " (declare (in ) vec3 coord@0xa10340)\n"
9234 "(function texture3DProj\n"
9235 " (signature vec4\n"
9237 " (declare (in ) sampler3D sampler@0xa10700)\n"
9238 " (declare (in ) vec4 coord@0xa10820)\n"
9245 "(function texture3DLod\n"
9246 " (signature vec4\n"
9248 " (declare (in ) sampler3D sampler@0xa10be0)\n"
9249 " (declare (in ) vec3 coord@0xa10d00)\n"
9250 " (declare (in ) float lod@0xa10e10)\n"
9257 "(function texture3DProjLod\n"
9258 " (signature vec4\n"
9260 " (declare (in ) sampler3D sampler@0xa111d0)\n"
9261 " (declare (in ) vec4 coord@0xa112f0)\n"
9262 " (declare (in ) float lod@0xa11400)\n"
9269 "(function textureCube\n"
9270 " (signature vec4\n"
9272 " (declare (in ) samplerCube sampler@0xa117c0)\n"
9273 " (declare (in ) vec3 coord@0xa118e0)\n"
9280 "(function textureCubeLod\n"
9281 " (signature vec4\n"
9283 " (declare (in ) samplerCube sampler@0xa11ca0)\n"
9284 " (declare (in ) vec3 coord@0xa11dc0)\n"
9285 " (declare (in ) float lod@0xa11ed0)\n"
9292 "(function shadow1D\n"
9293 " (signature vec4\n"
9295 " (declare (in ) sampler1DShadow sampler@0xa12290)\n"
9296 " (declare (in ) vec3 coord@0xa123b0)\n"
9303 "(function shadow2D\n"
9304 " (signature vec4\n"
9306 " (declare (in ) sampler2DShadow sampler@0xa12770)\n"
9307 " (declare (in ) vec3 coord@0xa12890)\n"
9314 "(function shadow1DProj\n"
9315 " (signature vec4\n"
9317 " (declare (in ) sampler1DShadow sampler@0xa12c50)\n"
9318 " (declare (in ) vec4 coord@0xa12d70)\n"
9325 "(function shadow2DProj\n"
9326 " (signature vec4\n"
9328 " (declare (in ) sampler2DShadow sampler@0xa13130)\n"
9329 " (declare (in ) vec4 coord@0xa13250)\n"
9336 "(function shadow1DLod\n"
9337 " (signature vec4\n"
9339 " (declare (in ) sampler1DShadow sampler@0xa13610)\n"
9340 " (declare (in ) vec3 coord@0xa13730)\n"
9341 " (declare (in ) float lod@0xa13840)\n"
9348 "(function shadow2DLod\n"
9349 " (signature vec4\n"
9351 " (declare (in ) sampler2DShadow sampler@0xa13c00)\n"
9352 " (declare (in ) vec3 coord@0xa13d20)\n"
9353 " (declare (in ) float lod@0xa13e30)\n"
9360 "(function shadow1DProjLod\n"
9361 " (signature vec4\n"
9363 " (declare (in ) sampler1DShadow sampler@0xa141f0)\n"
9364 " (declare (in ) vec4 coord@0xa14310)\n"
9365 " (declare (in ) float lod@0xa14420)\n"
9372 "(function shadow2DProjLod\n"
9373 " (signature vec4\n"
9375 " (declare (in ) sampler2DShadow sampler@0xa147e0)\n"
9376 " (declare (in ) vec4 coord@0xa14900)\n"
9377 " (declare (in ) float lod@0xa14a10)\n"
9384 "(function noise1\n"
9385 " (signature float\n"
9387 " (declare (in ) float x@0xa14dd0)\n"
9392 " (signature float\n"
9394 " (declare (in ) vec2 x@0xa15180)\n"
9399 " (signature float\n"
9401 " (declare (in ) vec3 x@0xa15360)\n"
9406 " (signature float\n"
9408 " (declare (in ) vec4 x@0xa15540)\n"
9415 "(function noise2\n"
9416 " (signature vec2\n"
9418 " (declare (in ) float x@0xa15720)\n"
9423 " (signature vec2\n"
9425 " (declare (in ) vec2 x@0xa15ad0)\n"
9430 " (signature vec2\n"
9432 " (declare (in ) vec3 x@0xa15cb0)\n"
9437 " (signature vec2\n"
9439 " (declare (in ) vec4 x@0xa15e90)\n"
9446 "(function noise3\n"
9447 " (signature vec3\n"
9449 " (declare (in ) float x@0xa16070)\n"
9454 " (signature vec3\n"
9456 " (declare (in ) vec2 x@0xa16420)\n"
9461 " (signature vec3\n"
9463 " (declare (in ) vec3 x@0xa16600)\n"
9468 " (signature vec3\n"
9470 " (declare (in ) vec4 x@0xa167e0)\n"
9477 "(function noise4\n"
9478 " (signature vec4\n"
9480 " (declare (in ) float x@0xa169c0)\n"
9485 " (signature vec4\n"
9487 " (declare (in ) vec2 x@0xa16d70)\n"
9492 " (signature vec4\n"
9494 " (declare (in ) vec3 x@0xa16f50)\n"
9499 " (signature vec4\n"
9501 " (declare (in ) vec4 x@0xa17130)\n"
9511 static const char *functions_for_110_vert
[] = {
9513 builtin_matrixCompMult
,
9514 builtin_shadow2DProjLod
,
9516 builtin_texture3DProjLod
,
9518 builtin_texture2DProj
,
9519 builtin_greaterThanEqual
,
9521 builtin_texture3DProj
,
9524 builtin_faceforward
,
9526 builtin_shadow2DProj
,
9527 builtin_shadow1DProjLod
,
9531 builtin_texture1DProj
,
9538 builtin_texture3DLod
,
9542 builtin_shadow1DLod
,
9546 builtin_shadow2DLod
,
9552 builtin_lessThanEqual
,
9553 builtin_shadow1DProj
,
9556 builtin_textureCubeLod
,
9559 builtin_greaterThan
,
9562 builtin_texture2DProjLod
,
9563 builtin_inversesqrt
,
9572 builtin_texture2DLod
,
9576 builtin_texture1DProjLod
,
9577 builtin_textureCube
,
9579 builtin_texture1DLod
,
9585 static const char *prototypes_for_110_frag
=
9587 "(function radians\n"
9588 " (signature float\n"
9590 " (declare (in ) float degrees@0x151ee40)\n"
9595 " (signature vec2\n"
9597 " (declare (in ) vec2 degrees@0x151f210)\n"
9602 " (signature vec3\n"
9604 " (declare (in ) vec3 degrees@0x151f400)\n"
9609 " (signature vec4\n"
9611 " (declare (in ) vec4 degrees@0x151f5f0)\n"
9618 "(function degrees\n"
9619 " (signature float\n"
9621 " (declare (in ) float radians@0x151f7e0)\n"
9626 " (signature vec2\n"
9628 " (declare (in ) vec2 radians@0x151fbb0)\n"
9633 " (signature vec3\n"
9635 " (declare (in ) vec3 radians@0x151fda0)\n"
9640 " (signature vec4\n"
9642 " (declare (in ) vec4 radians@0x151ff90)\n"
9650 " (signature float\n"
9652 " (declare (in ) float angle@0x1520180)\n"
9657 " (signature vec2\n"
9659 " (declare (in ) vec2 angle@0x1520530)\n"
9664 " (signature vec3\n"
9666 " (declare (in ) vec3 angle@0x1520710)\n"
9671 " (signature vec4\n"
9673 " (declare (in ) vec4 angle@0x15208f0)\n"
9681 " (signature float\n"
9683 " (declare (in ) float angle@0x1520ad0)\n"
9688 " (signature vec2\n"
9690 " (declare (in ) vec2 angle@0x1520e80)\n"
9695 " (signature vec3\n"
9697 " (declare (in ) vec3 angle@0x1521060)\n"
9702 " (signature vec4\n"
9704 " (declare (in ) vec4 angle@0x1521240)\n"
9712 " (signature float\n"
9714 " (declare (in ) float angle@0x1521420)\n"
9719 " (signature vec2\n"
9721 " (declare (in ) vec2 angle@0x15217d0)\n"
9726 " (signature vec3\n"
9728 " (declare (in ) vec3 angle@0x15219b0)\n"
9733 " (signature vec4\n"
9735 " (declare (in ) vec4 angle@0x1521b90)\n"
9743 " (signature float\n"
9745 " (declare (in ) float angle@0x1521d70)\n"
9750 " (signature vec2\n"
9752 " (declare (in ) vec2 angle@0x1522120)\n"
9757 " (signature vec3\n"
9759 " (declare (in ) vec3 angle@0x1522300)\n"
9764 " (signature vec4\n"
9766 " (declare (in ) vec4 angle@0x15224e0)\n"
9774 " (signature float\n"
9776 " (declare (in ) float angle@0x15226c0)\n"
9781 " (signature vec2\n"
9783 " (declare (in ) vec2 angle@0x1522a70)\n"
9788 " (signature vec3\n"
9790 " (declare (in ) vec3 angle@0x1522c50)\n"
9795 " (signature vec4\n"
9797 " (declare (in ) vec4 angle@0x1522e30)\n"
9805 " (signature float\n"
9807 " (declare (in ) float y@0x1523010)\n"
9808 " (declare (in ) float x@0x1523120)\n"
9813 " (signature vec2\n"
9815 " (declare (in ) vec2 y@0x15234d0)\n"
9816 " (declare (in ) vec2 x@0x15235e0)\n"
9821 " (signature vec3\n"
9823 " (declare (in ) vec3 y@0x15237c0)\n"
9824 " (declare (in ) vec3 x@0x15238d0)\n"
9829 " (signature vec4\n"
9831 " (declare (in ) vec4 y@0x1523ab0)\n"
9832 " (declare (in ) vec4 x@0x1523bc0)\n"
9837 " (signature float\n"
9839 " (declare (in ) float y_over_x@0x1523da0)\n"
9844 " (signature vec2\n"
9846 " (declare (in ) vec2 y_over_x@0x1523f90)\n"
9851 " (signature vec3\n"
9853 " (declare (in ) vec3 y_over_x@0x1524180)\n"
9858 " (signature vec4\n"
9860 " (declare (in ) vec4 y_over_x@0x1524370)\n"
9868 " (signature float\n"
9870 " (declare (in ) float x@0x1524560)\n"
9871 " (declare (in ) float y@0x1524670)\n"
9876 " (signature vec2\n"
9878 " (declare (in ) vec2 x@0x1524a20)\n"
9879 " (declare (in ) vec2 y@0x1524b30)\n"
9884 " (signature vec3\n"
9886 " (declare (in ) vec3 x@0x1524d10)\n"
9887 " (declare (in ) vec3 y@0x1524e20)\n"
9892 " (signature vec4\n"
9894 " (declare (in ) vec4 x@0x1525000)\n"
9895 " (declare (in ) vec4 y@0x1525110)\n"
9903 " (signature float\n"
9905 " (declare (in ) float x@0x15252f0)\n"
9910 " (signature vec2\n"
9912 " (declare (in ) vec2 x@0x15256a0)\n"
9917 " (signature vec3\n"
9919 " (declare (in ) vec3 x@0x1525880)\n"
9924 " (signature vec4\n"
9926 " (declare (in ) vec4 x@0x1525a60)\n"
9934 " (signature float\n"
9936 " (declare (in ) float x@0x1525c40)\n"
9941 " (signature vec2\n"
9943 " (declare (in ) vec2 x@0x1525ff0)\n"
9948 " (signature vec3\n"
9950 " (declare (in ) vec3 x@0x15261d0)\n"
9955 " (signature vec4\n"
9957 " (declare (in ) vec4 x@0x15263b0)\n"
9965 " (signature float\n"
9967 " (declare (in ) float x@0x1526590)\n"
9972 " (signature vec2\n"
9974 " (declare (in ) vec2 x@0x1526940)\n"
9979 " (signature vec3\n"
9981 " (declare (in ) vec3 x@0x1526b20)\n"
9986 " (signature vec4\n"
9988 " (declare (in ) vec4 x@0x1526d00)\n"
9996 " (signature float\n"
9998 " (declare (in ) float x@0x1526ee0)\n"
10003 " (signature vec2\n"
10005 " (declare (in ) vec2 x@0x1527290)\n"
10010 " (signature vec3\n"
10012 " (declare (in ) vec3 x@0x1527470)\n"
10017 " (signature vec4\n"
10019 " (declare (in ) vec4 x@0x1527650)\n"
10027 " (signature float\n"
10029 " (declare (in ) float x@0x1527830)\n"
10034 " (signature vec2\n"
10036 " (declare (in ) vec2 x@0x1527be0)\n"
10041 " (signature vec3\n"
10043 " (declare (in ) vec3 x@0x1527dc0)\n"
10048 " (signature vec4\n"
10050 " (declare (in ) vec4 x@0x1527fa0)\n"
10057 "(function inversesqrt\n"
10058 " (signature float\n"
10060 " (declare (in ) float x@0x1528180)\n"
10065 " (signature vec2\n"
10067 " (declare (in ) vec2 x@0x1528540)\n"
10072 " (signature vec3\n"
10074 " (declare (in ) vec3 x@0x1528720)\n"
10079 " (signature vec4\n"
10081 " (declare (in ) vec4 x@0x1528900)\n"
10089 " (signature float\n"
10091 " (declare (in ) float x@0x1528ae0)\n"
10096 " (signature vec2\n"
10098 " (declare (in ) vec2 x@0x1528e90)\n"
10103 " (signature vec3\n"
10105 " (declare (in ) vec3 x@0x1529070)\n"
10110 " (signature vec4\n"
10112 " (declare (in ) vec4 x@0x1529250)\n"
10120 " (signature float\n"
10122 " (declare (in ) float x@0x1529430)\n"
10127 " (signature vec2\n"
10129 " (declare (in ) vec2 x@0x15297e0)\n"
10134 " (signature vec3\n"
10136 " (declare (in ) vec3 x@0x15299c0)\n"
10141 " (signature vec4\n"
10143 " (declare (in ) vec4 x@0x1529ba0)\n"
10150 "(function floor\n"
10151 " (signature float\n"
10153 " (declare (in ) float x@0x1529d80)\n"
10158 " (signature vec2\n"
10160 " (declare (in ) vec2 x@0x152a130)\n"
10165 " (signature vec3\n"
10167 " (declare (in ) vec3 x@0x152a310)\n"
10172 " (signature vec4\n"
10174 " (declare (in ) vec4 x@0x152a4f0)\n"
10182 " (signature float\n"
10184 " (declare (in ) float x@0x152a6d0)\n"
10189 " (signature vec2\n"
10191 " (declare (in ) vec2 x@0x152aa80)\n"
10196 " (signature vec3\n"
10198 " (declare (in ) vec3 x@0x152ac60)\n"
10203 " (signature vec4\n"
10205 " (declare (in ) vec4 x@0x152ae40)\n"
10212 "(function fract\n"
10213 " (signature float\n"
10215 " (declare (in ) float x@0x152b020)\n"
10220 " (signature vec2\n"
10222 " (declare (in ) vec2 x@0x152b3d0)\n"
10227 " (signature vec3\n"
10229 " (declare (in ) vec3 x@0x152b5b0)\n"
10234 " (signature vec4\n"
10236 " (declare (in ) vec4 x@0x152b790)\n"
10244 " (signature float\n"
10246 " (declare (in ) float x@0x152b970)\n"
10247 " (declare (in ) float y@0x152ba80)\n"
10252 " (signature vec2\n"
10254 " (declare (in ) vec2 x@0x152be30)\n"
10255 " (declare (in ) float y@0x152bf40)\n"
10260 " (signature vec3\n"
10262 " (declare (in ) vec3 x@0x152c120)\n"
10263 " (declare (in ) float y@0x152c230)\n"
10268 " (signature vec4\n"
10270 " (declare (in ) vec4 x@0x152c410)\n"
10271 " (declare (in ) float y@0x152c520)\n"
10276 " (signature vec2\n"
10278 " (declare (in ) vec2 x@0x152c700)\n"
10279 " (declare (in ) vec2 y@0x152c810)\n"
10284 " (signature vec3\n"
10286 " (declare (in ) vec3 x@0x152c9f0)\n"
10287 " (declare (in ) vec3 y@0x152cb00)\n"
10292 " (signature vec4\n"
10294 " (declare (in ) vec4 x@0x152cce0)\n"
10295 " (declare (in ) vec4 y@0x152cdf0)\n"
10303 " (signature float\n"
10305 " (declare (in ) float x@0x152cfd0)\n"
10306 " (declare (in ) float y@0x152d0e0)\n"
10311 " (signature vec2\n"
10313 " (declare (in ) vec2 x@0x152d490)\n"
10314 " (declare (in ) vec2 y@0x152d5a0)\n"
10319 " (signature vec3\n"
10321 " (declare (in ) vec3 x@0x152d780)\n"
10322 " (declare (in ) vec3 y@0x152d890)\n"
10327 " (signature vec4\n"
10329 " (declare (in ) vec4 x@0x152da70)\n"
10330 " (declare (in ) vec4 y@0x152db80)\n"
10335 " (signature vec2\n"
10337 " (declare (in ) vec2 x@0x152dd60)\n"
10338 " (declare (in ) float y@0x152de70)\n"
10343 " (signature vec3\n"
10345 " (declare (in ) vec3 x@0x152e050)\n"
10346 " (declare (in ) float y@0x152e160)\n"
10351 " (signature vec4\n"
10353 " (declare (in ) vec4 x@0x152e340)\n"
10354 " (declare (in ) float y@0x152e450)\n"
10362 " (signature float\n"
10364 " (declare (in ) float x@0x152e630)\n"
10365 " (declare (in ) float y@0x152e740)\n"
10370 " (signature vec2\n"
10372 " (declare (in ) vec2 x@0x152eaf0)\n"
10373 " (declare (in ) vec2 y@0x152ec00)\n"
10378 " (signature vec3\n"
10380 " (declare (in ) vec3 x@0x152ede0)\n"
10381 " (declare (in ) vec3 y@0x152eef0)\n"
10386 " (signature vec4\n"
10388 " (declare (in ) vec4 x@0x152f0d0)\n"
10389 " (declare (in ) vec4 y@0x152f1e0)\n"
10394 " (signature vec2\n"
10396 " (declare (in ) vec2 x@0x152f3c0)\n"
10397 " (declare (in ) float y@0x152f4d0)\n"
10402 " (signature vec3\n"
10404 " (declare (in ) vec3 x@0x152f6b0)\n"
10405 " (declare (in ) float y@0x152f7c0)\n"
10410 " (signature vec4\n"
10412 " (declare (in ) vec4 x@0x152f9a0)\n"
10413 " (declare (in ) float y@0x152fab0)\n"
10420 "(function clamp\n"
10421 " (signature float\n"
10423 " (declare (in ) float x@0x152fc90)\n"
10424 " (declare (in ) float minVal@0x152fda0)\n"
10425 " (declare (in ) float maxVal@0x152feb0)\n"
10430 " (signature vec2\n"
10432 " (declare (in ) vec2 x@0x1530260)\n"
10433 " (declare (in ) vec2 minVal@0x1530370)\n"
10434 " (declare (in ) vec2 maxVal@0x1530480)\n"
10439 " (signature vec3\n"
10441 " (declare (in ) vec3 x@0x1530660)\n"
10442 " (declare (in ) vec3 minVal@0x1530770)\n"
10443 " (declare (in ) vec3 maxVal@0x1530880)\n"
10448 " (signature vec4\n"
10450 " (declare (in ) vec4 x@0x1530a60)\n"
10451 " (declare (in ) vec4 minVal@0x1530b70)\n"
10452 " (declare (in ) vec4 maxVal@0x1530c80)\n"
10457 " (signature vec2\n"
10459 " (declare (in ) vec2 x@0x1530e60)\n"
10460 " (declare (in ) float minVal@0x1530f70)\n"
10461 " (declare (in ) float maxVal@0x1531080)\n"
10466 " (signature vec3\n"
10468 " (declare (in ) vec3 x@0x1531260)\n"
10469 " (declare (in ) float minVal@0x1531370)\n"
10470 " (declare (in ) float maxVal@0x1531480)\n"
10475 " (signature vec4\n"
10477 " (declare (in ) vec4 x@0x1531660)\n"
10478 " (declare (in ) float minVal@0x1531770)\n"
10479 " (declare (in ) float maxVal@0x1531880)\n"
10487 " (signature float\n"
10489 " (declare (in ) float x@0x1531a60)\n"
10490 " (declare (in ) float y@0x1531b70)\n"
10491 " (declare (in ) float a@0x1531c80)\n"
10496 " (signature vec2\n"
10498 " (declare (in ) vec2 x@0x1532030)\n"
10499 " (declare (in ) vec2 y@0x1532140)\n"
10500 " (declare (in ) vec2 a@0x1532250)\n"
10505 " (signature vec3\n"
10507 " (declare (in ) vec3 x@0x1532430)\n"
10508 " (declare (in ) vec3 y@0x1532540)\n"
10509 " (declare (in ) vec3 a@0x1532650)\n"
10514 " (signature vec4\n"
10516 " (declare (in ) vec4 x@0x1532830)\n"
10517 " (declare (in ) vec4 y@0x1532940)\n"
10518 " (declare (in ) vec4 a@0x1532a50)\n"
10523 " (signature vec2\n"
10525 " (declare (in ) vec2 x@0x1532c30)\n"
10526 " (declare (in ) vec2 y@0x1532d40)\n"
10527 " (declare (in ) float a@0x1532e50)\n"
10532 " (signature vec3\n"
10534 " (declare (in ) vec3 x@0x1533030)\n"
10535 " (declare (in ) vec3 y@0x1533140)\n"
10536 " (declare (in ) float a@0x1533250)\n"
10541 " (signature vec4\n"
10543 " (declare (in ) vec4 x@0x1533430)\n"
10544 " (declare (in ) vec4 y@0x1533540)\n"
10545 " (declare (in ) float a@0x1533650)\n"
10553 " (signature float\n"
10555 " (declare (in ) float edge@0x1533830)\n"
10556 " (declare (in ) float x@0x1533940)\n"
10561 " (signature vec2\n"
10563 " (declare (in ) vec2 edge@0x1533cf0)\n"
10564 " (declare (in ) vec2 x@0x1533e00)\n"
10569 " (signature vec3\n"
10571 " (declare (in ) vec3 edge@0x1533fe0)\n"
10572 " (declare (in ) vec3 x@0x15340f0)\n"
10577 " (signature vec4\n"
10579 " (declare (in ) vec4 edge@0x15342d0)\n"
10580 " (declare (in ) vec4 x@0x15343e0)\n"
10585 " (signature vec2\n"
10587 " (declare (in ) float edge@0x15345c0)\n"
10588 " (declare (in ) vec2 x@0x15346d0)\n"
10593 " (signature vec3\n"
10595 " (declare (in ) float edge@0x15348b0)\n"
10596 " (declare (in ) vec3 x@0x15349c0)\n"
10601 " (signature vec4\n"
10603 " (declare (in ) float edge@0x1534ba0)\n"
10604 " (declare (in ) vec4 x@0x1534cb0)\n"
10611 "(function smoothstep\n"
10612 " (signature float\n"
10614 " (declare (in ) float edge0@0x1534e90)\n"
10615 " (declare (in ) float edge1@0x1534fa0)\n"
10616 " (declare (in ) float x@0x15350b0)\n"
10621 " (signature vec2\n"
10623 " (declare (in ) vec2 edge0@0x1535470)\n"
10624 " (declare (in ) vec2 edge1@0x1535580)\n"
10625 " (declare (in ) vec2 x@0x1535690)\n"
10630 " (signature vec3\n"
10632 " (declare (in ) vec3 edge0@0x1535870)\n"
10633 " (declare (in ) vec3 edge1@0x1535980)\n"
10634 " (declare (in ) vec3 x@0x1535a90)\n"
10639 " (signature vec4\n"
10641 " (declare (in ) vec4 edge0@0x1535c70)\n"
10642 " (declare (in ) vec4 edge1@0x1535d80)\n"
10643 " (declare (in ) vec4 x@0x1535e90)\n"
10648 " (signature vec2\n"
10650 " (declare (in ) float edge0@0x1536070)\n"
10651 " (declare (in ) float edge1@0x1536180)\n"
10652 " (declare (in ) vec2 x@0x1536290)\n"
10657 " (signature vec3\n"
10659 " (declare (in ) float edge0@0x1536470)\n"
10660 " (declare (in ) float edge1@0x1536580)\n"
10661 " (declare (in ) vec3 x@0x1536690)\n"
10666 " (signature vec4\n"
10668 " (declare (in ) float edge0@0x1536870)\n"
10669 " (declare (in ) float edge1@0x1536980)\n"
10670 " (declare (in ) vec4 x@0x1536a90)\n"
10677 "(function length\n"
10678 " (signature float\n"
10680 " (declare (in ) float x@0x1536c70)\n"
10685 " (signature float\n"
10687 " (declare (in ) vec2 x@0x1537020)\n"
10692 " (signature float\n"
10694 " (declare (in ) vec3 x@0x1537200)\n"
10699 " (signature float\n"
10701 " (declare (in ) vec4 x@0x15373e0)\n"
10708 "(function distance\n"
10709 " (signature float\n"
10711 " (declare (in ) float p0@0x15375c0)\n"
10712 " (declare (in ) float p1@0x15376d0)\n"
10717 " (signature float\n"
10719 " (declare (in ) vec2 p0@0x1537a90)\n"
10720 " (declare (in ) vec2 p1@0x1537ba0)\n"
10725 " (signature float\n"
10727 " (declare (in ) vec3 p0@0x1537d80)\n"
10728 " (declare (in ) vec3 p1@0x1537e90)\n"
10733 " (signature float\n"
10735 " (declare (in ) vec4 p0@0x1538070)\n"
10736 " (declare (in ) vec4 p1@0x1538180)\n"
10744 " (signature float\n"
10746 " (declare (in ) float x@0x1538360)\n"
10747 " (declare (in ) float y@0x1538470)\n"
10752 " (signature float\n"
10754 " (declare (in ) vec2 x@0x1538820)\n"
10755 " (declare (in ) vec2 y@0x1538930)\n"
10760 " (signature float\n"
10762 " (declare (in ) vec3 x@0x1538b10)\n"
10763 " (declare (in ) vec3 y@0x1538c20)\n"
10768 " (signature float\n"
10770 " (declare (in ) vec4 x@0x1538e00)\n"
10771 " (declare (in ) vec4 y@0x1538f10)\n"
10778 "(function cross\n"
10779 " (signature vec3\n"
10781 " (declare (in ) vec3 x@0x15390f0)\n"
10782 " (declare (in ) vec3 y@0x1539200)\n"
10789 "(function normalize\n"
10790 " (signature float\n"
10792 " (declare (in ) float x@0x15395b0)\n"
10797 " (signature vec2\n"
10799 " (declare (in ) vec2 x@0x1539970)\n"
10804 " (signature vec3\n"
10806 " (declare (in ) vec3 x@0x1539b50)\n"
10811 " (signature vec4\n"
10813 " (declare (in ) vec4 x@0x1539d30)\n"
10820 "(function faceforward\n"
10821 " (signature float\n"
10823 " (declare (in ) float N@0x1539f10)\n"
10824 " (declare (in ) float I@0x153a020)\n"
10825 " (declare (in ) float Nref@0x153a130)\n"
10830 " (signature vec2\n"
10832 " (declare (in ) vec2 N@0x153a4f0)\n"
10833 " (declare (in ) vec2 I@0x153a600)\n"
10834 " (declare (in ) vec2 Nref@0x153a710)\n"
10839 " (signature vec3\n"
10841 " (declare (in ) vec3 N@0x153a8f0)\n"
10842 " (declare (in ) vec3 I@0x153aa00)\n"
10843 " (declare (in ) vec3 Nref@0x153ab10)\n"
10848 " (signature vec4\n"
10850 " (declare (in ) vec4 N@0x153acf0)\n"
10851 " (declare (in ) vec4 I@0x153ae00)\n"
10852 " (declare (in ) vec4 Nref@0x153af10)\n"
10859 "(function reflect\n"
10860 " (signature float\n"
10862 " (declare (in ) float I@0x153b0f0)\n"
10863 " (declare (in ) float N@0x153b200)\n"
10868 " (signature vec2\n"
10870 " (declare (in ) vec2 I@0x153b5c0)\n"
10871 " (declare (in ) vec2 N@0x153b6d0)\n"
10876 " (signature vec3\n"
10878 " (declare (in ) vec3 I@0x153b8b0)\n"
10879 " (declare (in ) vec3 N@0x153b9c0)\n"
10884 " (signature vec4\n"
10886 " (declare (in ) vec4 I@0x153bba0)\n"
10887 " (declare (in ) vec4 N@0x153bcb0)\n"
10894 "(function refract\n"
10895 " (signature float\n"
10897 " (declare (in ) float I@0x153be90)\n"
10898 " (declare (in ) float N@0x153bfa0)\n"
10899 " (declare (in ) float eta@0x153c0b0)\n"
10904 " (signature vec2\n"
10906 " (declare (in ) vec2 I@0x153c470)\n"
10907 " (declare (in ) vec2 N@0x153c580)\n"
10908 " (declare (in ) float eta@0x153c690)\n"
10913 " (signature vec3\n"
10915 " (declare (in ) vec3 I@0x153c870)\n"
10916 " (declare (in ) vec3 N@0x153c980)\n"
10917 " (declare (in ) float eta@0x153ca90)\n"
10922 " (signature vec4\n"
10924 " (declare (in ) vec4 I@0x153cc70)\n"
10925 " (declare (in ) vec4 N@0x153cd80)\n"
10926 " (declare (in ) float eta@0x153ce90)\n"
10933 "(function matrixCompMult\n"
10934 " (signature mat2\n"
10936 " (declare (in ) mat2 x@0x153d070)\n"
10937 " (declare (in ) mat2 y@0x153d180)\n"
10942 " (signature mat3\n"
10944 " (declare (in ) mat3 x@0x153d540)\n"
10945 " (declare (in ) mat3 y@0x153d650)\n"
10950 " (signature mat4\n"
10952 " (declare (in ) mat4 x@0x153d830)\n"
10953 " (declare (in ) mat4 y@0x153d940)\n"
10960 "(function lessThan\n"
10961 " (signature bvec2\n"
10963 " (declare (in ) vec2 x@0x153db20)\n"
10964 " (declare (in ) vec2 y@0x153dc30)\n"
10969 " (signature bvec3\n"
10971 " (declare (in ) vec3 x@0x153dff0)\n"
10972 " (declare (in ) vec3 y@0x153e100)\n"
10977 " (signature bvec4\n"
10979 " (declare (in ) vec4 x@0x153e2e0)\n"
10980 " (declare (in ) vec4 y@0x153e3f0)\n"
10985 " (signature bvec2\n"
10987 " (declare (in ) ivec2 x@0x153e5d0)\n"
10988 " (declare (in ) ivec2 y@0x153e6e0)\n"
10993 " (signature bvec3\n"
10995 " (declare (in ) ivec3 x@0x153e8c0)\n"
10996 " (declare (in ) ivec3 y@0x153e9d0)\n"
11001 " (signature bvec4\n"
11003 " (declare (in ) ivec4 x@0x153ebb0)\n"
11004 " (declare (in ) ivec4 y@0x153ecc0)\n"
11011 "(function lessThanEqual\n"
11012 " (signature bvec2\n"
11014 " (declare (in ) vec2 x@0x153eea0)\n"
11015 " (declare (in ) vec2 y@0x153efb0)\n"
11020 " (signature bvec3\n"
11022 " (declare (in ) vec3 x@0x153f370)\n"
11023 " (declare (in ) vec3 y@0x153f480)\n"
11028 " (signature bvec4\n"
11030 " (declare (in ) vec4 x@0x153f660)\n"
11031 " (declare (in ) vec4 y@0x153f770)\n"
11036 " (signature bvec2\n"
11038 " (declare (in ) ivec2 x@0x153f950)\n"
11039 " (declare (in ) ivec2 y@0x153fa60)\n"
11044 " (signature bvec3\n"
11046 " (declare (in ) ivec3 x@0x153fc40)\n"
11047 " (declare (in ) ivec3 y@0x153fd50)\n"
11052 " (signature bvec4\n"
11054 " (declare (in ) ivec4 x@0x153ff30)\n"
11055 " (declare (in ) ivec4 y@0x1540040)\n"
11062 "(function greaterThan\n"
11063 " (signature bvec2\n"
11065 " (declare (in ) vec2 x@0x1540220)\n"
11066 " (declare (in ) vec2 y@0x1540330)\n"
11071 " (signature bvec3\n"
11073 " (declare (in ) vec3 x@0x15406f0)\n"
11074 " (declare (in ) vec3 y@0x1540800)\n"
11079 " (signature bvec4\n"
11081 " (declare (in ) vec4 x@0x15409e0)\n"
11082 " (declare (in ) vec4 y@0x1540af0)\n"
11087 " (signature bvec2\n"
11089 " (declare (in ) ivec2 x@0x1540cd0)\n"
11090 " (declare (in ) ivec2 y@0x1540de0)\n"
11095 " (signature bvec3\n"
11097 " (declare (in ) ivec3 x@0x1540fc0)\n"
11098 " (declare (in ) ivec3 y@0x15410d0)\n"
11103 " (signature bvec4\n"
11105 " (declare (in ) ivec4 x@0x15412b0)\n"
11106 " (declare (in ) ivec4 y@0x15413c0)\n"
11113 "(function greaterThanEqual\n"
11114 " (signature bvec2\n"
11116 " (declare (in ) vec2 x@0x15415a0)\n"
11117 " (declare (in ) vec2 y@0x15416b0)\n"
11122 " (signature bvec3\n"
11124 " (declare (in ) vec3 x@0x1541a70)\n"
11125 " (declare (in ) vec3 y@0x1541b80)\n"
11130 " (signature bvec4\n"
11132 " (declare (in ) vec4 x@0x1541d60)\n"
11133 " (declare (in ) vec4 y@0x1541e70)\n"
11138 " (signature bvec2\n"
11140 " (declare (in ) ivec2 x@0x1542050)\n"
11141 " (declare (in ) ivec2 y@0x1542160)\n"
11146 " (signature bvec3\n"
11148 " (declare (in ) ivec3 x@0x1542340)\n"
11149 " (declare (in ) ivec3 y@0x1542450)\n"
11154 " (signature bvec4\n"
11156 " (declare (in ) ivec4 x@0x1542630)\n"
11157 " (declare (in ) ivec4 y@0x1542740)\n"
11164 "(function equal\n"
11165 " (signature bvec2\n"
11167 " (declare (in ) vec2 x@0x1542920)\n"
11168 " (declare (in ) vec2 y@0x1542a30)\n"
11173 " (signature bvec3\n"
11175 " (declare (in ) vec3 x@0x1542de0)\n"
11176 " (declare (in ) vec3 y@0x1542ef0)\n"
11181 " (signature bvec4\n"
11183 " (declare (in ) vec4 x@0x15430d0)\n"
11184 " (declare (in ) vec4 y@0x15431e0)\n"
11189 " (signature bvec2\n"
11191 " (declare (in ) ivec2 x@0x15433c0)\n"
11192 " (declare (in ) ivec2 y@0x15434d0)\n"
11197 " (signature bvec3\n"
11199 " (declare (in ) ivec3 x@0x15436b0)\n"
11200 " (declare (in ) ivec3 y@0x15437c0)\n"
11205 " (signature bvec4\n"
11207 " (declare (in ) ivec4 x@0x15439a0)\n"
11208 " (declare (in ) ivec4 y@0x1543ab0)\n"
11213 " (signature bvec2\n"
11215 " (declare (in ) bvec2 x@0x1543c90)\n"
11216 " (declare (in ) bvec2 y@0x1543da0)\n"
11221 " (signature bvec3\n"
11223 " (declare (in ) bvec3 x@0x1543f80)\n"
11224 " (declare (in ) bvec3 y@0x1544090)\n"
11229 " (signature bvec4\n"
11231 " (declare (in ) bvec4 x@0x1544270)\n"
11232 " (declare (in ) bvec4 y@0x1544380)\n"
11239 "(function notEqual\n"
11240 " (signature bvec2\n"
11242 " (declare (in ) vec2 x@0x1544560)\n"
11243 " (declare (in ) vec2 y@0x1544670)\n"
11248 " (signature bvec3\n"
11250 " (declare (in ) vec3 x@0x1544a30)\n"
11251 " (declare (in ) vec3 y@0x1544b40)\n"
11256 " (signature bvec4\n"
11258 " (declare (in ) vec4 x@0x1544d20)\n"
11259 " (declare (in ) vec4 y@0x1544e30)\n"
11264 " (signature bvec2\n"
11266 " (declare (in ) ivec2 x@0x1545010)\n"
11267 " (declare (in ) ivec2 y@0x1545120)\n"
11272 " (signature bvec3\n"
11274 " (declare (in ) ivec3 x@0x1545300)\n"
11275 " (declare (in ) ivec3 y@0x1545410)\n"
11280 " (signature bvec4\n"
11282 " (declare (in ) ivec4 x@0x15455f0)\n"
11283 " (declare (in ) ivec4 y@0x1545700)\n"
11288 " (signature bvec2\n"
11290 " (declare (in ) bvec2 x@0x15458e0)\n"
11291 " (declare (in ) bvec2 y@0x15459f0)\n"
11296 " (signature bvec3\n"
11298 " (declare (in ) bvec3 x@0x1545bd0)\n"
11299 " (declare (in ) bvec3 y@0x1545ce0)\n"
11304 " (signature bvec4\n"
11306 " (declare (in ) bvec4 x@0x1545ec0)\n"
11307 " (declare (in ) bvec4 y@0x1545fd0)\n"
11315 " (signature bool\n"
11317 " (declare (in ) bvec2 x@0x15461b0)\n"
11322 " (signature bool\n"
11324 " (declare (in ) bvec3 x@0x1546560)\n"
11329 " (signature bool\n"
11331 " (declare (in ) bvec4 x@0x1546740)\n"
11339 " (signature bool\n"
11341 " (declare (in ) bvec2 x@0x1546920)\n"
11346 " (signature bool\n"
11348 " (declare (in ) bvec3 x@0x1546cd0)\n"
11353 " (signature bool\n"
11355 " (declare (in ) bvec4 x@0x1546eb0)\n"
11363 " (signature bvec2\n"
11365 " (declare (in ) bvec2 x@0x1547090)\n"
11370 " (signature bvec3\n"
11372 " (declare (in ) bvec3 x@0x1547440)\n"
11377 " (signature bvec4\n"
11379 " (declare (in ) bvec4 x@0x1547620)\n"
11386 "(function texture1D\n"
11387 " (signature vec4\n"
11389 " (declare (in ) sampler1D sampler@0x1547800)\n"
11390 " (declare (in ) float coord@0x1547920)\n"
11395 " (signature vec4\n"
11397 " (declare (in ) sampler1D sampler@0x15484c0)\n"
11398 " (declare (in ) float coord@0x15485e0)\n"
11399 " (declare (in ) float bias@0x15486f0)\n"
11406 "(function texture1DProj\n"
11407 " (signature vec4\n"
11409 " (declare (in ) sampler1D sampler@0x1547ce0)\n"
11410 " (declare (in ) vec2 coord@0x1547e00)\n"
11415 " (signature vec4\n"
11417 " (declare (in ) sampler1D sampler@0x15481c0)\n"
11418 " (declare (in ) vec4 coord@0x15482e0)\n"
11423 " (signature vec4\n"
11425 " (declare (in ) sampler1D sampler@0x15488d0)\n"
11426 " (declare (in ) vec2 coord@0x15489f0)\n"
11427 " (declare (in ) float bias@0x1548b00)\n"
11432 " (signature vec4\n"
11434 " (declare (in ) sampler1D sampler@0x1548ce0)\n"
11435 " (declare (in ) vec4 coord@0x1548e00)\n"
11436 " (declare (in ) float bias@0x1548f10)\n"
11443 "(function texture2D\n"
11444 " (signature vec4\n"
11446 " (declare (in ) sampler2D sampler@0x15490f0)\n"
11447 " (declare (in ) vec2 coord@0x1549210)\n"
11452 " (signature vec4\n"
11454 " (declare (in ) sampler2D sampler@0x1549db0)\n"
11455 " (declare (in ) vec2 coord@0x1549ed0)\n"
11456 " (declare (in ) float bias@0x1549fe0)\n"
11463 "(function texture2DProj\n"
11464 " (signature vec4\n"
11466 " (declare (in ) sampler2D sampler@0x15495d0)\n"
11467 " (declare (in ) vec3 coord@0x15496f0)\n"
11472 " (signature vec4\n"
11474 " (declare (in ) sampler2D sampler@0x1549ab0)\n"
11475 " (declare (in ) vec4 coord@0x1549bd0)\n"
11480 " (signature vec4\n"
11482 " (declare (in ) sampler2D sampler@0x154a1c0)\n"
11483 " (declare (in ) vec3 coord@0x154a2e0)\n"
11484 " (declare (in ) float bias@0x154a3f0)\n"
11489 " (signature vec4\n"
11491 " (declare (in ) sampler2D sampler@0x154a5d0)\n"
11492 " (declare (in ) vec4 coord@0x154a6f0)\n"
11493 " (declare (in ) float bias@0x154a800)\n"
11500 "(function texture3D\n"
11501 " (signature vec4\n"
11503 " (declare (in ) sampler3D sampler@0x154a9e0)\n"
11504 " (declare (in ) vec3 coord@0x154ab00)\n"
11509 " (signature vec4\n"
11511 " (declare (in ) sampler3D sampler@0x154b3a0)\n"
11512 " (declare (in ) vec3 coord@0x154b4c0)\n"
11513 " (declare (in ) float bias@0x154b5d0)\n"
11520 "(function texture3DProj\n"
11521 " (signature vec4\n"
11523 " (declare (in ) sampler3D sampler@0x154aec0)\n"
11524 " (declare (in ) vec4 coord@0x154afe0)\n"
11529 " (signature vec4\n"
11531 " (declare (in ) sampler3D sampler@0x154b7b0)\n"
11532 " (declare (in ) vec4 coord@0x154b8d0)\n"
11533 " (declare (in ) float bias@0x154b9e0)\n"
11540 "(function textureCube\n"
11541 " (signature vec4\n"
11543 " (declare (in ) samplerCube sampler@0x154bbc0)\n"
11544 " (declare (in ) vec3 coord@0x154bce0)\n"
11549 " (signature vec4\n"
11551 " (declare (in ) samplerCube sampler@0x154c0a0)\n"
11552 " (declare (in ) vec3 coord@0x154c1c0)\n"
11553 " (declare (in ) float bias@0x154c2d0)\n"
11560 "(function shadow1D\n"
11561 " (signature vec4\n"
11563 " (declare (in ) sampler1DShadow sampler@0x154c4b0)\n"
11564 " (declare (in ) vec3 coord@0x154c5d0)\n"
11569 " (signature vec4\n"
11571 " (declare (in ) sampler1DShadow sampler@0x154d830)\n"
11572 " (declare (in ) vec3 coord@0x154d950)\n"
11573 " (declare (in ) float bias@0x154da60)\n"
11580 "(function shadow2D\n"
11581 " (signature vec4\n"
11583 " (declare (in ) sampler2DShadow sampler@0x154c990)\n"
11584 " (declare (in ) vec3 coord@0x154cab0)\n"
11589 " (signature vec4\n"
11591 " (declare (in ) sampler2DShadow sampler@0x154dc40)\n"
11592 " (declare (in ) vec3 coord@0x154dd60)\n"
11593 " (declare (in ) float bias@0x154de70)\n"
11600 "(function shadow1DProj\n"
11601 " (signature vec4\n"
11603 " (declare (in ) sampler1DShadow sampler@0x154ce70)\n"
11604 " (declare (in ) vec4 coord@0x154cf90)\n"
11609 " (signature vec4\n"
11611 " (declare (in ) sampler1DShadow sampler@0x154e050)\n"
11612 " (declare (in ) vec4 coord@0x154e170)\n"
11613 " (declare (in ) float bias@0x154e280)\n"
11620 "(function shadow2DProj\n"
11621 " (signature vec4\n"
11623 " (declare (in ) sampler2DShadow sampler@0x154d350)\n"
11624 " (declare (in ) vec4 coord@0x154d470)\n"
11629 " (signature vec4\n"
11631 " (declare (in ) sampler2DShadow sampler@0x154e460)\n"
11632 " (declare (in ) vec4 coord@0x154e580)\n"
11633 " (declare (in ) float bias@0x154e690)\n"
11641 " (signature float\n"
11643 " (declare (in ) float p@0x154e870)\n"
11648 " (signature vec2\n"
11650 " (declare (in ) vec2 p@0x154ec20)\n"
11655 " (signature vec3\n"
11657 " (declare (in ) vec3 p@0x154ee00)\n"
11662 " (signature vec4\n"
11664 " (declare (in ) vec4 p@0x154efe0)\n"
11672 " (signature float\n"
11674 " (declare (in ) float p@0x154f1c0)\n"
11679 " (signature vec2\n"
11681 " (declare (in ) vec2 p@0x154f570)\n"
11686 " (signature vec3\n"
11688 " (declare (in ) vec3 p@0x154f750)\n"
11693 " (signature vec4\n"
11695 " (declare (in ) vec4 p@0x154f930)\n"
11702 "(function fwidth\n"
11703 " (signature float\n"
11705 " (declare (in ) float p@0x154fb10)\n"
11710 " (signature vec2\n"
11712 " (declare (in ) vec2 p@0x154fec0)\n"
11717 " (signature vec3\n"
11719 " (declare (in ) vec3 p@0x15500a0)\n"
11724 " (signature vec4\n"
11726 " (declare (in ) vec4 p@0x1550280)\n"
11733 "(function noise1\n"
11734 " (signature float\n"
11736 " (declare (in ) float x@0x1550460)\n"
11741 " (signature float\n"
11743 " (declare (in ) vec2 x@0x1550810)\n"
11748 " (signature float\n"
11750 " (declare (in ) vec3 x@0x15509f0)\n"
11755 " (signature float\n"
11757 " (declare (in ) vec4 x@0x1550bd0)\n"
11764 "(function noise2\n"
11765 " (signature vec2\n"
11767 " (declare (in ) float x@0x1550db0)\n"
11772 " (signature vec2\n"
11774 " (declare (in ) vec2 x@0x1551160)\n"
11779 " (signature vec2\n"
11781 " (declare (in ) vec3 x@0x1551340)\n"
11786 " (signature vec2\n"
11788 " (declare (in ) vec4 x@0x1551520)\n"
11795 "(function noise3\n"
11796 " (signature vec3\n"
11798 " (declare (in ) float x@0x1551700)\n"
11803 " (signature vec3\n"
11805 " (declare (in ) vec2 x@0x1551ab0)\n"
11810 " (signature vec3\n"
11812 " (declare (in ) vec3 x@0x1551c90)\n"
11817 " (signature vec3\n"
11819 " (declare (in ) vec4 x@0x1551e70)\n"
11826 "(function noise4\n"
11827 " (signature vec4\n"
11829 " (declare (in ) float x@0x1552050)\n"
11834 " (signature vec4\n"
11836 " (declare (in ) vec2 x@0x1552400)\n"
11841 " (signature vec4\n"
11843 " (declare (in ) vec3 x@0x15525e0)\n"
11848 " (signature vec4\n"
11850 " (declare (in ) vec4 x@0x15527c0)\n"
11860 static const char *functions_for_110_frag
[] = {
11862 builtin_matrixCompMult
,
11865 builtin_texture2DProj
,
11867 builtin_greaterThanEqual
,
11869 builtin_texture3DProj
,
11872 builtin_faceforward
,
11877 builtin_texture1DProj
,
11884 builtin_shadow2DProj
,
11896 builtin_lessThanEqual
,
11897 builtin_shadow1DProj
,
11902 builtin_greaterThan
,
11905 builtin_inversesqrt
,
11916 builtin_smoothstep
,
11917 builtin_textureCube
,
11925 static const char *prototypes_for_EXT_texture_array_vert
=
11927 "(function texture1DArray\n"
11928 " (signature vec4\n"
11930 " (declare (in ) sampler1DArray sampler@0x25ee5c0)\n"
11931 " (declare (in ) vec2 coord@0x25ee6e0)\n"
11938 "(function texture1DArrayLod\n"
11939 " (signature vec4\n"
11941 " (declare (in ) sampler1DArray sampler@0x25eeaa0)\n"
11942 " (declare (in ) vec2 coord@0x25eebc0)\n"
11943 " (declare (in ) float lod@0x25eecd0)\n"
11950 "(function texture2DArray\n"
11951 " (signature vec4\n"
11953 " (declare (in ) sampler1DArray sampler@0x25ef090)\n"
11954 " (declare (in ) vec2 coord@0x25ef1b0)\n"
11961 "(function texture2DArrayLod\n"
11962 " (signature vec4\n"
11964 " (declare (in ) sampler1DArray sampler@0x25ef570)\n"
11965 " (declare (in ) vec2 coord@0x25ef690)\n"
11966 " (declare (in ) float lod@0x25ef7a0)\n"
11973 "(function shadow1DArray\n"
11974 " (signature vec4\n"
11976 " (declare (in ) sampler1DArrayShadow sampler@0x25efb60)\n"
11977 " (declare (in ) vec3 coord@0x25efc80)\n"
11984 "(function shadow1DArrayLod\n"
11985 " (signature vec4\n"
11987 " (declare (in ) sampler1DArrayShadow sampler@0x25f0040)\n"
11988 " (declare (in ) vec3 coord@0x25f0160)\n"
11989 " (declare (in ) float lod@0x25f0270)\n"
11996 "(function shadow2DArray\n"
11997 " (signature vec4\n"
11999 " (declare (in ) sampler2DArrayShadow sampler@0x25f0630)\n"
12000 " (declare (in ) vec4 coord@0x25f0750)\n"
12010 static const char *functions_for_EXT_texture_array_vert
[] = {
12011 builtin_texture1DArrayLod
,
12012 builtin_shadow2DArray
,
12013 builtin_texture2DArrayLod
,
12014 builtin_shadow1DArrayLod
,
12015 builtin_shadow1DArray
,
12016 builtin_texture2DArray
,
12017 builtin_texture1DArray
,
12019 static const char *prototypes_for_ARB_texture_rectangle_vert
=
12021 "(function texture2DRect\n"
12022 " (signature vec4\n"
12024 " (declare (in ) sampler2DRect sampler@0x1cc28a0)\n"
12025 " (declare (in ) vec2 coord@0x1cc29c0)\n"
12032 "(function texture2DRectProj\n"
12033 " (signature vec4\n"
12035 " (declare (in ) sampler2DRect sampler@0x1cc2d80)\n"
12036 " (declare (in ) vec3 coord@0x1cc2ea0)\n"
12041 " (signature vec4\n"
12043 " (declare (in ) sampler2DRect sampler@0x1cc3260)\n"
12044 " (declare (in ) vec4 coord@0x1cc3380)\n"
12051 "(function shadow2DRect\n"
12052 " (signature vec4\n"
12054 " (declare (in ) sampler2DRectShadow sampler@0x1cc3560)\n"
12055 " (declare (in ) vec3 coord@0x1cc3680)\n"
12062 "(function shadow2DRectProj\n"
12063 " (signature vec4\n"
12065 " (declare (in ) sampler2DRectShadow sampler@0x1cc3a40)\n"
12066 " (declare (in ) vec4 coord@0x1cc3b60)\n"
12076 static const char *functions_for_ARB_texture_rectangle_vert
[] = {
12077 builtin_texture2DRect
,
12078 builtin_shadow2DRectProj
,
12079 builtin_shadow2DRect
,
12080 builtin_texture2DRectProj
,
12082 static const char *prototypes_for_ARB_texture_rectangle_frag
=
12084 "(function texture2DRect\n"
12085 " (signature vec4\n"
12087 " (declare (in ) sampler2DRect sampler@0x13d0040)\n"
12088 " (declare (in ) vec2 coord@0x13d0160)\n"
12095 "(function texture2DRectProj\n"
12096 " (signature vec4\n"
12098 " (declare (in ) sampler2DRect sampler@0x13d0520)\n"
12099 " (declare (in ) vec3 coord@0x13d0640)\n"
12104 " (signature vec4\n"
12106 " (declare (in ) sampler2DRect sampler@0x13d0a00)\n"
12107 " (declare (in ) vec4 coord@0x13d0b20)\n"
12114 "(function shadow2DRect\n"
12115 " (signature vec4\n"
12117 " (declare (in ) sampler2DRectShadow sampler@0x13d0d00)\n"
12118 " (declare (in ) vec3 coord@0x13d0e20)\n"
12125 "(function shadow2DRectProj\n"
12126 " (signature vec4\n"
12128 " (declare (in ) sampler2DRectShadow sampler@0x13d11e0)\n"
12129 " (declare (in ) vec4 coord@0x13d1300)\n"
12139 static const char *functions_for_ARB_texture_rectangle_frag
[] = {
12140 builtin_texture2DRect
,
12141 builtin_shadow2DRectProj
,
12142 builtin_shadow2DRect
,
12143 builtin_texture2DRectProj
,
12145 static const char *prototypes_for_120_frag
=
12147 "(function radians\n"
12148 " (signature float\n"
12150 " (declare (in ) float degrees@0x8b57e0)\n"
12155 " (signature vec2\n"
12157 " (declare (in ) vec2 degrees@0x8b5bb0)\n"
12162 " (signature vec3\n"
12164 " (declare (in ) vec3 degrees@0x8b5da0)\n"
12169 " (signature vec4\n"
12171 " (declare (in ) vec4 degrees@0x8b5f90)\n"
12178 "(function degrees\n"
12179 " (signature float\n"
12181 " (declare (in ) float radians@0x8b6180)\n"
12186 " (signature vec2\n"
12188 " (declare (in ) vec2 radians@0x8b6550)\n"
12193 " (signature vec3\n"
12195 " (declare (in ) vec3 radians@0x8b6740)\n"
12200 " (signature vec4\n"
12202 " (declare (in ) vec4 radians@0x8b6930)\n"
12210 " (signature float\n"
12212 " (declare (in ) float angle@0x8b6b20)\n"
12217 " (signature vec2\n"
12219 " (declare (in ) vec2 angle@0x8b6ed0)\n"
12224 " (signature vec3\n"
12226 " (declare (in ) vec3 angle@0x8b70b0)\n"
12231 " (signature vec4\n"
12233 " (declare (in ) vec4 angle@0x8b7290)\n"
12241 " (signature float\n"
12243 " (declare (in ) float angle@0x8b7470)\n"
12248 " (signature vec2\n"
12250 " (declare (in ) vec2 angle@0x8b7820)\n"
12255 " (signature vec3\n"
12257 " (declare (in ) vec3 angle@0x8b7a00)\n"
12262 " (signature vec4\n"
12264 " (declare (in ) vec4 angle@0x8b7be0)\n"
12272 " (signature float\n"
12274 " (declare (in ) float angle@0x8b7dc0)\n"
12279 " (signature vec2\n"
12281 " (declare (in ) vec2 angle@0x8b8170)\n"
12286 " (signature vec3\n"
12288 " (declare (in ) vec3 angle@0x8b8350)\n"
12293 " (signature vec4\n"
12295 " (declare (in ) vec4 angle@0x8b8530)\n"
12303 " (signature float\n"
12305 " (declare (in ) float angle@0x8b8710)\n"
12310 " (signature vec2\n"
12312 " (declare (in ) vec2 angle@0x8b8ac0)\n"
12317 " (signature vec3\n"
12319 " (declare (in ) vec3 angle@0x8b8ca0)\n"
12324 " (signature vec4\n"
12326 " (declare (in ) vec4 angle@0x8b8e80)\n"
12334 " (signature float\n"
12336 " (declare (in ) float angle@0x8b9060)\n"
12341 " (signature vec2\n"
12343 " (declare (in ) vec2 angle@0x8b9410)\n"
12348 " (signature vec3\n"
12350 " (declare (in ) vec3 angle@0x8b95f0)\n"
12355 " (signature vec4\n"
12357 " (declare (in ) vec4 angle@0x8b97d0)\n"
12365 " (signature float\n"
12367 " (declare (in ) float y@0x8b99b0)\n"
12368 " (declare (in ) float x@0x8b9ac0)\n"
12373 " (signature vec2\n"
12375 " (declare (in ) vec2 y@0x8b9e70)\n"
12376 " (declare (in ) vec2 x@0x8b9f80)\n"
12381 " (signature vec3\n"
12383 " (declare (in ) vec3 y@0x8ba160)\n"
12384 " (declare (in ) vec3 x@0x8ba270)\n"
12389 " (signature vec4\n"
12391 " (declare (in ) vec4 y@0x8ba450)\n"
12392 " (declare (in ) vec4 x@0x8ba560)\n"
12397 " (signature float\n"
12399 " (declare (in ) float y_over_x@0x8ba740)\n"
12404 " (signature vec2\n"
12406 " (declare (in ) vec2 y_over_x@0x8ba930)\n"
12411 " (signature vec3\n"
12413 " (declare (in ) vec3 y_over_x@0x8bab20)\n"
12418 " (signature vec4\n"
12420 " (declare (in ) vec4 y_over_x@0x8bad10)\n"
12428 " (signature float\n"
12430 " (declare (in ) float x@0x8baf00)\n"
12431 " (declare (in ) float y@0x8bb010)\n"
12436 " (signature vec2\n"
12438 " (declare (in ) vec2 x@0x8bb3c0)\n"
12439 " (declare (in ) vec2 y@0x8bb4d0)\n"
12444 " (signature vec3\n"
12446 " (declare (in ) vec3 x@0x8bb6b0)\n"
12447 " (declare (in ) vec3 y@0x8bb7c0)\n"
12452 " (signature vec4\n"
12454 " (declare (in ) vec4 x@0x8bb9a0)\n"
12455 " (declare (in ) vec4 y@0x8bbab0)\n"
12463 " (signature float\n"
12465 " (declare (in ) float x@0x8bbc90)\n"
12470 " (signature vec2\n"
12472 " (declare (in ) vec2 x@0x8bc040)\n"
12477 " (signature vec3\n"
12479 " (declare (in ) vec3 x@0x8bc220)\n"
12484 " (signature vec4\n"
12486 " (declare (in ) vec4 x@0x8bc400)\n"
12494 " (signature float\n"
12496 " (declare (in ) float x@0x8bc5e0)\n"
12501 " (signature vec2\n"
12503 " (declare (in ) vec2 x@0x8bc990)\n"
12508 " (signature vec3\n"
12510 " (declare (in ) vec3 x@0x8bcb70)\n"
12515 " (signature vec4\n"
12517 " (declare (in ) vec4 x@0x8bcd50)\n"
12525 " (signature float\n"
12527 " (declare (in ) float x@0x8bcf30)\n"
12532 " (signature vec2\n"
12534 " (declare (in ) vec2 x@0x8bd2e0)\n"
12539 " (signature vec3\n"
12541 " (declare (in ) vec3 x@0x8bd4c0)\n"
12546 " (signature vec4\n"
12548 " (declare (in ) vec4 x@0x8bd6a0)\n"
12556 " (signature float\n"
12558 " (declare (in ) float x@0x8bd880)\n"
12563 " (signature vec2\n"
12565 " (declare (in ) vec2 x@0x8bdc30)\n"
12570 " (signature vec3\n"
12572 " (declare (in ) vec3 x@0x8bde10)\n"
12577 " (signature vec4\n"
12579 " (declare (in ) vec4 x@0x8bdff0)\n"
12587 " (signature float\n"
12589 " (declare (in ) float x@0x8be1d0)\n"
12594 " (signature vec2\n"
12596 " (declare (in ) vec2 x@0x8be580)\n"
12601 " (signature vec3\n"
12603 " (declare (in ) vec3 x@0x8be760)\n"
12608 " (signature vec4\n"
12610 " (declare (in ) vec4 x@0x8be940)\n"
12617 "(function inversesqrt\n"
12618 " (signature float\n"
12620 " (declare (in ) float x@0x8beb20)\n"
12625 " (signature vec2\n"
12627 " (declare (in ) vec2 x@0x8beee0)\n"
12632 " (signature vec3\n"
12634 " (declare (in ) vec3 x@0x8bf0c0)\n"
12639 " (signature vec4\n"
12641 " (declare (in ) vec4 x@0x8bf2a0)\n"
12649 " (signature float\n"
12651 " (declare (in ) float x@0x8bf480)\n"
12656 " (signature vec2\n"
12658 " (declare (in ) vec2 x@0x8bf830)\n"
12663 " (signature vec3\n"
12665 " (declare (in ) vec3 x@0x8bfa10)\n"
12670 " (signature vec4\n"
12672 " (declare (in ) vec4 x@0x8bfbf0)\n"
12680 " (signature float\n"
12682 " (declare (in ) float x@0x8bfdd0)\n"
12687 " (signature vec2\n"
12689 " (declare (in ) vec2 x@0x8c0180)\n"
12694 " (signature vec3\n"
12696 " (declare (in ) vec3 x@0x8c0360)\n"
12701 " (signature vec4\n"
12703 " (declare (in ) vec4 x@0x8c0540)\n"
12710 "(function floor\n"
12711 " (signature float\n"
12713 " (declare (in ) float x@0x8c0720)\n"
12718 " (signature vec2\n"
12720 " (declare (in ) vec2 x@0x8c0ad0)\n"
12725 " (signature vec3\n"
12727 " (declare (in ) vec3 x@0x8c0cb0)\n"
12732 " (signature vec4\n"
12734 " (declare (in ) vec4 x@0x8c0e90)\n"
12742 " (signature float\n"
12744 " (declare (in ) float x@0x8c1070)\n"
12749 " (signature vec2\n"
12751 " (declare (in ) vec2 x@0x8c1420)\n"
12756 " (signature vec3\n"
12758 " (declare (in ) vec3 x@0x8c1600)\n"
12763 " (signature vec4\n"
12765 " (declare (in ) vec4 x@0x8c17e0)\n"
12772 "(function fract\n"
12773 " (signature float\n"
12775 " (declare (in ) float x@0x8c19c0)\n"
12780 " (signature vec2\n"
12782 " (declare (in ) vec2 x@0x8c1d70)\n"
12787 " (signature vec3\n"
12789 " (declare (in ) vec3 x@0x8c1f50)\n"
12794 " (signature vec4\n"
12796 " (declare (in ) vec4 x@0x8c2130)\n"
12804 " (signature float\n"
12806 " (declare (in ) float x@0x8c2310)\n"
12807 " (declare (in ) float y@0x8c2420)\n"
12812 " (signature vec2\n"
12814 " (declare (in ) vec2 x@0x8c27d0)\n"
12815 " (declare (in ) float y@0x8c28e0)\n"
12820 " (signature vec3\n"
12822 " (declare (in ) vec3 x@0x8c2ac0)\n"
12823 " (declare (in ) float y@0x8c2bd0)\n"
12828 " (signature vec4\n"
12830 " (declare (in ) vec4 x@0x8c2db0)\n"
12831 " (declare (in ) float y@0x8c2ec0)\n"
12836 " (signature vec2\n"
12838 " (declare (in ) vec2 x@0x8c30a0)\n"
12839 " (declare (in ) vec2 y@0x8c31b0)\n"
12844 " (signature vec3\n"
12846 " (declare (in ) vec3 x@0x8c3390)\n"
12847 " (declare (in ) vec3 y@0x8c34a0)\n"
12852 " (signature vec4\n"
12854 " (declare (in ) vec4 x@0x8c3680)\n"
12855 " (declare (in ) vec4 y@0x8c3790)\n"
12863 " (signature float\n"
12865 " (declare (in ) float x@0x8c3970)\n"
12866 " (declare (in ) float y@0x8c3a80)\n"
12871 " (signature vec2\n"
12873 " (declare (in ) vec2 x@0x8c3e30)\n"
12874 " (declare (in ) vec2 y@0x8c3f40)\n"
12879 " (signature vec3\n"
12881 " (declare (in ) vec3 x@0x8c4120)\n"
12882 " (declare (in ) vec3 y@0x8c4230)\n"
12887 " (signature vec4\n"
12889 " (declare (in ) vec4 x@0x8c4410)\n"
12890 " (declare (in ) vec4 y@0x8c4520)\n"
12895 " (signature vec2\n"
12897 " (declare (in ) vec2 x@0x8c4700)\n"
12898 " (declare (in ) float y@0x8c4810)\n"
12903 " (signature vec3\n"
12905 " (declare (in ) vec3 x@0x8c49f0)\n"
12906 " (declare (in ) float y@0x8c4b00)\n"
12911 " (signature vec4\n"
12913 " (declare (in ) vec4 x@0x8c4ce0)\n"
12914 " (declare (in ) float y@0x8c4df0)\n"
12922 " (signature float\n"
12924 " (declare (in ) float x@0x8c4fd0)\n"
12925 " (declare (in ) float y@0x8c50e0)\n"
12930 " (signature vec2\n"
12932 " (declare (in ) vec2 x@0x8c5490)\n"
12933 " (declare (in ) vec2 y@0x8c55a0)\n"
12938 " (signature vec3\n"
12940 " (declare (in ) vec3 x@0x8c5780)\n"
12941 " (declare (in ) vec3 y@0x8c5890)\n"
12946 " (signature vec4\n"
12948 " (declare (in ) vec4 x@0x8c5a70)\n"
12949 " (declare (in ) vec4 y@0x8c5b80)\n"
12954 " (signature vec2\n"
12956 " (declare (in ) vec2 x@0x8c5d60)\n"
12957 " (declare (in ) float y@0x8c5e70)\n"
12962 " (signature vec3\n"
12964 " (declare (in ) vec3 x@0x8c6050)\n"
12965 " (declare (in ) float y@0x8c6160)\n"
12970 " (signature vec4\n"
12972 " (declare (in ) vec4 x@0x8c6340)\n"
12973 " (declare (in ) float y@0x8c6450)\n"
12980 "(function clamp\n"
12981 " (signature float\n"
12983 " (declare (in ) float x@0x8c6630)\n"
12984 " (declare (in ) float minVal@0x8c6740)\n"
12985 " (declare (in ) float maxVal@0x8c6850)\n"
12990 " (signature vec2\n"
12992 " (declare (in ) vec2 x@0x8c6c00)\n"
12993 " (declare (in ) vec2 minVal@0x8c6d10)\n"
12994 " (declare (in ) vec2 maxVal@0x8c6e20)\n"
12999 " (signature vec3\n"
13001 " (declare (in ) vec3 x@0x8c7000)\n"
13002 " (declare (in ) vec3 minVal@0x8c7110)\n"
13003 " (declare (in ) vec3 maxVal@0x8c7220)\n"
13008 " (signature vec4\n"
13010 " (declare (in ) vec4 x@0x8c7400)\n"
13011 " (declare (in ) vec4 minVal@0x8c7510)\n"
13012 " (declare (in ) vec4 maxVal@0x8c7620)\n"
13017 " (signature vec2\n"
13019 " (declare (in ) vec2 x@0x8c7800)\n"
13020 " (declare (in ) float minVal@0x8c7910)\n"
13021 " (declare (in ) float maxVal@0x8c7a20)\n"
13026 " (signature vec3\n"
13028 " (declare (in ) vec3 x@0x8c7c00)\n"
13029 " (declare (in ) float minVal@0x8c7d10)\n"
13030 " (declare (in ) float maxVal@0x8c7e20)\n"
13035 " (signature vec4\n"
13037 " (declare (in ) vec4 x@0x8c8000)\n"
13038 " (declare (in ) float minVal@0x8c8110)\n"
13039 " (declare (in ) float maxVal@0x8c8220)\n"
13047 " (signature float\n"
13049 " (declare (in ) float x@0x8c8400)\n"
13050 " (declare (in ) float y@0x8c8510)\n"
13051 " (declare (in ) float a@0x8c8620)\n"
13056 " (signature vec2\n"
13058 " (declare (in ) vec2 x@0x8c89d0)\n"
13059 " (declare (in ) vec2 y@0x8c8ae0)\n"
13060 " (declare (in ) vec2 a@0x8c8bf0)\n"
13065 " (signature vec3\n"
13067 " (declare (in ) vec3 x@0x8c8dd0)\n"
13068 " (declare (in ) vec3 y@0x8c8ee0)\n"
13069 " (declare (in ) vec3 a@0x8c8ff0)\n"
13074 " (signature vec4\n"
13076 " (declare (in ) vec4 x@0x8c91d0)\n"
13077 " (declare (in ) vec4 y@0x8c92e0)\n"
13078 " (declare (in ) vec4 a@0x8c93f0)\n"
13083 " (signature vec2\n"
13085 " (declare (in ) vec2 x@0x8c95d0)\n"
13086 " (declare (in ) vec2 y@0x8c96e0)\n"
13087 " (declare (in ) float a@0x8c97f0)\n"
13092 " (signature vec3\n"
13094 " (declare (in ) vec3 x@0x8c99d0)\n"
13095 " (declare (in ) vec3 y@0x8c9ae0)\n"
13096 " (declare (in ) float a@0x8c9bf0)\n"
13101 " (signature vec4\n"
13103 " (declare (in ) vec4 x@0x8c9dd0)\n"
13104 " (declare (in ) vec4 y@0x8c9ee0)\n"
13105 " (declare (in ) float a@0x8c9ff0)\n"
13113 " (signature float\n"
13115 " (declare (in ) float edge@0x8ca1d0)\n"
13116 " (declare (in ) float x@0x8ca2e0)\n"
13121 " (signature vec2\n"
13123 " (declare (in ) vec2 edge@0x8ca690)\n"
13124 " (declare (in ) vec2 x@0x8ca7a0)\n"
13129 " (signature vec3\n"
13131 " (declare (in ) vec3 edge@0x8ca980)\n"
13132 " (declare (in ) vec3 x@0x8caa90)\n"
13137 " (signature vec4\n"
13139 " (declare (in ) vec4 edge@0x8cac70)\n"
13140 " (declare (in ) vec4 x@0x8cad80)\n"
13145 " (signature vec2\n"
13147 " (declare (in ) float edge@0x8caf60)\n"
13148 " (declare (in ) vec2 x@0x8cb070)\n"
13153 " (signature vec3\n"
13155 " (declare (in ) float edge@0x8cb250)\n"
13156 " (declare (in ) vec3 x@0x8cb360)\n"
13161 " (signature vec4\n"
13163 " (declare (in ) float edge@0x8cb540)\n"
13164 " (declare (in ) vec4 x@0x8cb650)\n"
13171 "(function smoothstep\n"
13172 " (signature float\n"
13174 " (declare (in ) float edge0@0x8cb830)\n"
13175 " (declare (in ) float edge1@0x8cb940)\n"
13176 " (declare (in ) float x@0x8cba50)\n"
13181 " (signature vec2\n"
13183 " (declare (in ) vec2 edge0@0x8cbe10)\n"
13184 " (declare (in ) vec2 edge1@0x8cbf20)\n"
13185 " (declare (in ) vec2 x@0x8cc030)\n"
13190 " (signature vec3\n"
13192 " (declare (in ) vec3 edge0@0x8cc210)\n"
13193 " (declare (in ) vec3 edge1@0x8cc320)\n"
13194 " (declare (in ) vec3 x@0x8cc430)\n"
13199 " (signature vec4\n"
13201 " (declare (in ) vec4 edge0@0x8cc610)\n"
13202 " (declare (in ) vec4 edge1@0x8cc720)\n"
13203 " (declare (in ) vec4 x@0x8cc830)\n"
13208 " (signature vec2\n"
13210 " (declare (in ) float edge0@0x8cca10)\n"
13211 " (declare (in ) float edge1@0x8ccb20)\n"
13212 " (declare (in ) vec2 x@0x8ccc30)\n"
13217 " (signature vec3\n"
13219 " (declare (in ) float edge0@0x8cce10)\n"
13220 " (declare (in ) float edge1@0x8ccf20)\n"
13221 " (declare (in ) vec3 x@0x8cd030)\n"
13226 " (signature vec4\n"
13228 " (declare (in ) float edge0@0x8cd210)\n"
13229 " (declare (in ) float edge1@0x8cd320)\n"
13230 " (declare (in ) vec4 x@0x8cd430)\n"
13237 "(function length\n"
13238 " (signature float\n"
13240 " (declare (in ) float x@0x8cd610)\n"
13245 " (signature float\n"
13247 " (declare (in ) vec2 x@0x8cd9c0)\n"
13252 " (signature float\n"
13254 " (declare (in ) vec3 x@0x8cdba0)\n"
13259 " (signature float\n"
13261 " (declare (in ) vec4 x@0x8cdd80)\n"
13268 "(function distance\n"
13269 " (signature float\n"
13271 " (declare (in ) float p0@0x8cdf60)\n"
13272 " (declare (in ) float p1@0x8ce070)\n"
13277 " (signature float\n"
13279 " (declare (in ) vec2 p0@0x8ce430)\n"
13280 " (declare (in ) vec2 p1@0x8ce540)\n"
13285 " (signature float\n"
13287 " (declare (in ) vec3 p0@0x8ce720)\n"
13288 " (declare (in ) vec3 p1@0x8ce830)\n"
13293 " (signature float\n"
13295 " (declare (in ) vec4 p0@0x8cea10)\n"
13296 " (declare (in ) vec4 p1@0x8ceb20)\n"
13304 " (signature float\n"
13306 " (declare (in ) float x@0x8ced00)\n"
13307 " (declare (in ) float y@0x8cee10)\n"
13312 " (signature float\n"
13314 " (declare (in ) vec2 x@0x8cf1c0)\n"
13315 " (declare (in ) vec2 y@0x8cf2d0)\n"
13320 " (signature float\n"
13322 " (declare (in ) vec3 x@0x8cf4b0)\n"
13323 " (declare (in ) vec3 y@0x8cf5c0)\n"
13328 " (signature float\n"
13330 " (declare (in ) vec4 x@0x8cf7a0)\n"
13331 " (declare (in ) vec4 y@0x8cf8b0)\n"
13338 "(function cross\n"
13339 " (signature vec3\n"
13341 " (declare (in ) vec3 x@0x8cfa90)\n"
13342 " (declare (in ) vec3 y@0x8cfba0)\n"
13349 "(function normalize\n"
13350 " (signature float\n"
13352 " (declare (in ) float x@0x8cff50)\n"
13357 " (signature vec2\n"
13359 " (declare (in ) vec2 x@0x8d0310)\n"
13364 " (signature vec3\n"
13366 " (declare (in ) vec3 x@0x8d04f0)\n"
13371 " (signature vec4\n"
13373 " (declare (in ) vec4 x@0x8d06d0)\n"
13380 "(function faceforward\n"
13381 " (signature float\n"
13383 " (declare (in ) float N@0x8d08b0)\n"
13384 " (declare (in ) float I@0x8d09c0)\n"
13385 " (declare (in ) float Nref@0x8d0ad0)\n"
13390 " (signature vec2\n"
13392 " (declare (in ) vec2 N@0x8d0e90)\n"
13393 " (declare (in ) vec2 I@0x8d0fa0)\n"
13394 " (declare (in ) vec2 Nref@0x8d10b0)\n"
13399 " (signature vec3\n"
13401 " (declare (in ) vec3 N@0x8d1290)\n"
13402 " (declare (in ) vec3 I@0x8d13a0)\n"
13403 " (declare (in ) vec3 Nref@0x8d14b0)\n"
13408 " (signature vec4\n"
13410 " (declare (in ) vec4 N@0x8d1690)\n"
13411 " (declare (in ) vec4 I@0x8d17a0)\n"
13412 " (declare (in ) vec4 Nref@0x8d18b0)\n"
13419 "(function reflect\n"
13420 " (signature float\n"
13422 " (declare (in ) float I@0x8d1a90)\n"
13423 " (declare (in ) float N@0x8d1ba0)\n"
13428 " (signature vec2\n"
13430 " (declare (in ) vec2 I@0x8d1f60)\n"
13431 " (declare (in ) vec2 N@0x8d2070)\n"
13436 " (signature vec3\n"
13438 " (declare (in ) vec3 I@0x8d2250)\n"
13439 " (declare (in ) vec3 N@0x8d2360)\n"
13444 " (signature vec4\n"
13446 " (declare (in ) vec4 I@0x8d2540)\n"
13447 " (declare (in ) vec4 N@0x8d2650)\n"
13454 "(function refract\n"
13455 " (signature float\n"
13457 " (declare (in ) float I@0x8d2830)\n"
13458 " (declare (in ) float N@0x8d2940)\n"
13459 " (declare (in ) float eta@0x8d2a50)\n"
13464 " (signature vec2\n"
13466 " (declare (in ) vec2 I@0x8d2e10)\n"
13467 " (declare (in ) vec2 N@0x8d2f20)\n"
13468 " (declare (in ) float eta@0x8d3030)\n"
13473 " (signature vec3\n"
13475 " (declare (in ) vec3 I@0x8d3210)\n"
13476 " (declare (in ) vec3 N@0x8d3320)\n"
13477 " (declare (in ) float eta@0x8d3430)\n"
13482 " (signature vec4\n"
13484 " (declare (in ) vec4 I@0x8d3610)\n"
13485 " (declare (in ) vec4 N@0x8d3720)\n"
13486 " (declare (in ) float eta@0x8d3830)\n"
13493 "(function matrixCompMult\n"
13494 " (signature mat2\n"
13496 " (declare (in ) mat2 x@0x8d3a10)\n"
13497 " (declare (in ) mat2 y@0x8d3b20)\n"
13502 " (signature mat3\n"
13504 " (declare (in ) mat3 x@0x8d3ee0)\n"
13505 " (declare (in ) mat3 y@0x8d3ff0)\n"
13510 " (signature mat4\n"
13512 " (declare (in ) mat4 x@0x8d41d0)\n"
13513 " (declare (in ) mat4 y@0x8d42e0)\n"
13518 " (signature mat2x3\n"
13520 " (declare (in ) mat2x3 x@0x8d44c0)\n"
13521 " (declare (in ) mat2x3 y@0x8d45d0)\n"
13526 " (signature mat2x4\n"
13528 " (declare (in ) mat2x4 x@0x8d47b0)\n"
13529 " (declare (in ) mat2x4 y@0x8d48c0)\n"
13534 " (signature mat3x2\n"
13536 " (declare (in ) mat3x2 x@0x8d4aa0)\n"
13537 " (declare (in ) mat3x2 y@0x8d4bb0)\n"
13542 " (signature mat3x4\n"
13544 " (declare (in ) mat3x4 x@0x8d4d90)\n"
13545 " (declare (in ) mat3x4 y@0x8d4ea0)\n"
13550 " (signature mat4x2\n"
13552 " (declare (in ) mat4x2 x@0x8d5080)\n"
13553 " (declare (in ) mat4x2 y@0x8d5190)\n"
13558 " (signature mat4x3\n"
13560 " (declare (in ) mat4x3 x@0x8d5370)\n"
13561 " (declare (in ) mat4x3 y@0x8d5480)\n"
13568 "(function outerProduct\n"
13569 " (signature mat2\n"
13571 " (declare (in ) vec2 c@0x8d5660)\n"
13572 " (declare (in ) vec2 r@0x8d5770)\n"
13577 " (signature mat3\n"
13579 " (declare (in ) vec3 c@0x8d5b30)\n"
13580 " (declare (in ) vec3 r@0x8d5c40)\n"
13585 " (signature mat4\n"
13587 " (declare (in ) vec4 c@0x8d5e20)\n"
13588 " (declare (in ) vec4 r@0x8d5f30)\n"
13593 " (signature mat2x3\n"
13595 " (declare (in ) vec3 c@0x8d6110)\n"
13596 " (declare (in ) vec2 r@0x8d6220)\n"
13601 " (signature mat3x2\n"
13603 " (declare (in ) vec2 c@0x8d6400)\n"
13604 " (declare (in ) vec3 r@0x8d6510)\n"
13609 " (signature mat2x4\n"
13611 " (declare (in ) vec4 c@0x8d66f0)\n"
13612 " (declare (in ) vec2 r@0x8d6800)\n"
13617 " (signature mat4x2\n"
13619 " (declare (in ) vec2 c@0x8d69e0)\n"
13620 " (declare (in ) vec4 r@0x8d6af0)\n"
13625 " (signature mat3x4\n"
13627 " (declare (in ) vec4 c@0x8d6cd0)\n"
13628 " (declare (in ) vec3 r@0x8d6de0)\n"
13633 " (signature mat4x3\n"
13635 " (declare (in ) vec3 c@0x8d6fc0)\n"
13636 " (declare (in ) vec4 r@0x8d70d0)\n"
13643 "(function transpose\n"
13644 " (signature mat2\n"
13646 " (declare (in ) mat2 m@0x8d72b0)\n"
13651 " (signature mat3\n"
13653 " (declare (in ) mat3 m@0x8d7670)\n"
13658 " (signature mat4\n"
13660 " (declare (in ) mat4 m@0x8d7850)\n"
13665 " (signature mat2x3\n"
13667 " (declare (in ) mat3x2 m@0x8d7a30)\n"
13672 " (signature mat3x2\n"
13674 " (declare (in ) mat2x3 m@0x8d7c10)\n"
13679 " (signature mat2x4\n"
13681 " (declare (in ) mat4x2 m@0x8d7df0)\n"
13686 " (signature mat4x2\n"
13688 " (declare (in ) mat2x4 m@0x8d7fd0)\n"
13693 " (signature mat3x4\n"
13695 " (declare (in ) mat4x3 m@0x8d81b0)\n"
13700 " (signature mat4x3\n"
13702 " (declare (in ) mat3x4 m@0x8d8390)\n"
13709 "(function lessThan\n"
13710 " (signature bvec2\n"
13712 " (declare (in ) vec2 x@0x8d8570)\n"
13713 " (declare (in ) vec2 y@0x8d8680)\n"
13718 " (signature bvec3\n"
13720 " (declare (in ) vec3 x@0x8d8a40)\n"
13721 " (declare (in ) vec3 y@0x8d8b50)\n"
13726 " (signature bvec4\n"
13728 " (declare (in ) vec4 x@0x8d8d30)\n"
13729 " (declare (in ) vec4 y@0x8d8e40)\n"
13734 " (signature bvec2\n"
13736 " (declare (in ) ivec2 x@0x8d9020)\n"
13737 " (declare (in ) ivec2 y@0x8d9130)\n"
13742 " (signature bvec3\n"
13744 " (declare (in ) ivec3 x@0x8d9310)\n"
13745 " (declare (in ) ivec3 y@0x8d9420)\n"
13750 " (signature bvec4\n"
13752 " (declare (in ) ivec4 x@0x8d9600)\n"
13753 " (declare (in ) ivec4 y@0x8d9710)\n"
13760 "(function lessThanEqual\n"
13761 " (signature bvec2\n"
13763 " (declare (in ) vec2 x@0x8d98f0)\n"
13764 " (declare (in ) vec2 y@0x8d9a00)\n"
13769 " (signature bvec3\n"
13771 " (declare (in ) vec3 x@0x8d9dc0)\n"
13772 " (declare (in ) vec3 y@0x8d9ed0)\n"
13777 " (signature bvec4\n"
13779 " (declare (in ) vec4 x@0x8da0b0)\n"
13780 " (declare (in ) vec4 y@0x8da1c0)\n"
13785 " (signature bvec2\n"
13787 " (declare (in ) ivec2 x@0x8da3a0)\n"
13788 " (declare (in ) ivec2 y@0x8da4b0)\n"
13793 " (signature bvec3\n"
13795 " (declare (in ) ivec3 x@0x8da690)\n"
13796 " (declare (in ) ivec3 y@0x8da7a0)\n"
13801 " (signature bvec4\n"
13803 " (declare (in ) ivec4 x@0x8da980)\n"
13804 " (declare (in ) ivec4 y@0x8daa90)\n"
13811 "(function greaterThan\n"
13812 " (signature bvec2\n"
13814 " (declare (in ) vec2 x@0x8dac70)\n"
13815 " (declare (in ) vec2 y@0x8dad80)\n"
13820 " (signature bvec3\n"
13822 " (declare (in ) vec3 x@0x8db140)\n"
13823 " (declare (in ) vec3 y@0x8db250)\n"
13828 " (signature bvec4\n"
13830 " (declare (in ) vec4 x@0x8db430)\n"
13831 " (declare (in ) vec4 y@0x8db540)\n"
13836 " (signature bvec2\n"
13838 " (declare (in ) ivec2 x@0x8db720)\n"
13839 " (declare (in ) ivec2 y@0x8db830)\n"
13844 " (signature bvec3\n"
13846 " (declare (in ) ivec3 x@0x8dba10)\n"
13847 " (declare (in ) ivec3 y@0x8dbb20)\n"
13852 " (signature bvec4\n"
13854 " (declare (in ) ivec4 x@0x8dbd00)\n"
13855 " (declare (in ) ivec4 y@0x8dbe10)\n"
13862 "(function greaterThanEqual\n"
13863 " (signature bvec2\n"
13865 " (declare (in ) vec2 x@0x8dbff0)\n"
13866 " (declare (in ) vec2 y@0x8dc100)\n"
13871 " (signature bvec3\n"
13873 " (declare (in ) vec3 x@0x8dc4c0)\n"
13874 " (declare (in ) vec3 y@0x8dc5d0)\n"
13879 " (signature bvec4\n"
13881 " (declare (in ) vec4 x@0x8dc7b0)\n"
13882 " (declare (in ) vec4 y@0x8dc8c0)\n"
13887 " (signature bvec2\n"
13889 " (declare (in ) ivec2 x@0x8dcaa0)\n"
13890 " (declare (in ) ivec2 y@0x8dcbb0)\n"
13895 " (signature bvec3\n"
13897 " (declare (in ) ivec3 x@0x8dcd90)\n"
13898 " (declare (in ) ivec3 y@0x8dcea0)\n"
13903 " (signature bvec4\n"
13905 " (declare (in ) ivec4 x@0x8dd080)\n"
13906 " (declare (in ) ivec4 y@0x8dd190)\n"
13913 "(function equal\n"
13914 " (signature bvec2\n"
13916 " (declare (in ) vec2 x@0x8dd370)\n"
13917 " (declare (in ) vec2 y@0x8dd480)\n"
13922 " (signature bvec3\n"
13924 " (declare (in ) vec3 x@0x8dd830)\n"
13925 " (declare (in ) vec3 y@0x8dd940)\n"
13930 " (signature bvec4\n"
13932 " (declare (in ) vec4 x@0x8ddb20)\n"
13933 " (declare (in ) vec4 y@0x8ddc30)\n"
13938 " (signature bvec2\n"
13940 " (declare (in ) ivec2 x@0x8dde10)\n"
13941 " (declare (in ) ivec2 y@0x8ddf20)\n"
13946 " (signature bvec3\n"
13948 " (declare (in ) ivec3 x@0x8de100)\n"
13949 " (declare (in ) ivec3 y@0x8de210)\n"
13954 " (signature bvec4\n"
13956 " (declare (in ) ivec4 x@0x8de3f0)\n"
13957 " (declare (in ) ivec4 y@0x8de500)\n"
13962 " (signature bvec2\n"
13964 " (declare (in ) bvec2 x@0x8de6e0)\n"
13965 " (declare (in ) bvec2 y@0x8de7f0)\n"
13970 " (signature bvec3\n"
13972 " (declare (in ) bvec3 x@0x8de9d0)\n"
13973 " (declare (in ) bvec3 y@0x8deae0)\n"
13978 " (signature bvec4\n"
13980 " (declare (in ) bvec4 x@0x8decc0)\n"
13981 " (declare (in ) bvec4 y@0x8dedd0)\n"
13988 "(function notEqual\n"
13989 " (signature bvec2\n"
13991 " (declare (in ) vec2 x@0x8defb0)\n"
13992 " (declare (in ) vec2 y@0x8df0c0)\n"
13997 " (signature bvec3\n"
13999 " (declare (in ) vec3 x@0x8df480)\n"
14000 " (declare (in ) vec3 y@0x8df590)\n"
14005 " (signature bvec4\n"
14007 " (declare (in ) vec4 x@0x8df770)\n"
14008 " (declare (in ) vec4 y@0x8df880)\n"
14013 " (signature bvec2\n"
14015 " (declare (in ) ivec2 x@0x8dfa60)\n"
14016 " (declare (in ) ivec2 y@0x8dfb70)\n"
14021 " (signature bvec3\n"
14023 " (declare (in ) ivec3 x@0x8dfd50)\n"
14024 " (declare (in ) ivec3 y@0x8dfe60)\n"
14029 " (signature bvec4\n"
14031 " (declare (in ) ivec4 x@0x8e0040)\n"
14032 " (declare (in ) ivec4 y@0x8e0150)\n"
14037 " (signature bvec2\n"
14039 " (declare (in ) bvec2 x@0x8e0330)\n"
14040 " (declare (in ) bvec2 y@0x8e0440)\n"
14045 " (signature bvec3\n"
14047 " (declare (in ) bvec3 x@0x8e0620)\n"
14048 " (declare (in ) bvec3 y@0x8e0730)\n"
14053 " (signature bvec4\n"
14055 " (declare (in ) bvec4 x@0x8e0910)\n"
14056 " (declare (in ) bvec4 y@0x8e0a20)\n"
14064 " (signature bool\n"
14066 " (declare (in ) bvec2 x@0x8e0c00)\n"
14071 " (signature bool\n"
14073 " (declare (in ) bvec3 x@0x8e0fb0)\n"
14078 " (signature bool\n"
14080 " (declare (in ) bvec4 x@0x8e1190)\n"
14088 " (signature bool\n"
14090 " (declare (in ) bvec2 x@0x8e1370)\n"
14095 " (signature bool\n"
14097 " (declare (in ) bvec3 x@0x8e1720)\n"
14102 " (signature bool\n"
14104 " (declare (in ) bvec4 x@0x8e1900)\n"
14112 " (signature bvec2\n"
14114 " (declare (in ) bvec2 x@0x8e1ae0)\n"
14119 " (signature bvec3\n"
14121 " (declare (in ) bvec3 x@0x8e1e90)\n"
14126 " (signature bvec4\n"
14128 " (declare (in ) bvec4 x@0x8e2070)\n"
14135 "(function texture1D\n"
14136 " (signature vec4\n"
14138 " (declare (in ) sampler1D sampler@0x8e2250)\n"
14139 " (declare (in ) float coord@0x8e2370)\n"
14144 " (signature vec4\n"
14146 " (declare (in ) sampler1D sampler@0x8e2f10)\n"
14147 " (declare (in ) float coord@0x8e3030)\n"
14148 " (declare (in ) float bias@0x8e3140)\n"
14155 "(function texture1DProj\n"
14156 " (signature vec4\n"
14158 " (declare (in ) sampler1D sampler@0x8e2730)\n"
14159 " (declare (in ) vec2 coord@0x8e2850)\n"
14164 " (signature vec4\n"
14166 " (declare (in ) sampler1D sampler@0x8e2c10)\n"
14167 " (declare (in ) vec4 coord@0x8e2d30)\n"
14172 " (signature vec4\n"
14174 " (declare (in ) sampler1D sampler@0x8e3320)\n"
14175 " (declare (in ) vec2 coord@0x8e3440)\n"
14176 " (declare (in ) float bias@0x8e3550)\n"
14181 " (signature vec4\n"
14183 " (declare (in ) sampler1D sampler@0x8e3730)\n"
14184 " (declare (in ) vec4 coord@0x8e3850)\n"
14185 " (declare (in ) float bias@0x8e3960)\n"
14192 "(function texture2D\n"
14193 " (signature vec4\n"
14195 " (declare (in ) sampler2D sampler@0x8e3b40)\n"
14196 " (declare (in ) vec2 coord@0x8e3c60)\n"
14201 " (signature vec4\n"
14203 " (declare (in ) sampler2D sampler@0x8e4800)\n"
14204 " (declare (in ) vec2 coord@0x8e4920)\n"
14205 " (declare (in ) float bias@0x8e4a30)\n"
14212 "(function texture2DProj\n"
14213 " (signature vec4\n"
14215 " (declare (in ) sampler2D sampler@0x8e4020)\n"
14216 " (declare (in ) vec3 coord@0x8e4140)\n"
14221 " (signature vec4\n"
14223 " (declare (in ) sampler2D sampler@0x8e4500)\n"
14224 " (declare (in ) vec4 coord@0x8e4620)\n"
14229 " (signature vec4\n"
14231 " (declare (in ) sampler2D sampler@0x8e4c10)\n"
14232 " (declare (in ) vec3 coord@0x8e4d30)\n"
14233 " (declare (in ) float bias@0x8e4e40)\n"
14238 " (signature vec4\n"
14240 " (declare (in ) sampler2D sampler@0x8e5020)\n"
14241 " (declare (in ) vec4 coord@0x8e5140)\n"
14242 " (declare (in ) float bias@0x8e5250)\n"
14249 "(function texture3D\n"
14250 " (signature vec4\n"
14252 " (declare (in ) sampler3D sampler@0x8e5430)\n"
14253 " (declare (in ) vec3 coord@0x8e5550)\n"
14258 " (signature vec4\n"
14260 " (declare (in ) sampler3D sampler@0x8e5df0)\n"
14261 " (declare (in ) vec3 coord@0x8e5f10)\n"
14262 " (declare (in ) float bias@0x8e6020)\n"
14269 "(function texture3DProj\n"
14270 " (signature vec4\n"
14272 " (declare (in ) sampler3D sampler@0x8e5910)\n"
14273 " (declare (in ) vec4 coord@0x8e5a30)\n"
14278 " (signature vec4\n"
14280 " (declare (in ) sampler3D sampler@0x8e6200)\n"
14281 " (declare (in ) vec4 coord@0x8e6320)\n"
14282 " (declare (in ) float bias@0x8e6430)\n"
14289 "(function textureCube\n"
14290 " (signature vec4\n"
14292 " (declare (in ) samplerCube sampler@0x8e6610)\n"
14293 " (declare (in ) vec3 coord@0x8e6730)\n"
14298 " (signature vec4\n"
14300 " (declare (in ) samplerCube sampler@0x8e6af0)\n"
14301 " (declare (in ) vec3 coord@0x8e6c10)\n"
14302 " (declare (in ) float bias@0x8e6d20)\n"
14309 "(function shadow1D\n"
14310 " (signature vec4\n"
14312 " (declare (in ) sampler1DShadow sampler@0x8e6f00)\n"
14313 " (declare (in ) vec3 coord@0x8e7020)\n"
14318 " (signature vec4\n"
14320 " (declare (in ) sampler1DShadow sampler@0x8e8280)\n"
14321 " (declare (in ) vec3 coord@0x8e83a0)\n"
14322 " (declare (in ) float bias@0x8e84b0)\n"
14329 "(function shadow2D\n"
14330 " (signature vec4\n"
14332 " (declare (in ) sampler2DShadow sampler@0x8e73e0)\n"
14333 " (declare (in ) vec3 coord@0x8e7500)\n"
14338 " (signature vec4\n"
14340 " (declare (in ) sampler2DShadow sampler@0x8e8690)\n"
14341 " (declare (in ) vec3 coord@0x8e87b0)\n"
14342 " (declare (in ) float bias@0x8e88c0)\n"
14349 "(function shadow1DProj\n"
14350 " (signature vec4\n"
14352 " (declare (in ) sampler1DShadow sampler@0x8e78c0)\n"
14353 " (declare (in ) vec4 coord@0x8e79e0)\n"
14358 " (signature vec4\n"
14360 " (declare (in ) sampler1DShadow sampler@0x8e8aa0)\n"
14361 " (declare (in ) vec4 coord@0x8e8bc0)\n"
14362 " (declare (in ) float bias@0x8e8cd0)\n"
14369 "(function shadow2DProj\n"
14370 " (signature vec4\n"
14372 " (declare (in ) sampler2DShadow sampler@0x8e7da0)\n"
14373 " (declare (in ) vec4 coord@0x8e7ec0)\n"
14378 " (signature vec4\n"
14380 " (declare (in ) sampler2DShadow sampler@0x8e8eb0)\n"
14381 " (declare (in ) vec4 coord@0x8e8fd0)\n"
14382 " (declare (in ) float bias@0x8e90e0)\n"
14390 " (signature float\n"
14392 " (declare (in ) float p@0x8e92c0)\n"
14397 " (signature vec2\n"
14399 " (declare (in ) vec2 p@0x8e9670)\n"
14404 " (signature vec3\n"
14406 " (declare (in ) vec3 p@0x8e9850)\n"
14411 " (signature vec4\n"
14413 " (declare (in ) vec4 p@0x8e9a30)\n"
14421 " (signature float\n"
14423 " (declare (in ) float p@0x8e9c10)\n"
14428 " (signature vec2\n"
14430 " (declare (in ) vec2 p@0x8e9fc0)\n"
14435 " (signature vec3\n"
14437 " (declare (in ) vec3 p@0x8ea1a0)\n"
14442 " (signature vec4\n"
14444 " (declare (in ) vec4 p@0x8ea380)\n"
14451 "(function fwidth\n"
14452 " (signature float\n"
14454 " (declare (in ) float p@0x8ea560)\n"
14459 " (signature vec2\n"
14461 " (declare (in ) vec2 p@0x8ea910)\n"
14466 " (signature vec3\n"
14468 " (declare (in ) vec3 p@0x8eaaf0)\n"
14473 " (signature vec4\n"
14475 " (declare (in ) vec4 p@0x8eacd0)\n"
14482 "(function noise1\n"
14483 " (signature float\n"
14485 " (declare (in ) float x@0x8eaeb0)\n"
14490 " (signature float\n"
14492 " (declare (in ) vec2 x@0x8eb260)\n"
14497 " (signature float\n"
14499 " (declare (in ) vec3 x@0x8eb440)\n"
14504 " (signature float\n"
14506 " (declare (in ) vec4 x@0x8eb620)\n"
14513 "(function noise2\n"
14514 " (signature vec2\n"
14516 " (declare (in ) float x@0x8eb800)\n"
14521 " (signature vec2\n"
14523 " (declare (in ) vec2 x@0x8ebbb0)\n"
14528 " (signature vec2\n"
14530 " (declare (in ) vec3 x@0x8ebd90)\n"
14535 " (signature vec2\n"
14537 " (declare (in ) vec4 x@0x8ebf70)\n"
14544 "(function noise3\n"
14545 " (signature vec3\n"
14547 " (declare (in ) float x@0x8ec150)\n"
14552 " (signature vec3\n"
14554 " (declare (in ) vec2 x@0x8ec500)\n"
14559 " (signature vec3\n"
14561 " (declare (in ) vec3 x@0x8ec6e0)\n"
14566 " (signature vec3\n"
14568 " (declare (in ) vec4 x@0x8ec8c0)\n"
14575 "(function noise4\n"
14576 " (signature vec4\n"
14578 " (declare (in ) float x@0x8ecaa0)\n"
14583 " (signature vec4\n"
14585 " (declare (in ) vec2 x@0x8ece50)\n"
14590 " (signature vec4\n"
14592 " (declare (in ) vec3 x@0x8ed030)\n"
14597 " (signature vec4\n"
14599 " (declare (in ) vec4 x@0x8ed210)\n"
14609 static const char *functions_for_120_frag
[] = {
14611 builtin_matrixCompMult
,
14614 builtin_texture2DProj
,
14616 builtin_greaterThanEqual
,
14618 builtin_texture3DProj
,
14621 builtin_faceforward
,
14624 builtin_shadow1DProj
,
14627 builtin_texture1DProj
,
14634 builtin_shadow2DProj
,
14646 builtin_lessThanEqual
,
14648 builtin_outerProduct
,
14653 builtin_greaterThan
,
14656 builtin_inversesqrt
,
14667 builtin_smoothstep
,
14668 builtin_textureCube
,
14677 void *builtin_mem_ctx
= NULL
;
14680 _mesa_glsl_release_functions(void)
14682 talloc_free(builtin_mem_ctx
);
14686 _mesa_glsl_initialize_functions(exec_list
*instructions
,
14687 struct _mesa_glsl_parse_state
*state
)
14689 if (builtin_mem_ctx
== NULL
)
14690 builtin_mem_ctx
= talloc_init("GLSL built-in functions");
14692 state
->num_builtins_to_link
= 0;
14694 if (state
->target
== vertex_shader
&& state
->language_version
== 120) {
14695 static gl_shader
*sh
= NULL
;
14697 sh
= read_builtins(GL_VERTEX_SHADER
,
14698 prototypes_for_120_vert
,
14699 functions_for_120_vert
,
14700 Elements(functions_for_120_vert
));
14701 talloc_steal(builtin_mem_ctx
, sh
);
14704 import_prototypes(sh
->ir
, instructions
, state
->symbols
,
14706 state
->builtins_to_link
[state
->num_builtins_to_link
] = sh
;
14707 state
->num_builtins_to_link
++;
14710 if (state
->target
== fragment_shader
&& state
->EXT_texture_array_enable
) {
14711 static gl_shader
*sh
= NULL
;
14713 sh
= read_builtins(GL_VERTEX_SHADER
,
14714 prototypes_for_EXT_texture_array_frag
,
14715 functions_for_EXT_texture_array_frag
,
14716 Elements(functions_for_EXT_texture_array_frag
));
14717 talloc_steal(builtin_mem_ctx
, sh
);
14720 import_prototypes(sh
->ir
, instructions
, state
->symbols
,
14722 state
->builtins_to_link
[state
->num_builtins_to_link
] = sh
;
14723 state
->num_builtins_to_link
++;
14726 if (state
->target
== vertex_shader
&& state
->language_version
== 110) {
14727 static gl_shader
*sh
= NULL
;
14729 sh
= read_builtins(GL_VERTEX_SHADER
,
14730 prototypes_for_110_vert
,
14731 functions_for_110_vert
,
14732 Elements(functions_for_110_vert
));
14733 talloc_steal(builtin_mem_ctx
, sh
);
14736 import_prototypes(sh
->ir
, instructions
, state
->symbols
,
14738 state
->builtins_to_link
[state
->num_builtins_to_link
] = sh
;
14739 state
->num_builtins_to_link
++;
14742 if (state
->target
== fragment_shader
&& state
->language_version
== 110) {
14743 static gl_shader
*sh
= NULL
;
14745 sh
= read_builtins(GL_VERTEX_SHADER
,
14746 prototypes_for_110_frag
,
14747 functions_for_110_frag
,
14748 Elements(functions_for_110_frag
));
14749 talloc_steal(builtin_mem_ctx
, sh
);
14752 import_prototypes(sh
->ir
, instructions
, state
->symbols
,
14754 state
->builtins_to_link
[state
->num_builtins_to_link
] = sh
;
14755 state
->num_builtins_to_link
++;
14758 if (state
->target
== vertex_shader
&& state
->EXT_texture_array_enable
) {
14759 static gl_shader
*sh
= NULL
;
14761 sh
= read_builtins(GL_VERTEX_SHADER
,
14762 prototypes_for_EXT_texture_array_vert
,
14763 functions_for_EXT_texture_array_vert
,
14764 Elements(functions_for_EXT_texture_array_vert
));
14765 talloc_steal(builtin_mem_ctx
, sh
);
14768 import_prototypes(sh
->ir
, instructions
, state
->symbols
,
14770 state
->builtins_to_link
[state
->num_builtins_to_link
] = sh
;
14771 state
->num_builtins_to_link
++;
14774 if (state
->target
== vertex_shader
&& state
->ARB_texture_rectangle_enable
) {
14775 static gl_shader
*sh
= NULL
;
14777 sh
= read_builtins(GL_VERTEX_SHADER
,
14778 prototypes_for_ARB_texture_rectangle_vert
,
14779 functions_for_ARB_texture_rectangle_vert
,
14780 Elements(functions_for_ARB_texture_rectangle_vert
));
14781 talloc_steal(builtin_mem_ctx
, sh
);
14784 import_prototypes(sh
->ir
, instructions
, state
->symbols
,
14786 state
->builtins_to_link
[state
->num_builtins_to_link
] = sh
;
14787 state
->num_builtins_to_link
++;
14790 if (state
->target
== fragment_shader
&& state
->ARB_texture_rectangle_enable
) {
14791 static gl_shader
*sh
= NULL
;
14793 sh
= read_builtins(GL_VERTEX_SHADER
,
14794 prototypes_for_ARB_texture_rectangle_frag
,
14795 functions_for_ARB_texture_rectangle_frag
,
14796 Elements(functions_for_ARB_texture_rectangle_frag
));
14797 talloc_steal(builtin_mem_ctx
, sh
);
14800 import_prototypes(sh
->ir
, instructions
, state
->symbols
,
14802 state
->builtins_to_link
[state
->num_builtins_to_link
] = sh
;
14803 state
->num_builtins_to_link
++;
14806 if (state
->target
== fragment_shader
&& state
->language_version
== 120) {
14807 static gl_shader
*sh
= NULL
;
14809 sh
= read_builtins(GL_VERTEX_SHADER
,
14810 prototypes_for_120_frag
,
14811 functions_for_120_frag
,
14812 Elements(functions_for_120_frag
));
14813 talloc_steal(builtin_mem_ctx
, sh
);
14816 import_prototypes(sh
->ir
, instructions
, state
->symbols
,
14818 state
->builtins_to_link
[state
->num_builtins_to_link
] = sh
;
14819 state
->num_builtins_to_link
++;