Стандартным решением является использование поддержки OpenGL LablGTK. Я не знаю никаких привязок к другим решениям, таким как gtkglext. Если вы хотите написать свои собственные привязки, в общем, это не слишком сложно, нужно немного поработать и подумать. По крайней мере, вам нужно будет понять достаточно базовой библиотеки C, чтобы безопасно соединиться с OCaml, что сильно зависит от интерфейса библиотеки. Поскольку GtkGLExt основан на Glib, у вас будет благословение и проклятие того, что вы можете опираться на имеющийся в сообществе опыт связывания библиотек GLib / GTK и понимать, как работает Lablgtk2 для интеграции ваших привязок с ним , Это возможно, но не совсем тривиально, и я не помню, чтобы я видел хорошую документацию по привязке новых библиотек GTK, чтобы помочь вам начать работу.
Ваша ошибка в другом вопросе выглядит так, как будто вы пытаетесь скомпилировать вручную - пробовали ли вы собрать пакет GODI для lablgtk с включенным OpenGL? Он может иметь исправления и / или опции сборки, чтобы он работал. В качестве альтернативы, есть ли у MacPorts, которые вы используете по пути /opt/local
, пакеты OCaml и lablgtk?
Другая опция : есть другая опция, которую я обычно использую, когда мне нужен доступ к объектам из несвязанной библиотеки. Вместо того, чтобы писать привязки для библиотеки, я напишу логику, нуждающуюся в этой библиотеке, в C и предоставлю минимальный интерфейс для моего кода OCaml. В случае GtkGLExt, вероятно, это всего лишь вопрос создания вызовов контекста инициализации, разрыва и запуска / остановки, которые выполняют основную работу с C API и возвращают контекст OpenGL или все, что необходимо. Вам все равно придется проделать определенную работу, чтобы выяснить, как получить правильный объект GTK из объекта OCaml и как передать обратно все, что необходимо для работы LablGL, но обычно это проще, чем создавать реальные привязки.