Каков наилучший способ взаимодействия с Ogre (C ++) в приложении Java? - PullRequest
5 голосов
/ 19 января 2012

У меня есть Java-приложение, и я хочу подключить к нему Ogre.В частности, Ogre - это библиотека движка 3D-игр, в которой есть множество сложных объектов C ++. У меня есть несколько вариантов для этого

1.) Используйте Raw JNI (хотя JNI довольно сложный)

2.) Используйте SWIG + JNI (довольно просто ... но все же задействован JNI)

3.) Используйте Lua и NO JNI (используйте привязку lua к Ogre) ... В основном, использование Lua помогает, потому чтоИнтерфейс C ++ lib с Lua намного проще, и вызов Lua из java не будет слишком сложным.

4.) Используйте Ogre4j (Java-привязка к Ogre с использованием JNI ... но этот проект не так обновляется с помощьюпоследняя версия Ogre)

Какой из этих вариантов / выглядит как лучший вариант с учетом будущего обслуживания / обновлений до Ogre?

Стоит ли попробовать вариант № 3?

Ответы [ 2 ]

3 голосов
/ 29 февраля 2012

Я хотел бы предложить 5-й вариант: JNA https://github.com/twall/jna, бывший проект java.net.

Мои рассуждения: варианты 1 и 2 слишком низкого уровня, 3 - imho экспериментальный (вы упомянули «множество сложных объектов C ++»), а номер 4 определенно не имеет обновлений. JNA все еще поддерживается, с открытым исходным кодом (LGPL), документирована и кроссплатформенна (хотя документы / примеры могут указывать на обратное).

Обновление:
Я слышал о шестом варианте, который "inspired by JNA": BridJ http://code.google.com/p/bridj/. FAQ и Wiki хорошо объясняют различия и причины этого. BridJ является активным и открытым исходным кодом (лицензия BSD и Apache).

0 голосов
/ 11 октября 2016

Может быть, мы можем использовать XBiG для генерации Java-кода, как это делает ogre4j.На самом деле, исходный код XBiG имеет тест для генерации исходного кода ogre4j, и он предназначен для этой работы.

...