その背後にある理由はある程度理解していますが、LWJGLがOpenGLのメソッドと値を多数のクラスに分割するのはかなり面倒です。とにかく関数を扱う方が好きなので、現在、OpenGL3.3コア関数と定数を単一の名前空間で公開するClojureモジュールを作成しています。
ここで問題となるのは、一部のOpenGL関数には、たとえばglBindAttribLocation
forByteBuffer
とforのように、LWJGLにオーバーロードがありますCharSequence
。これが本当に問題なのかどうかはまだわからないので、今は最も広い意味で「問題」と言っています。
たとえば、私はただ書くことができますか
(defn glBindAttribLocation [program index name]
(GL20/glBindAttribLocation program index name))
そして、Clojureがどのオーバーロードを呼び出すかを判断することを信頼しますか、それとも私はこれを手動で行う必要がありますか?
同じように、LWJGLの関数の多くはfloat
sまたはsを取りますが、Clojure自体はと(つまりプリミティブの)int
のみを使用していると聞きました。つまり、これらの関数の1つを呼び出すたびに、 ( )に変換され、そこからこれらの関数の1つを呼び出すたびに()に変換されるということですか?long
double
Integer
Float
int
float