                            {:p-matrix-buffer (ortho-matrix-buffer screen-width screen-height)
                             :mv-matrix-buffer (position-matrix-buffer [(- (/ screen-width 2)) (- (/ screen-height 2)) -1.0 0.0]
                                                                       [screen-width screen-height 1.0])
-                            :character-width character-width
-                            :character-height character-height
-                            :character->col-row (character->col-row (character-idxs character-width (displayable-characters @normal-font)))
                             :buffers {:vertices-vbo-id vertices-vbo-id
                                       :vertices-count vertices-count
                                       :texture-coords-vbo-id texture-coords-vbo-id

                             :font-watcher
                             (fn [_ _ _ new-font]
                               (log/info "Using font" new-font)
                               (let [font-metrics  ^FontMetrics (.getFontMetrics (Canvas.) new-font)
                                     char-width                 (.charWidth font-metrics \M)
                                     char-height                (.getHeight font-metrics)
                                     screen-width               (* columns char-width)
                                     screen-height              (* rows char-height)
                                     ;; create texture atlas as Buffered texture
                                     {:keys [font-texture-width
                                             font-texture-height
                                             font-texture-image]} (make-glyph-image char-width char-height new-font)]
                                 (log/info "Created font texture. screen-width" screen-width "screen-height" screen-height)
                                 (swap! font-textures assoc
                                                     (font-key new-font)
                                                     {:screen-width screen-width
                                                      :screen-height screen-height
                                                      :character-width char-width
                                                      :character-height char-height
                                                      :font-texture-width font-texture-width
                                                      :font-texture-height font-texture-height
                                                      :font-texture-image font-texture-image}))))
          _                  (reset! normal-font (if is-windows
                                                   (make-font windows-font Font/PLAIN font-size)
                                                   (make-font else-font Font/PLAIN font-size)))
          ;; false if Display is destoyed
          destroyed          (atom false)
          gl-lock            (atom true)

                    screen-height
                    character-width
                    character-height
                    character->col-row
                    font-texture-width
                    font-texture-height
                    font-texture]} (get @font-textures (font-key @normal-font))
