Autore Topic: opengl es 2.0 , c++ e android  (Letto 928 volte)

Offline giuseppe500

  • Utente junior
  • **
  • Post: 110
  • Respect: 0
    • Mostra profilo
opengl es 2.0 , c++ e android
« il: 05 Dicembre 2013, 21:18:10 CET »
0
ciao.
Ho sviluppato un piccolo engine 3d per opengl 4 in c++(sotto windows).
Vorrei creare un applicazione per android che utilizzi questa libreria , chiaramente adattata ad opengl es 2.0 , ma vorrei utilizzare un interfaccia grafica in java .
Non voglio distaccarmi da java perchè devo poter continuare ad utilizzare il database e i controlli (ui).
Sono un neofita di android e non so bene come utilizare il c++ sempre in android.
vorrei utilizzare il processore tegra 4 e ho visto che sul sito di nvidia c'è un sacco di roba ma...
E' possibile miscelare i due linguagi e fare un interfaccia in java e un area dello schermo in opengl es 2.0 con il rendering in c++? O devo per forza costruirmi un interfaccia grafica in c++? ANche se non è una cosa impossibile come posso gestire il db in modo semplice da c++?

grazie.

Offline iceweasel

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 878
  • Respect: +147
    • Mostra profilo
  • Dispositivo Android:
    LGE P990 - Google Nexus 5
  • Sistema operativo:
    Linux Debian Sid
Re:opengl es 2.0 , c++ e android
« Risposta #1 il: 06 Dicembre 2013, 10:34:36 CET »
0
Devi scaricarti oltre al SDK anche NDK, c'è un esempio di utilizzo delle OpenGL-ES in C/C++, in Java c'è solo  la gestione minima della app per inizializzazione e per caricare la libreria dinamica con il codice nativo in C/C++, il compilatore è il GCC. Le OpenGL-ES 2.x hanno un API diversa rispetto alle OpenGL classiche (senza ES) e alle OpenGL-ES 1.x (la vecchia versione ma ancora compatibile). Con JNI puoi richiamare codice C/C++ da Java e viceversa basta, rispettare le convezioni sul passaggio dei parametri. Sotto Android puoi tranquillamente gestire un database SQLite ma sotto il C/C++ non c'è API per interfacciarsi col codice nativo usato dal codice Java, devi utilizzare il JNI o una versione locale di SQLite compilata appositamente.
adb logcat | tee /tmp/logcat | grep TAG