Texture Buffers
    Texture-buffers allow access to any jit.gl.mesh buffer (position, normal, vertex_attr, etc.) as a 1D texture in the mesh's shader programs, using the texelFetch command.
    
    You can declare a mesh's buffer as a texture-buffer by connecting a jit.gl.buffer to the mesh, setting the attribute texbuf 1 and specifying the name of the buffer to bind as a texture (position, normal, vertex_attr, etc.) using the attribute type. It is important to note that any normal textures will be bound first, and then texture-buffers. Texture-buffers are declared in the shader as samplerBuffer uniforms.
    
    So if you have two texture-buffers patched into a jit.gl.mesh that look like this:
    
[ jit.gl.buffer @type vertex_attr0 @texbuf 1 ]
      [ jit.gl.buffer @type vertex_attr1 @texbuf 1 ]
    then in your shader params declaration you need something like:
    <param name="tex1" type="int" default="0" />
      <param name="tex2" type="int" default="1" />
      <param name="texbuf1" type="int" default="2" />
      <param name="texbuf2" type="int" default="3" />
    and in the program body:
    uniform sampler2DRect tex1;
      uniform sampler2DRect tex2;
      uniform samplerBuffer texbuf1;
      uniform samplerBuffer texbuf2;
    This allows you access to the sampled texture for use in the rest of the shader using texelFetch:
    vec3 bufval = texelFetch(texbuf1, index).xyz;
    where index is an integer between 0 and the buffer width minus one.
    For an example patch, check out tb.pl.disco.duck.
See Also
| Name | Description | 
|---|---|
| Working with OpenGL | Working with OpenGL | 
| jit.gl.buffer | |
| jit.gl.mesh | Generate GL geometry from matrices | 
| jit.gl.tf |