Aller au contenu

OpenGl ES ne fonctionne plus depuis mise a jour 4.0.3


free-tibet

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.

Modifié par free-tibet
Lien vers le commentaire
Partager sur d’autres 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.

Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...