Grafica opengl în aplicația Android

Platforma Android suportă grafica OpenGL în același mod în care o cilindru de pălărie îi ajută pe iepuri să iasă. Deși OpenGL este, fără îndoială, una dintre cele mai interesante tehnologii din Android, ea joacă un rol destul de marginal în acest sistem de operare. În plus, se pare că chiar înainte de versiunea finală beta a interfeței au suferit schimbări majore. Majoritatea codului și multe dintre recomandările pe această temă pe care le-am găsit pe Web sunt depășite și nu mai funcționează.







În versiunea API Vl_r2, mediul OpenGL ES 1.0 și majoritatea ES 1.1 sunt implementate. În esență, acesta este un limbaj specific domeniului integrat în Java. Dacă a trebuit să dezvoltați interfețe pentru utilizatori de jocuri pentru o perioadă scurtă de timp, vă veți obișnui să dezvoltați programe cu OpenGL pentru Android mai repede decât programatorul Java sau chiar interfața expert a utilizatorilor Java.

Înainte de a continua discuția despre cea mai grafică bibliotecă OpenGL, să examinăm scurt modul în care OpenGL vopsește pixelii care sunt afișați pe ecran. Până acum, s-a luat în considerare cadrul complex de vizualizare, folosit pentru a organiza și a reprezenta obiecte pe ecran. OpenGL este limba în care aplicația descrie întreaga scenă. O astfel de scenă va fi afișată de motor, care nu este doar în afara mașinii virtuale Java, ci poate lucra și pe un alt procesor (adică un procesor grafic sau un GPU). Pentru a coordona pe ecran afișarea a două tipuri, prelucrate de diferite procesoare, este destul de dificilă.

Clasa SurfaceView, discutată mai sus, este aproape suficientă pentru acest lucru. Sarcina sa este de a crea o suprafață pe care un flux diferit poate desena, pe lângă fluxul grafic al interfeței utilizator. Ne-ar plăcea foarte mult instrumentul, care este o extensie a SurfaceView, care ar sprijini ușor mai multe filetare și oferă, de asemenea, suport pentru OpenGL.







GLSurfaceView definește interfața GLSurfaceView. Renderer, care simplifică radical toate lucrările legate de OpenGL și GLSurfaceView. De fapt, toate aceste funcționalități sunt extrem de complicate. GLSurfaceView apelează metoda de mapare getConf și gSpec pentru a obține informații despre configurația OpenGL. Alte două metode - sizeChanged si surfaceCreated - numite GLSurfaceView de a informa mijloacele de afișare (renderer), respectiv, că dimensiunea sa schimbat, sau că trebuie să se pregătească pentru vopsire. În cele din urmă, drawFrame, partea centrală a interfeței, este chemat să afișeze un nou cadru OpenGL.

Exemplul 9-16 prezintă metode importante de la implementarea instrumentului de afișare OpenGL.

Exemplul 9.16. Animație cu cadru unic cu OpenGL

Grafica opengl în aplicația Android

Grafica opengl în aplicația Android

Grafica opengl în aplicația Android

Metoda surfaceCreated pregătește scena. Specifică câteva atribute OpenGL care ar trebui inițializate numai atunci când widgetul primește o nouă suprafață de desen. În plus, această metodă numește Image Image, care citește resursa bitmap și o salvează ca o textura bidimensională. Atunci când drawFrame este numit în cele din urmă, totul este gata pentru desen. Anume: textura este aplicată unei figuri plane a cărei noduri sunt specificate de designer în vertexBuf, faza de animație este selectată și scena este redesenată.

Sursă: Android. Programare Java pentru noua generație de dispozitive mobile







Articole similare

Trimiteți-le prietenilor: