                                        :font-texture-height font-texture-height
                                        :glyph-tex-dim glyph-tex-dim
                                        :glyph-texture-width glyph-texture-width
-                                       :glyph-texture-height glyph-texture-height}
+                                       :glyph-texture-height glyph-texture-height
+                                       :u-fb u-fb}
                             :data {:glyph-image-data glyph-image-data
                                    :fg-image-data fg-image-data
                                    :bg-image-data bg-image-data}}

      (println (GL20/glGetShaderInfoLog shader-id 10000)))
    [gl-compile-status shader-id]))


(defn- init-shaders
  []
  (let [[ok? vs-id] (load-shader (-> "shader.vs" clojure.java.io/resource slurp)  GL20/GL_VERTEX_SHADER)
        _           (assert (== ok? GL11/GL_TRUE)) ;; something is really wrong if our vs is bad
        [ok? fs-id] (load-shader (-> "shader.fs" clojure.java.io/resource slurp) GL20/GL_FRAGMENT_SHADER)]
    (if (== ok? GL11/GL_TRUE)
      (let [pgm-id                (GL20/glCreateProgram)
            _ (except-gl-errors "@ let init-shaders glCreateProgram")
            _                     (GL20/glAttachShader pgm-id vs-id)
            _ (except-gl-errors "@ let init-shaders glAttachShader VS")
            _                     (GL20/glAttachShader pgm-id fs-id)
            _ (except-gl-errors "@ let init-shaders glAttachShader FS")
            _                     (GL20/glLinkProgram pgm-id)
            _ (except-gl-errors "@ let init-shaders glLinkProgram")
            gl-link-status        (GL20/glGetProgrami pgm-id GL20/GL_LINK_STATUS)
            _ (except-gl-errors "@ let init-shaders glGetProgram link status")
            _                     (when (== gl-link-status GL11/GL_FALSE)
                                    (println "ERROR: Linking Shaders:")
                                    (println (GL20/glGetProgramInfoLog pgm-id 10000)))
            _ (except-gl-errors "@ let before GetUniformLocation")
            ]
        (GL20/glBindAttribLocation pgm-id 0 "aVertexPosition")
        (GL20/glBindAttribLocation pgm-id 1 "aTextureCoord")
        pgm-id)
      (log/error "Error loading shaders"))))

(defn ortho-matrix-buffer

          (except-gl-errors "texture coords bind")
          ; Setup font texture
          (GL13/glActiveTexture GL13/GL_TEXTURE0)
          (except-gl-errors "font texture glActiveTexture")
          (GL11/glBindTexture GL11/GL_TEXTURE_2D font-texture)
          (except-gl-errors "font texture glBindTexture")
          (GL20/glUniform1i u-font 0)
          (except-gl-errors "font texture glUniform1i")
          ; Setup uniforms for glyph, fg, bg, textures
          (GL20/glUniform1i u-glyphs 1)
          (GL20/glUniform1i u-fg 2)
