             [clojure-watch.core :as cwc]
             [clojure.core.async :as async])
   (:import
-    (javax.imageio ImageIO)
     (java.lang.reflect Field)
     (java.awt Color
               BorderLayout

(def char-height 16)

(set! *warn-on-reflection* true)

(defn convert-key-code [e on-key-fn]
  (let [numpad? (= (.getKeyLocation e) KeyEvent/KEY_LOCATION_NUMPAD)]

           program-id :program-id
           {:keys [u-MVMatrix u-PMatrix u-font u-glyphs u-fg u-bg font-size term-dim font-tex-dim
            font-texture-width font-texture-height glyph-tex-dim glyph-texture-width glyph-texture-height ]} :uniforms
           {:keys [^ByteBuffer glyph-image-data
                   ^ByteBuffer fg-image-data
                   ^ByteBuffer bg-image-data]} :data
           :keys [p-matrix-buffer mv-matrix-buffer]} gl
          glyph-image-data glyph-image-data
          fg-image-data fg-image-data
          bg-image-data bg-image-data]

      (GL20/glUseProgram program-id)
      (GL20/glUniformMatrix4 u-PMatrix false p-matrix-buffer)
      (GL20/glUniformMatrix4 u-MVMatrix false mv-matrix-buffer)
