2010-11-14 5 views
0

Dans l'exemple de code, RIM traite bitmaps comme si elles sont en 565 RGB format, au lieu du 8888 ARGB format que vous obtenez sur les ordinateurs de bureau,format RGB 565 sur Blackberry

Par exemple habitude:

net.rim.device.api.system.Bitmap bitmap = 
    net.rim.device.api.system.Bitmap.getBitmapResource("BlackBerry.png"); 
GLUtils.glTexImage2D(gl, 0, GL10.GL_RGB, GL10.GL_UNSIGNED_SHORT_5_6_5, bitmap, null); 

Le bitmap disque, cependant, est 8888 ARGB - pourquoi l'exemple de code utilise 565 RVB, et puis-je utiliser 8888 ARGB, 4 octets par pixel, au lieu de ces 2 octets par pixel?

Répondre

0

Ok, je l'ai compris, je pense. (. Il semble que la fonction traite automatiquement Bitmap comme R5G6B5 si nécessaire, ou A8R8G8B8 si nécessaire)

GLUtils.glTexImage2D(gl, 0, GL10.GL_RGBA, GL10.GL_UNSIGNED_BYTE, bitmap, null); 

Cela fonctionne, même si il semble que cela ne devrait pas

Il y a aussi glTexImage2D (http: // www.blackberry.com/developers/docs/5.0.0api/javax/microedition/khronos/opengles/GL10.html#glTexImage2D(int, int, int, int, int, int, int, int, java.nio.Buffer)) qui est un peu plus bas que la version GLUtils.

+0

Assurez-vous simplement que cela fonctionne correctement sur l'appareil. Lorsqu'il s'agit d'OpenGL en particulier, l'appareil ne se comporte pas de la même manière que le simulateur. –