2010-11-01 19 views
7

Sto sviluppando un'applicazione Android per Android 2.1.OpenGL su Android utilizzando solo C++

Sto provando a codificare solo le cose di OpenGL con C++.

Conoscete un tutorial o un articolo che mostra un esempio su come farlo?

UPDATE:

Siamo spiacenti, ho dimenticato di dire che userò un'applicazione Java casa per lanciare l'attività principale.

Sto cercando di dire se devo codificare su glSurfaceView Java o questa dichiarazione deve essere su codice C++.

Ok, meglio spiegato: se ho un openGl completo su C++, posso modificare il codice C++?

Grazie.

+0

Si noti che al momento non è possibile creare un'applicazione C++ che può essere avviata da una normale applicazione domestica. Devi avere il codice di inizializzazione java a prescindere se capisci come implementare tutte le funzionalità in modo nativo. Questo è e le API native mancanti sono IMHO una delle maggiori carenze della piattaforma: è davvero un peccato non poter sfruttare appieno la piattaforma Linux embedded sottostante con mezzi normali. –

+1

@Chris Stratton: grazie. Ho aggiornato la mia domanda con maggiori dettagli. – VansFannel

risposta

8

Nell'ndroid NDK è presente una demo di san-angeles nella directory samples che mostra utilizzando OpenGL ES 1.x in codice C e un wrapper Java. Per quanto riguarda le modifiche al codice C++ già esistente, tenere presente che non esiste un'implementazione STL ufficiale per NDK r4 (anche se credo che siano disponibili alcune porte) [modifica: a partire da NDK r5 esiste un'implementazione STL basata su STLport]. E immagino che dovrai imitare ciò che la demo fa per GLSurfaceView dal momento che eventi esterni (touch, tastiera, ecc.) E il ciclo di vita delle attività di Android devono essere gestiti dal lato Java. Se stai cercando un esempio OpenGL ES 2.0, ce n'è uno di base nella directory samples dell'NDK di Android.

+0

Grazie. Questo è quello che sto cercando. – VansFannel

+0

Sto seguendo anche questo tutorial http://blog.jayway.com/2009/12/03/opengl-es-tutorial-for-android-part-i/ – VansFannel

2

Secondo http://developer.android.com/sdk/ndk non è possibile farlo solo in C++. Come suggerisci nel tuo aggiornamento, dovrai eseguire l'applicazione con l'SDK (Java) standard, ma puoi creare librerie C++ e chiamarle. Per quanto riguarda OpenGL, l'articolo suggerisce di avere pieno accesso a OpenGL ES, 1.1 o 2.0. ES non è la stessa di OpenGL completo.