     (log/info "key" key)
     (on-key-fn key)))
 
-(defn font-key [font] [(.getName font) (.getSize font)])
+(defn font-key [^Font font] [(.getName font) (.getSize font)])
 
 (defn make-font
   [name-or-path style size]

       :font-texture-image texture-image})))


(defn- buffered-image-byte-buffer [buffered-image]
  (let [width          (.getWidth buffered-image)
        height         (.getHeight buffered-image)
        texture-buffer (BufferUtils/createByteBuffer (* width height 4))
        data (-> buffered-image
                 (.getRaster)
                 (.getDataBuffer)
                 (as-> db (cast DataBufferByte db))
                 (.getData))]
    (.put texture-buffer data 0 (alength data))
    (.flip texture-buffer)
    texture-buffer))

    ;(log/info "characters" (vec characters))
    ;(log/info "character-idxs" (vec (character-idxs characters)))
    (let [texture-image    (BufferedImage. width height BufferedImage/TYPE_4BYTE_ABGR)
          texture-graphics ^Graphics2D (.getGraphics texture-image)
          white            (Color. 255 255 255 255)]
      ;; Create and clear graphics
      (doto texture-graphics
