                                 (println (GL20/glGetProgramInfoLog pgm-id 10000)))
         _ (except-gl-errors "@ let before GetUniformLocation")
         ]
-    (doseq [[i attribute-name] (map-indexed vector attribute-names)]
+    (doseq [[^int i ^String attribute-name] (map-indexed vector attribute-names)]
       (GL20/glBindAttribLocation pgm-id i attribute-name))
     pgm-id))
 

                    character-height
                    font-texture-width
                    font-texture-height
                    font-texture-image]} (get @font-textures (font-key @normal-font))]
        (log/info "screen size" screen-width "x" screen-height)
        (try
          (Display/setDisplayMode (DisplayMode. screen-width screen-height))
          ;; resize FBO
          (GL11/glBindTexture GL11/GL_TEXTURE_2D fbo-texture)
          (GL11/glTexImage2D GL11/GL_TEXTURE_2D 0 GL11/GL_RGB screen-width screen-height 0 GL11/GL_RGB GL11/GL_UNSIGNED_BYTE nil)
          (swap! font-textures update (font-key @normal-font) (fn [m] (assoc m :font-texture (texture-id font-texture-image))))
          (catch Throwable t
            (log/error "Eror changing font" t))))

(defn ortho-matrix-buffer
  ([viewport-width viewport-height]
    (ortho-matrix-buffer viewport-width viewport-height (BufferUtils/createFloatBuffer 16)))
  ([viewport-width viewport-height ^FloatBuffer matrix-buffer]
    (let [ortho-matrix (doto (Matrix4f.)
                         (.setIdentity))
          matrix-buffer matrix-buffer
