((function texture1D
   (signature vec4
     (parameters
       (declare (in) sampler1D sampler)
       (declare (in) float P) )
     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))

)
 (function texture1DLod
   (signature vec4
     (parameters
       (declare (in) sampler1D sampler)
       (declare (in) float P) 
       (declare (in) float lod) )
     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))

)
 (function texture1DProj
   (signature vec4
     (parameters
       (declare (in) sampler1D sampler)
       (declare (in) vec2 P) )
     ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () ))))

   (signature vec4
     (parameters
       (declare (in) sampler1D sampler)
       (declare (in) vec4 P) )
     ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))

)
 (function texture1DProjLod
   (signature vec4
     (parameters
       (declare (in) sampler1D sampler)
       (declare (in) vec2 P) 
       (declare (in) float lod) )
     ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz y (var_ref P)) () (var_ref lod) ))))

   (signature vec4
     (parameters
       (declare (in) sampler1D sampler)
       (declare (in) vec4 P) 
       (declare (in) float lod) )
     ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))

)
 (function texture2D
   (signature vec4
     (parameters
       (declare (in) sampler2D sampler)
       (declare (in) vec2 P) )
     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))

)
(function texture2DLod
   (signature vec4
     (parameters
       (declare (in) sampler2D sampler)
       (declare (in) vec2 P) 
       (declare (in) float lod) )
     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))

)
 (function texture2DProj
   (signature vec4
     (parameters
       (declare (in) sampler2D sampler)
       (declare (in) vec3 P) )
     ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () ))))

   (signature vec4
     (parameters
       (declare (in) sampler2D sampler)
       (declare (in) vec4 P) )
     ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))

)
 (function texture2DProjLod
   (signature vec4
     (parameters
       (declare (in) sampler2D sampler)
       (declare (in) vec3 P) 
       (declare (in) float lod) )
     ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz z (var_ref P)) () (var_ref lod) ))))

   (signature vec4
     (parameters
       (declare (in) sampler2D sampler)
       (declare (in) vec4 P) 
       (declare (in) float lod) )
     ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))

)
 (function texture3D
   (signature vec4
     (parameters
       (declare (in) sampler3D sampler)
       (declare (in) vec3 P) )
     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))

)
 (function texture3DLod
   (signature vec4
     (parameters
       (declare (in) sampler3D sampler)
       (declare (in) vec3 P) 
       (declare (in) float lod) )
     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))

)
 (function texture3DProj
   (signature vec4
     (parameters
       (declare (in) sampler3D sampler)
       (declare (in) vec4 P) )
     ((return (tex (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () ))))

)
 (function texture3DProjLod
   (signature vec4
     (parameters
       (declare (in) sampler3D sampler)
       (declare (in) vec4 P) 
       (declare (in) float lod) )
     ((return (txl (var_ref sampler) (swiz xyz (var_ref P)) (0 0 0) (swiz w (var_ref P)) () (var_ref lod) ))))

)
 (function textureCube
   (signature vec4
     (parameters
       (declare (in) samplerCube sampler)
       (declare (in) vec3 P) )
     ((return (tex (var_ref sampler) (var_ref P) (0 0 0) 1 () ))))

)
 (function textureCubeLod
   (signature vec4
     (parameters
       (declare (in) samplerCube sampler)
       (declare (in) vec3 P) 
       (declare (in) float lod) )
     ((return (txl (var_ref sampler) (var_ref P) (0 0 0) 1 () (var_ref lod) ))))

)
 (function shadow1D
   (signature vec4
     (parameters
       (declare (in) sampler1DShadow sampler)
       (declare (in) vec3 P) )
     ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) ))))

)
 (function shadow1DLod
   (signature vec4
     (parameters
       (declare (in) sampler1DShadow sampler)
       (declare (in) vec3 P) 
       (declare (in) float lod) )
     ((return (txl (var_ref sampler) (swiz x (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) (var_ref lod) ))))

)
 (function shadow1DProj
   (signature vec4
     (parameters
       (declare (in) sampler1DShadow sampler)
       (declare (in) vec4 P) )
     ((return (tex (var_ref sampler) (swiz x (var_ref P)) (0 0 0) (swiz w (var_ref P)) (swiz z (var_ref P)) ))))

)
 (function shadow1DProjLod
   (signature vec4
     (parameters
       (declare (in) sampler1DShadow sampler)
       (declare (in) vec4 P) 
       (declare (in) float lod) )
     ((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) ))))

)
 (function shadow2D
   (signature vec4
     (parameters
       (declare (in) sampler2DShadow sampler)
       (declare (in) vec3 P) )
     ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) ))))

)
 (function shadow2DLod
   (signature vec4
     (parameters
       (declare (in) sampler2DShadow sampler)
       (declare (in) vec3 P) 
       (declare (in) float lod) )
     ((return (txl (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) 1 (swiz z (var_ref P)) (var_ref lod) ))))

)
 (function shadow2DProj
   (signature vec4
     (parameters
       (declare (in) sampler2DShadow sampler)
       (declare (in) vec4 P) )
     ((return (tex (var_ref sampler) (swiz xy (var_ref P)) (0 0 0) (swiz w (var_ref P)) (swiz z (var_ref P)) ))))

)
 (function shadow2DProjLod
   (signature vec4
     (parameters
       (declare (in) sampler2DShadow sampler)
       (declare (in) vec4 P) 
       (declare (in) float lod) )
     ((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) ))))

))