             (GL20/glUniform1i u-glyphs 1)
             (GL20/glUniform1i u-fg 2)
             (GL20/glUniform1i u-bg 3)
-            ;; TODO: use real value
             (GL20/glUniform1i u-num-layers layer-count)
             (except-gl-errors "uniformli bind")
             (GL20/glUniform2f font-size, character-width character-height)


          ;; create width*height texture that gets updated each frame that determines which character to draw in each cell
          _ (log/info "Creating glyph array")
          ;next-pow-2-columns (zutil/next-pow-2 columns)
          ;next-pow-2-rows    (zutil/next-pow-2 rows)
          ;glyph-texture-width  next-pow-2-columns
          ;glyph-texture-height next-pow-2-rows
          ;glyph-array    (ta/unsigned-int8 (repeat (* columns rows) 0))
          glyph-image-data (for [layer-group layer-groups]
                             (let [np2-columns (zutil/next-pow-2 (get layer-group :columns))
                                   np2-rows    (zutil/next-pow-2 (get layer-group :rows))]

    (doseq [[id character-map] layer-character-map]
      (ref-set character-map (get layer-character-map-cleared id))))
  (clear! [_ layer-id]
    {:pre [(get layer-id->group layer-id)]}
    (ref-set (get layer-character-map layer-id) (get layer-character-map-cleared layer-id)))
  (fullscreen! [_ v]
    (with-gl-context gl-lock window capabilities
