Jump to content

OpenGl ES ne fonctionne plus depuis mise a jour 4.0.3


free-tibet
 Share

Recommended Posts

bonjour,

je suis en possession d'une tablette asus tf01 sur laquelle la dernière mise à jour l'a fait passer sous Android 4.0.3.

Je suis en train de dévelloper un jeu à partir du moteur 2D/3D OpenGl Es

j'étais très bien partis sauf que depuis cette mise à jour, l'ajout de texture ne fonctionne plus.

j'ai tout essayer, tous les tuto que j'ai trouvé et j'ai essayé avec tout les versions de projet disponibles et j'ai aussi essayé tous les versions du sdk minimal " <uses-sdk android:minSdkVersion="15" />" du manifest.

ce qui m’énerve c'est que ça fonctionne sous l'émulateur !

j'ai donc fais un tout petit projet affichant un cube, tout fonctionne sauf quand j'ajoute les textures.

voici mon code d'ajout de texture qui fonctionne sous l'émulateur.

Dans la méthode onSurfaceCreated() de la classe GLSurfaceView.Renderer

gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY);
gl.glEnable(GL10.GL_TEXTURE_2D);	

Dans la méthode OnDrawFrame() de la classe GLSurfaceView.Renderer:

gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY);
gl.glEnable(GL10.GL_TEXTURE_2D);
Bitmap bmp = BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_launcher);
GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bmp, 0);
gl.glTexParameterx(GL10.GL_TEXTURE_2D,GL10.GL_TEXTURE_MIN_FILTER,GL10.GL_LINEAR);
gl.glTexParameterx(GL10.GL_TEXTURE_2D,GL10.GL_TEXTURE_MAG_FILTER,GL10.GL_LINEAR);  
bmp.recycle();

Dans la méthode de dessin du cube, OnDraw() de la classe Cube:

gl.glEnable(GL10.GL_TEXTURE_2D);
gl.glTexCoordPointer(2, GL10.GL_FIXED, 0, mTextureBuffer);

avec mTextureBuffer, initialisé comme suit:

ByteBuffer tbb = ByteBuffer.allocateDirect(texCoords.length * 4);
tbb.order(ByteOrder.nativeOrder());
mTextureBuffer = tbb.asIntBuffer();
mTextureBuffer.put(texCoords);
mTextureBuffer.position(0);

avec texCoords, position des textures. Inutile de le montré car ça fonctionne sous l'émulateur

je pense peut être à une méthode d'activation des textures manquantes ou alors une option à activer sous la tablette, j'aimerais aussi savoir si ce problème interviens uniquement avec ma tablette ou avec toutes les tf01 sous 4.0.3 ou alors sous tous les systèmes 4.0.3 ce qui serait étonnant puisque encore une fois le programme fonctionne sous l'émulateur.

Edited by free-tibet
Link to comment
Share on other sites

ah oui ! merci !

sinon j'ai résolus mon problème en ajoutant

gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_CLAMP_TO_EDGE);
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_CLAMP_TO_EDGE);

avant chaque appel au dessin de chaque texture !

voila c'est résolut il s'agit d'un problème de compatibilité avec open-gl es 1.0.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...