7
votes

Perdre des textures OpenGL à Android après un CV

Mon jeu fonctionne correctement, sauf dans le cas où j'appuie sur le bouton Home puis reprendre. Qu'est-ce qui doit être fait pour utiliser les textures à nouveau? J'ai essayé d'appeler l'onpause et onResume sur la GLSurfaceView (lorsque l'onpause de l'activité et onresume s'appelle).

Des idées ce que je pourrais faire mal?


2 commentaires

Pourriez-vous s'il vous plaît poster des échantillons de code?


@Badskillz Je ne suis pas sûr de ce que le code est pertinent. Mon activité / View and Renderer? Je charge les textures à l'aide de code natif. Qu'est-ce qui doit être fait pour restaurer les textures? Dois-je recharger du disque?


3 Réponses :


6
votes

Si tout échoue, rechargez les textures:

pseudocode xxx


2 commentaires

J'avais essayé cela, mais pour une raison quelconque, les textureids semblaient être mélangés (ma texture de la police a été appliquée au mauvais endroit par exemple). Je vais persévérer et lui donner un autre aller


Merci, ça marche. Le manque de sommeil d'un nouveau bébé a causé quelques erreurs. Avec une tête claire, cela fonctionne bien :)




2
votes

Après avoir essayé:

  1. N'appelez pas GLSURFACEVoir # Onpause / Onresume dans l'article de l'activité / Onresume
  2. Call GLSURFACEView # Onpaause / OnResume, mais aussi Set GLSURFACEVoir # SetPresveeGlContextonPause (True)

    Les deux cas corrigent le problème de la résolution home-CV-Black-texture. Devinez l'implémentation Android n'a pas réussi à recréer le contexte EGL lors de la reprise. Depuis que l'onpause / OnResume doit appeler, devrait toujours définir SetPresveeGlContextonAUSe sur True.


0 commentaires