Skip to main content
`Ctrl`+`K`

# vispy.visuals.shaders.compiler module

class vispy.visuals.shaders.compiler.Compiler(namespace=None, **shaders)

  Bases: `object`

  Compiler is used to convert Function and Variable instances into ready-to-use GLSL code. This class handles name mangling to ensure that there are no name collisions amongst global objects. The final name of each object may be retrieved using `Compiler.__getitem__(obj)`.

  Accepts multiple root Functions as keyword arguments. `compile()` then returns a dict of GLSL strings with the same keys.

  Example:

      # initialize with two main functions
      compiler = Compiler(vert=v_func, frag=f_func)

      # compile and extract shaders
      code = compiler.compile()
      v_code = code['vert']
      f_code = code['frag']

      # look up name of some object
      name = compiler[obj]

  compile(pretty=True)

    Compile all code and return a dict {name: code} where the keys are determined by the keyword arguments passed to __init__().

    Parameters:
      pretty bool

        If True, use a slower method to mangle object names. This produces GLSL that is more readable. If False, then the output is mostly unreadable GLSL, but is about 10x faster to compile.