Я пытаюсь понять, как использовать LWJGL3 напрямую из clojure. Единственный камень преткновения, который я обнаружил до сих пор, - это функция, которая иногда требует, чтобы аргумент был null
, но его тип - long
в отпечатке пальца.
Определенная рассматриваемая функция - glfwCreateWindow
из класса org.lwjgl.glfw.GLFW
.
Последние два аргумента long
, но они должны быть null
при использовании оконного режима для первого или без разделения контекста gl для второго.
Проблема заключается в том, что вызовы взаимодействия проверяют отпечаток функции и видят, что это должно быть long
, поэтому передача nil
приводит к IllegalArgumentException
.
Я огляделся по сторонам, но, похоже, никто не решал эту проблему. Дело не в ноль-наказании, поскольку аргумент должен иногда быть нулем.
Это мой код, который уже работает: https://gist.github.com/Efimero/2c0af4ae3aeaf2c85136aa06ff077919
Но это работает только потому, что нулевые значения по умолчанию подходят для моей настройки, но они не являются абстрактными.
Когда я передаю nil
, я хочу, чтобы функция вызывалась нормально, но я получаю исключение.