我正在尝试从clojure直接了解如何使用LWJGL3。到目前为止,我发现的唯一绊脚石是一个函数,有时需要一个参数为null
,但在指纹中它的类型为long
。
有问题的特定功能是glfwCreateWindow
类中的org.lwjgl.glfw.GLFW
。
最后两个参数是long
,但是当使用窗口模式时,第一个参数应为null
,第二个参数应不使用gl上下文。
问题是互操作调用检查该函数的指纹并查看它应该是long
,因此传递nil
会得到IllegalArgumentException
。
我环顾四周,但是似乎没有人解决这个特殊问题。这与nil-punning无关,因为参数应该有时为nil。
这是我已经运行的代码:https://gist.github.com/Efimero/2c0af4ae3aeaf2c85136aa06ff077919
但是它只能工作,因为默认零值适合我的设置,但它们不是抽象的。
当我传递nil
时,我希望正常调用该函数,但会出现异常。
答案 0 :(得分:2)
这没有道理。 long
在任何地方都不能为null。看来这是文档中的沟通不畅,包装的C或C ++库从那里泄漏了。
我强烈猜测在文档中说0
的地方传递NULL
是正确的。