android


Do I have to worry about non-power-of-two textures on API 16+?


I'm creating a mobile game for Android and iOS.
As I read on Android's website:
OpenGL ES 1.0 and 1.1 - This API specification is supported by
Android 1.0 and higher.
OpenGL ES 2.0 - This API specification is supported by Android 2.2
(API level 8) and higher.
OpenGL ES 3.0 - This API specification is supported by Android 4.3
(API level 18) and higher.
OpenGL ES 3.1 - This API specification is supported by Android 5.0
(API level 21) and higher.
I build my app to target only devices API16+, BUT, does it mean that I can use non-pot textures?
Is this possible that someone with this API level will have OpenGL 1.0 on his device which will crash trying to load my textures? Is this device independant?
Firstly, you didn't mention whether you are targeting OpenGLES 1 or 2. From the information you've posted, all the devices you target support OpenGLES 2, but it's up to you which version you actually chose to use.
Assuming your code uses OpenGLES 2, then all devices should work with non-POT textures. However, you should be aware that texture wrapping (GL_REPEAT) and mipmapping are only supported on non-POT textures via extensions. Also, a lot of devices will allocate memory as if your texture was POT anyway.
Because of these reasons, it's almost always a good idea to author POT textures for 3D assets. For 2D assets it's a good idea to think about using texture atlasses to combine multiple non-POT textures into a larger POT atlas.

Related Links

marshmallow permissions dialog ALLOW button not working why?
Unable to add image in a istview from the database
how to get imagelink(url) from listview onItemClickListener
on capturing image from camera the app is crashing in kitkat android
Does FragmentStatePagerAdapter save fragment state on orientation change?
Cannot resolve symbol default_web_client_id in Firebase's Android Codelab
Taking picture without camera preview not working in lolipop and above version
What could a function look like that receives three locations and three radius and outputs one coordinate showing the overlapping?
Adding Firebase Analytics and Google Analytics in Android App
Android - The Fragment is getting refreshed only when the orientation is changed
Bluetooth headset can't receive the last voice
list only updates when I scroll - android listview
Android, using Zxing into a webview, into back button, shows blank activity
Cannot delete sqlite row using a contextual menu and listview in Android
Android FireBase error when uploading picture
How to include “.sources” file in gradle 2.10 and android studio 2.0+

Categories

HOME
assembly
wakanda
powerpoint
hessian
graphics
pclxl
grafana
access
interpolation
echo
settings
jax-ws
gluon-mobile
lanczos
recordrtc
extjs4.2
arangodb
openstreetmap
mxgraph
jsonpath
stellar.js
frequency-distribution
gource
mongodb-csharp
libusb
screen-readers
gruntfile
ksh
babel
pimcore
scriptella
comparator
xunit
siri
beautifier
pylons
fractions
subclass
openmdao
boost-asio
erb
laravel-eloquent
dsx-desktop
html-encode
browser-extension
reactivekit
ideascript
z-notation
protein-database
linq-to-objects
c9.io
parser-generator
preloader
angular-http
puredata
mesosphere
proget
reindex
java-6
excel-dna
boo
oozie-coordinator
java-websocket
sandcastle
custom-lists
signalr.client
delta
lua-telegram-bot
data-protection
asyncdisplaykit
rewrite
rubaxa-sortable
slash
typeconverter
nsurlsessiondatatask
actionfilterattribute
apache-spark-1.3
execve
metatrader5
human-computer-interface
buffering
spring-remoting
fpdi
conditionaltagsupport
sphinxql
tlf
scringo
poker
facebook-timeline
swfobject
redis-py
wiimote
apache-commons-dbutils
box2d-iphone
filemerge
collectionviewsource
presentation-layer
cruisecontrol.rb
tabpanel
sun
linfu-dynamicproxy
leader

Resources

Mobile Apps Dev
Database Users
javascript
java
csharp
php
android
MS Developer
developer works
python
ios
c
html
jquery
RDBMS discuss
Cloud Virtualization
Database Dev&Adm
javascript
java
csharp
php
python
android
jquery
ruby
ios
html
Mobile App
Mobile App
Mobile App