                              (.withProfileCore true))
         icon-array         (when icon-paths
                              (condp = (LWJGLUtil/getPlatform)
-                               LWJGLUtil/PLATFORM_LINUX (let [icon-array (make-array ByteBuffer 1)]
-                                                          (aset icon-array 0 (png-bytes (get icon-paths 1)))
+                               LWJGLUtil/PLATFORM_LINUX (let [icon-array ^"[Ljava.nio.ByteBuffer;" (make-array ByteBuffer 1)
+                                                              data ^bytes (png-bytes (get icon-paths 1))]
+                                                          (aset icon-array 0 data)
                                                           icon-array)
-                               LWJGLUtil/PLATFORM_MACOSX  (let [icon-array (make-array ByteBuffer 1)]
-                                                            (aset icon-array 0 (png-bytes (get icon-paths 2))
-                                                            icon-array))
-                               LWJGLUtil/PLATFORM_WINDOWS (let [icon-array (make-array ByteBuffer 2)]
-                                                            (aset icon-array 0 (png-bytes (get icon-paths 0)))
-                                                            (aset icon-array 1 (png-bytes (get icon-paths 1)))
+                               LWJGLUtil/PLATFORM_MACOSX  (let [icon-array ^"[Ljava.nio.ByteBuffer;" (make-array ByteBuffer 1)
+                                                                data ^bytes (png-bytes (get icon-paths 2))]
+                                                            (aset icon-array 0 data)
+                                                            icon-array)
+                               LWJGLUtil/PLATFORM_WINDOWS (let [icon-array ^"[Ljava.nio.ByteBuffer;" (make-array ByteBuffer 2)
+                                                                data0 ^bytes (png-bytes (get icon-paths 0))
+                                                                data1 ^bytes (png-bytes (get icon-paths 1))]
+                                                            (aset icon-array 0 data0)
+                                                            (aset icon-array 1 data1)
                                                             icon-array)))
         latch              (java.util.concurrent.CountDownLatch. 1)]
      ;; init-natives must be called before the Display is created



;; A sequence of [character underline?]
(defn displayable-characters [font]
  (let [chars (map char (filter (fn [c] (and (.canDisplay font (char c))
                                             (not (contains? cjk-blocks c))))
                                (range 0x0000 0xFFFF)))]

              Font
              FontMetrics
              Graphics
              Graphics2D
              RenderingHints)
    (org.lwjgl BufferUtils LWJGLUtil)
    (java.nio FloatBuffer ByteBuffer)
