雖然我有點明白它背後的原因,我發現OpenGL的方法和價值在衆多的類,而惱人的LWJGL的分裂。因爲我更喜歡處理函數,所以我目前正在編寫一個Clojure模塊,在單個命名空間中公開OpenGL 3.3核心函數和常量。Clojure的Java的互操作 - 調用重載(靜態)方法
現在的問題是,一些OpenGL函數在LWJGL中有過載,例如glBindAttribLocation
有一個用於ByteBuffer
,另一個用於CharSequence
。現在我從最廣泛的意義上說'問題',因爲我不確定這是否真的是'問題'。
我例如可以只寫
(defn glBindAttribLocation [program index name]
(GL20/glBindAttribLocation program index name))
,並相信Clojure的會找出哪些超載打電話,還是我與一些typehint-uglyness手動做到這一點?
在相同的備忘,許多LWJGL的職能採取float
S或int
秒 - 但我聽到的Clojure本身只使用long
和double
(即原語)。這是否意味着我每次調用其中一個函數時,無論我何時調用其中一個函數,都會將其轉換爲Integer
(Float
),然後從那裏轉換爲int
(float
)?
轉換可能是直接'long-> int'和'float-> double',如果這是任何安慰:)調用重載函數真的是一個拖動,沒有幫助。 –