2012-01-19 11 views
5

Mam aplikację Java i chcę interfejs Ogre wewnątrz niego. Konkretnie Ogre jest 3D gra biblioteka silnik, który ma wiele złożonych C++ obiektów wewnątrz it.I masz wiele opcji do osiągnięcia tegoJaki jest najlepszy sposób na połączenie z Ogre (C++) w aplikacji Java?

1.) Używaj Raw JNI (Tough jak JNI jest dość skomplikowane)

2 .) Użyj SWIG + JNI (Trochę prosty ... ale nadal JNI jest zaangażowany)

3.) Użyj Lua i NO JNI (Użyj lua wiążącego się z Ogrem) ... Zasadniczo użycie Lua pomaga, ponieważ łączenie biblioteki C++ z Lua jest o wiele łatwiejsza, a wywołanie Lua z java nie byłoby zbyt trudne.

4.) Zastosowanie Ogre4j (Java wiązanie z Ogre użyciu JNI ... ale to existing projekt tak na bieżąco z najnowszą wersją Ogre)

Które z nich/wygląda jak najlepszego prowadzenia opcji na uwadze przyszłe utrzymanie/ulepszenia do Ogre?

Czy opcja nr 3 jest warta wypróbowania?

+0

Dlaczego chcesz używać Ogre z Java? Dlaczego nie znaleźć silnika gry Java lub napisać aplikację w C++? – jalf

Odpowiedz

3

Chciałbym zaproponować piąty wariant: JNA https://github.com/twall/jna, wcześniejszy projekt java.net.

Moje rozumowanie: opcje 1 i 2 są zbyt niskie, 3 to imho eksperymentalne (wspomniałeś o "dużej liczbie złożonych obiektów C++"), a numer 4 zdecydowanie nie zawiera aktualizacji. JNA jest nadal obsługiwane, open source (LGPL), udokumentowane i wieloplatformowe (chociaż dokumenty/przykłady mogą sugerować coś odwrotnego).

Aktualizacja:
Mam słyszał o 6 opcji, która jest "inspired by JNA": BridJ http://code.google.com/p/bridj/. Modele FAQ i Wiki dobrze wyjaśniają różnice i uzasadnienie. BridJ jest aktywny i open source (licencje BSD i Apache).

0

Może możemy użyć XBiG do wygenerowania kodu Java, tak jak do ogre4j do. W rzeczywistości kod źródłowy XBiG ma test na wygenerowanie kodu źródłowego ogre4j i jest przeznaczony do wykonywania tej pracy.

Powiązane problemy