Bonjour,
Je développe un moteur de Map en OpenGL ES 1.0 avec des tuiles (les tuiles font 256 de coté).
A l'init je construit un model avec les tuiles visibles au niveau de la position utilisateur.
Je sais qu'on peut limiter l'affichage au niveau de la camera (zNear / zFar), mais je ne peux me
permettre de charger toutes les tuiles car j'en ai des milliers et donc cette option n'est pas suffisante.
Ma classe GLSurfaceView.Renderer accède au modèle pour afficher les objets visibles.
Dès que l'utilisateur bouge la map, je re-calcul la visibilité des tuiles en éventuellement chargeant de
nouvelles tuiles. En théorie, je dois donc avoir des tuiles qui sont crées et d'autres détruites.
En pratique comme la classe semble être Threadé, il y a de gros accès concurrent sur le modèle.
Après plusieurs essais, j'ai opté pour un LruCache dans lequel je mets mes tuiles au fur et à mesure que j'en
ai besoin.
A priori ça fonctionne la taille du LruCache plafonne à la taille définie.
Maintenant, je me pose la question comment être sûr que mes tuiles avec leurs textures sont bien détruites
et que la mémoire est bien libérée ?
Comment faites-vous ?
Merci![]()
Partager