Porting a desktop OpenGL application to Android operating system

No Thumbnail Available
Journal Title
Journal ISSN
Volume Title
School of Science | Master's thesis
Checking the digitized thesis and permission for publishing
Instructions for the author
Date
2013
Major/Subject
Ohjelmistotekniikka
Mcode
T-106
Degree programme
Language
fi
Pages
vii + 57
Series
Abstract
Mobile devices such as smartphones and tablets have increasingly been equipped with a dedicated graphics processing unit allowing to port desktop 3D Graphics applications to mobile devices. Android is a mobile operating system which supports OpenGL ES API to render 3D Graphics. Graphics applications are commonly written with C/C++ languages, whereas Android provides a Java-Based application environment. Thus, C/C++ languages are only available in Android application through Java Native Interface (JNI). The objective of this thesis was to study the necessary changes in 3D Graphics, user interaction, input handling and sound playing, in order to port a desktop OpenGL application to Android. Implementation details of these changes were determined by porting a desktop OpenGL game GL-117 to Android. Functionality of the game in mobile environment was evaluated by measuring rendering performance with various graphics settings. There are no major differences between desktop and mobile versions of OpenGL library. Hence, OpenGL rendering code can be easily ported to OpenGL ES. More focus is required to implement a user interface, playing sounds and handle transitions between states in Android application lifecycle.

Monet uusimmat mobiililaitteet kuten älypuhelimet ja taulutietokoneet sisältävät erillisen grafiikkasuorittimen, joka mahdollistaa 3D-grafiikkaa näyttävien työpöytäsovelluksien siirtämisen mobiililaitteille. Android on mobiililaitteisiin suunnattu käyttöjärjestelmä, jossa 3D-grafiikkaa voidaan piirtää OpenGL ES -rajapintaa käyttäen. Grafiikkasovelluksissa käytetään paljon C/C++-ohjelmakoodia, jota Androidin Java-pohjaisessa sovellusympäristössä joudutaan kutsumaan Javan natiivirajapinnan (JNI) kautta. Työn tavoitteena oli tutkia 3D-grafiikan piirtämisessä, vuorovaikutteisuuden toteuttamisessa, syötelaitteiden hallinnassa ja äänentoistossa tarvittavia muutoksia siirrettäessä OpenGL-työpöytäsovellusta Android-käyttöjärjestelmälle. Työssä esiteltävät tarvittavat muutokset selvitettiin siirtämällä OpenGL-kirjastoa käyttävä GL-117-toimintapeli Androidille. Pelin toimivuutta mobiiliympäristössä arvioitiin mittaamalla piirtämiseen kuluvaa aikaa erilaisilla grafiikan asetuksilla. Piirtokoodin siirtäminen onnistui ilman suuria muutoksia, silla OpenGL-työpöytä ja -mobiiliversioiden välillä ei ole merkittäviä eroavaisuuksia. Käyttöliittymään ja äänentoistoon liittyvät osuudet sen sijaan vaativat uudelleen toteutusta. Lisäksi sovellukseen tarvittiin Androidin vaatimien tilasiirtymien käsittely, koska Androidissa sovelluksella on useita eri tiloja.
Description
Supervisor
Saikkonen, Heikki
Keywords
Java Native Interface, Android, OpenGL ES, 3D-grafiikka, 3D graphics
Other note
Citation