/* DO NOT MODIFY - automatically generated by generate_builtins.py */ /* * Copyright © 2010 Intel Corporation * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, including without limitation * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice (including the next * paragraph) shall be included in all copies or substantial portions of the * Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. */ #include #include "main/compiler.h" #include "glsl_parser_extras.h" #include "ir_reader.h" #include "program.h" #include "ast.h" extern "C" struct gl_shader * _mesa_new_shader(GLcontext *ctx, GLuint name, GLenum type); gl_shader * read_builtins(GLenum target, const char *protos, const char **functions, unsigned count) { gl_shader *sh = _mesa_new_shader(NULL, 0, target); struct _mesa_glsl_parse_state *st = new(sh) _mesa_glsl_parse_state(NULL, target, sh); st->language_version = 130; st->ARB_texture_rectangle_enable = true; st->EXT_texture_array_enable = true; _mesa_glsl_initialize_types(st); sh->ir = new(sh) exec_list; sh->symbols = st->symbols; /* Read the IR containing the prototypes */ _mesa_glsl_read_ir(st, sh->ir, protos, true); /* Read ALL the function bodies, telling the IR reader not to scan for * prototypes (we've already created them). The IR reader will skip any * signature that does not already exist as a prototype. */ for (unsigned i = 0; i < count; i++) { _mesa_glsl_read_ir(st, sh->ir, functions[i], false); if (st->error) { printf("error reading builtin: %.35s ...\n", functions[i]); talloc_free(sh); return NULL; } } reparent_ir(sh->ir, sh); delete st; return sh; } static const char *builtin_all = "((function all\n" " (signature bool\n" " (parameters\n" " (declare (in) bvec2 arg0))\n" " ((return (expression bool && (swiz x (var_ref arg0))(swiz y (var_ref arg0))))))\n" "\n" " (signature bool\n" " (parameters\n" " (declare (in) bvec3 arg0))\n" " ((return (expression bool && (expression bool && (swiz x (var_ref arg0))(swiz y (var_ref arg0))) (swiz z (var_ref arg0))))))\n" "\n" " (signature bool\n" " (parameters\n" " (declare (in) bvec4 arg0))\n" " ((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" "))\n" "" ; static const char *builtin_textureProj = "((function textureProj\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler1D sampler)\n" " (declare (in) vec2 P) )\n" " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () ))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) isampler1D sampler)\n" " (declare (in) vec2 P) )\n" " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () ))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) usampler1D sampler)\n" " (declare (in) vec2 P) )\n" " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler1D sampler)\n" " (declare (in) vec4 P) )\n" " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) isampler1D sampler)\n" " (declare (in) vec4 P) )\n" " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) usampler1D sampler)\n" " (declare (in) vec4 P) )\n" " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler2D sampler)\n" " (declare (in) vec3 P) )\n" " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () ))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) isampler2D sampler)\n" " (declare (in) vec3 P) )\n" " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () ))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) usampler2D sampler)\n" " (declare (in) vec3 P) )\n" " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler2D sampler)\n" " (declare (in) vec4 P) )\n" " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) isampler2D sampler)\n" " (declare (in) vec4 P) )\n" " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) usampler2D sampler)\n" " (declare (in) vec4 P) )\n" " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler3D sampler)\n" " (declare (in) vec4 P) )\n" " ((return (tex (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) isampler3D sampler)\n" " (declare (in) vec4 P) )\n" " ((return (tex (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) usampler3D sampler)\n" " (declare (in) vec4 P) )\n" " ((return (tex (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler1D sampler)\n" " (declare (in) vec2 P) \n" " (declare (in) float bias) )\n" " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref bias) ))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) isampler1D sampler)\n" " (declare (in) vec2 P) \n" " (declare (in) float bias) )\n" " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref bias) ))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) usampler1D sampler)\n" " (declare (in) vec2 P) \n" " (declare (in) float bias) )\n" " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref bias) ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler1D sampler)\n" " (declare (in) vec4 P) \n" " (declare (in) float bias) )\n" " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) isampler1D sampler)\n" " (declare (in) vec4 P) \n" " (declare (in) float bias) )\n" " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) usampler1D sampler)\n" " (declare (in) vec4 P) \n" " (declare (in) float bias) )\n" " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler2D sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) float bias) )\n" " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref bias) ))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) isampler2D sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) float bias) )\n" " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref bias) ))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) usampler2D sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) float bias) )\n" " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref bias) ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler2D sampler)\n" " (declare (in) vec4 P) \n" " (declare (in) float bias) )\n" " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) isampler2D sampler)\n" " (declare (in) vec4 P) \n" " (declare (in) float bias) )\n" " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) usampler2D sampler)\n" " (declare (in) vec4 P) \n" " (declare (in) float bias) )\n" " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler3D sampler)\n" " (declare (in) vec4 P) \n" " (declare (in) float bias) )\n" " ((return (txb (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) isampler3D sampler)\n" " (declare (in) vec4 P) \n" " (declare (in) float bias) )\n" " ((return (txb (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) usampler3D sampler)\n" " (declare (in) vec4 P) \n" " (declare (in) float bias) )\n" " ((return (txb (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n" "\n" "))\n" "" ; static const char *builtin_fwidth = "((function fwidth\n" " (signature float\n" " (parameters\n" " (declare (in) float p))\n" " ((return (expression float +\n" " (expression float abs (expression float dFdx (var_ref p)))\n" " (expression float abs (expression float dFdy (var_ref p)))))))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in) vec2 p))\n" " ((return (expression vec2 +\n" " (expression vec2 abs (expression vec2 dFdx (var_ref p)))\n" " (expression vec2 abs (expression vec2 dFdy (var_ref p)))))))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in) vec3 p))\n" " ((return (expression vec3 +\n" " (expression vec3 abs (expression vec3 dFdx (var_ref p)))\n" " (expression vec3 abs (expression vec3 dFdy (var_ref p)))))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) vec4 p))\n" " ((return (expression vec4 +\n" " (expression vec4 abs (expression vec4 dFdx (var_ref p)))\n" " (expression vec4 abs (expression vec4 dFdy (var_ref p)))))))\n" "))\n" "" ; static const char *builtin_texture2DProj = "((function texture2DProj\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler2D sampler)\n" " (declare (in) vec3 P) )\n" " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler2D sampler)\n" " (declare (in) vec4 P) )\n" " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler2D sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) float bias) )\n" " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref bias) ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler2D sampler)\n" " (declare (in) vec4 P) \n" " (declare (in) float bias) )\n" " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n" "\n" "))\n" "" ; static const char *builtin_shadow1DProjLod = "((function shadow1DProjLod\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler1DShadow sampler)\n" " (declare (in) vec4 P) \n" " (declare (in) float lod) )\n" " ((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" "\n" "))\n" "" ; static const char *builtin_texture3DLod = "((function texture3DLod\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler3D sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) float lod) )\n" " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n" "\n" "))\n" "" ; static const char *builtin_textureCubeLod = "((function textureCubeLod\n" " (signature vec4\n" " (parameters\n" " (declare (in) samplerCube sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) float lod) )\n" " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n" "\n" "))\n" "" ; static const char *builtin_texture = "((function texture\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler1D sampler)\n" " (declare (in) float P) )\n" " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) isampler1D sampler)\n" " (declare (in) float P) )\n" " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) usampler1D sampler)\n" " (declare (in) float P) )\n" " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler2D sampler)\n" " (declare (in) vec2 P) )\n" " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) isampler2D sampler)\n" " (declare (in) vec2 P) )\n" " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) usampler2D sampler)\n" " (declare (in) vec2 P) )\n" " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler3D sampler)\n" " (declare (in) vec3 P) )\n" " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) isampler3D sampler)\n" " (declare (in) vec3 P) )\n" " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) usampler3D sampler)\n" " (declare (in) vec3 P) )\n" " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) samplerCube sampler)\n" " (declare (in) vec3 P) )\n" " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) isamplerCube sampler)\n" " (declare (in) vec3 P) )\n" " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) usamplerCube sampler)\n" " (declare (in) vec3 P) )\n" " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler1DArray sampler)\n" " (declare (in) vec2 P) )\n" " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) isampler1DArray sampler)\n" " (declare (in) vec2 P) )\n" " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) usampler1DArray sampler)\n" " (declare (in) vec2 P) )\n" " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler2DArray sampler)\n" " (declare (in) vec3 P) )\n" " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) isampler2DArray sampler)\n" " (declare (in) vec3 P) )\n" " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) usampler2DArray sampler)\n" " (declare (in) vec3 P) )\n" " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler1D sampler)\n" " (declare (in) float P) \n" " (declare (in) float bias) )\n" " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) isampler1D sampler)\n" " (declare (in) float P) \n" " (declare (in) float bias) )\n" " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) usampler1D sampler)\n" " (declare (in) float P) \n" " (declare (in) float bias) )\n" " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler2D sampler)\n" " (declare (in) vec2 P) \n" " (declare (in) float bias) )\n" " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) isampler2D sampler)\n" " (declare (in) vec2 P) \n" " (declare (in) float bias) )\n" " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) usampler2D sampler)\n" " (declare (in) vec2 P) \n" " (declare (in) float bias) )\n" " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler3D sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) float bias) )\n" " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) isampler3D sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) float bias) )\n" " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) usampler3D sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) float bias) )\n" " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) samplerCube sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) float bias) )\n" " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) isamplerCube sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) float bias) )\n" " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) usamplerCube sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) float bias) )\n" " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler1DArray sampler)\n" " (declare (in) vec2 P) \n" " (declare (in) float bias) )\n" " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) isampler1DArray sampler)\n" " (declare (in) vec2 P) \n" " (declare (in) float bias) )\n" " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) usampler1DArray sampler)\n" " (declare (in) vec2 P) \n" " (declare (in) float bias) )\n" " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler2DArray sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) float bias) )\n" " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) isampler2DArray sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) float bias) )\n" " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) usampler2DArray sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) float bias) )\n" " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n" "\n" "))\n" "" ; static const char *builtin_degrees = "((function degrees\n" " (signature float\n" " (parameters\n" " (declare (in) float arg0))\n" " ((return (expression float * (var_ref arg0) (constant float (57.295780))))))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in) vec2 arg0))\n" " ((return (expression vec2 * (var_ref arg0) (constant float (57.295780))))))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in) vec3 arg0))\n" " ((return (expression vec3 * (var_ref arg0) (constant float (57.295780))))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) vec4 arg0))\n" " ((return (expression vec4 * (var_ref arg0) (constant float (57.295780))))))\n" "))\n" "" ; static const char *builtin_texture2DArrayLod = "((function texture2DArrayLod\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler2DArray sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) float lod) )\n" " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n" "\n" "))\n" "" ; static const char *builtin_ceil = "((function ceil\n" " (signature float\n" " (parameters\n" " (declare (in) float arg0))\n" " ((return (expression float ceil (var_ref arg0)))))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in) vec2 arg0))\n" " ((return (expression vec2 ceil (var_ref arg0)))))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in) vec3 arg0))\n" " ((return (expression vec3 ceil (var_ref arg0)))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) vec4 arg0))\n" " ((return (expression vec4 ceil (var_ref arg0)))))\n" "))\n" "" ; static const char *builtin_texture1D = "((function texture1D\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler1D sampler)\n" " (declare (in) float P) )\n" " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler1D sampler)\n" " (declare (in) float P) \n" " (declare (in) float bias) )\n" " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n" "\n" "))\n" "" ; static const char *builtin_not = "((function not\n" " (signature bvec2\n" " (parameters\n" " (declare (in) bvec2 arg0))\n" " ((return (expression bvec2 ! (var_ref arg0)))))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in) bvec3 arg0))\n" " ((return (expression bvec3 ! (var_ref arg0)))))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in) bvec4 arg0))\n" " ((return (expression bvec4 ! (var_ref arg0)))))\n" "))\n" "" ; static const char *builtin_texture2DRectProj = "((function texture2DRectProj\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler2DRect sampler)\n" " (declare (in) vec3 P) )\n" " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler2DRect sampler)\n" " (declare (in) vec4 P) )\n" " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n" "\n" "))\n" "" ; static const char *builtin_mod = "((function mod\n" " (signature float\n" " (parameters\n" " (declare (in) float arg0)\n" " (declare (in) float arg1))\n" " ((return (expression float % (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in) vec2 arg0)\n" " (declare (in) vec2 arg1))\n" " ((return (expression vec2 % (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in) vec3 arg0)\n" " (declare (in) vec3 arg1))\n" " ((return (expression vec3 % (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) vec4 arg0)\n" " (declare (in) vec4 arg1))\n" " ((return (expression vec4 % (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in) vec2 arg0)\n" " (declare (in) float arg1))\n" " ((return (expression vec2 % (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in) vec3 arg0)\n" " (declare (in) float arg1))\n" " ((return (expression vec3 % (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) vec4 arg0)\n" " (declare (in) float arg1))\n" " ((return (expression vec4 % (var_ref arg0) (var_ref arg1)))))\n" "))\n" "" ; static const char *builtin_radians = "((function radians\n" " (signature float\n" " (parameters\n" " (declare (in) float arg0))\n" " ((return (expression float * (var_ref arg0) (constant float (0.017453))))))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in) vec2 arg0))\n" " ((return (expression vec2 * (var_ref arg0) (constant float (0.017453))))))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in) vec3 arg0))\n" " ((return (expression vec3 * (var_ref arg0) (constant float (0.017453))))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) vec4 arg0))\n" " ((return (expression vec4 * (var_ref arg0) (constant float (0.017453))))))\n" "))\n" "" ; static const char *builtin_smoothstep = "((function smoothstep\n" " (signature float\n" " (parameters\n" " (declare (in) float edge0)\n" " (declare (in) float edge1)\n" " (declare (in) float x))\n" " ((declare () float t)\n" "\n" " (assign (constant bool (1)) (var_ref t)\n" " (expression float max\n" " (expression float min\n" " (expression float / (expression float - (var_ref x) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n" " (constant float (1.0)))\n" " (constant float (0.0))))\n" " (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" "\n" " (signature vec2\n" " (parameters\n" " (declare (in) float edge0)\n" " (declare (in) float edge1)\n" " (declare (in) vec2 x))\n" " ((declare () vec2 t)\n" " (declare () vec2 retval)\n" "\n" " (assign (constant bool (1)) (swiz x (var_ref t))\n" " (expression float max\n" " (expression float min\n" " (expression float / (expression float - (swiz x (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n" " (constant float (1.0)))\n" " (constant float (0.0))))\n" " (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" "\n" " (assign (constant bool (1)) (swiz y (var_ref t))\n" " (expression float max\n" " (expression float min\n" " (expression float / (expression float - (swiz y (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n" " (constant float (1.0)))\n" " (constant float (0.0))))\n" " (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" " (return (var_ref retval))\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in) float edge0)\n" " (declare (in) float edge1)\n" " (declare (in) vec3 x))\n" " ((declare () vec3 t)\n" " (declare () vec3 retval)\n" "\n" " (assign (constant bool (1)) (swiz x (var_ref t))\n" " (expression float max\n" " (expression float min\n" " (expression float / (expression float - (swiz x (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n" " (constant float (1.0)))\n" " (constant float (0.0))))\n" " (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" "\n" " (assign (constant bool (1)) (swiz y (var_ref t))\n" " (expression float max\n" " (expression float min\n" " (expression float / (expression float - (swiz y (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n" " (constant float (1.0)))\n" " (constant float (0.0))))\n" " (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" "\n" " (assign (constant bool (1)) (swiz z (var_ref t))\n" " (expression float max\n" " (expression float min\n" " (expression float / (expression float - (swiz z (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n" " (constant float (1.0)))\n" " (constant float (0.0))))\n" " (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" " (return (var_ref retval))\n" " ))\n" "\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) float edge0)\n" " (declare (in) float edge1)\n" " (declare (in) vec4 x))\n" " ((declare () vec4 t)\n" " (declare () vec4 retval)\n" "\n" " (assign (constant bool (1)) (swiz x (var_ref t))\n" " (expression float max\n" " (expression float min\n" " (expression float / (expression float - (swiz x (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n" " (constant float (1.0)))\n" " (constant float (0.0))))\n" " (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" "\n" " (assign (constant bool (1)) (swiz y (var_ref t))\n" " (expression float max\n" " (expression float min\n" " (expression float / (expression float - (swiz y (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n" " (constant float (1.0)))\n" " (constant float (0.0))))\n" " (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" "\n" " (assign (constant bool (1)) (swiz z (var_ref t))\n" " (expression float max\n" " (expression float min\n" " (expression float / (expression float - (swiz z (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n" " (constant float (1.0)))\n" " (constant float (0.0))))\n" " (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" "\n" " (assign (constant bool (1)) (swiz w (var_ref t))\n" " (expression float max\n" " (expression float min\n" " (expression float / (expression float - (swiz w (var_ref x)) (var_ref edge0)) (expression float - (var_ref edge1) (var_ref edge0)))\n" " (constant float (1.0)))\n" " (constant float (0.0))))\n" " (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" " (return (var_ref retval))\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in) vec2 edge0)\n" " (declare (in) vec2 edge1)\n" " (declare (in) vec2 x))\n" " ((return (expression vec2 max\n" " (expression vec2 min\n" " (expression vec2 / (expression vec2 - (var_ref x) (var_ref edge0)) (expression vec2 - (var_ref edge1) (var_ref edge0)))\n" " (constant vec2 (1.0 1.0)))\n" " (constant vec2 (0.0 0.0))))))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in) vec3 edge0)\n" " (declare (in) vec3 edge1)\n" " (declare (in) vec3 x))\n" " ((return (expression vec3 max\n" " (expression vec3 min\n" " (expression vec3 / (expression vec3 - (var_ref x) (var_ref edge0)) (expression vec3 - (var_ref edge1) (var_ref edge0)))\n" " (constant vec3 (1.0 1.0 1.0)))\n" " (constant vec3 (0.0 0.0 0.0))))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) vec4 edge0)\n" " (declare (in) vec4 edge1)\n" " (declare (in) vec4 x))\n" " ((return (expression vec4 max\n" " (expression vec4 min\n" " (expression vec4 / (expression vec4 - (var_ref x) (var_ref edge0)) (expression vec4 - (var_ref edge1) (var_ref edge0)))\n" " (constant vec4 (1.0 1.0 1.0 1.0)))\n" " (constant vec4 (0.0 0.0 0.0 0.0))))))\n" "))\n" "\n" "" ; static const char *builtin_textureProjGrad = "((function textureProjGrad\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler1D sampler)\n" " (declare (in) vec2 P) \n" " (declare (in) float dPdx) \n" " (declare (in) float dPdy) )\n" " ((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" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) isampler1D sampler)\n" " (declare (in) vec2 P) \n" " (declare (in) float dPdx) \n" " (declare (in) float dPdy) )\n" " ((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" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) usampler1D sampler)\n" " (declare (in) vec2 P) \n" " (declare (in) float dPdx) \n" " (declare (in) float dPdy) )\n" " ((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" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler1D sampler)\n" " (declare (in) vec4 P) \n" " (declare (in) float dPdx) \n" " (declare (in) float dPdy) )\n" " ((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" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) isampler1D sampler)\n" " (declare (in) vec4 P) \n" " (declare (in) float dPdx) \n" " (declare (in) float dPdy) )\n" " ((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" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) usampler1D sampler)\n" " (declare (in) vec4 P) \n" " (declare (in) float dPdx) \n" " (declare (in) float dPdy) )\n" " ((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" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler2D sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) vec2 dPdx) \n" " (declare (in) vec2 dPdy) )\n" " ((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" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) isampler2D sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) vec2 dPdx) \n" " (declare (in) vec2 dPdy) )\n" " ((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" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) usampler2D sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) vec2 dPdx) \n" " (declare (in) vec2 dPdy) )\n" " ((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" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler2D sampler)\n" " (declare (in) vec4 P) \n" " (declare (in) vec2 dPdx) \n" " (declare (in) vec2 dPdy) )\n" " ((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" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) isampler2D sampler)\n" " (declare (in) vec4 P) \n" " (declare (in) vec2 dPdx) \n" " (declare (in) vec2 dPdy) )\n" " ((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" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) usampler2D sampler)\n" " (declare (in) vec4 P) \n" " (declare (in) vec2 dPdx) \n" " (declare (in) vec2 dPdy) )\n" " ((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" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler3D sampler)\n" " (declare (in) vec4 P) \n" " (declare (in) vec3 dPdx) \n" " (declare (in) vec3 dPdy) )\n" " ((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" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) isampler3D sampler)\n" " (declare (in) vec4 P) \n" " (declare (in) vec3 dPdx) \n" " (declare (in) vec3 dPdy) )\n" " ((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" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) usampler3D sampler)\n" " (declare (in) vec4 P) \n" " (declare (in) vec3 dPdx) \n" " (declare (in) vec3 dPdy) )\n" " ((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" "\n" "))\n" "" ; static const char *builtin_dFdx = "((function dFdx\n" " (signature float\n" " (parameters\n" " (declare (in) float p))\n" " ((return (expression float dFdx (var_ref p)))))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in) vec2 p))\n" " ((return (expression vec2 dFdx (var_ref p)))))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in) vec3 p))\n" " ((return (expression vec3 dFdx (var_ref p)))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) vec4 p))\n" " ((return (expression vec4 dFdx (var_ref p)))))\n" "))\n" "" ; static const char *builtin_dFdy = "((function dFdy\n" " (signature float\n" " (parameters\n" " (declare (in) float p))\n" " ((return (expression float dFdy (var_ref p)))))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in) vec2 p))\n" " ((return (expression vec2 dFdy (var_ref p)))))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in) vec3 p))\n" " ((return (expression vec3 dFdy (var_ref p)))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) vec4 p))\n" " ((return (expression vec4 dFdy (var_ref p)))))\n" "))\n" "" ; static const char *builtin_textureGrad = "((function textureGrad\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler1D sampler)\n" " (declare (in) float P) \n" " (declare (in) float dPdx) \n" " (declare (in) float dPdy) )\n" " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) isampler1D sampler)\n" " (declare (in) float P) \n" " (declare (in) float dPdx) \n" " (declare (in) float dPdy) )\n" " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) usampler1D sampler)\n" " (declare (in) float P) \n" " (declare (in) float dPdx) \n" " (declare (in) float dPdy) )\n" " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler2D sampler)\n" " (declare (in) vec2 P) \n" " (declare (in) vec2 dPdx) \n" " (declare (in) vec2 dPdy) )\n" " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) isampler2D sampler)\n" " (declare (in) vec2 P) \n" " (declare (in) vec2 dPdx) \n" " (declare (in) vec2 dPdy) )\n" " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) usampler2D sampler)\n" " (declare (in) vec2 P) \n" " (declare (in) vec2 dPdx) \n" " (declare (in) vec2 dPdy) )\n" " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler3D sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) vec3 dPdx) \n" " (declare (in) vec3 dPdy) )\n" " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) isampler3D sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) vec3 dPdx) \n" " (declare (in) vec3 dPdy) )\n" " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) usampler3D sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) vec3 dPdx) \n" " (declare (in) vec3 dPdy) )\n" " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) samplerCube sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) vec3 dPdx) \n" " (declare (in) vec3 dPdy) )\n" " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) isamplerCube sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) vec3 dPdx) \n" " (declare (in) vec3 dPdy) )\n" " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) usamplerCube sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) vec3 dPdx) \n" " (declare (in) vec3 dPdy) )\n" " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler1DArray sampler)\n" " (declare (in) vec2 P) \n" " (declare (in) vec2 dPdx) \n" " (declare (in) vec2 dPdy) )\n" " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) isampler1DArray sampler)\n" " (declare (in) vec2 P) \n" " (declare (in) vec2 dPdx) \n" " (declare (in) vec2 dPdy) )\n" " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) usampler1DArray sampler)\n" " (declare (in) vec2 P) \n" " (declare (in) vec2 dPdx) \n" " (declare (in) vec2 dPdy) )\n" " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler2DArray sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) vec3 dPdx) \n" " (declare (in) vec3 dPdy) )\n" " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) isampler2DArray sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) vec3 dPdx) \n" " (declare (in) vec3 dPdy) )\n" " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) usampler2DArray sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) vec3 dPdx) \n" " (declare (in) vec3 dPdy) )\n" " ((return (txd (var_ref sampler) (var_ref P) (0 0 0) 1 () ((var_ref dPdx) (var_ref dPdy)) ))))\n" "\n" "))\n" "" ; static const char *builtin_clamp = "((function clamp\n" " (signature float\n" " (parameters\n" " (declare (in) float arg0)\n" " (declare (in) float arg1)\n" " (declare (in) float arg2))\n" " ((return (expression float max (expression float min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in) vec2 arg0)\n" " (declare (in) vec2 arg1)\n" " (declare (in) vec2 arg2))\n" " ((return (expression vec2 max (expression vec2 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in) vec3 arg0)\n" " (declare (in) vec3 arg1)\n" " (declare (in) vec3 arg2))\n" " ((return (expression vec3 max (expression vec3 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) vec4 arg0)\n" " (declare (in) vec4 arg1)\n" " (declare (in) vec4 arg2))\n" " ((return (expression vec4 max (expression vec4 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in) vec2 arg0)\n" " (declare (in) float arg1)\n" " (declare (in) float arg2))\n" " ((return (expression vec2 max (expression vec2 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in) vec3 arg0)\n" " (declare (in) float arg1)\n" " (declare (in) float arg2))\n" " ((return (expression vec3 max (expression vec3 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) vec4 arg0)\n" " (declare (in) float arg1)\n" " (declare (in) float arg2))\n" " ((return (expression vec4 max (expression vec4 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n" "\n" " (signature int\n" " (parameters\n" " (declare (in) int arg0)\n" " (declare (in) int arg1)\n" " (declare (in) int arg2))\n" " ((return (expression int max (expression int min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n" "\n" " (signature ivec2\n" " (parameters\n" " (declare (in) ivec2 arg0)\n" " (declare (in) ivec2 arg1)\n" " (declare (in) ivec2 arg2))\n" " ((return (expression ivec2 max (expression ivec2 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n" "\n" " (signature ivec3\n" " (parameters\n" " (declare (in) ivec3 arg0)\n" " (declare (in) ivec3 arg1)\n" " (declare (in) ivec3 arg2))\n" " ((return (expression ivec3 max (expression ivec3 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) ivec4 arg0)\n" " (declare (in) ivec4 arg1)\n" " (declare (in) ivec4 arg2))\n" " ((return (expression ivec4 max (expression ivec4 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n" "\n" " (signature ivec2\n" " (parameters\n" " (declare (in) ivec2 arg0)\n" " (declare (in) int arg1)\n" " (declare (in) int arg2))\n" " ((return (expression ivec2 max (expression ivec2 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n" "\n" " (signature ivec3\n" " (parameters\n" " (declare (in) ivec3 arg0)\n" " (declare (in) int arg1)\n" " (declare (in) int arg2))\n" " ((return (expression ivec3 max (expression ivec3 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) ivec4 arg0)\n" " (declare (in) int arg1)\n" " (declare (in) int arg2))\n" " ((return (expression ivec4 max (expression ivec4 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n" "\n" " (signature uint\n" " (parameters\n" " (declare (in) uint arg0)\n" " (declare (in) uint arg1)\n" " (declare (in) uint arg2))\n" " ((return (expression uint max (expression uint min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n" "\n" " (signature uvec2\n" " (parameters\n" " (declare (in) uvec2 arg0)\n" " (declare (in) uvec2 arg1)\n" " (declare (in) uvec2 arg2))\n" " ((return (expression uvec2 max (expression uvec2 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n" "\n" " (signature uvec3\n" " (parameters\n" " (declare (in) uvec3 arg0)\n" " (declare (in) uvec3 arg1)\n" " (declare (in) uvec3 arg2))\n" " ((return (expression uvec3 max (expression uvec3 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) uvec4 arg0)\n" " (declare (in) uvec4 arg1)\n" " (declare (in) uvec4 arg2))\n" " ((return (expression uvec4 max (expression uvec4 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n" "\n" " (signature uvec2\n" " (parameters\n" " (declare (in) uvec2 arg0)\n" " (declare (in) uint arg1)\n" " (declare (in) uint arg2))\n" " ((return (expression uvec2 max (expression uvec2 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n" "\n" " (signature uvec3\n" " (parameters\n" " (declare (in) uvec3 arg0)\n" " (declare (in) uint arg1)\n" " (declare (in) uint arg2))\n" " ((return (expression uvec3 max (expression uvec3 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) uvec4 arg0)\n" " (declare (in) uint arg1)\n" " (declare (in) uint arg2))\n" " ((return (expression uvec4 max (expression uvec4 min (var_ref arg0) (var_ref arg2)) (var_ref arg1)))))\n" "))\n" "" ; static const char *builtin_texture2DRect = "((function texture2DRect\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler2DRect sampler)\n" " (declare (in) vec2 P) )\n" " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n" "\n" "))\n" "" ; static const char *builtin_cosh = "((function cosh\n" " (signature float\n" " (parameters\n" " (declare (in) float x))\n" " ((return (expression float * (constant float (0.5))\n" " (expression float +\n" " (expression float exp (var_ref x))\n" " (expression float exp (expression float neg (var_ref x))))))))\n" " (signature vec2\n" " (parameters\n" " (declare (in) vec2 x))\n" " ((return (expression vec2 * (constant vec2 (0.5))\n" " (expression vec2 +\n" " (expression vec2 exp (var_ref x))\n" " (expression vec2 exp (expression vec2 neg (var_ref x))))))))\n" " (signature vec3\n" " (parameters\n" " (declare (in) vec3 x))\n" " ((return (expression vec3 * (constant vec3 (0.5))\n" " (expression vec3 +\n" " (expression vec3 exp (var_ref x))\n" " (expression vec3 exp (expression vec3 neg (var_ref x))))))))\n" " (signature vec4\n" " (parameters\n" " (declare (in) vec4 x))\n" " ((return (expression vec4 * (constant vec4 (0.5))\n" " (expression vec4 +\n" " (expression vec4 exp (var_ref x))\n" " (expression vec4 exp (expression vec4 neg (var_ref x))))))))\n" "))\n" "" ; static const char *builtin_texture1DArrayLod = "((function texture1DArrayLod\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler1DArray sampler)\n" " (declare (in) vec2 P) \n" " (declare (in) float lod) )\n" " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n" "\n" "))\n" "" ; static const char *builtin_asin = "((function asin\n" " (signature float\n" " (parameters\n" " (declare (in) float x))\n" " ((return (expression float *\n" " (expression float sign (var_ref x))\n" " (expression float -\n" " (expression float *\n" " (constant float (3.1415926))\n" " (constant float (0.5)))\n" " (expression float *\n" " (expression float sqrt\n" " (expression float -\n" " (constant float (1.0))\n" " (expression float abs (var_ref x))))\n" " (expression float +\n" " (constant float (1.5707288))\n" " (expression float *\n" " (expression float abs (var_ref x))\n" " (expression float +\n" " (constant float (-0.2121144))\n" " (expression float *\n" " (constant float (0.0742610))\n" " (expression float abs (var_ref x))))))))))))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in) vec2 x))\n" " ((return (expression vec2 *\n" " (expression vec2 sign (var_ref x))\n" " (expression vec2 -\n" " (expression float *\n" " (constant float (3.1415926))\n" " (constant float (0.5)))\n" " (expression vec2 *\n" " (expression vec2 sqrt\n" " (expression vec2 -\n" " (constant float (1.0))\n" " (expression vec2 abs (var_ref x))))\n" " (expression vec2 +\n" " (constant float (1.5707288))\n" " (expression vec2 *\n" " (expression vec2 abs (var_ref x))\n" " (expression vec2 +\n" " (constant float (-0.2121144))\n" " (expression vec2 *\n" " (constant float (0.0742610))\n" " (expression vec2 abs (var_ref x))))))))))))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in) vec3 x))\n" " ((return (expression vec3 *\n" " (expression vec3 sign (var_ref x))\n" " (expression vec3 -\n" " (expression float *\n" " (constant float (3.1415926))\n" " (constant float (0.5)))\n" " (expression vec3 *\n" " (expression vec3 sqrt\n" " (expression vec3 -\n" " (constant float (1.0))\n" " (expression vec3 abs (var_ref x))))\n" " (expression vec3 +\n" " (constant float (1.5707288))\n" " (expression vec3 *\n" " (expression vec3 abs (var_ref x))\n" " (expression vec3 +\n" " (constant float (-0.2121144))\n" " (expression vec3 *\n" " (constant float (0.0742610))\n" " (expression vec3 abs (var_ref x))))))))))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) vec4 x))\n" " ((return (expression vec4 *\n" " (expression vec4 sign (var_ref x))\n" " (expression vec4 -\n" " (expression float *\n" " (constant float (3.1415926))\n" " (constant float (0.5)))\n" " (expression vec4 *\n" " (expression vec4 sqrt\n" " (expression vec4 -\n" " (constant float (1.0))\n" " (expression vec4 abs (var_ref x))))\n" " (expression vec4 +\n" " (constant float (1.5707288))\n" " (expression vec4 *\n" " (expression vec4 abs (var_ref x))\n" " (expression vec4 +\n" " (constant float (-0.2121144))\n" " (expression vec4 *\n" " (constant float (0.0742610))\n" " (expression vec4 abs (var_ref x))))))))))))\n" "))\n" "" ; static const char *builtin_texture1DProj = "((function texture1DProj\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler1D sampler)\n" " (declare (in) vec2 P) )\n" " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler1D sampler)\n" " (declare (in) vec4 P) )\n" " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler1D sampler)\n" " (declare (in) vec2 P) \n" " (declare (in) float bias) )\n" " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref bias) ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler1D sampler)\n" " (declare (in) vec4 P) \n" " (declare (in) float bias) )\n" " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n" "\n" "))\n" "" ; static const char *builtin_lessThan = "((function lessThan\n" " (signature bvec2\n" " (parameters\n" " (declare (in) vec2 arg0)\n" " (declare (in) vec2 arg1))\n" " ((declare () bvec2 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n" " (return (var_ref temp))))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in) vec3 arg0)\n" " (declare (in) vec3 arg1))\n" " ((declare () bvec3 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool < (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n" " (return (var_ref temp))))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in) vec4 arg0)\n" " (declare (in) vec4 arg1))\n" " ((declare () bvec4 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool < (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool < (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n" " (return (var_ref temp))))\n" "\n" " (signature bvec2\n" " (parameters\n" " (declare (in) ivec2 arg0)\n" " (declare (in) ivec2 arg1))\n" " ((declare () bvec2 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n" " (return (var_ref temp))))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in) ivec3 arg0)\n" " (declare (in) ivec3 arg1))\n" " ((declare () bvec3 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool < (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n" " (return (var_ref temp))))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in) ivec4 arg0)\n" " (declare (in) ivec4 arg1))\n" " ((declare () bvec4 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool < (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool < (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n" " (return (var_ref temp))))\n" "\n" " (signature bvec2\n" " (parameters\n" " (declare (in) uvec2 arg0)\n" " (declare (in) uvec2 arg1))\n" " ((declare () bvec2 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n" " (return (var_ref temp))))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in) uvec3 arg0)\n" " (declare (in) uvec3 arg1))\n" " ((declare () bvec3 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool < (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n" " (return (var_ref temp))))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in) uvec4 arg0)\n" " (declare (in) uvec4 arg1))\n" " ((declare () bvec4 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool < (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool < (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool < (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool < (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n" " (return (var_ref temp))))\n" "))\n" "" ; static const char *builtin_shadow2DProj = "((function shadow2DProj\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler2DShadow sampler)\n" " (declare (in) vec4 P) )\n" " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) (swiz z (var_ref P)) ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler2DShadow sampler)\n" " (declare (in) vec4 P) \n" " (declare (in) float bias) )\n" " ((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" "\n" "))\n" "" ; static const char *builtin_textureLod = "((function textureLod\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler1D sampler)\n" " (declare (in) float P) \n" " (declare (in) float lod) )\n" " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) isampler1D sampler)\n" " (declare (in) float P) \n" " (declare (in) float lod) )\n" " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) usampler1D sampler)\n" " (declare (in) float P) \n" " (declare (in) float lod) )\n" " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler2D sampler)\n" " (declare (in) vec2 P) \n" " (declare (in) float lod) )\n" " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) isampler2D sampler)\n" " (declare (in) vec2 P) \n" " (declare (in) float lod) )\n" " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) usampler2D sampler)\n" " (declare (in) vec2 P) \n" " (declare (in) float lod) )\n" " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler3D sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) float lod) )\n" " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) isampler3D sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) float lod) )\n" " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) usampler3D sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) float lod) )\n" " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) samplerCube sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) float lod) )\n" " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) isamplerCube sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) float lod) )\n" " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) usamplerCube sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) float lod) )\n" " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler1DArray sampler)\n" " (declare (in) vec2 P) \n" " (declare (in) float lod) )\n" " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) isampler1DArray sampler)\n" " (declare (in) vec2 P) \n" " (declare (in) float lod) )\n" " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) usampler1DArray sampler)\n" " (declare (in) vec2 P) \n" " (declare (in) float lod) )\n" " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler2DArray sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) float lod) )\n" " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) isampler2DArray sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) float lod) )\n" " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) usampler2DArray sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) float lod) )\n" " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n" "\n" "))\n" "" ; static const char *builtin_faceforward = "((function faceforward\n" " (signature float\n" " (parameters\n" " (declare (in) float N)\n" " (declare (in) float I)\n" " (declare (in) float Nref))\n" " ((if (expression bool < (expression float dot (var_ref Nref) (var_ref I)) (constant float (0)))\n" " ((return (var_ref N)))\n" " ((return (expression float neg (var_ref N)))))))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in) vec2 N)\n" " (declare (in) vec2 I)\n" " (declare (in) vec2 Nref))\n" " ((if (expression bool < (expression float dot (var_ref Nref) (var_ref I)) (constant float (0)))\n" " ((return (var_ref N)))\n" " ((return (expression vec2 neg (var_ref N)))))))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in) vec3 N)\n" " (declare (in) vec3 I)\n" " (declare (in) vec3 Nref))\n" " ((if (expression bool < (expression float dot (var_ref Nref) (var_ref I)) (constant float (0)))\n" " ((return (var_ref N)))\n" " ((return (expression vec3 neg (var_ref N)))))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) vec4 N)\n" " (declare (in) vec4 I)\n" " (declare (in) vec4 Nref))\n" " ((if (expression bool < (expression float dot (var_ref Nref) (var_ref I)) (constant float (0)))\n" " ((return (var_ref N)))\n" " ((return (expression vec4 neg (var_ref N)))))))\n" "))\n" "" ; static const char *builtin_abs = "((function abs\n" " (signature float\n" " (parameters\n" " (declare (in) float arg0))\n" " ((return (expression float abs (var_ref arg0)))))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in) vec2 arg0))\n" " ((return (expression vec2 abs (var_ref arg0)))))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in) vec3 arg0))\n" " ((return (expression vec3 abs (var_ref arg0)))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) vec4 arg0))\n" " ((return (expression vec4 abs (var_ref arg0)))))\n" "))\n" "" ; static const char *builtin_log2 = "((function log2\n" " (signature float\n" " (parameters\n" " (declare (in) float arg0))\n" " ((return (expression float log2 (var_ref arg0)))))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in) vec2 arg0))\n" " ((return (expression vec2 log2 (var_ref arg0)))))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in) vec3 arg0))\n" " ((return (expression vec3 log2 (var_ref arg0)))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) vec4 arg0))\n" " ((return (expression vec4 log2 (var_ref arg0)))))\n" "))\n" "" ; static const char *builtin_shadow2DRect = "((function shadow2DRect\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler2DRectShadow sampler)\n" " (declare (in) vec3 P) )\n" " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) ))))\n" "\n" "))\n" "" ; static const char *builtin_lessThanEqual = "((function lessThanEqual\n" " (signature bvec2\n" " (parameters\n" " (declare (in) vec2 arg0)\n" " (declare (in) vec2 arg1))\n" " ((declare () bvec2 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n" " (return (var_ref temp))))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in) vec3 arg0)\n" " (declare (in) vec3 arg1))\n" " ((declare () bvec3 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool <= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n" " (return (var_ref temp))))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in) vec4 arg0)\n" " (declare (in) vec4 arg1))\n" " ((declare () bvec4 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool <= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool <= (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n" " (return (var_ref temp))))\n" "\n" " (signature bvec2\n" " (parameters\n" " (declare (in) ivec2 arg0)\n" " (declare (in) ivec2 arg1))\n" " ((declare () bvec2 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n" " (return (var_ref temp))))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in) ivec3 arg0)\n" " (declare (in) ivec3 arg1))\n" " ((declare () bvec3 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool <= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n" " (return (var_ref temp))))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in) ivec4 arg0)\n" " (declare (in) ivec4 arg1))\n" " ((declare () bvec4 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool <= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool <= (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n" " (return (var_ref temp))))\n" "\n" " (signature bvec2\n" " (parameters\n" " (declare (in) uvec2 arg0)\n" " (declare (in) uvec2 arg1))\n" " ((declare () bvec2 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n" " (return (var_ref temp))))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in) uvec3 arg0)\n" " (declare (in) uvec3 arg1))\n" " ((declare () bvec3 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool <= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n" " (return (var_ref temp))))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in) uvec4 arg0)\n" " (declare (in) uvec4 arg1))\n" " ((declare () bvec4 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool <= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool <= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool <= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool <= (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n" " (return (var_ref temp))))\n" "))\n" "" ; static const char *builtin_transpose = "((function transpose\n" " (signature mat2\n" " (parameters\n" " (declare (in) mat2 m))\n" " ((declare () mat2 t)\n" " (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" " (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" " (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" " (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" "(return (var_ref t))))\n" "\n" " (signature mat3x2\n" " (parameters\n" " (declare (in) mat2x3 m))\n" " ((declare () mat3x2 t)\n" " (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" " (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" " (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" " (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" " (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" " (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" "(return (var_ref t))))\n" "\n" " (signature mat4x2\n" " (parameters\n" " (declare (in) mat2x4 m))\n" " ((declare () mat4x2 t)\n" " (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" " (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" " (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" " (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" " (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" " (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" " (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" " (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" "(return (var_ref t))))\n" "\n" " (signature mat2x3\n" " (parameters\n" " (declare (in) mat3x2 m))\n" " ((declare () mat2x3 t)\n" " (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" " (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" " (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" " (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" " (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" " (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" "(return (var_ref t))))\n" "\n" " (signature mat3\n" " (parameters\n" " (declare (in) mat3 m))\n" " ((declare () mat3 t)\n" " (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" " (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" " (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" " (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" " (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" " (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" " (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" " (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" " (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" "(return (var_ref t))))\n" "\n" " (signature mat4x3\n" " (parameters\n" " (declare (in) mat3x4 m))\n" " ((declare () mat4x3 t)\n" " (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" " (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" " (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" " (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" " (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" " (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" " (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" " (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" " (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" " (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" " (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" " (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" "(return (var_ref t))))\n" "\n" " (signature mat2x4\n" " (parameters\n" " (declare (in) mat4x2 m))\n" " ((declare () mat2x4 t)\n" " (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" " (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" " (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" " (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" " (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" " (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" " (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" " (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" "(return (var_ref t))))\n" "\n" " (signature mat3x4\n" " (parameters\n" " (declare (in) mat4x3 m))\n" " ((declare () mat3x4 t)\n" " (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" " (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" " (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" " (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" " (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" " (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" " (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" " (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" " (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" " (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" " (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" " (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" "(return (var_ref t))))\n" "\n" " (signature mat4\n" " (parameters\n" " (declare (in) mat4 m))\n" " ((declare () mat4 t)\n" " (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" " (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" " (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" " (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" " (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" " (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" " (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" " (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" " (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" " (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" " (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" " (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" " (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" " (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" " (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" " (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" "(return (var_ref t))))\n" ")\n" "\n" ")\n" "\n" "" ; static const char *builtin_step = "((function step\n" " (signature float\n" " (parameters\n" " (declare (in) float edge)\n" " (declare (in) float x))\n" " ((return (expression float b2f (expression bool >= (var_ref x) (var_ref edge))))))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in) float edge)\n" " (declare (in) vec2 x))\n" " ((declare () vec2 t)\n" " (assign (constant bool (1)) (swiz x (var_ref t)) (expression float b2f (expression bool >= (swiz x (var_ref x))(var_ref edge))))\n" " (assign (constant bool (1)) (swiz y (var_ref t)) (expression float b2f (expression bool >= (swiz y (var_ref x))(var_ref edge))))\n" " (return (var_ref t))))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in) float edge)\n" " (declare (in) vec3 x))\n" " ((declare () vec3 t)\n" " (assign (constant bool (1)) (swiz x (var_ref t)) (expression float b2f (expression bool >= (swiz x (var_ref x))(var_ref edge))))\n" " (assign (constant bool (1)) (swiz y (var_ref t)) (expression float b2f (expression bool >= (swiz y (var_ref x))(var_ref edge))))\n" " (assign (constant bool (1)) (swiz z (var_ref t)) (expression float b2f (expression bool >= (swiz z (var_ref x))(var_ref edge))))\n" " (return (var_ref t))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) float edge)\n" " (declare (in) vec4 x))\n" " ((declare () vec4 t)\n" " (assign (constant bool (1)) (swiz x (var_ref t)) (expression float b2f (expression bool >= (swiz x (var_ref x))(var_ref edge))))\n" " (assign (constant bool (1)) (swiz y (var_ref t)) (expression float b2f (expression bool >= (swiz y (var_ref x))(var_ref edge))))\n" " (assign (constant bool (1)) (swiz z (var_ref t)) (expression float b2f (expression bool >= (swiz z (var_ref x))(var_ref edge))))\n" " (assign (constant bool (1)) (swiz w (var_ref t)) (expression float b2f (expression bool >= (swiz w (var_ref x))(var_ref edge))))\n" " (return (var_ref t))))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in) vec2 edge)\n" " (declare (in) vec2 x))\n" " ((declare () vec2 t)\n" " (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" " (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" " (return (var_ref t))))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in) vec3 edge)\n" " (declare (in) vec3 x))\n" " ((declare () vec3 t)\n" " (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" " (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" " (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" " (return (var_ref t))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) vec4 edge)\n" " (declare (in) vec4 x))\n" " ((declare () vec4 t)\n" " (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" " (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" " (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" " (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" " (return (var_ref t))))\n" "))\n" "\n" "" ; static const char *builtin_sinh = "((function sinh\n" " (signature float\n" " (parameters\n" " (declare (in) float x))\n" " ((return (expression float * (constant float (0.5))\n" " (expression float -\n" " (expression float exp (var_ref x))\n" " (expression float exp (expression float neg (var_ref x))))))))\n" " (signature vec2\n" " (parameters\n" " (declare (in) vec2 x))\n" " ((return (expression vec2 * (constant vec2 (0.5))\n" " (expression vec2 -\n" " (expression vec2 exp (var_ref x))\n" " (expression vec2 exp (expression vec2 neg (var_ref x))))))))\n" " (signature vec3\n" " (parameters\n" " (declare (in) vec3 x))\n" " ((return (expression vec3 * (constant vec3 (0.5))\n" " (expression vec3 -\n" " (expression vec3 exp (var_ref x))\n" " (expression vec3 exp (expression vec3 neg (var_ref x))))))))\n" " (signature vec4\n" " (parameters\n" " (declare (in) vec4 x))\n" " ((return (expression vec4 * (constant vec4 (0.5))\n" " (expression vec4 -\n" " (expression vec4 exp (var_ref x))\n" " (expression vec4 exp (expression vec4 neg (var_ref x))))))))\n" "))\n" "" ; static const char *builtin_cos = "((function cos\n" " (signature float\n" " (parameters\n" " (declare (in) float angle))\n" " ((return (expression float cos (var_ref angle)))))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in) vec2 angle))\n" " ((return (expression vec2 cos (var_ref angle)))))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in) vec3 angle))\n" " ((return (expression vec3 cos (var_ref angle)))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) vec4 angle))\n" " ((return (expression vec4 cos (var_ref angle)))))\n" "))\n" "" ; static const char *builtin_shadow2DProjLod = "((function shadow2DProjLod\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler2DShadow sampler)\n" " (declare (in) vec4 P) \n" " (declare (in) float lod) )\n" " ((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" "\n" "))\n" "" ; static const char *builtin_shadow2DArray = "((function shadow2DArray\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler2DArrayShadow sampler)\n" " (declare (in) vec4 P) )\n" " ((return (tex (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) 1 (swiz w (var_ref P)) ))))\n" "\n" "))\n" "" ; static const char *builtin_equal = "((function equal\n" " (signature bvec2\n" " (parameters\n" " (declare (in) vec2 arg0)\n" " (declare (in) vec2 arg1))\n" " ((declare () bvec2 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n" " (return (var_ref temp))))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in) vec3 arg0)\n" " (declare (in) vec3 arg1))\n" " ((declare () bvec3 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool == (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n" " (return (var_ref temp))))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in) vec4 arg0)\n" " (declare (in) vec4 arg1))\n" " ((declare () bvec4 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool == (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool == (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n" " (return (var_ref temp))))\n" "\n" " (signature bvec2\n" " (parameters\n" " (declare (in) ivec2 arg0)\n" " (declare (in) ivec2 arg1))\n" " ((declare () bvec2 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n" " (return (var_ref temp))))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in) ivec3 arg0)\n" " (declare (in) ivec3 arg1))\n" " ((declare () bvec3 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool == (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n" " (return (var_ref temp))))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in) ivec4 arg0)\n" " (declare (in) ivec4 arg1))\n" " ((declare () bvec4 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool == (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool == (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n" " (return (var_ref temp))))\n" "\n" " (signature bvec2\n" " (parameters\n" " (declare (in) uvec2 arg0)\n" " (declare (in) uvec2 arg1))\n" " ((declare () bvec2 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n" " (return (var_ref temp))))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in) uvec3 arg0)\n" " (declare (in) uvec3 arg1))\n" " ((declare () bvec3 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool == (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n" " (return (var_ref temp))))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in) uvec4 arg0)\n" " (declare (in) uvec4 arg1))\n" " ((declare () bvec4 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool == (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool == (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool == (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool == (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n" " (return (var_ref temp))))\n" "))\n" "" ; static const char *builtin_length = "((function length\n" " (signature float\n" " (parameters\n" " (declare (in) float arg0))\n" " ((return (expression float sqrt (expression float dot (var_ref arg0) (var_ref arg0))))))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in) vec2 arg0))\n" " ((return (expression float sqrt (expression float dot (var_ref arg0) (var_ref arg0))))))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in) vec3 arg0))\n" " ((return (expression float sqrt (expression float dot (var_ref arg0) (var_ref arg0))))))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in) vec4 arg0))\n" " ((return (expression float sqrt (expression float dot (var_ref arg0) (var_ref arg0))))))\n" "))\n" "" ; static const char *builtin_acos = "((function acos\n" " (signature float\n" " (parameters\n" " (declare (in) float x))\n" " ((return (expression float - (constant float (1.5707963))\n" " (call asin ((var_ref x)))))))\n" " (signature vec2\n" " (parameters\n" " (declare (in) vec2 x))\n" " ((return (expression vec2 - (constant float (1.5707963))\n" " (call asin ((var_ref x)))))))\n" " (signature vec3\n" " (parameters\n" " (declare (in) vec3 x))\n" " ((return (expression vec3 - (constant float (1.5707963))\n" " (call asin ((var_ref x)))))))\n" " (signature vec4\n" " (parameters\n" " (declare (in) vec4 x))\n" " ((return (expression vec4 - (constant float (1.5707963))\n" " (call asin ((var_ref x)))))))\n" "))\n" "" ; static const char *builtin_matrixCompMult = "((function matrixCompMult\n" " (signature mat2\n" " (parameters\n" " (declare (in) mat2 x)\n" " (declare (in) mat2 y))\n" " ((declare () mat2 z)\n" " (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" " (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" "(return (var_ref z))))\n" "\n" " (signature mat3\n" " (parameters\n" " (declare (in) mat3 x)\n" " (declare (in) mat3 y))\n" " ((declare () mat3 z)\n" " (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" " (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" " (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" "(return (var_ref z))))\n" "\n" " (signature mat4\n" " (parameters\n" " (declare (in) mat4 x)\n" " (declare (in) mat4 y))\n" " ((declare () mat4 z)\n" " (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" " (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" " (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" " (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" "(return (var_ref z))))\n" "\n" " (signature mat2x3\n" " (parameters\n" " (declare (in) mat2x3 x)\n" " (declare (in) mat2x3 y))\n" " ((declare () mat2x3 z)\n" " (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" " (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" "(return (var_ref z))))\n" "\n" " (signature mat3x2\n" " (parameters\n" " (declare (in) mat3x2 x)\n" " (declare (in) mat3x2 y))\n" " ((declare () mat3x2 z)\n" " (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" " (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" " (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" "(return (var_ref z))))\n" "\n" " (signature mat2x4\n" " (parameters\n" " (declare (in) mat2x4 x)\n" " (declare (in) mat2x4 y))\n" " ((declare () mat2x4 z)\n" " (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" " (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" "(return (var_ref z))))\n" "\n" " (signature mat4x2\n" " (parameters\n" " (declare (in) mat4x2 x)\n" " (declare (in) mat4x2 y))\n" " ((declare () mat4x2 z)\n" " (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" " (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" " (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" " (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" "(return (var_ref z))))\n" "\n" " (signature mat3x4\n" " (parameters\n" " (declare (in) mat3x4 x)\n" " (declare (in) mat3x4 y))\n" " ((declare () mat3x4 z)\n" " (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" " (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" " (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" "(return (var_ref z))))\n" "\n" " (signature mat4x3\n" " (parameters\n" " (declare (in) mat4x3 x)\n" " (declare (in) mat4x3 y))\n" " ((declare () mat4x3 z)\n" " (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" " (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" " (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" " (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" "(return (var_ref z))))\n" "))\n" "" ; static const char *builtin_pow = "((function pow\n" " (signature float\n" " (parameters\n" " (declare (in) float arg0)\n" " (declare (in) float arg1))\n" " ((return (expression float pow (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in) vec2 arg0)\n" " (declare (in) vec2 arg1))\n" " ((return (expression vec2 pow (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in) vec3 arg0)\n" " (declare (in) vec3 arg1))\n" " ((return (expression vec3 pow (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) vec4 arg0)\n" " (declare (in) vec4 arg1))\n" " ((return (expression vec4 pow (var_ref arg0) (var_ref arg1)))))\n" "))\n" "" ; static const char *builtin_texture2DProjLod = "((function texture2DProjLod\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler2D sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) float lod) )\n" " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref lod) ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler2D sampler)\n" " (declare (in) vec4 P) \n" " (declare (in) float lod) )\n" " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n" "\n" "))\n" "" ; static const char *builtin_textureProjLod = "((function textureProjLod\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler1D sampler)\n" " (declare (in) vec2 P) \n" " (declare (in) float lod) )\n" " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref lod) ))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) isampler1D sampler)\n" " (declare (in) vec2 P) \n" " (declare (in) float lod) )\n" " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref lod) ))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) usampler1D sampler)\n" " (declare (in) vec2 P) \n" " (declare (in) float lod) )\n" " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref lod) ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler1D sampler)\n" " (declare (in) vec4 P) \n" " (declare (in) float lod) )\n" " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) isampler1D sampler)\n" " (declare (in) vec4 P) \n" " (declare (in) float lod) )\n" " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) usampler1D sampler)\n" " (declare (in) vec4 P) \n" " (declare (in) float lod) )\n" " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler2D sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) float lod) )\n" " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref lod) ))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) isampler2D sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) float lod) )\n" " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref lod) ))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) usampler2D sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) float lod) )\n" " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref lod) ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler2D sampler)\n" " (declare (in) vec4 P) \n" " (declare (in) float lod) )\n" " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) isampler2D sampler)\n" " (declare (in) vec4 P) \n" " (declare (in) float lod) )\n" " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) usampler2D sampler)\n" " (declare (in) vec4 P) \n" " (declare (in) float lod) )\n" " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler3D sampler)\n" " (declare (in) vec4 P) \n" " (declare (in) float lod) )\n" " ((return (txl (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) isampler3D sampler)\n" " (declare (in) vec4 P) \n" " (declare (in) float lod) )\n" " ((return (txl (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) usampler3D sampler)\n" " (declare (in) vec4 P) \n" " (declare (in) float lod) )\n" " ((return (txl (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n" "\n" "))\n" "" ; static const char *builtin_log = "((function log\n" " (signature float\n" " (parameters\n" " (declare (in) float arg0))\n" " ((return (expression float log (var_ref arg0)))))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in) vec2 arg0))\n" " ((return (expression vec2 log (var_ref arg0)))))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in) vec3 arg0))\n" " ((return (expression vec3 log (var_ref arg0)))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) vec4 arg0))\n" " ((return (expression vec4 log (var_ref arg0)))))\n" "))\n" "" ; static const char *builtin_exp2 = "((function exp2\n" " (signature float\n" " (parameters\n" " (declare (in) float arg0))\n" " ((return (expression float exp2 (var_ref arg0)))))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in) vec2 arg0))\n" " ((return (expression vec2 exp2 (var_ref arg0)))))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in) vec3 arg0))\n" " ((return (expression vec3 exp2 (var_ref arg0)))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) vec4 arg0))\n" " ((return (expression vec4 exp2 (var_ref arg0)))))\n" "))\n" "" ; static const char *builtin_fract = "((function fract\n" " (signature float\n" " (parameters\n" " (declare (in) float x))\n" " ((return (expression float fract (var_ref x)))))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in) vec2 x))\n" " ((return (expression vec2 fract (var_ref x)))))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in) vec3 x))\n" " ((return (expression vec3 fract (var_ref x)))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) vec4 x))\n" " ((return (expression vec4 fract (var_ref x)))))\n" "))\n" "\n" "" ; static const char *builtin_shadow1DLod = "((function shadow1DLod\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler1DShadow sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) float lod) )\n" " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) (var_ref lod) ))))\n" "\n" "))\n" "" ; static const char *builtin_texture1DLod = "((function texture1DLod\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler1D sampler)\n" " (declare (in) float P) \n" " (declare (in) float lod) )\n" " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n" "\n" "))\n" "" ; static const char *builtin_texture2DArray = "((function texture2DArray\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler2DArray sampler)\n" " (declare (in) vec3 P) )\n" " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler2DArray sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) float bias) )\n" " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n" "\n" "))\n" "" ; static const char *builtin_texture3DProj = "((function texture3DProj\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler3D sampler)\n" " (declare (in) vec4 P) )\n" " ((return (tex (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler3D sampler)\n" " (declare (in) vec4 P) \n" " (declare (in) float bias) )\n" " ((return (txb (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref bias) ))))\n" "\n" "))\n" "" ; static const char *builtin_sign = "((function sign\n" " (signature float\n" " (parameters\n" " (declare (in) float x))\n" " ((return (expression float sign (var_ref x)))))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in) vec2 x))\n" " ((return (expression vec2 sign (var_ref x)))))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in) vec3 x))\n" " ((return (expression vec3 sign (var_ref x)))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) vec4 x))\n" " ((return (expression vec4 sign (var_ref x)))))\n" "\n" " (signature int\n" " (parameters\n" " (declare (in) int x))\n" " ((return (expression int sign (var_ref x)))))\n" "\n" " (signature ivec2\n" " (parameters\n" " (declare (in) ivec2 x))\n" " ((return (expression ivec2 sign (var_ref x)))))\n" "\n" " (signature ivec3\n" " (parameters\n" " (declare (in) ivec3 x))\n" " ((return (expression ivec3 sign (var_ref x)))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) ivec4 x))\n" " ((return (expression ivec4 sign (var_ref x)))))\n" "))\n" "\n" "" ; static const char *builtin_inversesqrt = "((function inversesqrt\n" " (signature float\n" " (parameters\n" " (declare (in) float arg0))\n" " ((return (expression float rsq (var_ref arg0)))))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in) vec2 arg0))\n" " ((return (expression vec2 rsq (var_ref arg0)))))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in) vec3 arg0))\n" " ((return (expression vec3 rsq (var_ref arg0)))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) vec4 arg0))\n" " ((return (expression vec4 rsq (var_ref arg0)))))\n" "))\n" "" ; static const char *builtin_distance = "((function distance\n" " (signature float\n" " (parameters\n" " (declare (in) float p0)\n" " (declare (in) float p1))\n" " ((declare () float p)\n" " (assign (constant bool (1)) (var_ref p) (expression float - (var_ref p0) (var_ref p1)))\n" " (return (expression float sqrt (expression float dot (var_ref p) (var_ref p))))))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in) vec2 p0)\n" " (declare (in) vec2 p1))\n" " ((declare () vec2 p)\n" " (assign (constant bool (1)) (var_ref p) (expression vec2 - (var_ref p0) (var_ref p1)))\n" " (return (expression float sqrt (expression float dot (var_ref p) (var_ref p))))))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in) vec3 p0)\n" " (declare (in) vec3 p1))\n" " ((declare () vec3 p)\n" " (assign (constant bool (1)) (var_ref p) (expression vec3 - (var_ref p0) (var_ref p1)))\n" " (return (expression float sqrt (expression float dot (var_ref p) (var_ref p))))))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in) vec4 p0)\n" " (declare (in) vec4 p1))\n" " ((declare () vec4 p)\n" " (assign (constant bool (1)) (var_ref p) (expression vec4 - (var_ref p0) (var_ref p1)))\n" " (return (expression float sqrt (expression float dot (var_ref p) (var_ref p))))))\n" "))\n" "" ; static const char *builtin_noise2 = "((function noise2\n" " (signature vec2\n" " (parameters\n" " (declare (in) float x))\n" " ((return (constant vec2 (0 0)))))\n" " (signature vec2\n" " (parameters\n" " (declare (in) vec2 x))\n" " ((return (constant vec2 (0 0)))))\n" " (signature vec2\n" " (parameters\n" " (declare (in) vec3 x))\n" " ((return (constant vec2 (0 0)))))\n" " (signature vec2\n" " (parameters\n" " (declare (in) vec4 x))\n" " ((return (constant vec2 (0 0)))))\n" "))\n" "" ; static const char *builtin_tanh = "((function tanh\n" " (signature float\n" " (parameters\n" " (declare (in) float x))\n" " ((return (expression float /\n" " (expression float -\n" " (expression float exp (var_ref x))\n" " (expression float exp (expression float neg (var_ref x))))\n" " (expression float +\n" " (expression float exp (var_ref x))\n" " (expression float exp (expression float neg (var_ref x))))))))\n" " (signature vec2\n" " (parameters\n" " (declare (in) vec2 x))\n" " ((return (expression vec2 /\n" " (expression vec2 -\n" " (expression vec2 exp (var_ref x))\n" " (expression vec2 exp (expression vec2 neg (var_ref x))))\n" " (expression vec2 +\n" " (expression vec2 exp (var_ref x))\n" " (expression vec2 exp (expression vec2 neg (var_ref x))))))))\n" " (signature vec3\n" " (parameters\n" " (declare (in) vec3 x))\n" " ((return (expression vec3 /\n" " (expression vec3 -\n" " (expression vec3 exp (var_ref x))\n" " (expression vec3 exp (expression vec3 neg (var_ref x))))\n" " (expression vec3 +\n" " (expression vec3 exp (var_ref x))\n" " (expression vec3 exp (expression vec3 neg (var_ref x))))))))\n" " (signature vec4\n" " (parameters\n" " (declare (in) vec4 x))\n" " ((return (expression vec4 /\n" " (expression vec4 -\n" " (expression vec4 exp (var_ref x))\n" " (expression vec4 exp (expression vec4 neg (var_ref x))))\n" " (expression vec4 +\n" " (expression vec4 exp (var_ref x))\n" " (expression vec4 exp (expression vec4 neg (var_ref x))))))))\n" "))\n" "" ; static const char *builtin_texture1DProjLod = "((function texture1DProjLod\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler1D sampler)\n" " (declare (in) vec2 P) \n" " (declare (in) float lod) )\n" " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref lod) ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler1D sampler)\n" " (declare (in) vec4 P) \n" " (declare (in) float lod) )\n" " ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n" "\n" "))\n" "" ; static const char *builtin_texture1DArray = "((function texture1DArray\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler1DArray sampler)\n" " (declare (in) vec2 P) )\n" " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler1DArray sampler)\n" " (declare (in) vec2 P) \n" " (declare (in) float bias) )\n" " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n" "\n" "))\n" "" ; static const char *builtin_texture2D = "((function texture2D\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler2D sampler)\n" " (declare (in) vec2 P) )\n" " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler2D sampler)\n" " (declare (in) vec2 P) \n" " (declare (in) float bias) )\n" " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n" "\n" "))\n" "" ; static const char *builtin_greaterThanEqual = "((function greaterThanEqual\n" " (signature bvec2\n" " (parameters\n" " (declare (in) vec2 arg0)\n" " (declare (in) vec2 arg1))\n" " ((declare () bvec2 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n" " (return (var_ref temp))))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in) vec3 arg0)\n" " (declare (in) vec3 arg1))\n" " ((declare () bvec3 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool >= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n" " (return (var_ref temp))))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in) vec4 arg0)\n" " (declare (in) vec4 arg1))\n" " ((declare () bvec4 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool >= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool >= (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n" " (return (var_ref temp))))\n" "\n" " (signature bvec2\n" " (parameters\n" " (declare (in) ivec2 arg0)\n" " (declare (in) ivec2 arg1))\n" " ((declare () bvec2 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n" " (return (var_ref temp))))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in) ivec3 arg0)\n" " (declare (in) ivec3 arg1))\n" " ((declare () bvec3 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool >= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n" " (return (var_ref temp))))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in) ivec4 arg0)\n" " (declare (in) ivec4 arg1))\n" " ((declare () bvec4 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool >= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool >= (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n" " (return (var_ref temp))))\n" "\n" " (signature bvec2\n" " (parameters\n" " (declare (in) uvec2 arg0)\n" " (declare (in) uvec2 arg1))\n" " ((declare () bvec2 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n" " (return (var_ref temp))))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in) uvec3 arg0)\n" " (declare (in) uvec3 arg1))\n" " ((declare () bvec3 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool >= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n" " (return (var_ref temp))))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in) uvec4 arg0)\n" " (declare (in) uvec4 arg1))\n" " ((declare () bvec4 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool >= (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool >= (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool >= (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool >= (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n" " (return (var_ref temp))))\n" "))\n" "" ; static const char *builtin_texture3DProjLod = "((function texture3DProjLod\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler3D sampler)\n" " (declare (in) vec4 P) \n" " (declare (in) float lod) )\n" " ((return (txl (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))\n" "\n" "))\n" "" ; static const char *builtin_tan = "((function tan\n" " (signature float\n" " (parameters\n" " (declare (in) float angle))\n" " ((return (expression float / (expression float sin (var_ref angle)) (expression float cos (var_ref angle))))))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in) vec2 angle))\n" " ((return (expression vec2 / (expression vec2 sin (var_ref angle)) (expression vec2 cos (var_ref angle))))))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in) vec3 angle))\n" " ((return (expression vec3 / (expression vec3 sin (var_ref angle)) (expression vec3 cos (var_ref angle))))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) vec4 angle))\n" " ((return (expression vec4 / (expression vec4 sin (var_ref angle)) (expression vec4 cos (var_ref angle))))))\n" "))\n" "" ; static const char *builtin_any = "((function any\n" " (signature bool\n" " (parameters\n" " (declare (in) bvec2 arg0))\n" " ((return (expression bool || (swiz x (var_ref arg0))(swiz y (var_ref arg0))))))\n" "\n" " (signature bool\n" " (parameters\n" " (declare (in) bvec3 arg0))\n" " ((return (expression bool || (expression bool || (swiz x (var_ref arg0))(swiz y (var_ref arg0))) (swiz z (var_ref arg0))))))\n" "\n" " (signature bool\n" " (parameters\n" " (declare (in) bvec4 arg0))\n" " ((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" "))\n" "" ; static const char *builtin_normalize = "((function normalize\n" " (signature float\n" " (parameters\n" " (declare (in) float arg0))\n" " ((return (expression float * (var_ref arg0) (expression float rsq (expression float dot (var_ref arg0) (var_ref arg0)))))))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in) vec2 arg0))\n" " ((return (expression vec2 * (var_ref arg0) (expression float rsq (expression float dot (var_ref arg0) (var_ref arg0)))))))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in) vec3 arg0))\n" " ((return (expression vec3 * (var_ref arg0) (expression float rsq (expression float dot (var_ref arg0) (var_ref arg0)))))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) vec4 arg0))\n" " ((return (expression vec4 * (var_ref arg0) (expression float rsq (expression float dot (var_ref arg0) (var_ref arg0)))))))\n" "))\n" "" ; static const char *builtin_shadow1DProj = "((function shadow1DProj\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler1DShadow sampler)\n" " (declare (in) vec4 P) )\n" " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) (swiz z (var_ref P)) ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler1DShadow sampler)\n" " (declare (in) vec4 P) \n" " (declare (in) float bias) )\n" " ((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" "\n" "))\n" "" ; static const char *builtin_floor = "((function floor\n" " (signature float\n" " (parameters\n" " (declare (in) float arg0))\n" " ((return (expression float floor (var_ref arg0)))))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in) vec2 arg0))\n" " ((return (expression vec2 floor (var_ref arg0)))))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in) vec3 arg0))\n" " ((return (expression vec3 floor (var_ref arg0)))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) vec4 arg0))\n" " ((return (expression vec4 floor (var_ref arg0)))))\n" "))\n" "" ; static const char *builtin_cross = "((function cross\n" " (signature vec3\n" " (parameters\n" " (declare (in) vec3 arg0)\n" " (declare (in) vec3 arg1))\n" " ((return (expression vec3 cross (var_ref arg0) (var_ref arg1)))))\n" "))\n" "" ; static const char *builtin_sqrt = "((function sqrt\n" " (signature float\n" " (parameters\n" " (declare (in) float arg0))\n" " ((return (expression float sqrt (var_ref arg0)))))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in) vec2 arg0))\n" " ((return (expression vec2 sqrt (var_ref arg0)))))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in) vec3 arg0))\n" " ((return (expression vec3 sqrt (var_ref arg0)))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) vec4 arg0))\n" " ((return (expression vec4 sqrt (var_ref arg0)))))\n" "))\n" "" ; static const char *builtin_mix = "((function mix\n" " (signature float\n" " (parameters\n" " (declare (in) float arg0)\n" " (declare (in) float arg1)\n" " (declare (in) float arg2))\n" " ((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" "\n" " (signature vec2\n" " (parameters\n" " (declare (in) vec2 arg0)\n" " (declare (in) vec2 arg1)\n" " (declare (in) vec2 arg2))\n" " ((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" "\n" " (signature vec3\n" " (parameters\n" " (declare (in) vec3 arg0)\n" " (declare (in) vec3 arg1)\n" " (declare (in) vec3 arg2))\n" " ((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" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) vec4 arg0)\n" " (declare (in) vec4 arg1)\n" " (declare (in) vec4 arg2))\n" " ((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" "\n" " (signature vec2\n" " (parameters\n" " (declare (in) vec2 arg0)\n" " (declare (in) vec2 arg1)\n" " (declare (in) float arg2))\n" " ((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" "\n" " (signature vec3\n" " (parameters\n" " (declare (in) vec3 arg0)\n" " (declare (in) vec3 arg1)\n" " (declare (in) float arg2))\n" " ((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" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) vec4 arg0)\n" " (declare (in) vec4 arg1)\n" " (declare (in) float arg2))\n" " ((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" "\n" " (signature float\n" " (parameters\n" " (declare (in) float v1)\n" " (declare (in) float v2)\n" " (declare (in) bool a))\n" " ((assign (var_ref a) (var_ref v1) (var_ref v2))\n" " (return (var_ref v1))))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in) vec2 v1)\n" " (declare (in) vec2 v2)\n" " (declare (in) bvec2 a))\n" " ((assign (swiz x (var_ref a)) (swiz x (var_ref v1)) (swiz x (var_ref v2)))\n" " (assign (swiz y (var_ref a)) (swiz y (var_ref v1)) (swiz y (var_ref v2)))\n" " (return (var_ref v1))))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in) vec3 v1)\n" " (declare (in) vec3 v2)\n" " (declare (in) bvec3 a))\n" " ((assign (swiz x (var_ref a)) (swiz x (var_ref v1)) (swiz x (var_ref v2)))\n" " (assign (swiz y (var_ref a)) (swiz y (var_ref v1)) (swiz y (var_ref v2)))\n" " (assign (swiz z (var_ref a)) (swiz z (var_ref v1)) (swiz z (var_ref v2)))\n" " (return (var_ref v1))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) vec4 v1)\n" " (declare (in) vec4 v2)\n" " (declare (in) bvec4 a))\n" " ((assign (swiz x (var_ref a)) (swiz x (var_ref v1)) (swiz x (var_ref v2)))\n" " (assign (swiz y (var_ref a)) (swiz y (var_ref v1)) (swiz y (var_ref v2)))\n" " (assign (swiz z (var_ref a)) (swiz z (var_ref v1)) (swiz z (var_ref v2)))\n" " (assign (swiz w (var_ref a)) (swiz w (var_ref v1)) (swiz w (var_ref v2)))\n" " (return (var_ref v1))))\n" "))\n" "" ; static const char *builtin_shadow1DArrayLod = "((function shadow1DArrayLod\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler1DArrayShadow sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) float lod) )\n" " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) (var_ref lod) ))))\n" "\n" "))\n" "" ; static const char *builtin_ftransform = "((declare (uniform) mat4 gl_ModelViewProjectionMatrix)\n" " (declare (in) vec4 gl_Vertex)\n" " (function ftransform\n" " (signature vec4\n" " (parameters)\n" " ((return (expression vec4 *\n" " (var_ref gl_ModelViewProjectionMatrix)\n" " (var_ref gl_Vertex)))))\n" "))\n" "" ; static const char *builtin_sin = "((function sin\n" " (signature float\n" " (parameters\n" " (declare (in) float angle))\n" " ((return (expression float sin (var_ref angle)))))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in) vec2 angle))\n" " ((return (expression vec2 sin (var_ref angle)))))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in) vec3 angle))\n" " ((return (expression vec3 sin (var_ref angle)))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) vec4 angle))\n" " ((return (expression vec4 sin (var_ref angle)))))\n" "))\n" "" ; static const char *builtin_shadow2D = "((function shadow2D\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler2DShadow sampler)\n" " (declare (in) vec3 P) )\n" " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler2DShadow sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) float bias) )\n" " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) (var_ref bias) ))))\n" "\n" "))\n" "" ; static const char *builtin_shadow2DLod = "((function shadow2DLod\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler2DShadow sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) float lod) )\n" " ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) (var_ref lod) ))))\n" "\n" "))\n" "" ; static const char *builtin_shadow2DRectProj = "((function shadow2DRectProj\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler2DRectShadow sampler)\n" " (declare (in) vec4 P) )\n" " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) (swiz z (var_ref P)) ))))\n" "\n" "))\n" "" ; static const char *builtin_atan = "((function atan\n" " (signature float\n" " (parameters\n" " (declare (in) float x))\n" " ((return (call asin ((expression float *\n" " (var_ref x)\n" " (expression float rsq\n" " (expression float +\n" " (expression float *\n" " (var_ref x)\n" " (var_ref x))\n" " (constant float (1.0))))))))))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in) vec2 y_over_x))\n" " ((return (call asin ((expression vec2 *\n" " (var_ref y_over_x)\n" " (expression vec2 rsq\n" " (expression vec2 +\n" " (expression vec2 *\n" " (var_ref y_over_x)\n" " (var_ref y_over_x))\n" " (constant float (1.0))))))))))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in) vec3 y_over_x))\n" " ((return (call asin ((expression vec3 *\n" " (var_ref y_over_x)\n" " (expression vec3 rsq\n" " (expression vec3 +\n" " (expression vec3 *\n" " (var_ref y_over_x)\n" " (var_ref y_over_x))\n" " (constant float (1.0))))))))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) vec4 y_over_x))\n" " ((return (call asin ((expression vec4 *\n" " (var_ref y_over_x)\n" " (expression vec4 rsq\n" " (expression vec4 +\n" " (expression vec4 *\n" " (var_ref y_over_x)\n" " (var_ref y_over_x))\n" " (constant float (1.0))))))))))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) float y)\n" " (declare (in ) float x)\n" " )\n" " (\n" " (declare () float r)\n" " (declare ( ) float abs_retval)\n" " (assign (constant bool (1)) (var_ref abs_retval) (call abs ((var_ref x) ))\n" ") \n" " (if (expression bool > (var_ref abs_retval) (constant float (0.000100)) ) (\n" " (declare ( ) float atan_retval)\n" " (assign (constant bool (1)) (var_ref atan_retval) (call atan ((expression float / (var_ref y) (var_ref x) ) ))\n" ") \n" " (assign (constant bool (1)) (var_ref r) (var_ref atan_retval) ) \n" " (if (expression bool < (var_ref x) (constant float (0.000000)) ) (\n" " (if (expression bool >= (var_ref y) (constant float (0.000000)) ) (\n" " (declare ( ) float assignment_tmp)\n" " (assign (constant bool (1)) (var_ref assignment_tmp) (expression float + (var_ref r) (constant float (3.141593)) ) ) \n" " (assign (constant bool (1)) (var_ref r) (var_ref assignment_tmp) ) \n" " )\n" " (\n" " (declare ( ) float assignment_tmp)\n" " (assign (constant bool (1)) (var_ref assignment_tmp) (expression float - (var_ref r) (constant float (3.141593)) ) ) \n" " (assign (constant bool (1)) (var_ref r) (var_ref assignment_tmp) ) \n" " ))\n" "\n" " )\n" " (\n" " ))\n" "\n" " )\n" " (\n" " (if (expression bool >= (var_ref y) (constant float (0.000000)) ) (\n" " (assign (constant bool (1)) (var_ref r) (constant float (1.570796)) ) \n" " )\n" " (\n" " (assign (constant bool (1)) (var_ref r) (constant float (-1.570796)) ) \n" " ))\n" "\n" " ))\n" "\n" " (return (var_ref r) )\n" " ))\n" "\n" "\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in) vec2 y)\n" " (declare (in) vec2 x))\n" " ((declare () vec2 r)\n" " (assign (constant bool (1))\n" " (swiz x (var_ref r))\n" " (call atan ((swiz x (var_ref y))\n" " (swiz x (var_ref x)))))\n" " (assign (constant bool (1))\n" " (swiz y (var_ref r))\n" " (call atan ((swiz y (var_ref y))\n" " (swiz y (var_ref x)))))\n" " (return (var_ref r))))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in) vec3 y)\n" " (declare (in) vec3 x))\n" " ((declare () vec3 r)\n" " (assign (constant bool (1))\n" " (swiz x (var_ref r))\n" " (call atan ((swiz x (var_ref y))\n" " (swiz x (var_ref x)))))\n" " (assign (constant bool (1))\n" " (swiz y (var_ref r))\n" " (call atan ((swiz y (var_ref y))\n" " (swiz y (var_ref x)))))\n" " (assign (constant bool (1))\n" " (swiz z (var_ref r))\n" " (call atan ((swiz z (var_ref y))\n" " (swiz z (var_ref x)))))\n" " (return (var_ref r))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) vec4 y)\n" " (declare (in) vec4 x))\n" " ((declare () vec4 r)\n" " (assign (constant bool (1))\n" " (swiz x (var_ref r))\n" " (call atan ((swiz x (var_ref y))\n" " (swiz x (var_ref x)))))\n" " (assign (constant bool (1))\n" " (swiz y (var_ref r))\n" " (call atan ((swiz y (var_ref y))\n" " (swiz y (var_ref x)))))\n" " (assign (constant bool (1))\n" " (swiz z (var_ref r))\n" " (call atan ((swiz z (var_ref y))\n" " (swiz z (var_ref x)))))\n" " (assign (constant bool (1))\n" " (swiz w (var_ref r))\n" " (call atan ((swiz w (var_ref y))\n" " (swiz w (var_ref x)))))\n" " (return (var_ref r)))))\n" "\n" "))\n" "" ; static const char *builtin_max = "((function max\n" " (signature float\n" " (parameters\n" " (declare (in) float arg0)\n" " (declare (in) float arg1))\n" " ((return (expression float max (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in) vec2 arg0)\n" " (declare (in) vec2 arg1))\n" " ((return (expression vec2 max (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in) vec3 arg0)\n" " (declare (in) vec3 arg1))\n" " ((return (expression vec3 max (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) vec4 arg0)\n" " (declare (in) vec4 arg1))\n" " ((return (expression vec4 max (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in) vec2 arg0)\n" " (declare (in) float arg1))\n" " ((return (expression vec2 max (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in) vec3 arg0)\n" " (declare (in) float arg1))\n" " ((return (expression vec3 max (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) vec4 arg0)\n" " (declare (in) float arg1))\n" " ((return (expression vec4 max (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature int\n" " (parameters\n" " (declare (in) int arg0)\n" " (declare (in) int arg1))\n" " ((return (expression int max (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature ivec2\n" " (parameters\n" " (declare (in) ivec2 arg0)\n" " (declare (in) ivec2 arg1))\n" " ((return (expression ivec2 max (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature ivec3\n" " (parameters\n" " (declare (in) ivec3 arg0)\n" " (declare (in) ivec3 arg1))\n" " ((return (expression ivec3 max (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) ivec4 arg0)\n" " (declare (in) ivec4 arg1))\n" " ((return (expression ivec4 max (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature ivec2\n" " (parameters\n" " (declare (in) ivec2 arg0)\n" " (declare (in) int arg1))\n" " ((return (expression ivec2 max (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature ivec3\n" " (parameters\n" " (declare (in) ivec3 arg0)\n" " (declare (in) int arg1))\n" " ((return (expression ivec3 max (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) ivec4 arg0)\n" " (declare (in) int arg1))\n" " ((return (expression ivec4 max (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature uint\n" " (parameters\n" " (declare (in) uint arg0)\n" " (declare (in) uint arg1))\n" " ((return (expression uint max (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature uvec2\n" " (parameters\n" " (declare (in) uvec2 arg0)\n" " (declare (in) uvec2 arg1))\n" " ((return (expression uvec2 max (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature uvec3\n" " (parameters\n" " (declare (in) uvec3 arg0)\n" " (declare (in) uvec3 arg1))\n" " ((return (expression uvec3 max (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) uvec4 arg0)\n" " (declare (in) uvec4 arg1))\n" " ((return (expression uvec4 max (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature uvec2\n" " (parameters\n" " (declare (in) uvec2 arg0)\n" " (declare (in) uint arg1))\n" " ((return (expression uvec2 max (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature uvec3\n" " (parameters\n" " (declare (in) uvec3 arg0)\n" " (declare (in) uint arg1))\n" " ((return (expression uvec3 max (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) uvec4 arg0)\n" " (declare (in) uint arg1))\n" " ((return (expression uvec4 max (var_ref arg0) (var_ref arg1)))))\n" "))\n" "" ; static const char *builtin_reflect = "((function reflect\n" " (signature float\n" " (parameters\n" " (declare (in) float i)\n" " (declare (in) float n))\n" " ((return (expression float -\n" " (var_ref i)\n" " (expression float *\n" " (constant float (2.0))\n" " (expression float *\n" " (expression float dot\n" " (var_ref n)\n" " (var_ref i))\n" " (var_ref n)))))))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in) vec2 i)\n" " (declare (in) vec2 n))\n" " ((return (expression vec2 -\n" " (var_ref i)\n" " (expression vec2 *\n" " (constant float (2.0))\n" " (expression vec2 *\n" " (expression float dot\n" " (var_ref n)\n" " (var_ref i))\n" " (var_ref n)))))))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in) vec3 i)\n" " (declare (in) vec3 n))\n" " ((return (expression vec3 -\n" " (var_ref i)\n" " (expression vec3 *\n" " (constant float (2.0))\n" " (expression vec3 *\n" " (expression float dot\n" " (var_ref n)\n" " (var_ref i))\n" " (var_ref n)))))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) vec4 i)\n" " (declare (in) vec4 n))\n" " ((return (expression vec4 -\n" " (var_ref i)\n" " (expression vec4 *\n" " (constant float (2.0))\n" " (expression vec4 *\n" " (expression float dot\n" " (var_ref n)\n" " (var_ref i))\n" " (var_ref n)))))))\n" "\n" "))\n" "" ; static const char *builtin_texture3D = "((function texture3D\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler3D sampler)\n" " (declare (in) vec3 P) )\n" " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler3D sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) float bias) )\n" " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n" "\n" "))\n" "" ; static const char *builtin_texelFetch = "((function texelFetch\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler1D sampler)\n" " (declare (in) int P) \n" " (declare (in) int lod) )\n" " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) isampler1D sampler)\n" " (declare (in) int P) \n" " (declare (in) int lod) )\n" " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) usampler1D sampler)\n" " (declare (in) int P) \n" " (declare (in) int lod) )\n" " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler2D sampler)\n" " (declare (in) ivec2 P) \n" " (declare (in) int lod) )\n" " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) isampler2D sampler)\n" " (declare (in) ivec2 P) \n" " (declare (in) int lod) )\n" " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) usampler2D sampler)\n" " (declare (in) ivec2 P) \n" " (declare (in) int lod) )\n" " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler3D sampler)\n" " (declare (in) ivec3 P) \n" " (declare (in) int lod) )\n" " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) isampler3D sampler)\n" " (declare (in) ivec3 P) \n" " (declare (in) int lod) )\n" " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) usampler3D sampler)\n" " (declare (in) ivec3 P) \n" " (declare (in) int lod) )\n" " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler1DArray sampler)\n" " (declare (in) ivec2 P) \n" " (declare (in) int lod) )\n" " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) isampler1DArray sampler)\n" " (declare (in) ivec2 P) \n" " (declare (in) int lod) )\n" " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) usampler1DArray sampler)\n" " (declare (in) ivec2 P) \n" " (declare (in) int lod) )\n" " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler2DArray sampler)\n" " (declare (in) ivec3 P) \n" " (declare (in) int lod) )\n" " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) isampler2DArray sampler)\n" " (declare (in) ivec3 P) \n" " (declare (in) int lod) )\n" " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) usampler2DArray sampler)\n" " (declare (in) ivec3 P) \n" " (declare (in) int lod) )\n" " ((return (txf (var_ref sampler) (var_ref P) (0 0 0) (var_ref lod) ))))\n" "\n" "))\n" "" ; static const char *builtin_noise4 = "((function noise4\n" " (signature vec4\n" " (parameters\n" " (declare (in) float x))\n" " ((return (constant vec4 (0 0 0 0)))))\n" " (signature vec4\n" " (parameters\n" " (declare (in) vec2 x))\n" " ((return (constant vec4 (0 0 0 0)))))\n" " (signature vec4\n" " (parameters\n" " (declare (in) vec3 x))\n" " ((return (constant vec4 (0 0 0 0)))))\n" " (signature vec4\n" " (parameters\n" " (declare (in) vec4 x))\n" " ((return (constant vec4 (0 0 0 0)))))\n" "))\n" "" ; static const char *builtin_notEqual = "((function notEqual\n" " (signature bvec2\n" " (parameters\n" " (declare (in) vec2 arg0)\n" " (declare (in) vec2 arg1))\n" " ((declare () bvec2 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool != (swiz x (var_ref arg0))(swiz x (var_ref arg1))))\n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool != (swiz y (var_ref arg0))(swiz y (var_ref arg1))))\n" " (return (var_ref temp))))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in) vec3 arg0)\n" " (declare (in) vec3 arg1))\n" " ((declare () bvec3 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool != (swiz x (var_ref arg0))(swiz x (var_ref arg1))))\n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool != (swiz y (var_ref arg0))(swiz y (var_ref arg1))))\n" " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool != (swiz z (var_ref arg0))(swiz z (var_ref arg1))))\n" " (return (var_ref temp))))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in) vec4 arg0)\n" " (declare (in) vec4 arg1))\n" " ((declare () bvec4 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool != (swiz x (var_ref arg0))(swiz x (var_ref arg1))))\n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool != (swiz y (var_ref arg0))(swiz y (var_ref arg1))))\n" " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool != (swiz z (var_ref arg0))(swiz z (var_ref arg1))))\n" " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool != (swiz w (var_ref arg0))(swiz w (var_ref arg1))))\n" " (return (var_ref temp))))\n" "\n" " (signature bvec2\n" " (parameters\n" " (declare (in) ivec2 arg0)\n" " (declare (in) ivec2 arg1))\n" " ((declare () bvec2 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool != (swiz x (var_ref arg0))(swiz x (var_ref arg1))))\n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool != (swiz y (var_ref arg0))(swiz y (var_ref arg1))))\n" " (return (var_ref temp))))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in) ivec3 arg0)\n" " (declare (in) ivec3 arg1))\n" " ((declare () bvec3 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool != (swiz x (var_ref arg0))(swiz x (var_ref arg1))))\n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool != (swiz y (var_ref arg0))(swiz y (var_ref arg1))))\n" " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool != (swiz z (var_ref arg0))(swiz z (var_ref arg1))))\n" " (return (var_ref temp))))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in) ivec4 arg0)\n" " (declare (in) ivec4 arg1))\n" " ((declare () bvec4 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool != (swiz x (var_ref arg0))(swiz x (var_ref arg1))))\n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool != (swiz y (var_ref arg0))(swiz y (var_ref arg1))))\n" " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool != (swiz z (var_ref arg0))(swiz z (var_ref arg1))))\n" " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool != (swiz w (var_ref arg0))(swiz w (var_ref arg1))))\n" " (return (var_ref temp))))\n" "\n" " (signature bvec2\n" " (parameters\n" " (declare (in) uvec2 arg0)\n" " (declare (in) uvec2 arg1))\n" " ((declare () bvec2 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool != (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool != (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n" " (return (var_ref temp))))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in) uvec3 arg0)\n" " (declare (in) uvec3 arg1))\n" " ((declare () bvec3 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool != (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool != (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool != (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n" " (return (var_ref temp))))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in) uvec4 arg0)\n" " (declare (in) uvec4 arg1))\n" " ((declare () bvec4 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool != (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool != (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool != (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool != (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n" " (return (var_ref temp))))\n" "))\n" "" ; static const char *builtin_outerProduct = "((function outerProduct\n" " (signature mat2\n" " (parameters\n" " (declare (in) vec2 u)\n" " (declare (in) vec2 v))\n" " ((declare () mat2 m)\n" " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (0))) (expression vec2 * (var_ref u) (swiz x (var_ref v))))\n" " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (1))) (expression vec2 * (var_ref u) (swiz y (var_ref v))))\n" " (return (var_ref m))))\n" "\n" " (signature mat2x3\n" " (parameters\n" " (declare (in) vec3 u)\n" " (declare (in) vec2 v))\n" " ((declare () mat2x3 m)\n" " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (0))) (expression vec3 * (var_ref u) (swiz x (var_ref v))))\n" " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (1))) (expression vec3 * (var_ref u) (swiz y (var_ref v))))\n" " (return (var_ref m))))\n" "\n" " (signature mat2x4\n" " (parameters\n" " (declare (in) vec4 u)\n" " (declare (in) vec2 v))\n" " ((declare () mat2x4 m)\n" " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (0))) (expression vec4 * (var_ref u) (swiz x (var_ref v))))\n" " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (1))) (expression vec4 * (var_ref u) (swiz y (var_ref v))))\n" " (return (var_ref m))))\n" "\n" " (signature mat3x2\n" " (parameters\n" " (declare (in) vec2 u)\n" " (declare (in) vec3 v))\n" " ((declare () mat3x2 m)\n" " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (0))) (expression vec2 * (var_ref u) (swiz x (var_ref v))))\n" " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (1))) (expression vec2 * (var_ref u) (swiz y (var_ref v))))\n" " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (2))) (expression vec2 * (var_ref u) (swiz z (var_ref v))))\n" " (return (var_ref m))\n" " ))\n" "\n" " (signature mat3\n" " (parameters\n" " (declare (in) vec3 u)\n" " (declare (in) vec3 v))\n" " ((declare () mat3 m)\n" " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (0))) (expression vec3 * (var_ref u) (swiz x (var_ref v))))\n" " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (1))) (expression vec3 * (var_ref u) (swiz y (var_ref v))))\n" " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (2))) (expression vec3 * (var_ref u) (swiz z (var_ref v))))\n" " (return (var_ref m))))\n" "\n" " (signature mat3x4\n" " (parameters\n" " (declare (in) vec4 u)\n" " (declare (in) vec3 v))\n" " ((declare () mat3x4 m)\n" " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (0))) (expression vec4 * (var_ref u) (swiz x (var_ref v))))\n" " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (1))) (expression vec4 * (var_ref u) (swiz y (var_ref v))))\n" " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (2))) (expression vec4 * (var_ref u) (swiz z (var_ref v))))\n" " (return (var_ref m))))\n" "\n" " (signature mat4x2\n" " (parameters\n" " (declare (in) vec2 u)\n" " (declare (in) vec4 v))\n" " ((declare () mat4x2 m)\n" " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (0))) (expression vec2 * (var_ref u) (swiz x (var_ref v))))\n" " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (1))) (expression vec2 * (var_ref u) (swiz y (var_ref v))))\n" " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (2))) (expression vec2 * (var_ref u) (swiz z (var_ref v))))\n" " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (3))) (expression vec2 * (var_ref u) (swiz w (var_ref v))))\n" " (return (var_ref m))))\n" "\n" " (signature mat4x3\n" " (parameters\n" " (declare (in) vec3 u)\n" " (declare (in) vec4 v))\n" " ((declare () mat4x3 m)\n" " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (0))) (expression vec3 * (var_ref u) (swiz x (var_ref v))))\n" " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (1))) (expression vec3 * (var_ref u) (swiz y (var_ref v))))\n" " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (2))) (expression vec3 * (var_ref u) (swiz z (var_ref v))))\n" " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (3))) (expression vec3 * (var_ref u) (swiz w (var_ref v))))\n" " (return (var_ref m))))\n" "\n" " (signature mat4\n" " (parameters\n" " (declare (in) vec4 u)\n" " (declare (in) vec4 v))\n" " ((declare () mat4 m)\n" " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (0))) (expression vec4 * (var_ref u) (swiz x (var_ref v))))\n" " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (1))) (expression vec4 * (var_ref u) (swiz y (var_ref v))))\n" " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (2))) (expression vec4 * (var_ref u) (swiz z (var_ref v))))\n" " (assign (constant bool (1)) (array_ref (var_ref m) (constant int (3))) (expression vec4 * (var_ref u) (swiz w (var_ref v))))\n" " (return (var_ref m))))\n" "))\n" "" ; static const char *builtin_shadow1D = "((function shadow1D\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler1DShadow sampler)\n" " (declare (in) vec3 P) )\n" " ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler1DShadow sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) float bias) )\n" " ((return (txb (var_ref sampler) (swiz x (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) (var_ref bias) ))))\n" "\n" "))\n" "" ; static const char *builtin_noise1 = "((function noise1\n" " (signature float\n" " (parameters\n" " (declare (in) float x))\n" " ((return (constant float (0)))))\n" " (signature float\n" " (parameters\n" " (declare (in) vec2 x))\n" " ((return (constant float (0)))))\n" " (signature float\n" " (parameters\n" " (declare (in) vec3 x))\n" " ((return (constant float (0)))))\n" " (signature float\n" " (parameters\n" " (declare (in) vec4 x))\n" " ((return (constant float (0)))))\n" "))\n" "" ; static const char *builtin_refract = "((function refract\n" " (signature float\n" " (parameters\n" " (declare (in) float i)\n" " (declare (in) float n)\n" " (declare (in) float eta))\n" " ((declare () float k)\n" " (assign (constant bool (1)) (var_ref k)\n" " (expression float - (constant float (1.0))\n" " (expression float * (var_ref eta)\n" " (expression float * (var_ref eta)\n" " (expression float - (constant float (1.0))\n" " (expression float * \n" " (expression float dot (var_ref n) (var_ref i))\n" " (expression float dot (var_ref n) (var_ref i))))))))\n" " (if (expression bool < (var_ref k) (constant float (0.0)))\n" " ((return (constant float (0.0))))\n" " ((return (expression float -\n" " (expression float * (var_ref eta) (var_ref i))\n" " (expression float *\n" " (expression float +\n" " (expression float * (var_ref eta)\n" " (expression float dot (var_ref n) (var_ref i)))\n" " (expression float sqrt (var_ref k)))\n" " (var_ref n))))))))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in) vec2 i)\n" " (declare (in) vec2 n)\n" " (declare (in) float eta))\n" " ((declare () float k)\n" " (assign (constant bool (1)) (var_ref k)\n" " (expression float - (constant float (1.0))\n" " (expression float * (var_ref eta)\n" " (expression float * (var_ref eta)\n" " (expression float - (constant float (1.0))\n" " (expression float * \n" " (expression float dot (var_ref n) (var_ref i))\n" " (expression float dot (var_ref n) (var_ref i))))))))\n" " (if (expression bool < (var_ref k) (constant float (0.0)))\n" " ((return (constant vec2 (0.0 0.0))))\n" " ((return (expression vec2 -\n" " (expression vec2 * (var_ref eta) (var_ref i))\n" " (expression vec2 *\n" " (expression float +\n" " (expression float * (var_ref eta)\n" " (expression float dot (var_ref n) (var_ref i)))\n" " (expression float sqrt (var_ref k)))\n" " (var_ref n))))))))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in) vec3 i)\n" " (declare (in) vec3 n)\n" " (declare (in) float eta))\n" " ((declare () float k)\n" " (assign (constant bool (1)) (var_ref k)\n" " (expression float - (constant float (1.0))\n" " (expression float * (var_ref eta)\n" " (expression float * (var_ref eta)\n" " (expression float - (constant float (1.0))\n" " (expression float * \n" " (expression float dot (var_ref n) (var_ref i))\n" " (expression float dot (var_ref n) (var_ref i))))))))\n" " (if (expression bool < (var_ref k) (constant float (0.0)))\n" " ((return (constant vec3 (0.0 0.0 0.0))))\n" " ((return (expression vec3 -\n" " (expression vec3 * (var_ref eta) (var_ref i))\n" " (expression vec3 *\n" " (expression float +\n" " (expression float * (var_ref eta)\n" " (expression float dot (var_ref n) (var_ref i)))\n" " (expression float sqrt (var_ref k)))\n" " (var_ref n))))))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) vec4 i)\n" " (declare (in) vec4 n)\n" " (declare (in) float eta))\n" " ((declare () float k)\n" " (assign (constant bool (1)) (var_ref k)\n" " (expression float - (constant float (1.0))\n" " (expression float * (var_ref eta)\n" " (expression float * (var_ref eta)\n" " (expression float - (constant float (1.0))\n" " (expression float * \n" " (expression float dot (var_ref n) (var_ref i))\n" " (expression float dot (var_ref n) (var_ref i))))))))\n" " (if (expression bool < (var_ref k) (constant float (0.0)))\n" " ((return (constant vec4 (0.0 0.0 0.0 0.0))))\n" " ((return (expression vec4 -\n" " (expression vec4 * (var_ref eta) (var_ref i))\n" " (expression vec4 *\n" " (expression float +\n" " (expression float * (var_ref eta)\n" " (expression float dot (var_ref n) (var_ref i)))\n" " (expression float sqrt (var_ref k)))\n" " (var_ref n))))))))\n" "\n" "))\n" "" ; static const char *builtin_noise3 = "((function noise3\n" " (signature vec3\n" " (parameters\n" " (declare (in) float x))\n" " ((return (constant vec3 (0 0 0)))))\n" " (signature vec3\n" " (parameters\n" " (declare (in) vec2 x))\n" " ((return (constant vec3 (0 0 0)))))\n" " (signature vec3\n" " (parameters\n" " (declare (in) vec3 x))\n" " ((return (constant vec3 (0 0 0)))))\n" " (signature vec3\n" " (parameters\n" " (declare (in) vec4 x))\n" " ((return (constant vec3 (0 0 0)))))\n" "))\n" "" ; static const char *builtin_min = "((function min\n" " (signature float\n" " (parameters\n" " (declare (in) float arg0)\n" " (declare (in) float arg1))\n" " ((return (expression float min (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in) vec2 arg0)\n" " (declare (in) vec2 arg1))\n" " ((return (expression vec2 min (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in) vec3 arg0)\n" " (declare (in) vec3 arg1))\n" " ((return (expression vec3 min (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) vec4 arg0)\n" " (declare (in) vec4 arg1))\n" " ((return (expression vec4 min (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in) vec2 arg0)\n" " (declare (in) float arg1))\n" " ((return (expression vec2 min (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in) vec3 arg0)\n" " (declare (in) float arg1))\n" " ((return (expression vec3 min (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) vec4 arg0)\n" " (declare (in) float arg1))\n" " ((return (expression vec4 min (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature int\n" " (parameters\n" " (declare (in) int arg0)\n" " (declare (in) int arg1))\n" " ((return (expression int min (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature ivec2\n" " (parameters\n" " (declare (in) ivec2 arg0)\n" " (declare (in) ivec2 arg1))\n" " ((return (expression ivec2 min (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature ivec3\n" " (parameters\n" " (declare (in) ivec3 arg0)\n" " (declare (in) ivec3 arg1))\n" " ((return (expression ivec3 min (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) ivec4 arg0)\n" " (declare (in) ivec4 arg1))\n" " ((return (expression ivec4 min (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature ivec2\n" " (parameters\n" " (declare (in) ivec2 arg0)\n" " (declare (in) int arg1))\n" " ((return (expression ivec2 min (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature ivec3\n" " (parameters\n" " (declare (in) ivec3 arg0)\n" " (declare (in) int arg1))\n" " ((return (expression ivec3 min (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature ivec4\n" " (parameters\n" " (declare (in) ivec4 arg0)\n" " (declare (in) int arg1))\n" " ((return (expression ivec4 min (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature uint\n" " (parameters\n" " (declare (in) uint arg0)\n" " (declare (in) uint arg1))\n" " ((return (expression uint min (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature uvec2\n" " (parameters\n" " (declare (in) uvec2 arg0)\n" " (declare (in) uvec2 arg1))\n" " ((return (expression uvec2 min (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature uvec3\n" " (parameters\n" " (declare (in) uvec3 arg0)\n" " (declare (in) uvec3 arg1))\n" " ((return (expression uvec3 min (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) uvec4 arg0)\n" " (declare (in) uvec4 arg1))\n" " ((return (expression uvec4 min (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature uvec2\n" " (parameters\n" " (declare (in) uvec2 arg0)\n" " (declare (in) uint arg1))\n" " ((return (expression uvec2 min (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature uvec3\n" " (parameters\n" " (declare (in) uvec3 arg0)\n" " (declare (in) uint arg1))\n" " ((return (expression uvec3 min (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature uvec4\n" " (parameters\n" " (declare (in) uvec4 arg0)\n" " (declare (in) uint arg1))\n" " ((return (expression uvec4 min (var_ref arg0) (var_ref arg1)))))\n" "))\n" "" ; static const char *builtin_textureCube = "((function textureCube\n" " (signature vec4\n" " (parameters\n" " (declare (in) samplerCube sampler)\n" " (declare (in) vec3 P) )\n" " ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) samplerCube sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) float bias) )\n" " ((return (txb (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref bias) ))))\n" "\n" "))\n" "" ; static const char *builtin_shadow1DArray = "((function shadow1DArray\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler1DArrayShadow sampler)\n" " (declare (in) vec3 P) )\n" " ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) ))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler1DArrayShadow sampler)\n" " (declare (in) vec3 P) \n" " (declare (in) float bias) )\n" " ((return (txb (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) (var_ref bias) ))))\n" "\n" "))\n" "" ; static const char *builtin_exp = "((function exp\n" " (signature float\n" " (parameters\n" " (declare (in) float arg0))\n" " ((return (expression float exp (var_ref arg0)))))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in) vec2 arg0))\n" " ((return (expression vec2 exp (var_ref arg0)))))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in) vec3 arg0))\n" " ((return (expression vec3 exp (var_ref arg0)))))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in) vec4 arg0))\n" " ((return (expression vec4 exp (var_ref arg0)))))\n" "))\n" "" ; static const char *builtin_greaterThan = "((function greaterThan\n" " (signature bvec2\n" " (parameters\n" " (declare (in) vec2 arg0)\n" " (declare (in) vec2 arg1))\n" " ((declare () bvec2 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n" " (return (var_ref temp))))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in) vec3 arg0)\n" " (declare (in) vec3 arg1))\n" " ((declare () bvec3 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool > (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n" " (return (var_ref temp))))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in) vec4 arg0)\n" " (declare (in) vec4 arg1))\n" " ((declare () bvec4 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool > (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool > (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n" " (return (var_ref temp))))\n" "\n" " (signature bvec2\n" " (parameters\n" " (declare (in) ivec2 arg0)\n" " (declare (in) ivec2 arg1))\n" " ((declare () bvec2 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n" " (return (var_ref temp))))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in) ivec3 arg0)\n" " (declare (in) ivec3 arg1))\n" " ((declare () bvec3 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool > (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n" " (return (var_ref temp))))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in) ivec4 arg0)\n" " (declare (in) ivec4 arg1))\n" " ((declare () bvec4 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool > (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool > (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n" " (return (var_ref temp))))\n" "\n" " (signature bvec2\n" " (parameters\n" " (declare (in) uvec2 arg0)\n" " (declare (in) uvec2 arg1))\n" " ((declare () bvec2 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n" " (return (var_ref temp))))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in) uvec3 arg0)\n" " (declare (in) uvec3 arg1))\n" " ((declare () bvec3 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool > (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n" " (return (var_ref temp))))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in) uvec4 arg0)\n" " (declare (in) uvec4 arg1))\n" " ((declare () bvec4 temp)\n" " (assign (constant bool (1)) (swiz x (var_ref temp)) (expression bool > (swiz x (var_ref arg0))(swiz x (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz y (var_ref temp)) (expression bool > (swiz y (var_ref arg0))(swiz y (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz z (var_ref temp)) (expression bool > (swiz z (var_ref arg0))(swiz z (var_ref arg1)))) \n" " (assign (constant bool (1)) (swiz w (var_ref temp)) (expression bool > (swiz w (var_ref arg0))(swiz w (var_ref arg1)))) \n" " (return (var_ref temp))))\n" "))\n" "" ; static const char *builtin_texture2DLod = "((function texture2DLod\n" " (signature vec4\n" " (parameters\n" " (declare (in) sampler2D sampler)\n" " (declare (in) vec2 P) \n" " (declare (in) float lod) )\n" " ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))\n" "\n" "))\n" "" ; static const char *builtin_dot = "((function dot\n" " (signature float\n" " (parameters\n" " (declare (in) float arg0)\n" " (declare (in) float arg1))\n" " ((return (expression float dot (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in) vec2 arg0)\n" " (declare (in) vec2 arg1))\n" " ((return (expression float dot (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in) vec3 arg0)\n" " (declare (in) vec3 arg1))\n" " ((return (expression float dot (var_ref arg0) (var_ref arg1)))))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in) vec4 arg0)\n" " (declare (in) vec4 arg1))\n" " ((return (expression float dot (var_ref arg0) (var_ref arg1)))))\n" "))\n" "" ; static const char *prototypes_for_120_vert = "(\n" "(function radians\n" " (signature float\n" " (parameters\n" " (declare (in ) float degrees@0x22143e0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 degrees@0x22147b0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 degrees@0x22149a0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 degrees@0x2214b90)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function degrees\n" " (signature float\n" " (parameters\n" " (declare (in ) float radians@0x2214d80)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 radians@0x2215150)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 radians@0x2215340)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 radians@0x2215530)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function sin\n" " (signature float\n" " (parameters\n" " (declare (in ) float angle@0x2215720)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 angle@0x2215ad0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 angle@0x2215cb0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 angle@0x2215e90)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function cos\n" " (signature float\n" " (parameters\n" " (declare (in ) float angle@0x2216070)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 angle@0x2216420)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 angle@0x2216600)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 angle@0x22167e0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function tan\n" " (signature float\n" " (parameters\n" " (declare (in ) float angle@0x22169c0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 angle@0x2216d70)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 angle@0x2216f50)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 angle@0x2217130)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function asin\n" " (signature float\n" " (parameters\n" " (declare (in ) float angle@0x2217310)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 angle@0x22176c0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 angle@0x22178a0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 angle@0x2217a80)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function acos\n" " (signature float\n" " (parameters\n" " (declare (in ) float angle@0x2217c60)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 angle@0x2218010)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 angle@0x22181f0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 angle@0x22183d0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function atan\n" " (signature float\n" " (parameters\n" " (declare (in ) float y@0x22185b0)\n" " (declare (in ) float x@0x22186c0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 y@0x2218a70)\n" " (declare (in ) vec2 x@0x2218b80)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 y@0x2218d60)\n" " (declare (in ) vec3 x@0x2218e70)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 y@0x2219050)\n" " (declare (in ) vec4 x@0x2219160)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) float y_over_x@0x2219340)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 y_over_x@0x2219530)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 y_over_x@0x2219720)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 y_over_x@0x2219910)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function pow\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x2219b00)\n" " (declare (in ) float y@0x2219c10)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x2219fc0)\n" " (declare (in ) vec2 y@0x221a0d0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x221a2b0)\n" " (declare (in ) vec3 y@0x221a3c0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x221a5a0)\n" " (declare (in ) vec4 y@0x221a6b0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function exp\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x221a890)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x221ac40)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x221ae20)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x221b000)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function log\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x221b1e0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x221b590)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x221b770)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x221b950)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function exp2\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x221bb30)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x221bee0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x221c0c0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x221c2a0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function log2\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x221c480)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x221c830)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x221ca10)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x221cbf0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function sqrt\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x221cdd0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x221d180)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x221d360)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x221d540)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function inversesqrt\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x221d720)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x221dae0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x221dcc0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x221dea0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function abs\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x221e080)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x221e430)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x221e610)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x221e7f0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function sign\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x221e9d0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x221ed80)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x221ef60)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x221f140)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function floor\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x221f320)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x221f6d0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x221f8b0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x221fa90)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function ceil\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x221fc70)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x2220020)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x2220200)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x22203e0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function fract\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x22205c0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x2220970)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x2220b50)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x2220d30)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function mod\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x2220f10)\n" " (declare (in ) float y@0x2221020)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x22213d0)\n" " (declare (in ) float y@0x22214e0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x22216c0)\n" " (declare (in ) float y@0x22217d0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x22219b0)\n" " (declare (in ) float y@0x2221ac0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x2221ca0)\n" " (declare (in ) vec2 y@0x2221db0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x2221f90)\n" " (declare (in ) vec3 y@0x22220a0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x2222280)\n" " (declare (in ) vec4 y@0x2222390)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function min\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x2222570)\n" " (declare (in ) float y@0x2222680)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x2222a30)\n" " (declare (in ) vec2 y@0x2222b40)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x2222d20)\n" " (declare (in ) vec3 y@0x2222e30)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x2223010)\n" " (declare (in ) vec4 y@0x2223120)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x2223300)\n" " (declare (in ) float y@0x2223410)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x22235f0)\n" " (declare (in ) float y@0x2223700)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x22238e0)\n" " (declare (in ) float y@0x22239f0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function max\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x2223bd0)\n" " (declare (in ) float y@0x2223ce0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x2224090)\n" " (declare (in ) vec2 y@0x22241a0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x2224380)\n" " (declare (in ) vec3 y@0x2224490)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x2224670)\n" " (declare (in ) vec4 y@0x2224780)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x2224960)\n" " (declare (in ) float y@0x2224a70)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x2224c50)\n" " (declare (in ) float y@0x2224d60)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x2224f40)\n" " (declare (in ) float y@0x2225050)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function clamp\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x2225230)\n" " (declare (in ) float minVal@0x2225340)\n" " (declare (in ) float maxVal@0x2225450)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x2225800)\n" " (declare (in ) vec2 minVal@0x2225910)\n" " (declare (in ) vec2 maxVal@0x2225a20)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x2225c00)\n" " (declare (in ) vec3 minVal@0x2225d10)\n" " (declare (in ) vec3 maxVal@0x2225e20)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x2226000)\n" " (declare (in ) vec4 minVal@0x2226110)\n" " (declare (in ) vec4 maxVal@0x2226220)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x2226400)\n" " (declare (in ) float minVal@0x2226510)\n" " (declare (in ) float maxVal@0x2226620)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x2226800)\n" " (declare (in ) float minVal@0x2226910)\n" " (declare (in ) float maxVal@0x2226a20)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x2226c00)\n" " (declare (in ) float minVal@0x2226d10)\n" " (declare (in ) float maxVal@0x2226e20)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function mix\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x2227000)\n" " (declare (in ) float y@0x2227110)\n" " (declare (in ) float a@0x2227220)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x22275d0)\n" " (declare (in ) vec2 y@0x22276e0)\n" " (declare (in ) vec2 a@0x22277f0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x22279d0)\n" " (declare (in ) vec3 y@0x2227ae0)\n" " (declare (in ) vec3 a@0x2227bf0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x2227dd0)\n" " (declare (in ) vec4 y@0x2227ee0)\n" " (declare (in ) vec4 a@0x2227ff0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x22281d0)\n" " (declare (in ) vec2 y@0x22282e0)\n" " (declare (in ) float a@0x22283f0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x22285d0)\n" " (declare (in ) vec3 y@0x22286e0)\n" " (declare (in ) float a@0x22287f0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x22289d0)\n" " (declare (in ) vec4 y@0x2228ae0)\n" " (declare (in ) float a@0x2228bf0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function step\n" " (signature float\n" " (parameters\n" " (declare (in ) float edge@0x2228dd0)\n" " (declare (in ) float x@0x2228ee0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 edge@0x2229290)\n" " (declare (in ) vec2 x@0x22293a0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 edge@0x2229580)\n" " (declare (in ) vec3 x@0x2229690)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 edge@0x2229870)\n" " (declare (in ) vec4 x@0x2229980)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) float edge@0x2229b60)\n" " (declare (in ) vec2 x@0x2229c70)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) float edge@0x2229e50)\n" " (declare (in ) vec3 x@0x2229f60)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) float edge@0x222a140)\n" " (declare (in ) vec4 x@0x222a250)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function smoothstep\n" " (signature float\n" " (parameters\n" " (declare (in ) float edge0@0x222a430)\n" " (declare (in ) float edge1@0x222a540)\n" " (declare (in ) float x@0x222a650)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 edge0@0x222aa10)\n" " (declare (in ) vec2 edge1@0x222ab20)\n" " (declare (in ) vec2 x@0x222ac30)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 edge0@0x222ae10)\n" " (declare (in ) vec3 edge1@0x222af20)\n" " (declare (in ) vec3 x@0x222b030)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 edge0@0x222b210)\n" " (declare (in ) vec4 edge1@0x222b320)\n" " (declare (in ) vec4 x@0x222b430)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) float edge0@0x222b610)\n" " (declare (in ) float edge1@0x222b720)\n" " (declare (in ) vec2 x@0x222b830)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) float edge0@0x222ba10)\n" " (declare (in ) float edge1@0x222bb20)\n" " (declare (in ) vec3 x@0x222bc30)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) float edge0@0x222be10)\n" " (declare (in ) float edge1@0x222bf20)\n" " (declare (in ) vec4 x@0x222c030)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function length\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x222c210)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) vec2 x@0x222c5c0)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) vec3 x@0x222c7a0)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) vec4 x@0x222c980)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function distance\n" " (signature float\n" " (parameters\n" " (declare (in ) float p0@0x222cb60)\n" " (declare (in ) float p1@0x222cc70)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) vec2 p0@0x222d030)\n" " (declare (in ) vec2 p1@0x222d140)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) vec3 p0@0x222d320)\n" " (declare (in ) vec3 p1@0x222d430)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) vec4 p0@0x222d610)\n" " (declare (in ) vec4 p1@0x222d720)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function dot\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x222d900)\n" " (declare (in ) float y@0x222da10)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) vec2 x@0x222ddc0)\n" " (declare (in ) vec2 y@0x222ded0)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) vec3 x@0x222e0b0)\n" " (declare (in ) vec3 y@0x222e1c0)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) vec4 x@0x222e3a0)\n" " (declare (in ) vec4 y@0x222e4b0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function cross\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x222e690)\n" " (declare (in ) vec3 y@0x222e7a0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function normalize\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x222eb50)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x222ef10)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x222f0f0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x222f2d0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function ftransform\n" " (signature vec4\n" " (parameters\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function faceforward\n" " (signature float\n" " (parameters\n" " (declare (in ) float N@0x222f760)\n" " (declare (in ) float I@0x222f870)\n" " (declare (in ) float Nref@0x222f980)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 N@0x222fd40)\n" " (declare (in ) vec2 I@0x222fe50)\n" " (declare (in ) vec2 Nref@0x222ff60)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 N@0x2230140)\n" " (declare (in ) vec3 I@0x2230250)\n" " (declare (in ) vec3 Nref@0x2230360)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 N@0x2230540)\n" " (declare (in ) vec4 I@0x2230650)\n" " (declare (in ) vec4 Nref@0x2230760)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function reflect\n" " (signature float\n" " (parameters\n" " (declare (in ) float I@0x2230940)\n" " (declare (in ) float N@0x2230a50)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 I@0x2230e10)\n" " (declare (in ) vec2 N@0x2230f20)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 I@0x2231100)\n" " (declare (in ) vec3 N@0x2231210)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 I@0x22313f0)\n" " (declare (in ) vec4 N@0x2231500)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function refract\n" " (signature float\n" " (parameters\n" " (declare (in ) float I@0x22316e0)\n" " (declare (in ) float N@0x22317f0)\n" " (declare (in ) float eta@0x2231900)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 I@0x2231cc0)\n" " (declare (in ) vec2 N@0x2231dd0)\n" " (declare (in ) float eta@0x2231ee0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 I@0x22320c0)\n" " (declare (in ) vec3 N@0x22321d0)\n" " (declare (in ) float eta@0x22322e0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 I@0x22324c0)\n" " (declare (in ) vec4 N@0x22325d0)\n" " (declare (in ) float eta@0x22326e0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function matrixCompMult\n" " (signature mat2\n" " (parameters\n" " (declare (in ) mat2 x@0x22328c0)\n" " (declare (in ) mat2 y@0x22329d0)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat3\n" " (parameters\n" " (declare (in ) mat3 x@0x2232d90)\n" " (declare (in ) mat3 y@0x2232ea0)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat4\n" " (parameters\n" " (declare (in ) mat4 x@0x2233080)\n" " (declare (in ) mat4 y@0x2233190)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat2x3\n" " (parameters\n" " (declare (in ) mat2x3 x@0x2233370)\n" " (declare (in ) mat2x3 y@0x2233480)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat2x4\n" " (parameters\n" " (declare (in ) mat2x4 x@0x2233660)\n" " (declare (in ) mat2x4 y@0x2233770)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat3x2\n" " (parameters\n" " (declare (in ) mat3x2 x@0x2233950)\n" " (declare (in ) mat3x2 y@0x2233a60)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat3x4\n" " (parameters\n" " (declare (in ) mat3x4 x@0x2233c40)\n" " (declare (in ) mat3x4 y@0x2233d50)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat4x2\n" " (parameters\n" " (declare (in ) mat4x2 x@0x2233f30)\n" " (declare (in ) mat4x2 y@0x2234040)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat4x3\n" " (parameters\n" " (declare (in ) mat4x3 x@0x2234220)\n" " (declare (in ) mat4x3 y@0x2234330)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function outerProduct\n" " (signature mat2\n" " (parameters\n" " (declare (in ) vec2 c@0x2234510)\n" " (declare (in ) vec2 r@0x2234620)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat3\n" " (parameters\n" " (declare (in ) vec3 c@0x22349e0)\n" " (declare (in ) vec3 r@0x2234af0)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat4\n" " (parameters\n" " (declare (in ) vec4 c@0x2234cd0)\n" " (declare (in ) vec4 r@0x2234de0)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat2x3\n" " (parameters\n" " (declare (in ) vec3 c@0x2234fc0)\n" " (declare (in ) vec2 r@0x22350d0)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat3x2\n" " (parameters\n" " (declare (in ) vec2 c@0x22352b0)\n" " (declare (in ) vec3 r@0x22353c0)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat2x4\n" " (parameters\n" " (declare (in ) vec4 c@0x22355a0)\n" " (declare (in ) vec2 r@0x22356b0)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat4x2\n" " (parameters\n" " (declare (in ) vec2 c@0x2235890)\n" " (declare (in ) vec4 r@0x22359a0)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat3x4\n" " (parameters\n" " (declare (in ) vec4 c@0x2235b80)\n" " (declare (in ) vec3 r@0x2235c90)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat4x3\n" " (parameters\n" " (declare (in ) vec3 c@0x2235e70)\n" " (declare (in ) vec4 r@0x2235f80)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function transpose\n" " (signature mat2\n" " (parameters\n" " (declare (in ) mat2 m@0x2236160)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat3\n" " (parameters\n" " (declare (in ) mat3 m@0x2236520)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat4\n" " (parameters\n" " (declare (in ) mat4 m@0x2236700)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat2x3\n" " (parameters\n" " (declare (in ) mat3x2 m@0x22368e0)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat3x2\n" " (parameters\n" " (declare (in ) mat2x3 m@0x2236ac0)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat2x4\n" " (parameters\n" " (declare (in ) mat4x2 m@0x2236ca0)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat4x2\n" " (parameters\n" " (declare (in ) mat2x4 m@0x2236e80)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat3x4\n" " (parameters\n" " (declare (in ) mat4x3 m@0x2237060)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat4x3\n" " (parameters\n" " (declare (in ) mat3x4 m@0x2237240)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function lessThan\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) vec2 x@0x2237420)\n" " (declare (in ) vec2 y@0x2237530)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) vec3 x@0x22378f0)\n" " (declare (in ) vec3 y@0x2237a00)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) vec4 x@0x2237be0)\n" " (declare (in ) vec4 y@0x2237cf0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) ivec2 x@0x2237ed0)\n" " (declare (in ) ivec2 y@0x2237fe0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) ivec3 x@0x22381c0)\n" " (declare (in ) ivec3 y@0x22382d0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) ivec4 x@0x22384b0)\n" " (declare (in ) ivec4 y@0x22385c0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function lessThanEqual\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) vec2 x@0x22387a0)\n" " (declare (in ) vec2 y@0x22388b0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) vec3 x@0x2238c70)\n" " (declare (in ) vec3 y@0x2238d80)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) vec4 x@0x2238f60)\n" " (declare (in ) vec4 y@0x2239070)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) ivec2 x@0x2239250)\n" " (declare (in ) ivec2 y@0x2239360)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) ivec3 x@0x2239540)\n" " (declare (in ) ivec3 y@0x2239650)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) ivec4 x@0x2239830)\n" " (declare (in ) ivec4 y@0x2239940)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function greaterThan\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) vec2 x@0x2239b20)\n" " (declare (in ) vec2 y@0x2239c30)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) vec3 x@0x2239ff0)\n" " (declare (in ) vec3 y@0x223a100)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) vec4 x@0x223a2e0)\n" " (declare (in ) vec4 y@0x223a3f0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) ivec2 x@0x223a5d0)\n" " (declare (in ) ivec2 y@0x223a6e0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) ivec3 x@0x223a8c0)\n" " (declare (in ) ivec3 y@0x223a9d0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) ivec4 x@0x223abb0)\n" " (declare (in ) ivec4 y@0x223acc0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function greaterThanEqual\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) vec2 x@0x223aea0)\n" " (declare (in ) vec2 y@0x223afb0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) vec3 x@0x223b370)\n" " (declare (in ) vec3 y@0x223b480)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) vec4 x@0x223b660)\n" " (declare (in ) vec4 y@0x223b770)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) ivec2 x@0x223b950)\n" " (declare (in ) ivec2 y@0x223ba60)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) ivec3 x@0x223bc40)\n" " (declare (in ) ivec3 y@0x223bd50)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) ivec4 x@0x223bf30)\n" " (declare (in ) ivec4 y@0x223c040)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function equal\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) vec2 x@0x223c220)\n" " (declare (in ) vec2 y@0x223c330)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) vec3 x@0x223c6e0)\n" " (declare (in ) vec3 y@0x223c7f0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) vec4 x@0x223c9d0)\n" " (declare (in ) vec4 y@0x223cae0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) ivec2 x@0x223ccc0)\n" " (declare (in ) ivec2 y@0x223cdd0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) ivec3 x@0x223cfb0)\n" " (declare (in ) ivec3 y@0x223d0c0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) ivec4 x@0x223d2a0)\n" " (declare (in ) ivec4 y@0x223d3b0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) bvec2 x@0x223d590)\n" " (declare (in ) bvec2 y@0x223d6a0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) bvec3 x@0x223d880)\n" " (declare (in ) bvec3 y@0x223d990)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) bvec4 x@0x223db70)\n" " (declare (in ) bvec4 y@0x223dc80)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function notEqual\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) vec2 x@0x223de60)\n" " (declare (in ) vec2 y@0x223df70)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) vec3 x@0x223e330)\n" " (declare (in ) vec3 y@0x223e440)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) vec4 x@0x223e620)\n" " (declare (in ) vec4 y@0x223e730)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) ivec2 x@0x223e910)\n" " (declare (in ) ivec2 y@0x223ea20)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) ivec3 x@0x223ec00)\n" " (declare (in ) ivec3 y@0x223ed10)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) ivec4 x@0x223eef0)\n" " (declare (in ) ivec4 y@0x223f000)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) bvec2 x@0x223f1e0)\n" " (declare (in ) bvec2 y@0x223f2f0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) bvec3 x@0x223f4d0)\n" " (declare (in ) bvec3 y@0x223f5e0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) bvec4 x@0x223f7c0)\n" " (declare (in ) bvec4 y@0x223f8d0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function any\n" " (signature bool\n" " (parameters\n" " (declare (in ) bvec2 x@0x223fab0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bool\n" " (parameters\n" " (declare (in ) bvec3 x@0x223fe60)\n" " )\n" " (\n" " ))\n" "\n" " (signature bool\n" " (parameters\n" " (declare (in ) bvec4 x@0x2240040)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function all\n" " (signature bool\n" " (parameters\n" " (declare (in ) bvec2 x@0x2240220)\n" " )\n" " (\n" " ))\n" "\n" " (signature bool\n" " (parameters\n" " (declare (in ) bvec3 x@0x22405d0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bool\n" " (parameters\n" " (declare (in ) bvec4 x@0x22407b0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function not\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) bvec2 x@0x2240990)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) bvec3 x@0x2240d40)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) bvec4 x@0x2240f20)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function texture1D\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1D sampler@0x2241100)\n" " (declare (in ) float coord@0x2241220)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function texture1DProj\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1D sampler@0x22415e0)\n" " (declare (in ) vec2 coord@0x2241700)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1D sampler@0x2241ac0)\n" " (declare (in ) vec4 coord@0x2241be0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function texture1DLod\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1D sampler@0x2241dc0)\n" " (declare (in ) float coord@0x2241ee0)\n" " (declare (in ) float lod@0x2241ff0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function texture1DProjLod\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1D sampler@0x22423b0)\n" " (declare (in ) vec2 coord@0x22424d0)\n" " (declare (in ) float lod@0x22425e0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1D sampler@0x22429a0)\n" " (declare (in ) vec4 coord@0x2242ac0)\n" " (declare (in ) float lod@0x2242bd0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function texture2D\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2D sampler@0x2242db0)\n" " (declare (in ) vec2 coord@0x2242ed0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function texture2DProj\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2D sampler@0x2243290)\n" " (declare (in ) vec3 coord@0x22433b0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2D sampler@0x2243770)\n" " (declare (in ) vec4 coord@0x2243890)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function texture2DLod\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2D sampler@0x2243a70)\n" " (declare (in ) vec2 coord@0x2243b90)\n" " (declare (in ) float lod@0x2243ca0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function texture2DProjLod\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2D sampler@0x2244060)\n" " (declare (in ) vec3 coord@0x2244180)\n" " (declare (in ) float lod@0x2244290)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2D sampler@0x2244650)\n" " (declare (in ) vec4 coord@0x2244770)\n" " (declare (in ) float lod@0x2244880)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function texture3D\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler3D sampler@0x2244a60)\n" " (declare (in ) vec3 coord@0x2244b80)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function texture3DProj\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler3D sampler@0x2244f40)\n" " (declare (in ) vec4 coord@0x2245060)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function texture3DLod\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler3D sampler@0x2245420)\n" " (declare (in ) vec3 coord@0x2245540)\n" " (declare (in ) float lod@0x2245650)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function texture3DProjLod\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler3D sampler@0x2245a10)\n" " (declare (in ) vec4 coord@0x2245b30)\n" " (declare (in ) float lod@0x2245c40)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function textureCube\n" " (signature vec4\n" " (parameters\n" " (declare (in ) samplerCube sampler@0x2246000)\n" " (declare (in ) vec3 coord@0x2246120)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function textureCubeLod\n" " (signature vec4\n" " (parameters\n" " (declare (in ) samplerCube sampler@0x22464e0)\n" " (declare (in ) vec3 coord@0x2246600)\n" " (declare (in ) float lod@0x2246710)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function shadow1D\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1DShadow sampler@0x2246ad0)\n" " (declare (in ) vec3 coord@0x2246bf0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function shadow2D\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2DShadow sampler@0x2246fb0)\n" " (declare (in ) vec3 coord@0x22470d0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function shadow1DProj\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1DShadow sampler@0x2247490)\n" " (declare (in ) vec4 coord@0x22475b0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function shadow2DProj\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2DShadow sampler@0x2247970)\n" " (declare (in ) vec4 coord@0x2247a90)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function shadow1DLod\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1DShadow sampler@0x2247e50)\n" " (declare (in ) vec3 coord@0x2247f70)\n" " (declare (in ) float lod@0x2248080)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function shadow2DLod\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2DShadow sampler@0x2248440)\n" " (declare (in ) vec3 coord@0x2248560)\n" " (declare (in ) float lod@0x2248670)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function shadow1DProjLod\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1DShadow sampler@0x2248a30)\n" " (declare (in ) vec4 coord@0x2248b50)\n" " (declare (in ) float lod@0x2248c60)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function shadow2DProjLod\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2DShadow sampler@0x2249020)\n" " (declare (in ) vec4 coord@0x2249140)\n" " (declare (in ) float lod@0x2249250)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function noise1\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x2249610)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) vec2 x@0x22499c0)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) vec3 x@0x2249ba0)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) vec4 x@0x2249d80)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function noise2\n" " (signature vec2\n" " (parameters\n" " (declare (in ) float x@0x2249f60)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x224a310)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec3 x@0x224a4f0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec4 x@0x224a6d0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function noise3\n" " (signature vec3\n" " (parameters\n" " (declare (in ) float x@0x224a8b0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec2 x@0x224ac60)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x224ae40)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec4 x@0x224b020)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function noise4\n" " (signature vec4\n" " (parameters\n" " (declare (in ) float x@0x224b200)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec2 x@0x224b5b0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec3 x@0x224b790)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x224b970)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "\n" ")" ; static const char *functions_for_120_vert [] = { builtin_clamp, builtin_matrixCompMult, builtin_shadow2DProjLod, builtin_noise2, builtin_texture3DProjLod, builtin_pow, builtin_texture2DProj, builtin_greaterThanEqual, builtin_sign, builtin_texture3DProj, builtin_texture2D, builtin_equal, builtin_faceforward, builtin_tan, builtin_shadow2DProj, builtin_shadow1DProjLod, builtin_any, builtin_shadow1DProj, builtin_normalize, builtin_asin, builtin_texture1DProj, builtin_log, builtin_floor, builtin_exp2, builtin_lessThan, builtin_cross, builtin_sqrt, builtin_texture3DLod, builtin_fract, builtin_abs, builtin_degrees, builtin_shadow1DLod, builtin_ftransform, builtin_sin, builtin_shadow2D, builtin_shadow2DLod, builtin_all, builtin_log2, builtin_atan, builtin_notEqual, builtin_max, builtin_lessThanEqual, builtin_transpose, builtin_outerProduct, builtin_ceil, builtin_reflect, builtin_textureCubeLod, builtin_step, builtin_texture1D, builtin_greaterThan, builtin_texture3D, builtin_not, builtin_texture2DProjLod, builtin_inversesqrt, builtin_mod, builtin_noise4, builtin_distance, builtin_cos, builtin_shadow1D, builtin_noise1, builtin_refract, builtin_noise3, builtin_texture2DLod, builtin_min, builtin_radians, builtin_smoothstep, builtin_texture1DProjLod, builtin_textureCube, builtin_length, builtin_texture1DLod, builtin_exp, builtin_acos, builtin_mix, builtin_dot, }; static const char *prototypes_for_EXT_texture_array_frag = "(\n" "(function texture1DArray\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1DArray sampler@0xb9bd60)\n" " (declare (in ) vec2 coord@0xb9be80)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1DArray sampler@0xb9c240)\n" " (declare (in ) vec2 coord@0xb9c360)\n" " (declare (in ) float bias@0xb9c470)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function texture2DArray\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1DArray sampler@0xb9c650)\n" " (declare (in ) vec2 coord@0xb9c770)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1DArray sampler@0xb9cb30)\n" " (declare (in ) vec2 coord@0xb9cc50)\n" " (declare (in ) float bias@0xb9cd60)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function shadow1DArray\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1DArrayShadow sampler@0xb9cf40)\n" " (declare (in ) vec3 coord@0xb9d060)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1DArrayShadow sampler@0xb9d420)\n" " (declare (in ) vec3 coord@0xb9d540)\n" " (declare (in ) float bias@0xb9d650)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function shadow2DArray\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2DArrayShadow sampler@0xb9d830)\n" " (declare (in ) vec4 coord@0xb9d950)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "\n" ")" ; static const char *functions_for_EXT_texture_array_frag [] = { builtin_shadow2DArray, builtin_shadow1DArray, builtin_texture1DArray, builtin_texture2DArray, }; static const char *prototypes_for_110_vert = "(\n" "(function radians\n" " (signature float\n" " (parameters\n" " (declare (in ) float degrees@0x9e3c50)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 degrees@0x9e4020)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 degrees@0x9e4210)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 degrees@0x9e4400)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function degrees\n" " (signature float\n" " (parameters\n" " (declare (in ) float radians@0x9e45f0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 radians@0x9e49c0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 radians@0x9e4bb0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 radians@0x9e4da0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function sin\n" " (signature float\n" " (parameters\n" " (declare (in ) float angle@0x9e4f90)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 angle@0x9e5340)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 angle@0x9e5520)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 angle@0x9e5700)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function cos\n" " (signature float\n" " (parameters\n" " (declare (in ) float angle@0x9e58e0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 angle@0x9e5c90)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 angle@0x9e5e70)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 angle@0x9e6050)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function tan\n" " (signature float\n" " (parameters\n" " (declare (in ) float angle@0x9e6230)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 angle@0x9e65e0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 angle@0x9e67c0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 angle@0x9e69a0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function asin\n" " (signature float\n" " (parameters\n" " (declare (in ) float angle@0x9e6b80)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 angle@0x9e6f30)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 angle@0x9e7110)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 angle@0x9e72f0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function acos\n" " (signature float\n" " (parameters\n" " (declare (in ) float angle@0x9e74d0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 angle@0x9e7880)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 angle@0x9e7a60)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 angle@0x9e7c40)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function atan\n" " (signature float\n" " (parameters\n" " (declare (in ) float y@0x9e7e20)\n" " (declare (in ) float x@0x9e7f30)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 y@0x9e82e0)\n" " (declare (in ) vec2 x@0x9e83f0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 y@0x9e85d0)\n" " (declare (in ) vec3 x@0x9e86e0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 y@0x9e88c0)\n" " (declare (in ) vec4 x@0x9e89d0)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) float y_over_x@0x9e8bb0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 y_over_x@0x9e8da0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 y_over_x@0x9e8f90)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 y_over_x@0x9e9180)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function pow\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x9e9370)\n" " (declare (in ) float y@0x9e9480)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x9e9830)\n" " (declare (in ) vec2 y@0x9e9940)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x9e9b20)\n" " (declare (in ) vec3 y@0x9e9c30)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x9e9e10)\n" " (declare (in ) vec4 y@0x9e9f20)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function exp\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x9ea100)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x9ea4b0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x9ea690)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x9ea870)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function log\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x9eaa50)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x9eae00)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x9eafe0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x9eb1c0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function exp2\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x9eb3a0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x9eb750)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x9eb930)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x9ebb10)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function log2\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x9ebcf0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x9ec0a0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x9ec280)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x9ec460)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function sqrt\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x9ec640)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x9ec9f0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x9ecbd0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x9ecdb0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function inversesqrt\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x9ecf90)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x9ed350)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x9ed530)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x9ed710)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function abs\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x9ed8f0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x9edca0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x9ede80)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x9ee060)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function sign\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x9ee240)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x9ee5f0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x9ee7d0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x9ee9b0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function floor\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x9eeb90)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x9eef40)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x9ef120)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x9ef300)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function ceil\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x9ef4e0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x9ef890)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x9efa70)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x9efc50)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function fract\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x9efe30)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x9f01e0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x9f03c0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x9f05a0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function mod\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x9f0780)\n" " (declare (in ) float y@0x9f0890)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x9f0c40)\n" " (declare (in ) float y@0x9f0d50)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x9f0f30)\n" " (declare (in ) float y@0x9f1040)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x9f1220)\n" " (declare (in ) float y@0x9f1330)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x9f1510)\n" " (declare (in ) vec2 y@0x9f1620)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x9f1800)\n" " (declare (in ) vec3 y@0x9f1910)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x9f1af0)\n" " (declare (in ) vec4 y@0x9f1c00)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function min\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x9f1de0)\n" " (declare (in ) float y@0x9f1ef0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x9f22a0)\n" " (declare (in ) vec2 y@0x9f23b0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x9f2590)\n" " (declare (in ) vec3 y@0x9f26a0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x9f2880)\n" " (declare (in ) vec4 y@0x9f2990)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x9f2b70)\n" " (declare (in ) float y@0x9f2c80)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x9f2e60)\n" " (declare (in ) float y@0x9f2f70)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x9f3150)\n" " (declare (in ) float y@0x9f3260)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function max\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x9f3440)\n" " (declare (in ) float y@0x9f3550)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x9f3900)\n" " (declare (in ) vec2 y@0x9f3a10)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x9f3bf0)\n" " (declare (in ) vec3 y@0x9f3d00)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x9f3ee0)\n" " (declare (in ) vec4 y@0x9f3ff0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x9f41d0)\n" " (declare (in ) float y@0x9f42e0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x9f44c0)\n" " (declare (in ) float y@0x9f45d0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x9f47b0)\n" " (declare (in ) float y@0x9f48c0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function clamp\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x9f4aa0)\n" " (declare (in ) float minVal@0x9f4bb0)\n" " (declare (in ) float maxVal@0x9f4cc0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x9f5070)\n" " (declare (in ) vec2 minVal@0x9f5180)\n" " (declare (in ) vec2 maxVal@0x9f5290)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x9f5470)\n" " (declare (in ) vec3 minVal@0x9f5580)\n" " (declare (in ) vec3 maxVal@0x9f5690)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x9f5870)\n" " (declare (in ) vec4 minVal@0x9f5980)\n" " (declare (in ) vec4 maxVal@0x9f5a90)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x9f5c70)\n" " (declare (in ) float minVal@0x9f5d80)\n" " (declare (in ) float maxVal@0x9f5e90)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x9f6070)\n" " (declare (in ) float minVal@0x9f6180)\n" " (declare (in ) float maxVal@0x9f6290)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x9f6470)\n" " (declare (in ) float minVal@0x9f6580)\n" " (declare (in ) float maxVal@0x9f6690)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function mix\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x9f6870)\n" " (declare (in ) float y@0x9f6980)\n" " (declare (in ) float a@0x9f6a90)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x9f6e40)\n" " (declare (in ) vec2 y@0x9f6f50)\n" " (declare (in ) vec2 a@0x9f7060)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x9f7240)\n" " (declare (in ) vec3 y@0x9f7350)\n" " (declare (in ) vec3 a@0x9f7460)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x9f7640)\n" " (declare (in ) vec4 y@0x9f7750)\n" " (declare (in ) vec4 a@0x9f7860)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x9f7a40)\n" " (declare (in ) vec2 y@0x9f7b50)\n" " (declare (in ) float a@0x9f7c60)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x9f7e40)\n" " (declare (in ) vec3 y@0x9f7f50)\n" " (declare (in ) float a@0x9f8060)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x9f8240)\n" " (declare (in ) vec4 y@0x9f8350)\n" " (declare (in ) float a@0x9f8460)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function step\n" " (signature float\n" " (parameters\n" " (declare (in ) float edge@0x9f8640)\n" " (declare (in ) float x@0x9f8750)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 edge@0x9f8b00)\n" " (declare (in ) vec2 x@0x9f8c10)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 edge@0x9f8df0)\n" " (declare (in ) vec3 x@0x9f8f00)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 edge@0x9f90e0)\n" " (declare (in ) vec4 x@0x9f91f0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) float edge@0x9f93d0)\n" " (declare (in ) vec2 x@0x9f94e0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) float edge@0x9f96c0)\n" " (declare (in ) vec3 x@0x9f97d0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) float edge@0x9f99b0)\n" " (declare (in ) vec4 x@0x9f9ac0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function smoothstep\n" " (signature float\n" " (parameters\n" " (declare (in ) float edge0@0x9f9ca0)\n" " (declare (in ) float edge1@0x9f9db0)\n" " (declare (in ) float x@0x9f9ec0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 edge0@0x9fa280)\n" " (declare (in ) vec2 edge1@0x9fa390)\n" " (declare (in ) vec2 x@0x9fa4a0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 edge0@0x9fa680)\n" " (declare (in ) vec3 edge1@0x9fa790)\n" " (declare (in ) vec3 x@0x9fa8a0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 edge0@0x9faa80)\n" " (declare (in ) vec4 edge1@0x9fab90)\n" " (declare (in ) vec4 x@0x9faca0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) float edge0@0x9fae80)\n" " (declare (in ) float edge1@0x9faf90)\n" " (declare (in ) vec2 x@0x9fb0a0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) float edge0@0x9fb280)\n" " (declare (in ) float edge1@0x9fb390)\n" " (declare (in ) vec3 x@0x9fb4a0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) float edge0@0x9fb680)\n" " (declare (in ) float edge1@0x9fb790)\n" " (declare (in ) vec4 x@0x9fb8a0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function length\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x9fba80)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) vec2 x@0x9fbe30)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) vec3 x@0x9fc010)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) vec4 x@0x9fc1f0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function distance\n" " (signature float\n" " (parameters\n" " (declare (in ) float p0@0x9fc3d0)\n" " (declare (in ) float p1@0x9fc4e0)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) vec2 p0@0x9fc8a0)\n" " (declare (in ) vec2 p1@0x9fc9b0)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) vec3 p0@0x9fcb90)\n" " (declare (in ) vec3 p1@0x9fcca0)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) vec4 p0@0x9fce80)\n" " (declare (in ) vec4 p1@0x9fcf90)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function dot\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x9fd170)\n" " (declare (in ) float y@0x9fd280)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) vec2 x@0x9fd630)\n" " (declare (in ) vec2 y@0x9fd740)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) vec3 x@0x9fd920)\n" " (declare (in ) vec3 y@0x9fda30)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) vec4 x@0x9fdc10)\n" " (declare (in ) vec4 y@0x9fdd20)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function cross\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x9fdf00)\n" " (declare (in ) vec3 y@0x9fe010)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function normalize\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x9fe3c0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x9fe780)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x9fe960)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x9feb40)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function ftransform\n" " (signature vec4\n" " (parameters\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function faceforward\n" " (signature float\n" " (parameters\n" " (declare (in ) float N@0x9fefd0)\n" " (declare (in ) float I@0x9ff0e0)\n" " (declare (in ) float Nref@0x9ff1f0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 N@0x9ff5b0)\n" " (declare (in ) vec2 I@0x9ff6c0)\n" " (declare (in ) vec2 Nref@0x9ff7d0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 N@0x9ff9b0)\n" " (declare (in ) vec3 I@0x9ffac0)\n" " (declare (in ) vec3 Nref@0x9ffbd0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 N@0x9ffdb0)\n" " (declare (in ) vec4 I@0x9ffec0)\n" " (declare (in ) vec4 Nref@0x9fffd0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function reflect\n" " (signature float\n" " (parameters\n" " (declare (in ) float I@0xa001b0)\n" " (declare (in ) float N@0xa002c0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 I@0xa00680)\n" " (declare (in ) vec2 N@0xa00790)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 I@0xa00970)\n" " (declare (in ) vec3 N@0xa00a80)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 I@0xa00c60)\n" " (declare (in ) vec4 N@0xa00d70)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function refract\n" " (signature float\n" " (parameters\n" " (declare (in ) float I@0xa00f50)\n" " (declare (in ) float N@0xa01060)\n" " (declare (in ) float eta@0xa01170)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 I@0xa01530)\n" " (declare (in ) vec2 N@0xa01640)\n" " (declare (in ) float eta@0xa01750)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 I@0xa01930)\n" " (declare (in ) vec3 N@0xa01a40)\n" " (declare (in ) float eta@0xa01b50)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 I@0xa01d30)\n" " (declare (in ) vec4 N@0xa01e40)\n" " (declare (in ) float eta@0xa01f50)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function matrixCompMult\n" " (signature mat2\n" " (parameters\n" " (declare (in ) mat2 x@0xa02130)\n" " (declare (in ) mat2 y@0xa02240)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat3\n" " (parameters\n" " (declare (in ) mat3 x@0xa02600)\n" " (declare (in ) mat3 y@0xa02710)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat4\n" " (parameters\n" " (declare (in ) mat4 x@0xa028f0)\n" " (declare (in ) mat4 y@0xa02a00)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function lessThan\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) vec2 x@0xa02be0)\n" " (declare (in ) vec2 y@0xa02cf0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) vec3 x@0xa030b0)\n" " (declare (in ) vec3 y@0xa031c0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) vec4 x@0xa033a0)\n" " (declare (in ) vec4 y@0xa034b0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) ivec2 x@0xa03690)\n" " (declare (in ) ivec2 y@0xa037a0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) ivec3 x@0xa03980)\n" " (declare (in ) ivec3 y@0xa03a90)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) ivec4 x@0xa03c70)\n" " (declare (in ) ivec4 y@0xa03d80)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function lessThanEqual\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) vec2 x@0xa03f60)\n" " (declare (in ) vec2 y@0xa04070)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) vec3 x@0xa04430)\n" " (declare (in ) vec3 y@0xa04540)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) vec4 x@0xa04720)\n" " (declare (in ) vec4 y@0xa04830)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) ivec2 x@0xa04a10)\n" " (declare (in ) ivec2 y@0xa04b20)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) ivec3 x@0xa04d00)\n" " (declare (in ) ivec3 y@0xa04e10)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) ivec4 x@0xa04ff0)\n" " (declare (in ) ivec4 y@0xa05100)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function greaterThan\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) vec2 x@0xa052e0)\n" " (declare (in ) vec2 y@0xa053f0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) vec3 x@0xa057b0)\n" " (declare (in ) vec3 y@0xa058c0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) vec4 x@0xa05aa0)\n" " (declare (in ) vec4 y@0xa05bb0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) ivec2 x@0xa05d90)\n" " (declare (in ) ivec2 y@0xa05ea0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) ivec3 x@0xa06080)\n" " (declare (in ) ivec3 y@0xa06190)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) ivec4 x@0xa06370)\n" " (declare (in ) ivec4 y@0xa06480)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function greaterThanEqual\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) vec2 x@0xa06660)\n" " (declare (in ) vec2 y@0xa06770)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) vec3 x@0xa06b30)\n" " (declare (in ) vec3 y@0xa06c40)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) vec4 x@0xa06e20)\n" " (declare (in ) vec4 y@0xa06f30)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) ivec2 x@0xa07110)\n" " (declare (in ) ivec2 y@0xa07220)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) ivec3 x@0xa07400)\n" " (declare (in ) ivec3 y@0xa07510)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) ivec4 x@0xa076f0)\n" " (declare (in ) ivec4 y@0xa07800)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function equal\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) vec2 x@0xa079e0)\n" " (declare (in ) vec2 y@0xa07af0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) vec3 x@0xa07ea0)\n" " (declare (in ) vec3 y@0xa07fb0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) vec4 x@0xa08190)\n" " (declare (in ) vec4 y@0xa082a0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) ivec2 x@0xa08480)\n" " (declare (in ) ivec2 y@0xa08590)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) ivec3 x@0xa08770)\n" " (declare (in ) ivec3 y@0xa08880)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) ivec4 x@0xa08a60)\n" " (declare (in ) ivec4 y@0xa08b70)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) bvec2 x@0xa08d50)\n" " (declare (in ) bvec2 y@0xa08e60)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) bvec3 x@0xa09040)\n" " (declare (in ) bvec3 y@0xa09150)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) bvec4 x@0xa09330)\n" " (declare (in ) bvec4 y@0xa09440)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function notEqual\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) vec2 x@0xa09620)\n" " (declare (in ) vec2 y@0xa09730)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) vec3 x@0xa09af0)\n" " (declare (in ) vec3 y@0xa09c00)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) vec4 x@0xa09de0)\n" " (declare (in ) vec4 y@0xa09ef0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) ivec2 x@0xa0a0d0)\n" " (declare (in ) ivec2 y@0xa0a1e0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) ivec3 x@0xa0a3c0)\n" " (declare (in ) ivec3 y@0xa0a4d0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) ivec4 x@0xa0a6b0)\n" " (declare (in ) ivec4 y@0xa0a7c0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) bvec2 x@0xa0a9a0)\n" " (declare (in ) bvec2 y@0xa0aab0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) bvec3 x@0xa0ac90)\n" " (declare (in ) bvec3 y@0xa0ada0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) bvec4 x@0xa0af80)\n" " (declare (in ) bvec4 y@0xa0b090)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function any\n" " (signature bool\n" " (parameters\n" " (declare (in ) bvec2 x@0xa0b270)\n" " )\n" " (\n" " ))\n" "\n" " (signature bool\n" " (parameters\n" " (declare (in ) bvec3 x@0xa0b620)\n" " )\n" " (\n" " ))\n" "\n" " (signature bool\n" " (parameters\n" " (declare (in ) bvec4 x@0xa0b800)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function all\n" " (signature bool\n" " (parameters\n" " (declare (in ) bvec2 x@0xa0b9e0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bool\n" " (parameters\n" " (declare (in ) bvec3 x@0xa0bd90)\n" " )\n" " (\n" " ))\n" "\n" " (signature bool\n" " (parameters\n" " (declare (in ) bvec4 x@0xa0bf70)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function not\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) bvec2 x@0xa0c150)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) bvec3 x@0xa0c500)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) bvec4 x@0xa0c6e0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function texture1D\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1D sampler@0xa0c8c0)\n" " (declare (in ) float coord@0xa0c9e0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function texture1DProj\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1D sampler@0xa0cda0)\n" " (declare (in ) vec2 coord@0xa0cec0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1D sampler@0xa0d280)\n" " (declare (in ) vec4 coord@0xa0d3a0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function texture1DLod\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1D sampler@0xa0d580)\n" " (declare (in ) float coord@0xa0d6a0)\n" " (declare (in ) float lod@0xa0d7b0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function texture1DProjLod\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1D sampler@0xa0db70)\n" " (declare (in ) vec2 coord@0xa0dc90)\n" " (declare (in ) float lod@0xa0dda0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1D sampler@0xa0e160)\n" " (declare (in ) vec4 coord@0xa0e280)\n" " (declare (in ) float lod@0xa0e390)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function texture2D\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2D sampler@0xa0e570)\n" " (declare (in ) vec2 coord@0xa0e690)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function texture2DProj\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2D sampler@0xa0ea50)\n" " (declare (in ) vec3 coord@0xa0eb70)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2D sampler@0xa0ef30)\n" " (declare (in ) vec4 coord@0xa0f050)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function texture2DLod\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2D sampler@0xa0f230)\n" " (declare (in ) vec2 coord@0xa0f350)\n" " (declare (in ) float lod@0xa0f460)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function texture2DProjLod\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2D sampler@0xa0f820)\n" " (declare (in ) vec3 coord@0xa0f940)\n" " (declare (in ) float lod@0xa0fa50)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2D sampler@0xa0fe10)\n" " (declare (in ) vec4 coord@0xa0ff30)\n" " (declare (in ) float lod@0xa10040)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function texture3D\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler3D sampler@0xa10220)\n" " (declare (in ) vec3 coord@0xa10340)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function texture3DProj\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler3D sampler@0xa10700)\n" " (declare (in ) vec4 coord@0xa10820)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function texture3DLod\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler3D sampler@0xa10be0)\n" " (declare (in ) vec3 coord@0xa10d00)\n" " (declare (in ) float lod@0xa10e10)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function texture3DProjLod\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler3D sampler@0xa111d0)\n" " (declare (in ) vec4 coord@0xa112f0)\n" " (declare (in ) float lod@0xa11400)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function textureCube\n" " (signature vec4\n" " (parameters\n" " (declare (in ) samplerCube sampler@0xa117c0)\n" " (declare (in ) vec3 coord@0xa118e0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function textureCubeLod\n" " (signature vec4\n" " (parameters\n" " (declare (in ) samplerCube sampler@0xa11ca0)\n" " (declare (in ) vec3 coord@0xa11dc0)\n" " (declare (in ) float lod@0xa11ed0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function shadow1D\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1DShadow sampler@0xa12290)\n" " (declare (in ) vec3 coord@0xa123b0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function shadow2D\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2DShadow sampler@0xa12770)\n" " (declare (in ) vec3 coord@0xa12890)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function shadow1DProj\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1DShadow sampler@0xa12c50)\n" " (declare (in ) vec4 coord@0xa12d70)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function shadow2DProj\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2DShadow sampler@0xa13130)\n" " (declare (in ) vec4 coord@0xa13250)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function shadow1DLod\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1DShadow sampler@0xa13610)\n" " (declare (in ) vec3 coord@0xa13730)\n" " (declare (in ) float lod@0xa13840)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function shadow2DLod\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2DShadow sampler@0xa13c00)\n" " (declare (in ) vec3 coord@0xa13d20)\n" " (declare (in ) float lod@0xa13e30)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function shadow1DProjLod\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1DShadow sampler@0xa141f0)\n" " (declare (in ) vec4 coord@0xa14310)\n" " (declare (in ) float lod@0xa14420)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function shadow2DProjLod\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2DShadow sampler@0xa147e0)\n" " (declare (in ) vec4 coord@0xa14900)\n" " (declare (in ) float lod@0xa14a10)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function noise1\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0xa14dd0)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) vec2 x@0xa15180)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) vec3 x@0xa15360)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) vec4 x@0xa15540)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function noise2\n" " (signature vec2\n" " (parameters\n" " (declare (in ) float x@0xa15720)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0xa15ad0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec3 x@0xa15cb0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec4 x@0xa15e90)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function noise3\n" " (signature vec3\n" " (parameters\n" " (declare (in ) float x@0xa16070)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec2 x@0xa16420)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0xa16600)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec4 x@0xa167e0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function noise4\n" " (signature vec4\n" " (parameters\n" " (declare (in ) float x@0xa169c0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec2 x@0xa16d70)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec3 x@0xa16f50)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0xa17130)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "\n" ")" ; static const char *functions_for_110_vert [] = { builtin_clamp, builtin_matrixCompMult, builtin_shadow2DProjLod, builtin_noise2, builtin_texture3DProjLod, builtin_pow, builtin_texture2DProj, builtin_greaterThanEqual, builtin_sign, builtin_texture3DProj, builtin_texture2D, builtin_equal, builtin_faceforward, builtin_tan, builtin_shadow2DProj, builtin_shadow1DProjLod, builtin_any, builtin_normalize, builtin_asin, builtin_texture1DProj, builtin_log, builtin_floor, builtin_exp2, builtin_lessThan, builtin_cross, builtin_sqrt, builtin_texture3DLod, builtin_fract, builtin_abs, builtin_degrees, builtin_shadow1DLod, builtin_ftransform, builtin_sin, builtin_shadow2D, builtin_shadow2DLod, builtin_all, builtin_log2, builtin_atan, builtin_notEqual, builtin_max, builtin_lessThanEqual, builtin_shadow1DProj, builtin_ceil, builtin_reflect, builtin_textureCubeLod, builtin_step, builtin_texture1D, builtin_greaterThan, builtin_texture3D, builtin_not, builtin_texture2DProjLod, builtin_inversesqrt, builtin_mod, builtin_noise4, builtin_distance, builtin_cos, builtin_shadow1D, builtin_noise1, builtin_refract, builtin_noise3, builtin_texture2DLod, builtin_min, builtin_radians, builtin_smoothstep, builtin_texture1DProjLod, builtin_textureCube, builtin_length, builtin_texture1DLod, builtin_exp, builtin_acos, builtin_mix, builtin_dot, }; static const char *prototypes_for_110_frag = "(\n" "(function radians\n" " (signature float\n" " (parameters\n" " (declare (in ) float degrees@0x151ee40)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 degrees@0x151f210)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 degrees@0x151f400)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 degrees@0x151f5f0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function degrees\n" " (signature float\n" " (parameters\n" " (declare (in ) float radians@0x151f7e0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 radians@0x151fbb0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 radians@0x151fda0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 radians@0x151ff90)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function sin\n" " (signature float\n" " (parameters\n" " (declare (in ) float angle@0x1520180)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 angle@0x1520530)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 angle@0x1520710)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 angle@0x15208f0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function cos\n" " (signature float\n" " (parameters\n" " (declare (in ) float angle@0x1520ad0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 angle@0x1520e80)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 angle@0x1521060)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 angle@0x1521240)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function tan\n" " (signature float\n" " (parameters\n" " (declare (in ) float angle@0x1521420)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 angle@0x15217d0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 angle@0x15219b0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 angle@0x1521b90)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function asin\n" " (signature float\n" " (parameters\n" " (declare (in ) float angle@0x1521d70)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 angle@0x1522120)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 angle@0x1522300)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 angle@0x15224e0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function acos\n" " (signature float\n" " (parameters\n" " (declare (in ) float angle@0x15226c0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 angle@0x1522a70)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 angle@0x1522c50)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 angle@0x1522e30)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function atan\n" " (signature float\n" " (parameters\n" " (declare (in ) float y@0x1523010)\n" " (declare (in ) float x@0x1523120)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 y@0x15234d0)\n" " (declare (in ) vec2 x@0x15235e0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 y@0x15237c0)\n" " (declare (in ) vec3 x@0x15238d0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 y@0x1523ab0)\n" " (declare (in ) vec4 x@0x1523bc0)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) float y_over_x@0x1523da0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 y_over_x@0x1523f90)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 y_over_x@0x1524180)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 y_over_x@0x1524370)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function pow\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x1524560)\n" " (declare (in ) float y@0x1524670)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x1524a20)\n" " (declare (in ) vec2 y@0x1524b30)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x1524d10)\n" " (declare (in ) vec3 y@0x1524e20)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x1525000)\n" " (declare (in ) vec4 y@0x1525110)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function exp\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x15252f0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x15256a0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x1525880)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x1525a60)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function log\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x1525c40)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x1525ff0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x15261d0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x15263b0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function exp2\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x1526590)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x1526940)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x1526b20)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x1526d00)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function log2\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x1526ee0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x1527290)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x1527470)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x1527650)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function sqrt\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x1527830)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x1527be0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x1527dc0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x1527fa0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function inversesqrt\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x1528180)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x1528540)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x1528720)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x1528900)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function abs\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x1528ae0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x1528e90)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x1529070)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x1529250)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function sign\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x1529430)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x15297e0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x15299c0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x1529ba0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function floor\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x1529d80)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x152a130)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x152a310)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x152a4f0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function ceil\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x152a6d0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x152aa80)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x152ac60)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x152ae40)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function fract\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x152b020)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x152b3d0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x152b5b0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x152b790)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function mod\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x152b970)\n" " (declare (in ) float y@0x152ba80)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x152be30)\n" " (declare (in ) float y@0x152bf40)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x152c120)\n" " (declare (in ) float y@0x152c230)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x152c410)\n" " (declare (in ) float y@0x152c520)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x152c700)\n" " (declare (in ) vec2 y@0x152c810)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x152c9f0)\n" " (declare (in ) vec3 y@0x152cb00)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x152cce0)\n" " (declare (in ) vec4 y@0x152cdf0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function min\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x152cfd0)\n" " (declare (in ) float y@0x152d0e0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x152d490)\n" " (declare (in ) vec2 y@0x152d5a0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x152d780)\n" " (declare (in ) vec3 y@0x152d890)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x152da70)\n" " (declare (in ) vec4 y@0x152db80)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x152dd60)\n" " (declare (in ) float y@0x152de70)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x152e050)\n" " (declare (in ) float y@0x152e160)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x152e340)\n" " (declare (in ) float y@0x152e450)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function max\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x152e630)\n" " (declare (in ) float y@0x152e740)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x152eaf0)\n" " (declare (in ) vec2 y@0x152ec00)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x152ede0)\n" " (declare (in ) vec3 y@0x152eef0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x152f0d0)\n" " (declare (in ) vec4 y@0x152f1e0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x152f3c0)\n" " (declare (in ) float y@0x152f4d0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x152f6b0)\n" " (declare (in ) float y@0x152f7c0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x152f9a0)\n" " (declare (in ) float y@0x152fab0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function clamp\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x152fc90)\n" " (declare (in ) float minVal@0x152fda0)\n" " (declare (in ) float maxVal@0x152feb0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x1530260)\n" " (declare (in ) vec2 minVal@0x1530370)\n" " (declare (in ) vec2 maxVal@0x1530480)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x1530660)\n" " (declare (in ) vec3 minVal@0x1530770)\n" " (declare (in ) vec3 maxVal@0x1530880)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x1530a60)\n" " (declare (in ) vec4 minVal@0x1530b70)\n" " (declare (in ) vec4 maxVal@0x1530c80)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x1530e60)\n" " (declare (in ) float minVal@0x1530f70)\n" " (declare (in ) float maxVal@0x1531080)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x1531260)\n" " (declare (in ) float minVal@0x1531370)\n" " (declare (in ) float maxVal@0x1531480)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x1531660)\n" " (declare (in ) float minVal@0x1531770)\n" " (declare (in ) float maxVal@0x1531880)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function mix\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x1531a60)\n" " (declare (in ) float y@0x1531b70)\n" " (declare (in ) float a@0x1531c80)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x1532030)\n" " (declare (in ) vec2 y@0x1532140)\n" " (declare (in ) vec2 a@0x1532250)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x1532430)\n" " (declare (in ) vec3 y@0x1532540)\n" " (declare (in ) vec3 a@0x1532650)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x1532830)\n" " (declare (in ) vec4 y@0x1532940)\n" " (declare (in ) vec4 a@0x1532a50)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x1532c30)\n" " (declare (in ) vec2 y@0x1532d40)\n" " (declare (in ) float a@0x1532e50)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x1533030)\n" " (declare (in ) vec3 y@0x1533140)\n" " (declare (in ) float a@0x1533250)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x1533430)\n" " (declare (in ) vec4 y@0x1533540)\n" " (declare (in ) float a@0x1533650)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function step\n" " (signature float\n" " (parameters\n" " (declare (in ) float edge@0x1533830)\n" " (declare (in ) float x@0x1533940)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 edge@0x1533cf0)\n" " (declare (in ) vec2 x@0x1533e00)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 edge@0x1533fe0)\n" " (declare (in ) vec3 x@0x15340f0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 edge@0x15342d0)\n" " (declare (in ) vec4 x@0x15343e0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) float edge@0x15345c0)\n" " (declare (in ) vec2 x@0x15346d0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) float edge@0x15348b0)\n" " (declare (in ) vec3 x@0x15349c0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) float edge@0x1534ba0)\n" " (declare (in ) vec4 x@0x1534cb0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function smoothstep\n" " (signature float\n" " (parameters\n" " (declare (in ) float edge0@0x1534e90)\n" " (declare (in ) float edge1@0x1534fa0)\n" " (declare (in ) float x@0x15350b0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 edge0@0x1535470)\n" " (declare (in ) vec2 edge1@0x1535580)\n" " (declare (in ) vec2 x@0x1535690)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 edge0@0x1535870)\n" " (declare (in ) vec3 edge1@0x1535980)\n" " (declare (in ) vec3 x@0x1535a90)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 edge0@0x1535c70)\n" " (declare (in ) vec4 edge1@0x1535d80)\n" " (declare (in ) vec4 x@0x1535e90)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) float edge0@0x1536070)\n" " (declare (in ) float edge1@0x1536180)\n" " (declare (in ) vec2 x@0x1536290)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) float edge0@0x1536470)\n" " (declare (in ) float edge1@0x1536580)\n" " (declare (in ) vec3 x@0x1536690)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) float edge0@0x1536870)\n" " (declare (in ) float edge1@0x1536980)\n" " (declare (in ) vec4 x@0x1536a90)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function length\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x1536c70)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) vec2 x@0x1537020)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) vec3 x@0x1537200)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) vec4 x@0x15373e0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function distance\n" " (signature float\n" " (parameters\n" " (declare (in ) float p0@0x15375c0)\n" " (declare (in ) float p1@0x15376d0)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) vec2 p0@0x1537a90)\n" " (declare (in ) vec2 p1@0x1537ba0)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) vec3 p0@0x1537d80)\n" " (declare (in ) vec3 p1@0x1537e90)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) vec4 p0@0x1538070)\n" " (declare (in ) vec4 p1@0x1538180)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function dot\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x1538360)\n" " (declare (in ) float y@0x1538470)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) vec2 x@0x1538820)\n" " (declare (in ) vec2 y@0x1538930)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) vec3 x@0x1538b10)\n" " (declare (in ) vec3 y@0x1538c20)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) vec4 x@0x1538e00)\n" " (declare (in ) vec4 y@0x1538f10)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function cross\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x15390f0)\n" " (declare (in ) vec3 y@0x1539200)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function normalize\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x15395b0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x1539970)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x1539b50)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x1539d30)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function faceforward\n" " (signature float\n" " (parameters\n" " (declare (in ) float N@0x1539f10)\n" " (declare (in ) float I@0x153a020)\n" " (declare (in ) float Nref@0x153a130)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 N@0x153a4f0)\n" " (declare (in ) vec2 I@0x153a600)\n" " (declare (in ) vec2 Nref@0x153a710)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 N@0x153a8f0)\n" " (declare (in ) vec3 I@0x153aa00)\n" " (declare (in ) vec3 Nref@0x153ab10)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 N@0x153acf0)\n" " (declare (in ) vec4 I@0x153ae00)\n" " (declare (in ) vec4 Nref@0x153af10)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function reflect\n" " (signature float\n" " (parameters\n" " (declare (in ) float I@0x153b0f0)\n" " (declare (in ) float N@0x153b200)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 I@0x153b5c0)\n" " (declare (in ) vec2 N@0x153b6d0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 I@0x153b8b0)\n" " (declare (in ) vec3 N@0x153b9c0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 I@0x153bba0)\n" " (declare (in ) vec4 N@0x153bcb0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function refract\n" " (signature float\n" " (parameters\n" " (declare (in ) float I@0x153be90)\n" " (declare (in ) float N@0x153bfa0)\n" " (declare (in ) float eta@0x153c0b0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 I@0x153c470)\n" " (declare (in ) vec2 N@0x153c580)\n" " (declare (in ) float eta@0x153c690)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 I@0x153c870)\n" " (declare (in ) vec3 N@0x153c980)\n" " (declare (in ) float eta@0x153ca90)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 I@0x153cc70)\n" " (declare (in ) vec4 N@0x153cd80)\n" " (declare (in ) float eta@0x153ce90)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function matrixCompMult\n" " (signature mat2\n" " (parameters\n" " (declare (in ) mat2 x@0x153d070)\n" " (declare (in ) mat2 y@0x153d180)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat3\n" " (parameters\n" " (declare (in ) mat3 x@0x153d540)\n" " (declare (in ) mat3 y@0x153d650)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat4\n" " (parameters\n" " (declare (in ) mat4 x@0x153d830)\n" " (declare (in ) mat4 y@0x153d940)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function lessThan\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) vec2 x@0x153db20)\n" " (declare (in ) vec2 y@0x153dc30)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) vec3 x@0x153dff0)\n" " (declare (in ) vec3 y@0x153e100)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) vec4 x@0x153e2e0)\n" " (declare (in ) vec4 y@0x153e3f0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) ivec2 x@0x153e5d0)\n" " (declare (in ) ivec2 y@0x153e6e0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) ivec3 x@0x153e8c0)\n" " (declare (in ) ivec3 y@0x153e9d0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) ivec4 x@0x153ebb0)\n" " (declare (in ) ivec4 y@0x153ecc0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function lessThanEqual\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) vec2 x@0x153eea0)\n" " (declare (in ) vec2 y@0x153efb0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) vec3 x@0x153f370)\n" " (declare (in ) vec3 y@0x153f480)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) vec4 x@0x153f660)\n" " (declare (in ) vec4 y@0x153f770)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) ivec2 x@0x153f950)\n" " (declare (in ) ivec2 y@0x153fa60)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) ivec3 x@0x153fc40)\n" " (declare (in ) ivec3 y@0x153fd50)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) ivec4 x@0x153ff30)\n" " (declare (in ) ivec4 y@0x1540040)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function greaterThan\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) vec2 x@0x1540220)\n" " (declare (in ) vec2 y@0x1540330)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) vec3 x@0x15406f0)\n" " (declare (in ) vec3 y@0x1540800)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) vec4 x@0x15409e0)\n" " (declare (in ) vec4 y@0x1540af0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) ivec2 x@0x1540cd0)\n" " (declare (in ) ivec2 y@0x1540de0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) ivec3 x@0x1540fc0)\n" " (declare (in ) ivec3 y@0x15410d0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) ivec4 x@0x15412b0)\n" " (declare (in ) ivec4 y@0x15413c0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function greaterThanEqual\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) vec2 x@0x15415a0)\n" " (declare (in ) vec2 y@0x15416b0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) vec3 x@0x1541a70)\n" " (declare (in ) vec3 y@0x1541b80)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) vec4 x@0x1541d60)\n" " (declare (in ) vec4 y@0x1541e70)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) ivec2 x@0x1542050)\n" " (declare (in ) ivec2 y@0x1542160)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) ivec3 x@0x1542340)\n" " (declare (in ) ivec3 y@0x1542450)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) ivec4 x@0x1542630)\n" " (declare (in ) ivec4 y@0x1542740)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function equal\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) vec2 x@0x1542920)\n" " (declare (in ) vec2 y@0x1542a30)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) vec3 x@0x1542de0)\n" " (declare (in ) vec3 y@0x1542ef0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) vec4 x@0x15430d0)\n" " (declare (in ) vec4 y@0x15431e0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) ivec2 x@0x15433c0)\n" " (declare (in ) ivec2 y@0x15434d0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) ivec3 x@0x15436b0)\n" " (declare (in ) ivec3 y@0x15437c0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) ivec4 x@0x15439a0)\n" " (declare (in ) ivec4 y@0x1543ab0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) bvec2 x@0x1543c90)\n" " (declare (in ) bvec2 y@0x1543da0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) bvec3 x@0x1543f80)\n" " (declare (in ) bvec3 y@0x1544090)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) bvec4 x@0x1544270)\n" " (declare (in ) bvec4 y@0x1544380)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function notEqual\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) vec2 x@0x1544560)\n" " (declare (in ) vec2 y@0x1544670)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) vec3 x@0x1544a30)\n" " (declare (in ) vec3 y@0x1544b40)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) vec4 x@0x1544d20)\n" " (declare (in ) vec4 y@0x1544e30)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) ivec2 x@0x1545010)\n" " (declare (in ) ivec2 y@0x1545120)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) ivec3 x@0x1545300)\n" " (declare (in ) ivec3 y@0x1545410)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) ivec4 x@0x15455f0)\n" " (declare (in ) ivec4 y@0x1545700)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) bvec2 x@0x15458e0)\n" " (declare (in ) bvec2 y@0x15459f0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) bvec3 x@0x1545bd0)\n" " (declare (in ) bvec3 y@0x1545ce0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) bvec4 x@0x1545ec0)\n" " (declare (in ) bvec4 y@0x1545fd0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function any\n" " (signature bool\n" " (parameters\n" " (declare (in ) bvec2 x@0x15461b0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bool\n" " (parameters\n" " (declare (in ) bvec3 x@0x1546560)\n" " )\n" " (\n" " ))\n" "\n" " (signature bool\n" " (parameters\n" " (declare (in ) bvec4 x@0x1546740)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function all\n" " (signature bool\n" " (parameters\n" " (declare (in ) bvec2 x@0x1546920)\n" " )\n" " (\n" " ))\n" "\n" " (signature bool\n" " (parameters\n" " (declare (in ) bvec3 x@0x1546cd0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bool\n" " (parameters\n" " (declare (in ) bvec4 x@0x1546eb0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function not\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) bvec2 x@0x1547090)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) bvec3 x@0x1547440)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) bvec4 x@0x1547620)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function texture1D\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1D sampler@0x1547800)\n" " (declare (in ) float coord@0x1547920)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1D sampler@0x15484c0)\n" " (declare (in ) float coord@0x15485e0)\n" " (declare (in ) float bias@0x15486f0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function texture1DProj\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1D sampler@0x1547ce0)\n" " (declare (in ) vec2 coord@0x1547e00)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1D sampler@0x15481c0)\n" " (declare (in ) vec4 coord@0x15482e0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1D sampler@0x15488d0)\n" " (declare (in ) vec2 coord@0x15489f0)\n" " (declare (in ) float bias@0x1548b00)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1D sampler@0x1548ce0)\n" " (declare (in ) vec4 coord@0x1548e00)\n" " (declare (in ) float bias@0x1548f10)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function texture2D\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2D sampler@0x15490f0)\n" " (declare (in ) vec2 coord@0x1549210)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2D sampler@0x1549db0)\n" " (declare (in ) vec2 coord@0x1549ed0)\n" " (declare (in ) float bias@0x1549fe0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function texture2DProj\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2D sampler@0x15495d0)\n" " (declare (in ) vec3 coord@0x15496f0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2D sampler@0x1549ab0)\n" " (declare (in ) vec4 coord@0x1549bd0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2D sampler@0x154a1c0)\n" " (declare (in ) vec3 coord@0x154a2e0)\n" " (declare (in ) float bias@0x154a3f0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2D sampler@0x154a5d0)\n" " (declare (in ) vec4 coord@0x154a6f0)\n" " (declare (in ) float bias@0x154a800)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function texture3D\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler3D sampler@0x154a9e0)\n" " (declare (in ) vec3 coord@0x154ab00)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler3D sampler@0x154b3a0)\n" " (declare (in ) vec3 coord@0x154b4c0)\n" " (declare (in ) float bias@0x154b5d0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function texture3DProj\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler3D sampler@0x154aec0)\n" " (declare (in ) vec4 coord@0x154afe0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler3D sampler@0x154b7b0)\n" " (declare (in ) vec4 coord@0x154b8d0)\n" " (declare (in ) float bias@0x154b9e0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function textureCube\n" " (signature vec4\n" " (parameters\n" " (declare (in ) samplerCube sampler@0x154bbc0)\n" " (declare (in ) vec3 coord@0x154bce0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) samplerCube sampler@0x154c0a0)\n" " (declare (in ) vec3 coord@0x154c1c0)\n" " (declare (in ) float bias@0x154c2d0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function shadow1D\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1DShadow sampler@0x154c4b0)\n" " (declare (in ) vec3 coord@0x154c5d0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1DShadow sampler@0x154d830)\n" " (declare (in ) vec3 coord@0x154d950)\n" " (declare (in ) float bias@0x154da60)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function shadow2D\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2DShadow sampler@0x154c990)\n" " (declare (in ) vec3 coord@0x154cab0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2DShadow sampler@0x154dc40)\n" " (declare (in ) vec3 coord@0x154dd60)\n" " (declare (in ) float bias@0x154de70)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function shadow1DProj\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1DShadow sampler@0x154ce70)\n" " (declare (in ) vec4 coord@0x154cf90)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1DShadow sampler@0x154e050)\n" " (declare (in ) vec4 coord@0x154e170)\n" " (declare (in ) float bias@0x154e280)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function shadow2DProj\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2DShadow sampler@0x154d350)\n" " (declare (in ) vec4 coord@0x154d470)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2DShadow sampler@0x154e460)\n" " (declare (in ) vec4 coord@0x154e580)\n" " (declare (in ) float bias@0x154e690)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function dFdx\n" " (signature float\n" " (parameters\n" " (declare (in ) float p@0x154e870)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 p@0x154ec20)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 p@0x154ee00)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 p@0x154efe0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function dFdy\n" " (signature float\n" " (parameters\n" " (declare (in ) float p@0x154f1c0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 p@0x154f570)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 p@0x154f750)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 p@0x154f930)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function fwidth\n" " (signature float\n" " (parameters\n" " (declare (in ) float p@0x154fb10)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 p@0x154fec0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 p@0x15500a0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 p@0x1550280)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function noise1\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x1550460)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) vec2 x@0x1550810)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) vec3 x@0x15509f0)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) vec4 x@0x1550bd0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function noise2\n" " (signature vec2\n" " (parameters\n" " (declare (in ) float x@0x1550db0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x1551160)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec3 x@0x1551340)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec4 x@0x1551520)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function noise3\n" " (signature vec3\n" " (parameters\n" " (declare (in ) float x@0x1551700)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec2 x@0x1551ab0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x1551c90)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec4 x@0x1551e70)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function noise4\n" " (signature vec4\n" " (parameters\n" " (declare (in ) float x@0x1552050)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec2 x@0x1552400)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec3 x@0x15525e0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x15527c0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "\n" ")" ; static const char *functions_for_110_frag [] = { builtin_clamp, builtin_matrixCompMult, builtin_noise2, builtin_pow, builtin_texture2DProj, builtin_fwidth, builtin_greaterThanEqual, builtin_sign, builtin_texture3DProj, builtin_texture2D, builtin_equal, builtin_faceforward, builtin_tan, builtin_any, builtin_normalize, builtin_asin, builtin_texture1DProj, builtin_log, builtin_floor, builtin_exp2, builtin_lessThan, builtin_cross, builtin_sqrt, builtin_shadow2DProj, builtin_fract, builtin_abs, builtin_degrees, builtin_dFdx, builtin_sin, builtin_shadow2D, builtin_all, builtin_log2, builtin_atan, builtin_notEqual, builtin_max, builtin_lessThanEqual, builtin_shadow1DProj, builtin_ceil, builtin_reflect, builtin_step, builtin_texture1D, builtin_greaterThan, builtin_texture3D, builtin_not, builtin_inversesqrt, builtin_mod, builtin_noise4, builtin_distance, builtin_cos, builtin_shadow1D, builtin_noise1, builtin_refract, builtin_noise3, builtin_min, builtin_radians, builtin_smoothstep, builtin_textureCube, builtin_length, builtin_dFdy, builtin_exp, builtin_acos, builtin_mix, builtin_dot, }; static const char *prototypes_for_EXT_texture_array_vert = "(\n" "(function texture1DArray\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1DArray sampler@0x25ee5c0)\n" " (declare (in ) vec2 coord@0x25ee6e0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function texture1DArrayLod\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1DArray sampler@0x25eeaa0)\n" " (declare (in ) vec2 coord@0x25eebc0)\n" " (declare (in ) float lod@0x25eecd0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function texture2DArray\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1DArray sampler@0x25ef090)\n" " (declare (in ) vec2 coord@0x25ef1b0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function texture2DArrayLod\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1DArray sampler@0x25ef570)\n" " (declare (in ) vec2 coord@0x25ef690)\n" " (declare (in ) float lod@0x25ef7a0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function shadow1DArray\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1DArrayShadow sampler@0x25efb60)\n" " (declare (in ) vec3 coord@0x25efc80)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function shadow1DArrayLod\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1DArrayShadow sampler@0x25f0040)\n" " (declare (in ) vec3 coord@0x25f0160)\n" " (declare (in ) float lod@0x25f0270)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function shadow2DArray\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2DArrayShadow sampler@0x25f0630)\n" " (declare (in ) vec4 coord@0x25f0750)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "\n" ")" ; static const char *functions_for_EXT_texture_array_vert [] = { builtin_texture1DArrayLod, builtin_shadow2DArray, builtin_texture2DArrayLod, builtin_shadow1DArrayLod, builtin_shadow1DArray, builtin_texture2DArray, builtin_texture1DArray, }; static const char *prototypes_for_ARB_texture_rectangle_vert = "(\n" "(function texture2DRect\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2DRect sampler@0x1cc28a0)\n" " (declare (in ) vec2 coord@0x1cc29c0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function texture2DRectProj\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2DRect sampler@0x1cc2d80)\n" " (declare (in ) vec3 coord@0x1cc2ea0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2DRect sampler@0x1cc3260)\n" " (declare (in ) vec4 coord@0x1cc3380)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function shadow2DRect\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2DRectShadow sampler@0x1cc3560)\n" " (declare (in ) vec3 coord@0x1cc3680)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function shadow2DRectProj\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2DRectShadow sampler@0x1cc3a40)\n" " (declare (in ) vec4 coord@0x1cc3b60)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "\n" ")" ; static const char *functions_for_ARB_texture_rectangle_vert [] = { builtin_texture2DRect, builtin_shadow2DRectProj, builtin_shadow2DRect, builtin_texture2DRectProj, }; static const char *prototypes_for_ARB_texture_rectangle_frag = "(\n" "(function texture2DRect\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2DRect sampler@0x13d0040)\n" " (declare (in ) vec2 coord@0x13d0160)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function texture2DRectProj\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2DRect sampler@0x13d0520)\n" " (declare (in ) vec3 coord@0x13d0640)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2DRect sampler@0x13d0a00)\n" " (declare (in ) vec4 coord@0x13d0b20)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function shadow2DRect\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2DRectShadow sampler@0x13d0d00)\n" " (declare (in ) vec3 coord@0x13d0e20)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function shadow2DRectProj\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2DRectShadow sampler@0x13d11e0)\n" " (declare (in ) vec4 coord@0x13d1300)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "\n" ")" ; static const char *functions_for_ARB_texture_rectangle_frag [] = { builtin_texture2DRect, builtin_shadow2DRectProj, builtin_shadow2DRect, builtin_texture2DRectProj, }; static const char *prototypes_for_120_frag = "(\n" "(function radians\n" " (signature float\n" " (parameters\n" " (declare (in ) float degrees@0x8b57e0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 degrees@0x8b5bb0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 degrees@0x8b5da0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 degrees@0x8b5f90)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function degrees\n" " (signature float\n" " (parameters\n" " (declare (in ) float radians@0x8b6180)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 radians@0x8b6550)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 radians@0x8b6740)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 radians@0x8b6930)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function sin\n" " (signature float\n" " (parameters\n" " (declare (in ) float angle@0x8b6b20)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 angle@0x8b6ed0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 angle@0x8b70b0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 angle@0x8b7290)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function cos\n" " (signature float\n" " (parameters\n" " (declare (in ) float angle@0x8b7470)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 angle@0x8b7820)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 angle@0x8b7a00)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 angle@0x8b7be0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function tan\n" " (signature float\n" " (parameters\n" " (declare (in ) float angle@0x8b7dc0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 angle@0x8b8170)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 angle@0x8b8350)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 angle@0x8b8530)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function asin\n" " (signature float\n" " (parameters\n" " (declare (in ) float angle@0x8b8710)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 angle@0x8b8ac0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 angle@0x8b8ca0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 angle@0x8b8e80)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function acos\n" " (signature float\n" " (parameters\n" " (declare (in ) float angle@0x8b9060)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 angle@0x8b9410)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 angle@0x8b95f0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 angle@0x8b97d0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function atan\n" " (signature float\n" " (parameters\n" " (declare (in ) float y@0x8b99b0)\n" " (declare (in ) float x@0x8b9ac0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 y@0x8b9e70)\n" " (declare (in ) vec2 x@0x8b9f80)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 y@0x8ba160)\n" " (declare (in ) vec3 x@0x8ba270)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 y@0x8ba450)\n" " (declare (in ) vec4 x@0x8ba560)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) float y_over_x@0x8ba740)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 y_over_x@0x8ba930)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 y_over_x@0x8bab20)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 y_over_x@0x8bad10)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function pow\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x8baf00)\n" " (declare (in ) float y@0x8bb010)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x8bb3c0)\n" " (declare (in ) vec2 y@0x8bb4d0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x8bb6b0)\n" " (declare (in ) vec3 y@0x8bb7c0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x8bb9a0)\n" " (declare (in ) vec4 y@0x8bbab0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function exp\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x8bbc90)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x8bc040)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x8bc220)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x8bc400)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function log\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x8bc5e0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x8bc990)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x8bcb70)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x8bcd50)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function exp2\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x8bcf30)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x8bd2e0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x8bd4c0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x8bd6a0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function log2\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x8bd880)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x8bdc30)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x8bde10)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x8bdff0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function sqrt\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x8be1d0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x8be580)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x8be760)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x8be940)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function inversesqrt\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x8beb20)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x8beee0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x8bf0c0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x8bf2a0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function abs\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x8bf480)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x8bf830)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x8bfa10)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x8bfbf0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function sign\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x8bfdd0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x8c0180)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x8c0360)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x8c0540)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function floor\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x8c0720)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x8c0ad0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x8c0cb0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x8c0e90)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function ceil\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x8c1070)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x8c1420)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x8c1600)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x8c17e0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function fract\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x8c19c0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x8c1d70)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x8c1f50)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x8c2130)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function mod\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x8c2310)\n" " (declare (in ) float y@0x8c2420)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x8c27d0)\n" " (declare (in ) float y@0x8c28e0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x8c2ac0)\n" " (declare (in ) float y@0x8c2bd0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x8c2db0)\n" " (declare (in ) float y@0x8c2ec0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x8c30a0)\n" " (declare (in ) vec2 y@0x8c31b0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x8c3390)\n" " (declare (in ) vec3 y@0x8c34a0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x8c3680)\n" " (declare (in ) vec4 y@0x8c3790)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function min\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x8c3970)\n" " (declare (in ) float y@0x8c3a80)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x8c3e30)\n" " (declare (in ) vec2 y@0x8c3f40)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x8c4120)\n" " (declare (in ) vec3 y@0x8c4230)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x8c4410)\n" " (declare (in ) vec4 y@0x8c4520)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x8c4700)\n" " (declare (in ) float y@0x8c4810)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x8c49f0)\n" " (declare (in ) float y@0x8c4b00)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x8c4ce0)\n" " (declare (in ) float y@0x8c4df0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function max\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x8c4fd0)\n" " (declare (in ) float y@0x8c50e0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x8c5490)\n" " (declare (in ) vec2 y@0x8c55a0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x8c5780)\n" " (declare (in ) vec3 y@0x8c5890)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x8c5a70)\n" " (declare (in ) vec4 y@0x8c5b80)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x8c5d60)\n" " (declare (in ) float y@0x8c5e70)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x8c6050)\n" " (declare (in ) float y@0x8c6160)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x8c6340)\n" " (declare (in ) float y@0x8c6450)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function clamp\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x8c6630)\n" " (declare (in ) float minVal@0x8c6740)\n" " (declare (in ) float maxVal@0x8c6850)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x8c6c00)\n" " (declare (in ) vec2 minVal@0x8c6d10)\n" " (declare (in ) vec2 maxVal@0x8c6e20)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x8c7000)\n" " (declare (in ) vec3 minVal@0x8c7110)\n" " (declare (in ) vec3 maxVal@0x8c7220)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x8c7400)\n" " (declare (in ) vec4 minVal@0x8c7510)\n" " (declare (in ) vec4 maxVal@0x8c7620)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x8c7800)\n" " (declare (in ) float minVal@0x8c7910)\n" " (declare (in ) float maxVal@0x8c7a20)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x8c7c00)\n" " (declare (in ) float minVal@0x8c7d10)\n" " (declare (in ) float maxVal@0x8c7e20)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x8c8000)\n" " (declare (in ) float minVal@0x8c8110)\n" " (declare (in ) float maxVal@0x8c8220)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function mix\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x8c8400)\n" " (declare (in ) float y@0x8c8510)\n" " (declare (in ) float a@0x8c8620)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x8c89d0)\n" " (declare (in ) vec2 y@0x8c8ae0)\n" " (declare (in ) vec2 a@0x8c8bf0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x8c8dd0)\n" " (declare (in ) vec3 y@0x8c8ee0)\n" " (declare (in ) vec3 a@0x8c8ff0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x8c91d0)\n" " (declare (in ) vec4 y@0x8c92e0)\n" " (declare (in ) vec4 a@0x8c93f0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x8c95d0)\n" " (declare (in ) vec2 y@0x8c96e0)\n" " (declare (in ) float a@0x8c97f0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x8c99d0)\n" " (declare (in ) vec3 y@0x8c9ae0)\n" " (declare (in ) float a@0x8c9bf0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x8c9dd0)\n" " (declare (in ) vec4 y@0x8c9ee0)\n" " (declare (in ) float a@0x8c9ff0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function step\n" " (signature float\n" " (parameters\n" " (declare (in ) float edge@0x8ca1d0)\n" " (declare (in ) float x@0x8ca2e0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 edge@0x8ca690)\n" " (declare (in ) vec2 x@0x8ca7a0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 edge@0x8ca980)\n" " (declare (in ) vec3 x@0x8caa90)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 edge@0x8cac70)\n" " (declare (in ) vec4 x@0x8cad80)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) float edge@0x8caf60)\n" " (declare (in ) vec2 x@0x8cb070)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) float edge@0x8cb250)\n" " (declare (in ) vec3 x@0x8cb360)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) float edge@0x8cb540)\n" " (declare (in ) vec4 x@0x8cb650)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function smoothstep\n" " (signature float\n" " (parameters\n" " (declare (in ) float edge0@0x8cb830)\n" " (declare (in ) float edge1@0x8cb940)\n" " (declare (in ) float x@0x8cba50)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 edge0@0x8cbe10)\n" " (declare (in ) vec2 edge1@0x8cbf20)\n" " (declare (in ) vec2 x@0x8cc030)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 edge0@0x8cc210)\n" " (declare (in ) vec3 edge1@0x8cc320)\n" " (declare (in ) vec3 x@0x8cc430)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 edge0@0x8cc610)\n" " (declare (in ) vec4 edge1@0x8cc720)\n" " (declare (in ) vec4 x@0x8cc830)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) float edge0@0x8cca10)\n" " (declare (in ) float edge1@0x8ccb20)\n" " (declare (in ) vec2 x@0x8ccc30)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) float edge0@0x8cce10)\n" " (declare (in ) float edge1@0x8ccf20)\n" " (declare (in ) vec3 x@0x8cd030)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) float edge0@0x8cd210)\n" " (declare (in ) float edge1@0x8cd320)\n" " (declare (in ) vec4 x@0x8cd430)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function length\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x8cd610)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) vec2 x@0x8cd9c0)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) vec3 x@0x8cdba0)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) vec4 x@0x8cdd80)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function distance\n" " (signature float\n" " (parameters\n" " (declare (in ) float p0@0x8cdf60)\n" " (declare (in ) float p1@0x8ce070)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) vec2 p0@0x8ce430)\n" " (declare (in ) vec2 p1@0x8ce540)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) vec3 p0@0x8ce720)\n" " (declare (in ) vec3 p1@0x8ce830)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) vec4 p0@0x8cea10)\n" " (declare (in ) vec4 p1@0x8ceb20)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function dot\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x8ced00)\n" " (declare (in ) float y@0x8cee10)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) vec2 x@0x8cf1c0)\n" " (declare (in ) vec2 y@0x8cf2d0)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) vec3 x@0x8cf4b0)\n" " (declare (in ) vec3 y@0x8cf5c0)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) vec4 x@0x8cf7a0)\n" " (declare (in ) vec4 y@0x8cf8b0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function cross\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x8cfa90)\n" " (declare (in ) vec3 y@0x8cfba0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function normalize\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x8cff50)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x8d0310)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x8d04f0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x8d06d0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function faceforward\n" " (signature float\n" " (parameters\n" " (declare (in ) float N@0x8d08b0)\n" " (declare (in ) float I@0x8d09c0)\n" " (declare (in ) float Nref@0x8d0ad0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 N@0x8d0e90)\n" " (declare (in ) vec2 I@0x8d0fa0)\n" " (declare (in ) vec2 Nref@0x8d10b0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 N@0x8d1290)\n" " (declare (in ) vec3 I@0x8d13a0)\n" " (declare (in ) vec3 Nref@0x8d14b0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 N@0x8d1690)\n" " (declare (in ) vec4 I@0x8d17a0)\n" " (declare (in ) vec4 Nref@0x8d18b0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function reflect\n" " (signature float\n" " (parameters\n" " (declare (in ) float I@0x8d1a90)\n" " (declare (in ) float N@0x8d1ba0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 I@0x8d1f60)\n" " (declare (in ) vec2 N@0x8d2070)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 I@0x8d2250)\n" " (declare (in ) vec3 N@0x8d2360)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 I@0x8d2540)\n" " (declare (in ) vec4 N@0x8d2650)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function refract\n" " (signature float\n" " (parameters\n" " (declare (in ) float I@0x8d2830)\n" " (declare (in ) float N@0x8d2940)\n" " (declare (in ) float eta@0x8d2a50)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 I@0x8d2e10)\n" " (declare (in ) vec2 N@0x8d2f20)\n" " (declare (in ) float eta@0x8d3030)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 I@0x8d3210)\n" " (declare (in ) vec3 N@0x8d3320)\n" " (declare (in ) float eta@0x8d3430)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 I@0x8d3610)\n" " (declare (in ) vec4 N@0x8d3720)\n" " (declare (in ) float eta@0x8d3830)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function matrixCompMult\n" " (signature mat2\n" " (parameters\n" " (declare (in ) mat2 x@0x8d3a10)\n" " (declare (in ) mat2 y@0x8d3b20)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat3\n" " (parameters\n" " (declare (in ) mat3 x@0x8d3ee0)\n" " (declare (in ) mat3 y@0x8d3ff0)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat4\n" " (parameters\n" " (declare (in ) mat4 x@0x8d41d0)\n" " (declare (in ) mat4 y@0x8d42e0)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat2x3\n" " (parameters\n" " (declare (in ) mat2x3 x@0x8d44c0)\n" " (declare (in ) mat2x3 y@0x8d45d0)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat2x4\n" " (parameters\n" " (declare (in ) mat2x4 x@0x8d47b0)\n" " (declare (in ) mat2x4 y@0x8d48c0)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat3x2\n" " (parameters\n" " (declare (in ) mat3x2 x@0x8d4aa0)\n" " (declare (in ) mat3x2 y@0x8d4bb0)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat3x4\n" " (parameters\n" " (declare (in ) mat3x4 x@0x8d4d90)\n" " (declare (in ) mat3x4 y@0x8d4ea0)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat4x2\n" " (parameters\n" " (declare (in ) mat4x2 x@0x8d5080)\n" " (declare (in ) mat4x2 y@0x8d5190)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat4x3\n" " (parameters\n" " (declare (in ) mat4x3 x@0x8d5370)\n" " (declare (in ) mat4x3 y@0x8d5480)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function outerProduct\n" " (signature mat2\n" " (parameters\n" " (declare (in ) vec2 c@0x8d5660)\n" " (declare (in ) vec2 r@0x8d5770)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat3\n" " (parameters\n" " (declare (in ) vec3 c@0x8d5b30)\n" " (declare (in ) vec3 r@0x8d5c40)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat4\n" " (parameters\n" " (declare (in ) vec4 c@0x8d5e20)\n" " (declare (in ) vec4 r@0x8d5f30)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat2x3\n" " (parameters\n" " (declare (in ) vec3 c@0x8d6110)\n" " (declare (in ) vec2 r@0x8d6220)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat3x2\n" " (parameters\n" " (declare (in ) vec2 c@0x8d6400)\n" " (declare (in ) vec3 r@0x8d6510)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat2x4\n" " (parameters\n" " (declare (in ) vec4 c@0x8d66f0)\n" " (declare (in ) vec2 r@0x8d6800)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat4x2\n" " (parameters\n" " (declare (in ) vec2 c@0x8d69e0)\n" " (declare (in ) vec4 r@0x8d6af0)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat3x4\n" " (parameters\n" " (declare (in ) vec4 c@0x8d6cd0)\n" " (declare (in ) vec3 r@0x8d6de0)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat4x3\n" " (parameters\n" " (declare (in ) vec3 c@0x8d6fc0)\n" " (declare (in ) vec4 r@0x8d70d0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function transpose\n" " (signature mat2\n" " (parameters\n" " (declare (in ) mat2 m@0x8d72b0)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat3\n" " (parameters\n" " (declare (in ) mat3 m@0x8d7670)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat4\n" " (parameters\n" " (declare (in ) mat4 m@0x8d7850)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat2x3\n" " (parameters\n" " (declare (in ) mat3x2 m@0x8d7a30)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat3x2\n" " (parameters\n" " (declare (in ) mat2x3 m@0x8d7c10)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat2x4\n" " (parameters\n" " (declare (in ) mat4x2 m@0x8d7df0)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat4x2\n" " (parameters\n" " (declare (in ) mat2x4 m@0x8d7fd0)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat3x4\n" " (parameters\n" " (declare (in ) mat4x3 m@0x8d81b0)\n" " )\n" " (\n" " ))\n" "\n" " (signature mat4x3\n" " (parameters\n" " (declare (in ) mat3x4 m@0x8d8390)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function lessThan\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) vec2 x@0x8d8570)\n" " (declare (in ) vec2 y@0x8d8680)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) vec3 x@0x8d8a40)\n" " (declare (in ) vec3 y@0x8d8b50)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) vec4 x@0x8d8d30)\n" " (declare (in ) vec4 y@0x8d8e40)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) ivec2 x@0x8d9020)\n" " (declare (in ) ivec2 y@0x8d9130)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) ivec3 x@0x8d9310)\n" " (declare (in ) ivec3 y@0x8d9420)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) ivec4 x@0x8d9600)\n" " (declare (in ) ivec4 y@0x8d9710)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function lessThanEqual\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) vec2 x@0x8d98f0)\n" " (declare (in ) vec2 y@0x8d9a00)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) vec3 x@0x8d9dc0)\n" " (declare (in ) vec3 y@0x8d9ed0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) vec4 x@0x8da0b0)\n" " (declare (in ) vec4 y@0x8da1c0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) ivec2 x@0x8da3a0)\n" " (declare (in ) ivec2 y@0x8da4b0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) ivec3 x@0x8da690)\n" " (declare (in ) ivec3 y@0x8da7a0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) ivec4 x@0x8da980)\n" " (declare (in ) ivec4 y@0x8daa90)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function greaterThan\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) vec2 x@0x8dac70)\n" " (declare (in ) vec2 y@0x8dad80)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) vec3 x@0x8db140)\n" " (declare (in ) vec3 y@0x8db250)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) vec4 x@0x8db430)\n" " (declare (in ) vec4 y@0x8db540)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) ivec2 x@0x8db720)\n" " (declare (in ) ivec2 y@0x8db830)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) ivec3 x@0x8dba10)\n" " (declare (in ) ivec3 y@0x8dbb20)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) ivec4 x@0x8dbd00)\n" " (declare (in ) ivec4 y@0x8dbe10)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function greaterThanEqual\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) vec2 x@0x8dbff0)\n" " (declare (in ) vec2 y@0x8dc100)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) vec3 x@0x8dc4c0)\n" " (declare (in ) vec3 y@0x8dc5d0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) vec4 x@0x8dc7b0)\n" " (declare (in ) vec4 y@0x8dc8c0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) ivec2 x@0x8dcaa0)\n" " (declare (in ) ivec2 y@0x8dcbb0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) ivec3 x@0x8dcd90)\n" " (declare (in ) ivec3 y@0x8dcea0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) ivec4 x@0x8dd080)\n" " (declare (in ) ivec4 y@0x8dd190)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function equal\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) vec2 x@0x8dd370)\n" " (declare (in ) vec2 y@0x8dd480)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) vec3 x@0x8dd830)\n" " (declare (in ) vec3 y@0x8dd940)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) vec4 x@0x8ddb20)\n" " (declare (in ) vec4 y@0x8ddc30)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) ivec2 x@0x8dde10)\n" " (declare (in ) ivec2 y@0x8ddf20)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) ivec3 x@0x8de100)\n" " (declare (in ) ivec3 y@0x8de210)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) ivec4 x@0x8de3f0)\n" " (declare (in ) ivec4 y@0x8de500)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) bvec2 x@0x8de6e0)\n" " (declare (in ) bvec2 y@0x8de7f0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) bvec3 x@0x8de9d0)\n" " (declare (in ) bvec3 y@0x8deae0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) bvec4 x@0x8decc0)\n" " (declare (in ) bvec4 y@0x8dedd0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function notEqual\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) vec2 x@0x8defb0)\n" " (declare (in ) vec2 y@0x8df0c0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) vec3 x@0x8df480)\n" " (declare (in ) vec3 y@0x8df590)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) vec4 x@0x8df770)\n" " (declare (in ) vec4 y@0x8df880)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) ivec2 x@0x8dfa60)\n" " (declare (in ) ivec2 y@0x8dfb70)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) ivec3 x@0x8dfd50)\n" " (declare (in ) ivec3 y@0x8dfe60)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) ivec4 x@0x8e0040)\n" " (declare (in ) ivec4 y@0x8e0150)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) bvec2 x@0x8e0330)\n" " (declare (in ) bvec2 y@0x8e0440)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) bvec3 x@0x8e0620)\n" " (declare (in ) bvec3 y@0x8e0730)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) bvec4 x@0x8e0910)\n" " (declare (in ) bvec4 y@0x8e0a20)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function any\n" " (signature bool\n" " (parameters\n" " (declare (in ) bvec2 x@0x8e0c00)\n" " )\n" " (\n" " ))\n" "\n" " (signature bool\n" " (parameters\n" " (declare (in ) bvec3 x@0x8e0fb0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bool\n" " (parameters\n" " (declare (in ) bvec4 x@0x8e1190)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function all\n" " (signature bool\n" " (parameters\n" " (declare (in ) bvec2 x@0x8e1370)\n" " )\n" " (\n" " ))\n" "\n" " (signature bool\n" " (parameters\n" " (declare (in ) bvec3 x@0x8e1720)\n" " )\n" " (\n" " ))\n" "\n" " (signature bool\n" " (parameters\n" " (declare (in ) bvec4 x@0x8e1900)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function not\n" " (signature bvec2\n" " (parameters\n" " (declare (in ) bvec2 x@0x8e1ae0)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec3\n" " (parameters\n" " (declare (in ) bvec3 x@0x8e1e90)\n" " )\n" " (\n" " ))\n" "\n" " (signature bvec4\n" " (parameters\n" " (declare (in ) bvec4 x@0x8e2070)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function texture1D\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1D sampler@0x8e2250)\n" " (declare (in ) float coord@0x8e2370)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1D sampler@0x8e2f10)\n" " (declare (in ) float coord@0x8e3030)\n" " (declare (in ) float bias@0x8e3140)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function texture1DProj\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1D sampler@0x8e2730)\n" " (declare (in ) vec2 coord@0x8e2850)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1D sampler@0x8e2c10)\n" " (declare (in ) vec4 coord@0x8e2d30)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1D sampler@0x8e3320)\n" " (declare (in ) vec2 coord@0x8e3440)\n" " (declare (in ) float bias@0x8e3550)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1D sampler@0x8e3730)\n" " (declare (in ) vec4 coord@0x8e3850)\n" " (declare (in ) float bias@0x8e3960)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function texture2D\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2D sampler@0x8e3b40)\n" " (declare (in ) vec2 coord@0x8e3c60)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2D sampler@0x8e4800)\n" " (declare (in ) vec2 coord@0x8e4920)\n" " (declare (in ) float bias@0x8e4a30)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function texture2DProj\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2D sampler@0x8e4020)\n" " (declare (in ) vec3 coord@0x8e4140)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2D sampler@0x8e4500)\n" " (declare (in ) vec4 coord@0x8e4620)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2D sampler@0x8e4c10)\n" " (declare (in ) vec3 coord@0x8e4d30)\n" " (declare (in ) float bias@0x8e4e40)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2D sampler@0x8e5020)\n" " (declare (in ) vec4 coord@0x8e5140)\n" " (declare (in ) float bias@0x8e5250)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function texture3D\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler3D sampler@0x8e5430)\n" " (declare (in ) vec3 coord@0x8e5550)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler3D sampler@0x8e5df0)\n" " (declare (in ) vec3 coord@0x8e5f10)\n" " (declare (in ) float bias@0x8e6020)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function texture3DProj\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler3D sampler@0x8e5910)\n" " (declare (in ) vec4 coord@0x8e5a30)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler3D sampler@0x8e6200)\n" " (declare (in ) vec4 coord@0x8e6320)\n" " (declare (in ) float bias@0x8e6430)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function textureCube\n" " (signature vec4\n" " (parameters\n" " (declare (in ) samplerCube sampler@0x8e6610)\n" " (declare (in ) vec3 coord@0x8e6730)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) samplerCube sampler@0x8e6af0)\n" " (declare (in ) vec3 coord@0x8e6c10)\n" " (declare (in ) float bias@0x8e6d20)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function shadow1D\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1DShadow sampler@0x8e6f00)\n" " (declare (in ) vec3 coord@0x8e7020)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1DShadow sampler@0x8e8280)\n" " (declare (in ) vec3 coord@0x8e83a0)\n" " (declare (in ) float bias@0x8e84b0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function shadow2D\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2DShadow sampler@0x8e73e0)\n" " (declare (in ) vec3 coord@0x8e7500)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2DShadow sampler@0x8e8690)\n" " (declare (in ) vec3 coord@0x8e87b0)\n" " (declare (in ) float bias@0x8e88c0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function shadow1DProj\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1DShadow sampler@0x8e78c0)\n" " (declare (in ) vec4 coord@0x8e79e0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler1DShadow sampler@0x8e8aa0)\n" " (declare (in ) vec4 coord@0x8e8bc0)\n" " (declare (in ) float bias@0x8e8cd0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function shadow2DProj\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2DShadow sampler@0x8e7da0)\n" " (declare (in ) vec4 coord@0x8e7ec0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) sampler2DShadow sampler@0x8e8eb0)\n" " (declare (in ) vec4 coord@0x8e8fd0)\n" " (declare (in ) float bias@0x8e90e0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function dFdx\n" " (signature float\n" " (parameters\n" " (declare (in ) float p@0x8e92c0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 p@0x8e9670)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 p@0x8e9850)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 p@0x8e9a30)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function dFdy\n" " (signature float\n" " (parameters\n" " (declare (in ) float p@0x8e9c10)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 p@0x8e9fc0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 p@0x8ea1a0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 p@0x8ea380)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function fwidth\n" " (signature float\n" " (parameters\n" " (declare (in ) float p@0x8ea560)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 p@0x8ea910)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 p@0x8eaaf0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 p@0x8eacd0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function noise1\n" " (signature float\n" " (parameters\n" " (declare (in ) float x@0x8eaeb0)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) vec2 x@0x8eb260)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) vec3 x@0x8eb440)\n" " )\n" " (\n" " ))\n" "\n" " (signature float\n" " (parameters\n" " (declare (in ) vec4 x@0x8eb620)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function noise2\n" " (signature vec2\n" " (parameters\n" " (declare (in ) float x@0x8eb800)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec2 x@0x8ebbb0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec3 x@0x8ebd90)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec2\n" " (parameters\n" " (declare (in ) vec4 x@0x8ebf70)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function noise3\n" " (signature vec3\n" " (parameters\n" " (declare (in ) float x@0x8ec150)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec2 x@0x8ec500)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec3 x@0x8ec6e0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec3\n" " (parameters\n" " (declare (in ) vec4 x@0x8ec8c0)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "(function noise4\n" " (signature vec4\n" " (parameters\n" " (declare (in ) float x@0x8ecaa0)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec2 x@0x8ece50)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec3 x@0x8ed030)\n" " )\n" " (\n" " ))\n" "\n" " (signature vec4\n" " (parameters\n" " (declare (in ) vec4 x@0x8ed210)\n" " )\n" " (\n" " ))\n" "\n" ")\n" "\n" "\n" ")" ; static const char *functions_for_120_frag [] = { builtin_clamp, builtin_matrixCompMult, builtin_noise2, builtin_pow, builtin_texture2DProj, builtin_fwidth, builtin_greaterThanEqual, builtin_sign, builtin_texture3DProj, builtin_texture2D, builtin_equal, builtin_faceforward, builtin_tan, builtin_any, builtin_shadow1DProj, builtin_normalize, builtin_asin, builtin_texture1DProj, builtin_log, builtin_floor, builtin_exp2, builtin_lessThan, builtin_cross, builtin_sqrt, builtin_shadow2DProj, builtin_fract, builtin_abs, builtin_degrees, builtin_dFdx, builtin_sin, builtin_shadow2D, builtin_all, builtin_log2, builtin_atan, builtin_notEqual, builtin_max, builtin_lessThanEqual, builtin_transpose, builtin_outerProduct, builtin_ceil, builtin_reflect, builtin_step, builtin_texture1D, builtin_greaterThan, builtin_texture3D, builtin_not, builtin_inversesqrt, builtin_mod, builtin_noise4, builtin_distance, builtin_cos, builtin_shadow1D, builtin_noise1, builtin_refract, builtin_noise3, builtin_min, builtin_radians, builtin_smoothstep, builtin_textureCube, builtin_length, builtin_dFdy, builtin_exp, builtin_acos, builtin_mix, builtin_dot, }; void *builtin_mem_ctx = NULL; void _mesa_glsl_release_functions(void) { talloc_free(builtin_mem_ctx); } void _mesa_glsl_initialize_functions(exec_list *instructions, struct _mesa_glsl_parse_state *state) { if (builtin_mem_ctx == NULL) builtin_mem_ctx = talloc_init("GLSL built-in functions"); state->num_builtins_to_link = 0; if (state->target == vertex_shader && state->language_version == 120) { static gl_shader *sh = NULL; if (sh == NULL) { sh = read_builtins(GL_VERTEX_SHADER, prototypes_for_120_vert, functions_for_120_vert, Elements(functions_for_120_vert )); talloc_steal(builtin_mem_ctx, sh); } import_prototypes(sh->ir, instructions, state->symbols, state); state->builtins_to_link[state->num_builtins_to_link] = sh; state->num_builtins_to_link++; } if (state->target == fragment_shader && state->EXT_texture_array_enable) { static gl_shader *sh = NULL; if (sh == NULL) { sh = read_builtins(GL_VERTEX_SHADER, prototypes_for_EXT_texture_array_frag, functions_for_EXT_texture_array_frag, Elements(functions_for_EXT_texture_array_frag )); talloc_steal(builtin_mem_ctx, sh); } import_prototypes(sh->ir, instructions, state->symbols, state); state->builtins_to_link[state->num_builtins_to_link] = sh; state->num_builtins_to_link++; } if (state->target == vertex_shader && state->language_version == 110) { static gl_shader *sh = NULL; if (sh == NULL) { sh = read_builtins(GL_VERTEX_SHADER, prototypes_for_110_vert, functions_for_110_vert, Elements(functions_for_110_vert )); talloc_steal(builtin_mem_ctx, sh); } import_prototypes(sh->ir, instructions, state->symbols, state); state->builtins_to_link[state->num_builtins_to_link] = sh; state->num_builtins_to_link++; } if (state->target == fragment_shader && state->language_version == 110) { static gl_shader *sh = NULL; if (sh == NULL) { sh = read_builtins(GL_VERTEX_SHADER, prototypes_for_110_frag, functions_for_110_frag, Elements(functions_for_110_frag )); talloc_steal(builtin_mem_ctx, sh); } import_prototypes(sh->ir, instructions, state->symbols, state); state->builtins_to_link[state->num_builtins_to_link] = sh; state->num_builtins_to_link++; } if (state->target == vertex_shader && state->EXT_texture_array_enable) { static gl_shader *sh = NULL; if (sh == NULL) { sh = read_builtins(GL_VERTEX_SHADER, prototypes_for_EXT_texture_array_vert, functions_for_EXT_texture_array_vert, Elements(functions_for_EXT_texture_array_vert )); talloc_steal(builtin_mem_ctx, sh); } import_prototypes(sh->ir, instructions, state->symbols, state); state->builtins_to_link[state->num_builtins_to_link] = sh; state->num_builtins_to_link++; } if (state->target == vertex_shader && state->ARB_texture_rectangle_enable) { static gl_shader *sh = NULL; if (sh == NULL) { sh = read_builtins(GL_VERTEX_SHADER, prototypes_for_ARB_texture_rectangle_vert, functions_for_ARB_texture_rectangle_vert, Elements(functions_for_ARB_texture_rectangle_vert )); talloc_steal(builtin_mem_ctx, sh); } import_prototypes(sh->ir, instructions, state->symbols, state); state->builtins_to_link[state->num_builtins_to_link] = sh; state->num_builtins_to_link++; } if (state->target == fragment_shader && state->ARB_texture_rectangle_enable) { static gl_shader *sh = NULL; if (sh == NULL) { sh = read_builtins(GL_VERTEX_SHADER, prototypes_for_ARB_texture_rectangle_frag, functions_for_ARB_texture_rectangle_frag, Elements(functions_for_ARB_texture_rectangle_frag )); talloc_steal(builtin_mem_ctx, sh); } import_prototypes(sh->ir, instructions, state->symbols, state); state->builtins_to_link[state->num_builtins_to_link] = sh; state->num_builtins_to_link++; } if (state->target == fragment_shader && state->language_version == 120) { static gl_shader *sh = NULL; if (sh == NULL) { sh = read_builtins(GL_VERTEX_SHADER, prototypes_for_120_frag, functions_for_120_frag, Elements(functions_for_120_frag )); talloc_steal(builtin_mem_ctx, sh); } import_prototypes(sh->ir, instructions, state->symbols, state); state->builtins_to_link[state->num_builtins_to_link] = sh; state->num_builtins_to_link++; } }