         offset = chunk * chunksize * 4
         if these_indices.length == 0
           continue
-        @prog.set_attribute('a_x', 'float', [mainGlyph.glglyph.vbo_x, 0, offset])
-        @prog.set_attribute('a_y', 'float', [mainGlyph.glglyph.vbo_y, 0, offset])
-        @prog.set_attribute('a_size', 'float', [mainGlyph.glglyph.vbo_s, 0, offset])
-        @prog.set_attribute('a_angle', 'float', [mainGlyph.glglyph.vbo_a, 0, offset])
+        @prog.set_attribute('a_x', 'float', [mainGlGlyph.vbo_x, 0, offset])
+        @prog.set_attribute('a_y', 'float', [mainGlGlyph.vbo_y, 0, offset])
+        @prog.set_attribute('a_size', 'float', [mainGlGlyph.vbo_s, 0, offset])
+        @prog.set_attribute('a_angle', 'float', [mainGlGlyph.vbo_a, 0, offset])
         if @vbo_linewidth.used
           @prog.set_attribute('a_linewidth', 'float', [@vbo_linewidth, 0, offset])
         if @vbo_fg_color.used


      # Select buffers from main glyph
      # (which may be this glyph but maybe not if this is a (non)selection glyph)
      @prog.set_attribute('a_position', 'vec2', [mainGlyph.glglyph.vbo_position, 0, 0])
      @prog.set_attribute('a_tangents', 'vec4', [mainGlyph.glglyph.vbo_tangents, 0, 0])
      @prog.set_attribute('a_segment', 'vec2', [mainGlyph.glglyph.vbo_segment, 0, 0])
      @prog.set_attribute('a_angles', 'vec2', [mainGlyph.glglyph.vbo_angles, 0, 0])
      @prog.set_attribute('a_texcoord', 'vec2', [mainGlyph.glglyph.vbo_texcoord, 0, 0])
      #
      @prog.set_uniform('u_length', 'float', [mainGlyph.glglyph.cumsum])
      @prog.set_texture('u_dash_atlas', @dash_atlas.tex)

      # Handle transformation to device coordinates
      baked_offset = mainGlyph.glglyph._baked_offset
      @prog.set_uniform('u_canvas_size', 'vec2', [trans.width, trans.height])
      @prog.set_uniform('u_offset', 'vec2', [trans.dx - baked_offset[0], trans.dy - baked_offset[1]])
      @prog.set_uniform('u_scale_aspect', 'vec2', [sx, sy])

      @dash_atlas = new DashAtlas(gl)

    draw: (indices, mainGlyph, trans) ->
      mainGlGlyph = mainGlyph.glglyph
      
      if mainGlGlyph.data_changed
        mainGlGlyph._baked_offset = [trans.dx, trans.dy]  # float32 precision workaround; used in _bake() and below
        mainGlGlyph._set_data()
        mainGlGlyph.data_changed = false
      if @visuals_changed
        @_set_visuals()
        @visuals_changed = false
